#include <TankAICurrentMove.h>
Definition at line 28 of file TankAICurrentMove.h.
| TankAICurrentMove::TankAICurrentMove | ( | ) |
Definition at line 45 of file TankAICurrentMove.cpp.
| TankAICurrentMove::~TankAICurrentMove | ( | ) | [virtual] |
Definition at line 63 of file TankAICurrentMove.cpp.
| 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().
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().
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] |
bool TankAICurrentMove::useFuel_ [protected] |
float TankAICurrentMove::movementDamage_ [protected] |
float TankAICurrentMove::movementDamageChance_ [protected] |
float TankAICurrentMove::movementLife_ [protected] |
float TankAICurrentMove::movementRandom_ [protected] |
float TankAICurrentMove::movementCloseness_ [protected] |
float TankAICurrentMove::groupShotChance_ [protected] |
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] |
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] |
float TankAICurrentMove::sniperMinDecrement_ [protected] |
float TankAICurrentMove::sniperMaxDecrement_ [protected] |
float TankAICurrentMove::sniperMovementFactor_ [protected] |
float TankAICurrentMove::projectileStartDistance_ [protected] |
Definition at line 65 of file TankAICurrentMove.h.
Referenced by getShotDistance(), parseConfig(), and shotAtTank().
float TankAICurrentMove::projectileEndDistance_ [protected] |
float TankAICurrentMove::projectileMinDecrement_ [protected] |
float TankAICurrentMove::projectileMaxDecrement_ [protected] |
float TankAICurrentMove::projectileMovementFactor_ [protected] |
float TankAICurrentMove::projectileMinDistance_ [protected] |
Definition at line 68 of file TankAICurrentMove.h.
Referenced by makeProjectileShot(), and parseConfig().
1.5.3