TankAICurrentMove Class Reference

#include <TankAICurrentMove.h>

List of all members.

Public Member Functions

 TankAICurrentMove ()
virtual ~TankAICurrentMove ()
virtual bool parseConfig (XMLNode *node)
void clear ()
void playMove (Tank *tank, TankAIWeaponSets::WeaponSet *weapons, bool useBatteries)
TankAICurrentTargetgetTargets ()

Protected Member Functions

bool shootAtTank (Tank *tank, Tank *targetTank, TankAICurrentMoveWeapons &weapons)
bool makeProjectileShot (Tank *tank, Tank *targetTank, TankAICurrentMoveWeapons &weapons)
bool makeSniperShot (Tank *tank, Tank *targetTank, TankAICurrentMoveWeapons &weapons)
bool makeLaserSniperShot (Tank *tank, Tank *targetTank, TankAICurrentMoveWeapons &weapons)
bool makeBurriedShot (Tank *tank, Tank *targetTank, TankAICurrentMoveWeapons &weapons)
bool makeMoveShot (Tank *tank, TankAIWeaponSets::WeaponSet *weapons, std::list< Tank * > &sortedTanks)
bool makeGroupShot (Tank *tank, TankAIWeaponSets::WeaponSet *weapons, std::list< Tank * > &sortedTanks)
bool inHole (Vector &position)
Vector lowestHighest (TankAICurrentMoveWeapons &weapons, Vector &position, bool highest)
float getShotDistance (Tank *tank, bool projectile)
void shotAtTank (Tank *tank, bool projectile, float newDistance)
bool useAvailableBatteries (Tank *tank)
void setWeapon (Tank *tank, Accessory *accessory)
void useBattery (Tank *tank, unsigned int batteryId)
void resign (Tank *tank)
void skipMove (Tank *tank)
void fireShot (Tank *tank)

Protected Attributes

std::map< Tank *,
ShotRecord
shotRecords_
TankAICurrentTarget targets_
float totalDamageBeforeMove_
bool useResign_
bool useFuel_
float movementDamage_
float movementDamageChance_
float movementLife_
float movementRandom_
float movementCloseness_
float groupShotChance_
float groupTargetDistance_
int groupShotSize_
float resignLife_
float largeWeaponUseDistance_
float sniperUseDistance_
float sniperStartDistance_
float sniperEndDistance_
float sniperMinDecrement_
float sniperMaxDecrement_
float sniperMovementFactor_
float projectileStartDistance_
float projectileEndDistance_
float projectileMinDecrement_
float projectileMaxDecrement_
float projectileMovementFactor_
float projectileMinDistance_

Classes

struct  ShotRecord


Detailed Description

Definition at line 28 of file TankAICurrentMove.h.


Constructor & Destructor Documentation

TankAICurrentMove::TankAICurrentMove (  ) 

Definition at line 45 of file TankAICurrentMove.cpp.

TankAICurrentMove::~TankAICurrentMove (  )  [virtual]

Definition at line 63 of file TankAICurrentMove.cpp.


Member Function Documentation

bool TankAICurrentMove::parseConfig ( XMLNode node  )  [virtual]

Definition at line 67 of file TankAICurrentMove.cpp.

References XMLNode::failChildren(), XMLNode::getNamedChild(), groupShotChance_, groupShotSize_, groupTargetDistance_, largeWeaponUseDistance_, movementCloseness_, movementDamage_, movementDamageChance_, movementLife_, movementRandom_, TankAICurrentTarget::parseConfig(), projectileEndDistance_, projectileMaxDecrement_, projectileMinDecrement_, projectileMinDistance_, projectileMovementFactor_, projectileStartDistance_, resign(), resignLife_, sniperEndDistance_, sniperMaxDecrement_, sniperMinDecrement_, sniperMovementFactor_, sniperStartDistance_, sniperUseDistance_, targets_, useFuel_, and useResign_.

Referenced by TankAICurrent::parseConfig().

void TankAICurrentMove::clear (  ) 

Definition at line 127 of file TankAICurrentMove.cpp.

References shotRecords_, and totalDamageBeforeMove_.

Referenced by TankAICurrent::newGame().

void TankAICurrentMove::playMove ( Tank tank,
TankAIWeaponSets::WeaponSet weapons,
bool  useBatteries 
)

Definition at line 133 of file TankAICurrentMove.cpp.

References fixed::asFloat(), TargetLife::getLife(), Target::getLife(), TargetLife::getMaxLife(), TankAICurrentTarget::getTargets(), TankAICurrentTarget::getTotalDamageTaken(), groupShotChance_, makeGroupShot(), makeMoveShot(), movementDamage_, movementDamageChance_, movementLife_, RAND, resign(), resignLife_, shootAtTank(), skipMove(), targets_, totalDamageBeforeMove_, useAvailableBatteries(), and useResign_.

Referenced by TankAICurrent::playMove().

TankAICurrentTarget& TankAICurrentMove::getTargets (  )  [inline]

Definition at line 41 of file TankAICurrentMove.h.

References targets_.

Referenced by TankAICurrent::newGame(), and TankAICurrent::tankHurt().

bool TankAICurrentMove::shootAtTank ( Tank tank,
Tank targetTank,
TankAICurrentMoveWeapons weapons 
) [protected]

Definition at line 219 of file TankAICurrentMove.cpp.

References makeBurriedShot(), makeLaserSniperShot(), makeProjectileShot(), and makeSniperShot().

Referenced by playMove().

bool TankAICurrentMove::makeProjectileShot ( Tank tank,
Tank targetTank,
TankAICurrentMoveWeapons weapons 
) [protected]

Definition at line 237 of file TankAICurrentMove.cpp.

References FixedVector::asVector(), TankAICurrentMoveWeapons::digger, fireShot(), Tank::getPosition(), Shield::getShieldType(), getShotDistance(), TankPosition::getTankPosition(), TankAIAimGuesser::guess(), inHole(), TankAICurrentMoveWeapons::large, largeWeaponUseDistance_, lowestHighest(), MIN, TankAICurrentMoveWeapons::napalm, projectileMinDistance_, RAND, TankAICurrentMoveWeapons::roller, setWeapon(), TankAICurrentMoveWeapons::shield, Shield::ShieldTypeRoundReflective, Shield::ShieldTypeSquareReflective, shotAtTank(), and TankAICurrentMoveWeapons::small.

Referenced by shootAtTank().

bool TankAICurrentMove::makeSniperShot ( Tank tank,
Tank targetTank,
TankAICurrentMoveWeapons weapons 
) [protected]

Definition at line 359 of file TankAICurrentMove.cpp.

References FixedVector::asVector(), TankAICurrentMoveWeapons::digger, fireShot(), Tank::getPosition(), Shield::getShieldType(), getShotDistance(), TankPosition::getTankPosition(), TankAISniperGuesser::guess(), TankAICurrentMoveWeapons::large, TankAICurrentMoveWeapons::laser, setWeapon(), TankAICurrentMoveWeapons::shield, Shield::ShieldTypeRoundReflective, Shield::ShieldTypeSquareReflective, shotAtTank(), TankAICurrentMoveWeapons::small, and sniperUseDistance_.

Referenced by shootAtTank().

bool TankAICurrentMove::makeLaserSniperShot ( Tank tank,
Tank targetTank,
TankAICurrentMoveWeapons weapons 
) [protected]

Definition at line 420 of file TankAICurrentMove.cpp.

References FixedVector::asVector(), fireShot(), Tank::getPosition(), getShotDistance(), TankPosition::getTankPosition(), TankAISniperGuesser::guess(), TankAICurrentMoveWeapons::laser, setWeapon(), shotAtTank(), and sniperUseDistance_.

Referenced by shootAtTank().

bool TankAICurrentMove::makeBurriedShot ( Tank tank,
Tank targetTank,
TankAICurrentMoveWeapons weapons 
) [protected]

Definition at line 448 of file TankAICurrentMove.cpp.

References TankPosition::changePower(), fireShot(), Tank::getPosition(), TankLib::getSniperShotTowardsPosition(), TankPosition::getTankGunPosition(), TankPosition::getTankPosition(), ScorchedServer::instance(), TankLib::intersection(), TankPosition::rotateGunXY(), TankPosition::rotateGunYZ(), setWeapon(), and TankAICurrentMoveWeapons::uncover.

Referenced by shootAtTank().

bool TankAICurrentMove::makeMoveShot ( Tank tank,
TankAIWeaponSets::WeaponSet weapons,
std::list< Tank * > &  sortedTanks 
) [protected]

Definition at line 555 of file TankAICurrentMove.cpp.

References fixed::asFloat(), FixedVector::asVector(), MovementMap::calculatePosition(), MovementMap::MovementMapEntry::dist, MovementMap::eMovement, AccessoryStore::findAccessoryPartByAccessoryId(), fireShot(), fixed::fromFloat(), FixedVector::fromVector(), Accessory::getAccessoryId(), ScorchedContext::getAccessoryStore(), ScorchedServer::getContext(), MovementMap::getEntry(), MovementMap::getFuel(), getHeight(), Tank::getPosition(), TankAIWeaponSets::WeaponSet::getTankAccessoryByType(), TankPosition::getTankPosition(), TankAICurrentTarget::getTotalDamageTaken(), ScorchedServer::instance(), MAX, MIN, movementCloseness_, TankPosition::setSelectPosition(), setWeapon(), MovementMap::MovementMapEntry::srcEntry, targets_, totalDamageBeforeMove_, MovementMap::MovementMapEntry::type, and useFuel_.

Referenced by playMove().

bool TankAICurrentMove::makeGroupShot ( Tank tank,
TankAIWeaponSets::WeaponSet weapons,
std::list< Tank * > &  sortedTanks 
) [protected]

Definition at line 634 of file TankAICurrentMove.cpp.

References fixed::asFloat(), FixedVector::asVector(), fireShot(), LandscapeMaps::getGroundMaps(), HeightMap::getHeight(), GroundMaps::getHeightMap(), ScorchedContext::getLandscapeMaps(), Tank::getPosition(), TankAIWeaponSets::WeaponSet::getTankAccessoryByType(), TankPosition::getTankPosition(), groupShotSize_, groupTargetDistance_, TankAIAimGuesser::guess(), ScorchedServer::instance(), int(), GroupingEntry::position, setWeapon(), GroupingEntry::targets, and GroupingEntry::totalDistance.

Referenced by playMove().

bool TankAICurrentMove::inHole ( Vector position  )  [protected]

Definition at line 483 of file TankAICurrentMove.cpp.

References fixed::fromFloat(), ScorchedContext::getLandscapeMaps(), ScorchedServer::instance(), and PI.

Referenced by makeProjectileShot().

Vector TankAICurrentMove::lowestHighest ( TankAICurrentMoveWeapons weapons,
Vector position,
bool  highest 
) [protected]

Definition at line 758 of file TankAICurrentMove.cpp.

References fixed::asFloat(), fixed::fromFloat(), Shield::getBoundingSize(), ScorchedContext::getLandscapeMaps(), ScorchedServer::instance(), PI, and TankAICurrentMoveWeapons::shield.

Referenced by makeProjectileShot().

float TankAICurrentMove::getShotDistance ( Tank tank,
bool  projectile 
) [protected]

Definition at line 793 of file TankAICurrentMove.cpp.

References projectileStartDistance_, shotRecords_, and sniperStartDistance_.

Referenced by makeLaserSniperShot(), makeProjectileShot(), and makeSniperShot().

void TankAICurrentMove::shotAtTank ( Tank tank,
bool  projectile,
float  newDistance 
) [protected]

Definition at line 810 of file TankAICurrentMove.cpp.

References FixedVector::asVector(), Tank::getPosition(), TankPosition::getTankPosition(), MAX, MIN, TankAICurrentMove::ShotRecord::position, TankAICurrentMove::ShotRecord::projectileCurrentDistance, projectileEndDistance_, projectileMaxDecrement_, projectileMinDecrement_, projectileMovementFactor_, projectileStartDistance_, RAND, TankAICurrentTarget::shotAt(), shotRecords_, TankAICurrentMove::ShotRecord::sniperCurrentDistance, sniperEndDistance_, sniperMaxDecrement_, sniperMinDecrement_, sniperMovementFactor_, sniperStartDistance_, and targets_.

Referenced by makeLaserSniperShot(), makeProjectileShot(), and makeSniperShot().

bool TankAICurrentMove::useAvailableBatteries ( Tank tank  )  [protected]

Definition at line 738 of file TankAICurrentMove.cpp.

References AccessoryPart::AccessoryBattery, TankBatteries::canUse(), Tank::getAccessories(), TankAccessories::getAllAccessoriesByType(), TankAccessories::getBatteries(), TargetLife::getLife(), Target::getLife(), TargetLife::getMaxLife(), and useBattery().

Referenced by playMove().

void TankAICurrentMove::setWeapon ( Tank tank,
Accessory accessory 
) [protected]

Definition at line 865 of file TankAICurrentMove.cpp.

References Tank::getAccessories(), TankAccessories::getWeapons(), and TankWeapon::setWeapon().

Referenced by makeBurriedShot(), makeGroupShot(), makeLaserSniperShot(), makeMoveShot(), makeProjectileShot(), and makeSniperShot().

void TankAICurrentMove::useBattery ( Tank tank,
unsigned int  batteryId 
) [protected]

Definition at line 909 of file TankAICurrentMove.cpp.

References ComsDefenseMessage::eBatteryUse, Target::getPlayerId(), ServerDefenseHandler::instance(), and ServerDefenseHandler::processDefenseMessage().

Referenced by useAvailableBatteries().

void TankAICurrentMove::resign ( Tank tank  )  [protected]

Definition at line 877 of file TankAICurrentMove.cpp.

References ServerShotHolder::addShot(), ComsPlayedMoveMessage::eResign, Target::getPlayerId(), and ServerShotHolder::instance().

Referenced by parseConfig(), and playMove().

void TankAICurrentMove::skipMove ( Tank tank  )  [protected]

Definition at line 870 of file TankAICurrentMove.cpp.

References ServerShotHolder::addShot(), ComsPlayedMoveMessage::eSkip, Target::getPlayerId(), and ServerShotHolder::instance().

Referenced by fireShot(), and playMove().

void TankAICurrentMove::fireShot ( Tank tank  )  [protected]

Definition at line 884 of file TankAICurrentMove.cpp.

References ServerShotHolder::addShot(), ComsPlayedMoveMessage::eShot, S3D::formatStringBuffer(), Tank::getAccessories(), Accessory::getAccessoryId(), TankWeapon::getCurrent(), Target::getPlayerId(), Tank::getPosition(), TankPosition::getPower(), TankPosition::getRotationGunXY(), TankPosition::getRotationGunYZ(), TankPosition::getSelectPositionX(), TankPosition::getSelectPositionY(), TankAccessories::getWeapons(), ServerShotHolder::instance(), Logger::log(), ComsPlayedMoveMessage::setShot(), and skipMove().

Referenced by makeBurriedShot(), makeGroupShot(), makeLaserSniperShot(), makeMoveShot(), makeProjectileShot(), and makeSniperShot().


Member Data Documentation

std::map<Tank *, ShotRecord> TankAICurrentMove::shotRecords_ [protected]

Definition at line 51 of file TankAICurrentMove.h.

Referenced by clear(), getShotDistance(), and shotAtTank().

TankAICurrentTarget TankAICurrentMove::targets_ [protected]

Definition at line 52 of file TankAICurrentMove.h.

Referenced by getTargets(), makeMoveShot(), parseConfig(), playMove(), and shotAtTank().

float TankAICurrentMove::totalDamageBeforeMove_ [protected]

Definition at line 53 of file TankAICurrentMove.h.

Referenced by clear(), makeMoveShot(), and playMove().

bool TankAICurrentMove::useResign_ [protected]

Definition at line 54 of file TankAICurrentMove.h.

Referenced by parseConfig(), and playMove().

bool TankAICurrentMove::useFuel_ [protected]

Definition at line 54 of file TankAICurrentMove.h.

Referenced by makeMoveShot(), and parseConfig().

float TankAICurrentMove::movementDamage_ [protected]

Definition at line 55 of file TankAICurrentMove.h.

Referenced by parseConfig(), and playMove().

float TankAICurrentMove::movementDamageChance_ [protected]

Definition at line 55 of file TankAICurrentMove.h.

Referenced by parseConfig(), and playMove().

float TankAICurrentMove::movementLife_ [protected]

Definition at line 55 of file TankAICurrentMove.h.

Referenced by parseConfig(), and playMove().

float TankAICurrentMove::movementRandom_ [protected]

Definition at line 56 of file TankAICurrentMove.h.

Referenced by parseConfig().

float TankAICurrentMove::movementCloseness_ [protected]

Definition at line 56 of file TankAICurrentMove.h.

Referenced by makeMoveShot(), and parseConfig().

float TankAICurrentMove::groupShotChance_ [protected]

Definition at line 57 of file TankAICurrentMove.h.

Referenced by parseConfig(), and playMove().

float TankAICurrentMove::groupTargetDistance_ [protected]

Definition at line 57 of file TankAICurrentMove.h.

Referenced by makeGroupShot(), and parseConfig().

int TankAICurrentMove::groupShotSize_ [protected]

Definition at line 58 of file TankAICurrentMove.h.

Referenced by makeGroupShot(), and parseConfig().

float TankAICurrentMove::resignLife_ [protected]

Definition at line 59 of file TankAICurrentMove.h.

Referenced by parseConfig(), and playMove().

float TankAICurrentMove::largeWeaponUseDistance_ [protected]

Definition at line 60 of file TankAICurrentMove.h.

Referenced by makeProjectileShot(), and parseConfig().

float TankAICurrentMove::sniperUseDistance_ [protected]

Definition at line 61 of file TankAICurrentMove.h.

Referenced by makeLaserSniperShot(), makeSniperShot(), and parseConfig().

float TankAICurrentMove::sniperStartDistance_ [protected]

Definition at line 62 of file TankAICurrentMove.h.

Referenced by getShotDistance(), parseConfig(), and shotAtTank().

float TankAICurrentMove::sniperEndDistance_ [protected]

Definition at line 62 of file TankAICurrentMove.h.

Referenced by parseConfig(), and shotAtTank().

float TankAICurrentMove::sniperMinDecrement_ [protected]

Definition at line 63 of file TankAICurrentMove.h.

Referenced by parseConfig(), and shotAtTank().

float TankAICurrentMove::sniperMaxDecrement_ [protected]

Definition at line 63 of file TankAICurrentMove.h.

Referenced by parseConfig(), and shotAtTank().

float TankAICurrentMove::sniperMovementFactor_ [protected]

Definition at line 64 of file TankAICurrentMove.h.

Referenced by parseConfig(), and shotAtTank().

float TankAICurrentMove::projectileStartDistance_ [protected]

Definition at line 65 of file TankAICurrentMove.h.

Referenced by getShotDistance(), parseConfig(), and shotAtTank().

float TankAICurrentMove::projectileEndDistance_ [protected]

Definition at line 65 of file TankAICurrentMove.h.

Referenced by parseConfig(), and shotAtTank().

float TankAICurrentMove::projectileMinDecrement_ [protected]

Definition at line 66 of file TankAICurrentMove.h.

Referenced by parseConfig(), and shotAtTank().

float TankAICurrentMove::projectileMaxDecrement_ [protected]

Definition at line 66 of file TankAICurrentMove.h.

Referenced by parseConfig(), and shotAtTank().

float TankAICurrentMove::projectileMovementFactor_ [protected]

Definition at line 67 of file TankAICurrentMove.h.

Referenced by parseConfig(), and shotAtTank().

float TankAICurrentMove::projectileMinDistance_ [protected]

Definition at line 68 of file TankAICurrentMove.h.

Referenced by makeProjectileShot(), and parseConfig().


The documentation for this class was generated from the following files:
Generated on Mon Feb 16 15:15:07 2009 for Scorched3D by  doxygen 1.5.3