ScummVM API documentation
MM::Xeen::Combat Class Reference

Public Member Functions

 Combat (XeenEngine *vm)
 
void clearAttackers ()
 
void clearBlocked ()
 
void clearShooting ()
 
void reset ()
 
void giveCharDamage (int damage, DamageType attackType, int charIndex)
 
void doCharDamage (Character &c, int charNum, int monsterDataIndex)
 
void moveMonsters ()
 
void setupCombatParty ()
 
void setSpeedTable ()
 
bool allHaveGone () const
 
bool charsCantAct () const
 
Common::String getMonsterDescriptions ()
 
void attack (Character &c, RangeType rangeType)
 
void block ()
 
void quickFight ()
 
void run ()
 
void monstersAttack ()
 
void setupMonsterAttack (int monsterDataIndex, const Common::Point &pt)
 
bool canMonsterMove (const Common::Point &pt, int wallShift, int xDiff, int yDiff, int monsterId)
 
void moveMonster (int monsterId, const Common::Point &moveDelta)
 
void doMonsterTurn (int monsterId)
 
void doMonsterTurn (int monsterId, int charNum)
 
void endAttack ()
 
void monsterOvercome ()
 
int stopAttack (const Common::Point &diffPt)
 
void rangedAttack (PowType powNum)
 
void shootRangedWeapon ()
 
bool areMonstersPresent () const
 

Public Attributes

Common::Array< Character * > _combatParty
 
bool _charsBlocked [12]
 
int _charsGone [12]
 
SpriteResource _powSprites
 
int _attackMonsters [26]
 
int _monster2Attack
 
PowSlots _pow
 
int _missedShot [8]
 
Common::Array< int > _speedTable
 
int _shootingRow [8]
 
int _globalCombat
 
int _whosTurn
 
bool _itemFlag
 
int _monsterMap [32][32]
 
bool _monsterMoved [107]
 
bool _rangeAttacking [107]
 
int _gmonHit [36]
 
bool _monstersAttacking
 
CombatMode _combatMode
 
int _attackDurationCtr
 
bool _partyRan
 
int _whosSpeed
 
DamageType _damageType
 
Character_oldCharacter
 
int _monsterDamage
 
int _weaponDamage
 
int _weaponDie
 
int _weaponDice
 
int _weaponElemMaterial
 
XeenItem_attackWeapon
 
int _attackWeaponId
 
File _missVoc
 
int _hitChanceBonus
 
bool _dangerPresent
 
bool _moveMonsters
 
RangeType _rangeType
 
ShootType _shootType
 
int _combatTarget
 

Member Function Documentation

◆ clearAttackers()

void MM::Xeen::Combat::clearAttackers ( )

Clear the list of attacking monsters

◆ clearBlocked()

void MM::Xeen::Combat::clearBlocked ( )

Clear the list of blocked characters

◆ clearShooting()

void MM::Xeen::Combat::clearShooting ( )

Clear the list of ros projectiles are on headed for part members

◆ reset()

void MM::Xeen::Combat::reset ( )

Resets all combat related data

◆ giveCharDamage()

void MM::Xeen::Combat::giveCharDamage ( int  damage,
DamageType  attackType,
int  charIndex 
)

Gives damage to character or characters in the party

◆ doCharDamage()

void MM::Xeen::Combat::doCharDamage ( Character c,
int  charNum,
int  monsterDataIndex 
)

Do damage to a specific character

◆ moveMonsters()

void MM::Xeen::Combat::moveMonsters ( )

Handles moving monsters by a space between game turns

◆ setupCombatParty()

void MM::Xeen::Combat::setupCombatParty ( )

Setup the combat party with a copy of the currently active party

◆ setSpeedTable()

void MM::Xeen::Combat::setSpeedTable ( )

Sets up a table of speeds to determine the order in which characters and monsters fight

◆ allHaveGone()

bool MM::Xeen::Combat::allHaveGone ( ) const

Returns true if all participants in the combat are disabled

◆ charsCantAct()

bool MM::Xeen::Combat::charsCantAct ( ) const

Returns true if all the characters of the party are disabled

◆ getMonsterDescriptions()

Common::String MM::Xeen::Combat::getMonsterDescriptions ( )

Return a description of the monsters being faced

◆ attack()

void MM::Xeen::Combat::attack ( Character c,
RangeType  rangeType 
)

Main method for characters to attack

◆ block()

void MM::Xeen::Combat::block ( )

Flag the currently active character as blocking/defending

◆ quickFight()

void MM::Xeen::Combat::quickFight ( )

Perform whatever the current combat character's quick action is

◆ run()

void MM::Xeen::Combat::run ( )

Current selected character is trying to run away

◆ monstersAttack()

void MM::Xeen::Combat::monstersAttack ( )

Called to handle monsters doing ranged attacks against the party

◆ canMonsterMove()

bool MM::Xeen::Combat::canMonsterMove ( const Common::Point pt,
int  wallShift,
int  xDiff,
int  yDiff,
int  monsterId 
)

Determines whether a given monster can move

Parameters
ptMonster position
wallShiftShift mask for determining direction being moved
xDiffX Delta for move
yDiffY Delta for move
monsterIdMonster number being tested

◆ moveMonster()

void MM::Xeen::Combat::moveMonster ( int  monsterId,
const Common::Point moveDelta 
)

Moves a monster by a given delta amount if it's a valid move

◆ doMonsterTurn() [1/2]

void MM::Xeen::Combat::doMonsterTurn ( int  monsterId)

Handle a monster's turn at attacking combat party members

◆ doMonsterTurn() [2/2]

void MM::Xeen::Combat::doMonsterTurn ( int  monsterId,
int  charNum 
)

Handles a monster's turn at attacking a specific member of the combat party

◆ endAttack()

void MM::Xeen::Combat::endAttack ( )

Called when combat has ended

◆ stopAttack()

int MM::Xeen::Combat::stopAttack ( const Common::Point diffPt)

Checks whether a given position on the map will stop a ranged attack

◆ rangedAttack()

void MM::Xeen::Combat::rangedAttack ( PowType  powNum)

Called to do ranged attacks, both with bows or using a spell

◆ shootRangedWeapon()

void MM::Xeen::Combat::shootRangedWeapon ( )

Fires off a ranged attack at all oncoming monsters

◆ areMonstersPresent()

bool MM::Xeen::Combat::areMonstersPresent ( ) const

Returns true if there are any monsters in the vacinity


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