void StandardDestroyerAttack(Ship *ship,SpaceObjRotImpTarg *target,real32 maxdist) { ShipStaticInfo *shipstaticinfo = (ShipStaticInfo *)ship->staticinfo; StandardDestroyerStatics *sdestroyerstat = (StandardDestroyerStatics *)shipstaticinfo->custstatinfo; attackStraightForward(ship,target,sdestroyerstat->standarddestroyerGunRange[ship->tacticstype],sdestroyerstat->standarddestroyerTooCloseRange[ship->tacticstype]); }
void AdvanceSupportFrigateAttack(Ship *ship,SpaceObjRotImpTarg *target,real32 maxdist) { ShipStaticInfo *shipstaticinfo = (ShipStaticInfo *)ship->staticinfo; AdvanceSupportFrigateStatics *asfstat = (AdvanceSupportFrigateStatics *)shipstaticinfo->custstatinfo; attackStraightForward(ship,target,asfstat->asfGunRange[ship->tacticstype],asfstat->asfTooCloseRange[ship->tacticstype]); }
void P2FuelPodAttack(Ship *ship,SpaceObjRotImpTarg *target,real32 maxdist) { ShipStaticInfo *shipstaticinfo = (ShipStaticInfo *)ship->staticinfo; P2FuelPodStatics *podstat = (P2FuelPodStatics *)shipstaticinfo->custstatinfo; attackStraightForward(ship,target,podstat->podGunRange[ship->tacticstype],podstat->podTooCloseRange[ship->tacticstype]); }
void P1IonArrayFrigateAttack(Ship *ship,SpaceObjRotImpTarg *target,real32 maxdist) { ShipStaticInfo *shipstaticinfo = (ShipStaticInfo *)ship->staticinfo; P1IonArrayFrigateStatics *frigstat = (P1IonArrayFrigateStatics *)shipstaticinfo->custstatinfo; attackStraightForward(ship,target,frigstat->frigateGunRange[ship->tacticstype],frigstat->frigateTooCloseRange[ship->tacticstype]); }
void CarrierAttack(Ship *ship,SpaceObjRotImpTarg *target,real32 maxdist) { ShipStaticInfo *shipstaticinfo = (ShipStaticInfo *)ship->staticinfo; CarrierStatics *carrstat = (CarrierStatics *)shipstaticinfo->custstatinfo; attackStraightForward(ship,target,carrstat->carrierGunRange[ship->tacticstype],carrstat->carrierTooCloseRange[ship->tacticstype]); }
void DefaultShipAttack(Ship *ship,SpaceObjRotImpTarg *target, real32 maxdist) { ShipStaticInfo *shipstaticinfo = (ShipStaticInfo *)ship->staticinfo; if (ship->gunInfo == NULL) { dbgMessagef("\nWARNING: %s tried to attack but has no guns",ShipTypeToStr(ship->shiptype)); return; } attackStraightForward(ship,target,shipstaticinfo->bulletRange[ship->tacticstype],shipstaticinfo->minBulletRange[ship->tacticstype]*0.9f); }
void P2MothershipAttack(Ship *ship,SpaceObjRotImpTarg *target,real32 maxdist) { ShipStaticInfo *shipstaticinfo = (ShipStaticInfo *)ship->staticinfo; P2MothershipStatics *motherstat = (P2MothershipStatics *)shipstaticinfo->custstatinfo; real32 toocloserange = motherstat->p2mothershipTooCloseRange[ship->tacticstype]; // currently only correct if we are attacking a mothership class ship - otherwise we don't mind it ramming it if ((target->objtype == OBJ_ShipType) && (((Ship *)target)->staticinfo->shipclass == CLASS_Mothership)) { // correct for P2 Mothership size - the laser is at the end of the ship, which is really long so we should // add the radius of the P2 Mothership to correct toocloserange += shipstaticinfo->staticheader.staticCollInfo.collspheresize; } attackStraightForward(ship,target,motherstat->p2mothershipGunRange[ship->tacticstype],toocloserange); }
void CloakGeneratorAttack(Ship *ship,SpaceObjRotImpTarg *target,real32 maxdist) { attackStraightForward(ship,target,4000.0f,3000.0f); }