#include "Resources.h"
#include "SmallHeroTag.h"
#include "../app/State.h"
-#include "../geometry/Point.h"
#include "../geometry/Vector.h"
#include "../graphics/Animation.h"
#include "../graphics/Menu.h"
const Monster &MonsterAt(int index) const { assert(index >= 0 && index < NumHeroes()); return monsters[index]; }
const HeroTag &HeroTagAt(int index) const { assert(index >= 0 && index < NumHeroes()); return heroTags[index]; }
- const geometry::Point<int> &HeroTagPositionAt(int index) const { assert(index >= 0 && index < NumHeroes()); return heroTagPositions[index]; }
+ const geometry::Vector<int> &HeroTagPositionAt(int index) const { assert(index >= 0 && index < NumHeroes()); return heroTagPositions[index]; }
bool HasChosenAttackType() const { return ActiveHero().GetAttackChoice().GetType() != AttackChoice::UNDECIDED; }
bool AttackSelectionDone() const { return activeHero >= numHeroes; }
}
int Width() const { return background->w; }
int Height() const { return background->h; }
+ geometry::Vector<int> Size() const { return geometry::Vector<int>(Width(), Height()); }
void RenderBackground(SDL_Surface *screen, const geometry::Vector<int> &offset);
void RenderMonsters(SDL_Surface *screen, const geometry::Vector<int> &offset);
private:
void LoadInventory();
+ void DecideMonsterAttack(Monster &) const;
+ void CalculateDamage(const Stats &attackerStats, TargetSelection &targets) const;
Uint16 CalculateDamage(const Stats &attacker, const Stats &defender) const;
private:
graphics::Menu<const common::Item *> itemMenu;
HeroTag heroTags[4];
SmallHeroTag smallHeroTags[4];
- geometry::Point<int> heroTagPositions[4];
- geometry::Point<int> smallHeroTagPositions[4];
+ geometry::Vector<int> heroTagPositions[4];
+ geometry::Vector<int> smallHeroTagPositions[4];
int numHeroes;
int activeHero;
int attackCursor;