- Added a new AI command 'setDestinationToJinkPosition'
- Updated several AIs with reaction to cloaked attacks. git-svn-id: http://svn.berlios.de/svnroot/repos/oolite-linux/trunk@4954 127b21dd-08f5-0310-b4b7-95ae10353056
This commit is contained in:
parent
2bf7a79997
commit
0167b32938
@ -12,6 +12,7 @@
|
||||
"INCOMING_MISSILE" = ("messageMother: INCOMING_MISSILE");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
"ATTACKED" = ("messageMother: ATTACKED", "messageMother: ESCORT_ATTACKED");
|
||||
"ATTACKED_BY_CLOAKED" = ("messageMother: ATTACKED_BY_CLOAKED");
|
||||
"NOT_ESCORTING" = ("setStateTo: LOOK_FOR_BUSINESS");
|
||||
"TARGET_LOST" = ("setStateTo: LOOK_FOR_BUSINESS");
|
||||
"TARGET_DESTROYED" = ("setStateTo: LOOK_FOR_BUSINESS");
|
||||
|
@ -9,6 +9,7 @@
|
||||
"WAYPOINT_SET" = ("setStateTo: NEW_WAYPOINT");
|
||||
"DESIRED_RANGE_ACHIEVED" = ("setDesiredRangeTo: 1000.0", exitAI);
|
||||
ATTACKED = ("exitAIWithMessage: ATTACKED");
|
||||
"ATTACKED_BY_CLOAKED" = ("exitAIWithMessage: ATTACKED_BY_CLOAKED");
|
||||
"CASCADE_WEAPON_DETECTED" = ("exitAIWithMessage: CASCADE_WEAPON_DETECTED");
|
||||
"FRUSTRATED" = ("setSpeedFactorTo: 0.1", "setDesiredRangeTo: 1000.0", exitAI);
|
||||
"LAUNCHED OKAY" = ("exitAIWithMessage: LAUNCHED OKAY");
|
||||
@ -27,6 +28,7 @@
|
||||
"FRUSTRATED" = ("setSpeedFactorTo: 0.1", "setDesiredRangeTo: 1000.0", exitAI);
|
||||
"LAUNCHED OKAY" = ("exitAIWithMessage: LAUNCHED OKAY");
|
||||
ATTACKED = ("exitAIWithMessage: ATTACKED");
|
||||
"ATTACKED_BY_CLOAKED" = ("exitAIWithMessage: ATTACKED_BY_CLOAKED");
|
||||
"CASCADE_WEAPON_DETECTED" = ("exitAIWithMessage: CASCADE_WEAPON_DETECTED");
|
||||
"DESIRED_RANGE_ACHIEVED" = ("setDesiredRangeTo: 1000.0", exitAI);
|
||||
"INCOMING_MISSILE" = ("exitAIWithMessage: INCOMING_MISSILE");
|
||||
|
@ -13,6 +13,8 @@
|
||||
"CASCADE_WEAPON_DETECTED" = ("exitAIWithMessage: CASCADE_WEAPON_DETECTED");
|
||||
"TARGET_DESTROYED" = (performIdle, switchLightsOff, exitAI);
|
||||
"TARGET_LOST" = (performIdle, switchLightsOff, exitAI);
|
||||
"ATTACKED_BY_CLOAKED" = ("setStateTo: FLEE_FOR_CLOAKED");
|
||||
"TARGET_CLOAKED" = ("setStateTo: FLEE_FOR_CLOAKED");
|
||||
"PLAYER WITCHSPACE" = ("setStateTo: PLAYER_WITCHSPACE");
|
||||
"ENTER WORMHOLE" = (performIdle, switchLightsOff, "exitAIWithMessage: ENTER WORMHOLE");
|
||||
"DEFENSE_TARGET_LOST" = (findNewDefenseTarget);
|
||||
@ -27,6 +29,8 @@
|
||||
"REACHED_SAFETY" = (performIdle, switchLightsOff, exitAI);
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE");
|
||||
"CASCADE_WEAPON_DETECTED" = ("exitAIWithMessage: CASCADE_WEAPON_DETECTED");
|
||||
"ATTACKED_BY_CLOAKED" = ("setStateTo: FLEE_FOR_CLOAKED");
|
||||
"TARGET_CLOAKED" = ("setStateTo: FLEE_FOR_CLOAKED");
|
||||
"PLAYER WITCHSPACE" = ("setStateTo: PLAYER_WITCHSPACE");
|
||||
"ENTER WORMHOLE" = (performIdle, switchLightsOff, "exitAIWithMessage: ENTER WORMHOLE");
|
||||
"ATTACKED" = (addPrimaryAggressorAsDefenseTarget);
|
||||
@ -34,6 +38,21 @@
|
||||
"DEFENSE_TARGET_DESTROYED" = (findNewDefenseTarget);
|
||||
"TARGET_LOST" = (performIdle, switchLightsOff, exitAI);
|
||||
};
|
||||
"FLEE_FOR_CLOAKED" = {
|
||||
ENTER = (storeTarget,
|
||||
setDestinationToCurrentLocation,
|
||||
"setDesiredRangeTo: 25600",
|
||||
performFlyToRangeFromDestination
|
||||
);
|
||||
"DESIRED_RANGE_ACHIEVED" = (performIdle, switchLightsOff, exitAI);
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP");
|
||||
"ATTACKED_BY_CLOAKED" = (setDestinationToJinkPosition);
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP");
|
||||
RESTARTED = (performIdle, switchLightsOff, exitAI);
|
||||
UPDATE = (recallStoredTarget, "pauseAI: 2.0");
|
||||
};
|
||||
"PLAYER_WITCHSPACE" =
|
||||
{
|
||||
"ENTER WORMHOLE" = (performIdle, switchLightsOff, exitAI, enterTargetWormhole);
|
||||
|
@ -55,7 +55,7 @@
|
||||
};
|
||||
"FLEE_FOR_CLOAKED" = {
|
||||
ENTER = (storeTarget,
|
||||
setDestinationToCurrentLocation,
|
||||
setDestinationToJinkPosition,
|
||||
"setDesiredRangeTo: 25600",
|
||||
performFlyToRangeFromDestination
|
||||
);
|
||||
@ -65,6 +65,7 @@
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP");
|
||||
"ATTACKED_BY_CLOAKED" = (setDestinationToJinkPosition);
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, "setStateTo: ATTACK_SHIP");
|
||||
RESTARTED = ("setStateTo: RECOVER");
|
||||
UPDATE = (recallStoredTarget, "pauseAI: 2.0");
|
||||
|
@ -27,6 +27,7 @@
|
||||
"TARGET_OFFENDER" = ("sendTargetCommsMessage: [police-attack-warning]", "setAITo: interceptAI.plist", groupAttackTarget);
|
||||
"TARGET_FUGITIVE" = ("setAITo: interceptAI.plist", groupAttackTarget);
|
||||
ATTACKED = (setTargetToPrimaryAggressor, "setAITo: interceptAI.plist");
|
||||
"ATTACKED_BY_CLOAKED" = ("setAITo: interceptAI.plist", "setStateTo: FLEE_FOR_CLOAKED");
|
||||
"INCOMING_MISSILE" = (setTargetToFoundTarget, "markTargetForOffence: 15",
|
||||
"setAITo: delayedReactToAttackAI.plist");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
|
@ -17,6 +17,7 @@
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget);
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"ATTACKED_BY_CLOAKED" = ("setAITo: interceptAI.plist", "setStateTo: FLEE_FOR_CLOAKED");
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setStateTo: INBOUND_LOOT", "setAITo: interceptAI.plist");
|
||||
RESTARTED = (checkAegis);
|
||||
UPDATE = (setCourseToPlanet, "setDesiredRangeTo: 50000.0", checkCourseToDestination, scanForOffenders, "pauseAI: 10.0");
|
||||
@ -35,6 +36,7 @@
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget);
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"ATTACKED_BY_CLOAKED" = ("setAITo: interceptAI.plist", "setStateTo: FLEE_FOR_CLOAKED");
|
||||
"GROUP_ATTACK_TARGET" = (setTargetToFoundTarget, "setStateTo: OUTBOUND_LOOT", "setAITo: interceptAI.plist");
|
||||
UPDATE = (setCourseToWitchpoint, checkCourseToDestination, scanForOffenders, "pauseAI: 10.0");
|
||||
};
|
||||
|
@ -26,6 +26,7 @@
|
||||
"INCOMING_MISSILE" = ("setAITo: traderInterceptAI.plist", "setStateTo: INCOMING_MISSILE", "randomPauseAI: 0.5 2.0");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
ATTACKED = ("setAITo: traderInterceptAI.plist", fightOrFleeHostiles);
|
||||
"ATTACKED_BY_CLOAKED" = ("setAITo: traderInterceptAI.plist", "setStateTo: FLEE_FOR_CLOAKED");
|
||||
RESTARTED = (checkAegis);
|
||||
UPDATE =
|
||||
(
|
||||
@ -49,6 +50,7 @@
|
||||
"INCOMING_MISSILE" = ("setAITo: traderInterceptAI.plist", "setStateTo: INCOMING_MISSILE", "randomPauseAI: 0.25 1.5");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
ATTACKED = ("setAITo: traderInterceptAI.plist", fightOrFleeHostiles);
|
||||
"ATTACKED_BY_CLOAKED" = ("setAITo: traderInterceptAI.plist", "setStateTo: FLEE_FOR_CLOAKED");
|
||||
UPDATE =
|
||||
(
|
||||
setTargetToSystemStation,
|
||||
@ -72,6 +74,7 @@
|
||||
"INCOMING_MISSILE" = ("setAITo: traderInterceptAI.plist", "setStateTo: INCOMING_MISSILE", "randomPauseAI: 0.25 1.5");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
ATTACKED = ("setAITo: traderInterceptAI.plist", fightOrFleeHostiles);
|
||||
"ATTACKED_BY_CLOAKED" = ("setAITo: traderInterceptAI.plist", "setStateTo: FLEE_FOR_CLOAKED");
|
||||
UPDATE =
|
||||
(
|
||||
setTargetToNearestFriendlyStation,
|
||||
@ -94,6 +97,7 @@
|
||||
"INCOMING_MISSILE" = ("setAITo: traderInterceptAI.plist", "setStateTo: INCOMING_MISSILE", "randomPauseAI: 0.25 1.5");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
ATTACKED = ("setAITo: traderInterceptAI.plist", fightOrFleeHostiles);
|
||||
"ATTACKED_BY_CLOAKED" = ("setAITo: traderInterceptAI.plist", "setStateTo: FLEE_FOR_CLOAKED");
|
||||
UPDATE =
|
||||
(
|
||||
setTargetToLastStation,
|
||||
|
@ -12,6 +12,7 @@
|
||||
"DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_SUN");
|
||||
"AEGIS_CLOSE_TO_MAIN_PLANET" = ("setStateTo: HEAD_FOR_SUN");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"ATTACKED_BY_CLOAKED" = ("setAITo: interceptAI.plist", "setStateTo: FLEE_FOR_CLOAKED");
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget);
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
|
||||
@ -46,6 +47,7 @@
|
||||
"DESIRED_RANGE_ACHIEVED" = ("setStateTo: HEAD_FOR_PLANET");
|
||||
"CLOSE_TO_SUN" = ("setStateTo: HEAD_FOR_PLANET");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget);
|
||||
"ATTACKED_BY_CLOAKED" = ("setAITo: interceptAI.plist", "setStateTo: FLEE_FOR_CLOAKED");
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, setTargetToPrimaryAggressor, deployEscorts, groupAttackTarget);
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, deployEscorts, groupAttackTarget);
|
||||
|
@ -18,6 +18,7 @@
|
||||
"WAYPOINT_SET" = ("setAITo: gotoWaypointAI.plist");
|
||||
"DESIRED_RANGE_ACHIEVED" = ("setStateTo: GO_TO_SKIM");
|
||||
ATTACKED = ("setAITo: traderInterceptAI.plist", fightOrFleeHostiles);
|
||||
"ATTACKED_BY_CLOAKED" = ("setAITo: traderInterceptAI.plist", "setStateTo: FLEE_FOR_CLOAKED");
|
||||
"INCOMING_MISSILE" = ("setAITo: traderInterceptAI.plist", "setStateTo: INCOMING_MISSILE", "randomPauseAI: 0.5 2.0");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
"EXITED WITCHSPACE" = ("switchAITo: route1traderAI.plist");
|
||||
|
@ -26,7 +26,7 @@
|
||||
ATTACKED = (setTargetToPrimaryAggressor, groupAttackTarget, broadcastDistressMessage, "setStateTo: FLEE");
|
||||
"DESIRED_RANGE_ACHIEVED" = ("setAITo: dockingAI.plist");
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setStateTo: COLLECT_STUFF", "setAITo: fleeQMineAI.plist");
|
||||
"TARGET_LOST" = ("setStateTo: GO_TO_STATION");
|
||||
RESTARTED = ("switchAITo: route1traderAI.plist");
|
||||
};
|
||||
|
@ -17,6 +17,8 @@
|
||||
"ENERGY_LOW" = (setTargetToPrimaryAggressor, broadcastDistressMessage, deployEscorts, "setStateTo: FLEE");
|
||||
"INCOMING_MISSILE" = ("setStateTo: INCOMING_MISSILE", "randomPauseAI: 0.25 0.75");
|
||||
"CASCADE_WEAPON_DETECTED" = ("exitAIWithMessage: CASCADE_WEAPON_DETECTED");
|
||||
"ATTACKED_BY_CLOAKED" = ("setStateTo: FLEE_FOR_CLOAKED");
|
||||
"TARGET_CLOAKED" = ("setStateTo: FLEE_FOR_CLOAKED");
|
||||
"TARGET_DESTROYED" = (exitAI);
|
||||
"TARGET_LOST" = (exitAI);
|
||||
};
|
||||
@ -27,6 +29,7 @@
|
||||
FIGHTING = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP");
|
||||
FLEEING = (setTargetToPrimaryAggressor, "setStateTo: FLEE");
|
||||
DEPLOYING_ESCORTS = (setTargetToPrimaryAggressor, "setStateTo: FLEE_WITH_ESCORTS");
|
||||
"TARGET_CLOAKED" = ("setStateTo: FLEE_FOR_CLOAKED");
|
||||
"TARGET_LOST" = (performIdle, exitAI);
|
||||
"TARGET_DESTROYED" = (performIdle, exitAI);
|
||||
"INCOMING_MISSILE" = ("setStateTo: INCOMING_MISSILE", "randomPauseAI: 0.25 0.75");
|
||||
@ -42,6 +45,7 @@
|
||||
"ROLL_2" = ("setDesiredRangeTo: 25600", performFlee);
|
||||
"ROLL_3" = ("setDesiredRangeTo: 25600", performFlee);
|
||||
"ESCORT_ATTACKED" = (setTargetToPrimaryAggressor, groupAttackTarget); // only player attacks escorts
|
||||
"TARGET_CLOAKED" = ("setStateTo: FLEE_FOR_CLOAKED");
|
||||
"TARGET_LOST" = (performIdle, exitAI);
|
||||
"TARGET_DESTROYED" = (performIdle, exitAI);
|
||||
"ENERGY_LOW" = (setTargetToPrimaryAggressor, deployEscorts);
|
||||
@ -62,6 +66,25 @@
|
||||
"REACHED_SAFETY" = (performIdle, exitAI);
|
||||
"UPDATE" = (fightOrFleeMissile, "pauseAI: 10");
|
||||
};
|
||||
"FLEE_FOR_CLOAKED" = {
|
||||
ENTER = (storeTarget,
|
||||
setDestinationToJinkPosition,
|
||||
"setDesiredRangeTo: 25600",
|
||||
performFlyToRangeFromDestination,
|
||||
"setSpeedFactorTo: 7"
|
||||
);
|
||||
"DESIRED_RANGE_ACHIEVED" = (exitAI);
|
||||
"INCOMING_MISSILE" = (fightOrFleeMissile, "setStateTo: FLEE");
|
||||
"CASCADE_WEAPON_DETECTED" = ("setAITo: fleeQMineAI.plist");
|
||||
ATTACKED = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP");
|
||||
"ATTACKED_BY_CLOAKED" = (setDestinationToJinkPosition);
|
||||
"TARGET_FOUND" = (setTargetToFoundTarget, fightOrFleeHostiles);
|
||||
FIGHTING = (setTargetToPrimaryAggressor, "setStateTo: ATTACK_SHIP");
|
||||
FLEEING = (setTargetToPrimaryAggressor, "setStateTo: FLEE");
|
||||
DEPLOYING_ESCORTS = (setTargetToPrimaryAggressor, "setStateTo: FLEE_WITH_ESCORTS");
|
||||
RESTARTED = (exitAI);
|
||||
UPDATE = (recallStoredTarget, "pauseAI: 2.0");
|
||||
};
|
||||
"INCOMING_MISSILE" =
|
||||
{
|
||||
ATTACKED = ("setStateTo: GLOBAL", fightOrFleeMissile, fightOrFleeHostiles);
|
||||
|
@ -88,6 +88,7 @@
|
||||
"pauseAI:",
|
||||
"randomPauseAI:",
|
||||
"setDestinationToCurrentLocation",
|
||||
"setDestinationToJinkPosition",
|
||||
"setDesiredRangeTo:",
|
||||
"setDesiredRangeForWaypoint",
|
||||
"performFlyToRangeFromDestination",
|
||||
|
@ -19,6 +19,8 @@
|
||||
energy_recharge_rate = "positiveFloat";
|
||||
forward_weapon_type = "$weaponType";
|
||||
aft_weapon_type = "$weaponType";
|
||||
port_weapon_type = "$weaponType";
|
||||
starboard_weapon_type = "$weaponType";
|
||||
weapon_energy = "positiveFloat";
|
||||
weapon_range = "positiveFloat";
|
||||
scanner_range = "positiveFloat";
|
||||
|
@ -409,6 +409,13 @@
|
||||
}
|
||||
|
||||
|
||||
- (void) setDestinationToJinkPosition
|
||||
{
|
||||
Vector front = vector_multiply_scalar([self forwardVector], flightSpeed / max_flight_pitch * 2);
|
||||
destination = vector_add(position, vector_add(front, OOVectorRandomSpatial(100)));
|
||||
}
|
||||
|
||||
|
||||
- (void) setDesiredRangeTo:(NSString *)rangeString
|
||||
{
|
||||
desired_range = [rangeString doubleValue];
|
||||
|
Loading…
x
Reference in New Issue
Block a user