本文整理汇总了C++中Fleet::Attack方法的典型用法代码示例。如果您正苦于以下问题:C++ Fleet::Attack方法的具体用法?C++ Fleet::Attack怎么用?C++ Fleet::Attack使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Fleet
的用法示例。
在下文中一共展示了Fleet::Attack方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Arrive
void SObject::Arrive() {
SObject *truedest = destination->Represents();
if(!truedest) {
system = destination->Sys();
orbit = destination->OrbitDist();
period = destination->Period();
startpos = destination->OrbitPhase();
arrive_turn = destination->ArriveTurn();
depart_turn = destination->DepartTurn();
Trash(location);
location = destination->Location();
Trash(destination);
destination = destination->Destination();
Trash(target);
target = NULL;
distance = 0;
}
else if(truedest->SType() == SOBJECT_PLANET) {
system = destination->system;
orbit = destination->orbit;
period = destination->period;
startpos = destination->startpos;
Trash(location);
location = destination;
truedest->See(Owner());
truedest->Know(Owner());
destination = NULL;
}
else if(truedest->SType() == SOBJECT_SYSTEM) {
orbit = 6600;
period = int(sqrt(double(orbit)*double(orbit)*double(orbit)));
int xp = system->gxpos - destination->system->gxpos;
int yp = system->gypos - destination->system->gypos;
double tang = double(cur_game->turn) * double(256*256*256) / double(period);
double nang = double(65536) * atan2(double(yp), double(xp)) / 2.0 / M_PIl;
startpos = int(nang - tang);
system->FleetLeaves((Fleet*)this);
system = destination->system;
system->FleetArrives((Fleet*)this);
Trash(location);
location = NULL;
truedest->Know(Owner());
Trash(destination);
destination = NULL;
}
else if(truedest->SType() == SOBJECT_FLEET && SType() == SOBJECT_FLEET
&& Owner() == truedest->Owner()) {
Fleet *flt = (Fleet *)this;
for(int shp=0; shp < flt->NumShips(); ++shp)
((Fleet*)truedest)->AddShip(flt->GetShip(shp));
if(cur_object == this) cur_object = truedest;
panel_draw();
RemapPositions(flt, truedest);
flt->RemoveShips(0);
}
else if(truedest->SType() == SOBJECT_FLEET && SType() == SOBJECT_FLEET) {
Fleet *flt = (Fleet*)this;
flt->Attack((Fleet*)truedest);
system = destination->system;
orbit = destination->orbit;
period = destination->period;
startpos = destination->startpos;
Trash(location);
location = destination->location;
Trash(destination);
destination = destination->destination; //FIXME! Two attacking each other!
}
else if(truedest->SType() == SOBJECT_FLEET) {
system = destination->system;
orbit = destination->orbit;
period = destination->period;
startpos = destination->startpos;
Trash(location);
location = destination->location;
Trash(destination);
destination = destination->destination;
}
}