void GravenAIModule::syncUnit(CptMvAgent2D u, Unit unit) |
{ |
//Synchronize CptEntity2D attributes |
u->SetID(unit->getID()); |
u->SetEntityType(cpttype_bot); |
u->SetScale(1); |
u->SetBRadius(MAX(unit->getType().height() / 2, unit->getType().width() / 2)); |
u->SetPos(Vector2D(unit->getPosition().x, unit->getPosition().y)); |
//Synchronize CptMvEntity2D attributes |
u->SetHeading(Vector2D(unit->getVelocityX(), unit->getVelocityY())); |
u->SetVelocity(Vector2D(unit->getVelocityX(), unit->getVelocityY())); |
u->SetMass(1); |
u->SetMaxSpeed(unit->getType().topSpeed()); |
u->SetMaxTurnRate(unit->getType().turnRadius()); |
u->SetMaxForce(unit->getType().acceleration()); |
//Synchronize CptMvAgent2D attributes |
u->SetMaxHealth(unit->getType().maxHitPoints() + unit->getType().maxShields()); |
u->SetHealth(unit->getHitPoints() + unit->getShields()); |
u->SetScore(unit->getKillCount()); |
u->SetPossessed(false ); |
u->SetFieldOfView(360); |
u->Face(Vector2D(unit->getVelocityX(), unit->getVelocityY())); |
u->SetWorld(this ->cptWorld); |
u->SetStatus(unit->exists() ? CptMvAgent2D::alive: CptMvAgent2D::dead); |
u->SetPlayer(unit->getPlayer()->getID()); |
u->SetSightRange(unit->getType().sightRange()); |
u->SetPlane(unit->isFlying()); |
u->SetAirReach(unit->getType().airWeapon() != WeaponTypes::None); |
u->SetGroundReach(unit->getType().groundWeapon() != WeaponTypes::None); |
} |