Abstract character class that stores hero and minion data. More...

#include <Rosetta/Models/Character.hpp>

Inheritance diagram for RosettaStone::Character:
RosettaStone::Entity RosettaStone::Hero RosettaStone::Minion

Public Member Functions

 Character ()=default
 Default constructor. More...
 
 Character (Player &_owner, Card &_card)
 
virtual ~Character ()=default
 Default destructor. More...
 
 Character (const Character &c)=default
 Default copy constructor. More...
 
 Character (Character &&c)=default
 Default move constructor. More...
 
Characteroperator= (const Character &c)=default
 Default copy assignment operator. More...
 
Characteroperator= (Character &&c)=default
 Default move assignment operator. More...
 
virtual size_t GetAttack () const
 
void Destroy () override
 Destroys character. More...
 
bool CanAttack () const
 
bool IsValidCombatTarget (Player &opponent, Character *target) const
 
size_t TakeDamage (Character &source, std::size_t damage)
 
void TakeHeal (Character &source, std::size_t heal)
 
- Public Member Functions inherited from RosettaStone::Entity
 Entity ()=default
 Default constructor. More...
 
 Entity (Player &_owner, Card &_card)
 
virtual ~Entity ()
 Destructor. More...
 
 Entity (const Entity &ent)
 Copy constructor. More...
 
 Entity (Entity &&ent) noexcept
 Move constructor. More...
 
Entityoperator= (const Entity &ent)
 Copy assignment operator. More...
 
Entityoperator= (Entity &&ent) noexcept
 Move assignment operator. More...
 
PlayerGetOwner () const
 
void SetOwner (Player &owner)
 
int GetGameTag (GameTag tag) const
 
virtual void SetGameTag (GameTag tag, int value)
 

Static Public Member Functions

static std::vector< Character * > GetValidCombatTargets (Player &opponent)
 
- Static Public Member Functions inherited from RosettaStone::Entity
static EntityGetFromCard (Player &player, Card &&card)
 

Public Attributes

std::size_t numAttacked = 0
 
std::size_t attack = 0
 
int health = 0
 
int maxHealth = 0
 
- Public Attributes inherited from RosettaStone::Entity
Card card
 
std::size_t id = 0
 
bool isDestroyed = false
 

Additional Inherited Members

- Protected Attributes inherited from RosettaStone::Entity
Playerm_owner = nullptr
 
std::map< GameTag, intm_gameTags
 

Detailed Description

Abstract character class that stores hero and minion data.

This class inherits from Entity class. Also, it stores some attributes that only characters have such as attack and health.

Constructor & Destructor Documentation

◆ Character() [1/4]

RosettaStone::Character::Character ( )
default

Default constructor.

◆ Character() [2/4]

RosettaStone::Character::Character ( Player _owner,
Card _card 
)

Constructs character with given _owner and _card.

Parameters
_ownerAn owner of the card.
_cardA reference to the card.

◆ ~Character()

virtual RosettaStone::Character::~Character ( )
virtualdefault

Default destructor.

◆ Character() [3/4]

RosettaStone::Character::Character ( const Character c)
default

Default copy constructor.

◆ Character() [4/4]

RosettaStone::Character::Character ( Character &&  c)
default

Default move constructor.

Member Function Documentation

◆ CanAttack()

bool RosettaStone::Character::CanAttack ( ) const

Returns whether attack is possible.

Returns
Whether attack is possible.

◆ Destroy()

void RosettaStone::Character::Destroy ( )
overridevirtual

Destroys character.

Reimplemented from RosettaStone::Entity.

Reimplemented in RosettaStone::Hero, and RosettaStone::Minion.

◆ GetAttack()

virtual size_t RosettaStone::Character::GetAttack ( ) const
virtual

Returns the value of attack.

Returns
The value of attack.

Reimplemented in RosettaStone::Hero.

◆ GetValidCombatTargets()

static std::vector<Character*> RosettaStone::Character::GetValidCombatTargets ( Player opponent)
static

Returns a list of valid target in combat.

Parameters
opponentThe opponent player.
Returns
A list of pointer to valid target.

◆ IsValidCombatTarget()

bool RosettaStone::Character::IsValidCombatTarget ( Player opponent,
Character target 
) const

Returns whether the target is valid in combat.

Parameters
opponentThe opponent player.
targetA pointer to the target.
Returns
true if the target is valid, and false otherwise.

◆ operator=() [1/2]

Character& RosettaStone::Character::operator= ( const Character c)
default

Default copy assignment operator.

◆ operator=() [2/2]

Character& RosettaStone::Character::operator= ( Character &&  c)
default

Default move assignment operator.

◆ TakeDamage()

size_t RosettaStone::Character::TakeDamage ( Character source,
std::size_t  damage 
)

Takes damage from a certain other entity.

Parameters
sourceThe character to take damage.
damageThe value of damage.
Returns
Final damage taking into account ability.

◆ TakeHeal()

void RosettaStone::Character::TakeHeal ( Character source,
std::size_t  heal 
)

Gets healed by a certain other entity.

Parameters
sourceThe character to get heal.
healThe value of heal.

Member Data Documentation

◆ attack

std::size_t RosettaStone::Character::attack = 0

◆ health

int RosettaStone::Character::health = 0

◆ maxHealth

int RosettaStone::Character::maxHealth = 0

◆ numAttacked

std::size_t RosettaStone::Character::numAttacked = 0

The documentation for this class was generated from the following file: