class
cCombatantAny object that has hit points and can combat other units.
This class acts more as a container of different variables (like the target combatant, number of hit points, etc), and therefore it barely has any combat logic on it. The combat logic is managed externally, by the cCombatSimulator class.
Combatants can only fight with other combatants, and can only attack one of them at a time. To do so, use the SetTarget() method. If the class has no target, it won't attack anyone.
Several attributes can be saved into the game data:
- mHealthPoints
- mMaxHealthPoints
- mLastAttacker
- mArmorProbability
Derived classes
- class cBuilding
- Base class for all buildings in Simulator game modes.
- class cCommodityNode
- Represents a spice geyser in civilization stage, maybe it is also used elsewhere.
- class cCreatureBase
- The base class for all creatures in the Simulator.
- class cCulturalTarget
- class cEgg
- Default model is
0x00000000!0xA76CD528
, defaultmMaterialType
is 5. - class cGameDataUFO
- class cGamePlant
- class cInteractiveOrnament
- Static objects in a planet that the player can interact with, such as pickable objects, skeletons in creature stage,...
- class cMovableDestructibleOrnament
- class cOrnament
- Used, among other things, for adventure objects (except pickable ones)
- class cSpaceDefenseMissile
- class cTribeHut
- class cTribeTool
- class cTurret
- class cVehicle
Public static variables
Constructors, destructors, conversion operators
- ~cCombatant() virtual
Public functions
- auto SetHealthPoints(float healthPoints) -> void
- auto GetWeaponRange() -> float
- Returns the maximum range of this combatant's weapon.
- auto Write(void* arg_0) -> bool virtual
- auto ToSpatialObject() -> cSpatialObject* pure virtual
- Returns the cSpatialObject that corresponds to this combatant.
- auto ToGameData() -> cGameData* pure virtual
- Returns the cGameData that corresponds to this combatant.
-
auto GetPoliticalID() -> uint32_
t pure virtual - Returns this object political ID, used to identify the cGameData.
- auto GetWeapon() -> cSpaceToolData* virtual
- Returns the weapon tool used by this combatant. This is only available for vehicles.
-
auto TakeDamage(float damage,
uint32_
t attackerPoliticalID, int, const Vector3&, cCombatant* pAttacker) -> int virtual - Called when the combatant is attacked, takes the damage.
- auto AddHostileUnit(cCombatant* combatant) -> void virtual
-
auto func20h() -> Math::
Vector3 virtual - auto GetRandomAimIndex() -> int virtual
- Generates a random index that allows to select from the existing aim points.
-
auto func28h(int) -> Math::
Vector3 virtual - auto Heal(bool) -> void virtual
-
auto func30h() -> Math::
Vector3 virtual -
auto func34h() -> uint32_
t virtual - auto func38h() -> void virtual
- auto func3Ch() -> bool virtual
- auto IsInWeaponRange(cCombatant* other) -> bool virtual
- Returns true if the other combatant is inside the maximum range of this combatant's weapon.
- auto IsWeaponCharged(int = 0) -> bool virtual
- Returns true if the weapon has enough ammo (if it uses ammo) and is not recharging.
- auto func48h(int, int) -> void virtual
- auto func4Ch(int) -> void virtual
- auto SetTarget(cCombatant* target) -> void virtual
- Sets the target combatant; if it is not nullptr, this object will start attacking the given combatant.
- auto GetTarget() -> cCombatant* virtual
- Returns the current target, that is, the combatant that this class is attacking, or nullptr if the class is not in combat.
- auto GetMaxHitPoints() -> float virtual
-
auto Cast(uint32_
t type) -> void* virtual - Same as Object::Cast(uint32_t)
- auto AddRef() -> int pure virtual
- Same as Object::
AddRef(). - auto Release() -> int pure virtual
- Same as Object::
Release().
Public variables
- bool field_8
- bool field_9
- eastl::map<int, int> field_0C
- cCombatantPtr mpLastAttacker
- float mMaxHealthPoints
- ObjectPtr field_30
- int field_34
- float mHealthPoints
-
uint32_
t mLastAttacker - float mArmorProbability
- cCombatantPtr field_44
- cCombatantPtr mpTarget
- Vector3 field_4C
- eastl::vector<Vector3> mAimPoints
- bool field_6C
-
uint32_
t field_70 - Vector3 field_74
- bool field_80
- bool field_81
- eastl::vector<cGonzagoTimer> field_84
- cGonzagoTimer field_98
- int field_B8
- int field_BC
- ObjectPtr field_C0
- ObjectPtr field_C4
Function documentation
float Simulator:: cCombatant:: GetWeaponRange()
Returns the maximum range of this combatant's weapon.
If this combatant does not use weapon tools, returns 0.
bool Simulator:: cCombatant:: IsInWeaponRange(cCombatant* other) virtual
Returns true if the other combatant is inside the maximum range of this combatant's weapon.
If this combatant does not use weapon tools, returns false.
bool Simulator:: cCombatant:: IsWeaponCharged(int = 0) virtual
Returns true if the weapon has enough ammo (if it uses ammo) and is not recharging.
If this combatant does not use weapon tools, returns false.
void Simulator:: cCombatant:: SetTarget(cCombatant* target) virtual
Sets the target combatant; if it is not nullptr, this object will start attacking the given combatant.
Parameters | |
---|---|
target | The new target combatant. |
There can only be one target at a time.