Added an AI command "checkAegis" that recalls the aegis messages. When traders or patrols go into a wayPointAI.plist or an interceptAI.plist they sometime miss this message. Now they can use checkAegis on RESTART.
git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@2369 127b21dd-08f5-0310-b4b7-95ae10353056
This commit is contained in:
parent
00fc0dccbe
commit
eba04c02fc
@ -16,6 +16,7 @@
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, "setStateTo: INBOUND_LOOT", groupAttackTarget);
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
|
||||
RESTARTED = (checkAegis);
|
||||
UPDATE = (setCourseToPlanet, "setDesiredRangeTo: 50000.0", checkCourseToDestination, scanForOffenders, "pauseAI: 10.0");
|
||||
};
|
||||
"HEAD_FOR_WITCHPOINT" =
|
||||
@ -28,9 +29,10 @@
|
||||
"ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
|
||||
"OFFENCE_COMMITTED" = (setTargetToFoundTarget, "markTargetForOffence: 7", deployEscorts, groupAttackTarget);
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, "setStateTo: INBOUND_LOOT", groupAttackTarget);
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, "setStateTo: OUTBOUND_LOOT", groupAttackTarget);
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
|
||||
RESTARTED = (checkAegis);
|
||||
UPDATE = (setCourseToWitchpoint, checkCourseToDestination, scanForOffenders, "pauseAI: 10.0");
|
||||
};
|
||||
"OUTBOUND_LOOT" =
|
||||
@ -62,7 +64,7 @@
|
||||
"OFFENCE_COMMITTED" = (setTargetToFoundTarget, "markTargetForOffence: 7", deployEscorts, groupAttackTarget);
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
|
||||
"NORMAL_SPACE" = ("setStateTo: HEAD_FOR_PLANET");
|
||||
"NORMAL_SPACE" = (checkAegis, "setStateTo: HEAD_FOR_PLANET");
|
||||
"INTERSTELLAR_SPACE" = ("setSpeedFactorTo: 1.0", "pauseAI: 15.0", "setStateTo: HYPER_OUT");
|
||||
};
|
||||
"OUTBOUND_CHECK" =
|
||||
@ -72,7 +74,7 @@
|
||||
"OFFENCE_COMMITTED" = (setTargetToFoundTarget, "markTargetForOffence: 7", deployEscorts, groupAttackTarget);
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
|
||||
"NORMAL_SPACE" = ("setStateTo: HEAD_FOR_WITCHPOINT");
|
||||
"NORMAL_SPACE" = (checkAegis, "setStateTo: HEAD_FOR_WITCHPOINT");
|
||||
"INTERSTELLAR_SPACE" = ("setSpeedFactorTo: 1.0", "pauseAI: 15.0", "setStateTo: HYPER_OUT");
|
||||
};
|
||||
"HYPER_OUT" =
|
||||
|
@ -15,6 +15,7 @@
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, "setAITo: traderInterceptAI.plist", fightOrFleeHostiles);
|
||||
"INCOMING_MISSILE" = ("setAITo: traderInterceptAI.plist", "setStateTo: INCOMING_MISSILE", "randomPauseAI: 0.5 2.0");
|
||||
ATTACKED = ("setAITo: traderInterceptAI.plist", fightOrFleeHostiles);
|
||||
RESTARTED = (checkAegis);
|
||||
UPDATE =
|
||||
(
|
||||
setCourseToPlanet,
|
||||
|
@ -28,7 +28,7 @@
|
||||
"DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_PLANET");
|
||||
"AEGIS_CLOSE_TO_MAIN_PLANET" = ("setStateTo: HEAD_FOR_SUN");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setStateTo: INBOUND_LOOT");
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget);
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
|
||||
"ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
|
||||
"OFFENCE_COMMITTED" = (setTargetToFoundTarget, "markTargetForOffence: 7", deployEscorts, groupAttackTarget);
|
||||
@ -44,7 +44,7 @@
|
||||
"DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_PLANET");
|
||||
"CLOSE_TO_SUN" = ("setStateTo: HEAD_FOR_PLANET");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setStateTo: OUTBOUND_LOOT");
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget);
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
|
||||
"ACCEPT_DISTRESS_CALL" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
|
||||
@ -63,16 +63,16 @@
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
|
||||
"OFFENCE_COMMITTED" = (setTargetToFoundTarget, "markTargetForOffence: 7", deployEscorts, groupAttackTarget);
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setStateTo: OUTBOUND_LOOT");
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget);
|
||||
};
|
||||
"OUTBOUND_LOOT" =
|
||||
{
|
||||
ENTER = ("setSpeedTo: 0.0", performIdle);
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget, "setStateTo: OUTBOUND_LOOT");
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget);
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, "setAITo: collectLootAI.plist");
|
||||
"NOTHING_FOUND" = ("setStateTo: HEAD_FOR_SUN");
|
||||
"NOTHING_FOUND" = (checkAegis, "setStateTo: HEAD_FOR_SUN");
|
||||
UPDATE = (scanForLoot, "pauseAI: 10.0");
|
||||
};
|
||||
"INBOUND_LOOT" =
|
||||
@ -80,9 +80,9 @@
|
||||
ENTER = ("setSpeedTo: 0.0", performIdle);
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setAITo: interceptAI.plist");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget,"setStateTo: INBOUND_LOOT");
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget);
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, "setAITo: collectLootAI.plist");
|
||||
"NOTHING_FOUND" = ("setStateTo: HEAD_FOR_PLANET");
|
||||
"NOTHING_FOUND" = (checkAegis, "setStateTo: HEAD_FOR_PLANET");
|
||||
UPDATE = (scanForLoot, "pauseAI: 10.0");
|
||||
};
|
||||
}
|
@ -188,7 +188,8 @@
|
||||
"dropMessages:",
|
||||
"exitAIWithMessage:",
|
||||
"ai_throwSparks", // Don't use, use throwSparks instead
|
||||
|
||||
"checkAegis",
|
||||
|
||||
// StationEntity.m/stubs in ShipEntityAI.m
|
||||
"increaseAlertLevel",
|
||||
"decreaseAlertLevel",
|
||||
|
@ -135,6 +135,8 @@ MA 02110-1301, USA.
|
||||
|
||||
- (void) checkCourseToDestination;
|
||||
|
||||
- (void) checkAegis;
|
||||
|
||||
- (void) scanForOffenders;
|
||||
|
||||
- (void) setCourseToWitchpoint;
|
||||
@ -949,6 +951,47 @@ MA 02110-1301, USA.
|
||||
}
|
||||
|
||||
|
||||
- (void) checkAegis
|
||||
{
|
||||
switch(aegis_status)
|
||||
{
|
||||
case AEGIS_CLOSE_TO_MAIN_PLANET:
|
||||
[shipAI message:@"AEGIS_CLOSE_TO_MAIN_PLANET"];
|
||||
[shipAI message:@"AEGIS_CLOSE_TO_PLANET"]; // fires only for main planets, keep for compatibility with pre-1.72 AI plists.
|
||||
break;
|
||||
case AEGIS_CLOSE_TO_ANY_PLANET:
|
||||
{
|
||||
PlanetEntity *the_planet = [self findNearestStellarBody];
|
||||
|
||||
if(the_planet == [UNIVERSE sun])
|
||||
{
|
||||
[shipAI message:@"CLOSE_TO_SUN"];
|
||||
}
|
||||
else
|
||||
{
|
||||
[shipAI message:@"CLOSE_TO_PLANET"];
|
||||
if ([the_planet planetType] == PLANET_TYPE_MOON)
|
||||
{
|
||||
[shipAI message:@"CLOSE_TO_MOON"];
|
||||
}
|
||||
else
|
||||
{
|
||||
[shipAI message:@"CLOSE_TO_SECONDARY_PLANET"];
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case AEGIS_IN_DOCKING_RANGE:
|
||||
[shipAI message:@"AEGIS_IN_DOCKING_RANGE"];
|
||||
break;
|
||||
case AEGIS_NONE:
|
||||
default:
|
||||
[shipAI message:@"AEGIS_NONE"];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void) scanForOffenders
|
||||
{
|
||||
/*-- Locates all the ships in range and compares their legal status or bounty against ranrot_rand() & 255 - chooses the worst offender --*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user