2005-04-19 19:53:18 +00:00
|
|
|
{
|
2005-06-08 10:14:52 +00:00
|
|
|
BREAK_ROCKS = {
|
|
|
|
ATTACKED = (
|
|
|
|
setTargetToPrimaryAggressor,
|
|
|
|
broadcastDistressMessage,
|
|
|
|
"setStateTo: FLEE"
|
|
|
|
);
|
|
|
|
ENTER = (
|
|
|
|
performMining
|
|
|
|
);
|
|
|
|
EXIT = (
|
|
|
|
);
|
|
|
|
INCOMING_MISSILE = (
|
|
|
|
fightOrFleeMissile,
|
|
|
|
"setStateTo: FLEE"
|
|
|
|
);
|
|
|
|
TARGET_DESTROYED = (
|
|
|
|
"setStateTo: LOOK_FOR_SPLINTERS"
|
|
|
|
);
|
|
|
|
TARGET_LOST = (
|
|
|
|
"setStateTo: LOOK_FOR_SPLINTERS"
|
|
|
|
);
|
|
|
|
UPDATE = (
|
|
|
|
);
|
|
|
|
};
|
|
|
|
COLLECT_STUFF = {
|
|
|
|
ATTACKED = (
|
|
|
|
setTargetToPrimaryAggressor,
|
|
|
|
broadcastDistressMessage,
|
|
|
|
"setStateTo: FLEE"
|
|
|
|
);
|
|
|
|
CARGO_SCOOPED = (
|
|
|
|
checkForFullHold,
|
|
|
|
"setStateTo: LOOK_FOR_SPLINTERS"
|
|
|
|
);
|
|
|
|
COLLISION = (
|
|
|
|
"setStateTo: LOOK_FOR_SPLINTERS"
|
|
|
|
);
|
|
|
|
ENTER = (
|
|
|
|
performCollect
|
|
|
|
);
|
|
|
|
EXIT = (
|
|
|
|
);
|
|
|
|
FRUSTRATED = (
|
|
|
|
"setStateTo: LOOK_FOR_SPLINTERS"
|
|
|
|
);
|
|
|
|
INCOMING_MISSILE = (
|
|
|
|
fightOrFleeMissile,
|
|
|
|
"setStateTo: FLEE"
|
|
|
|
);
|
|
|
|
TARGET_LOST = (
|
|
|
|
"setStateTo: LOOK_FOR_SPLINTERS"
|
|
|
|
);
|
|
|
|
UPDATE = (
|
|
|
|
);
|
|
|
|
};
|
|
|
|
DOCK_WITH_STATION = {
|
|
|
|
ATTACKED = (
|
|
|
|
setTargetToPrimaryAggressor,
|
|
|
|
broadcastDistressMessage,
|
|
|
|
"setStateTo: ATTACK_SHIP"
|
|
|
|
);
|
|
|
|
DESIRED_RANGE_ACHIEVED = (
|
|
|
|
"setAITo: dockingAI.plist"
|
|
|
|
);
|
|
|
|
ENTER = (
|
|
|
|
setTargetToStation,
|
|
|
|
"setDesiredRangeTo: 5000.0",
|
|
|
|
performIntercept
|
|
|
|
);
|
|
|
|
EXIT = (
|
|
|
|
);
|
|
|
|
INCOMING_MISSILE = (
|
|
|
|
fightOrFleeMissile,
|
|
|
|
"setStateTo: FLEE"
|
|
|
|
);
|
|
|
|
UPDATE = (
|
|
|
|
);
|
|
|
|
};
|
2005-04-19 19:53:18 +00:00
|
|
|
FLEE = {
|
2005-06-08 10:14:52 +00:00
|
|
|
ENERGY_FULL = (
|
|
|
|
performIdle,
|
|
|
|
"setStateTo: LOOK_FOR_SPLINTERS"
|
|
|
|
);
|
|
|
|
ENTER = (
|
|
|
|
"setDesiredRangeTo: 25600",
|
|
|
|
performFlee
|
|
|
|
);
|
|
|
|
EXIT = (
|
|
|
|
);
|
|
|
|
INCOMING_MISSILE = (
|
|
|
|
fightOrFleeMissile,
|
|
|
|
"setStateTo: FLEE"
|
|
|
|
);
|
|
|
|
REACHED_SAFETY = (
|
|
|
|
"setSpeedTo: 0.0",
|
|
|
|
performIdle
|
|
|
|
);
|
|
|
|
TARGET_LOST = (
|
|
|
|
performIdle,
|
|
|
|
"setStateTo: LOOK_FOR_SPLINTERS"
|
|
|
|
);
|
|
|
|
UPDATE = (
|
|
|
|
);
|
|
|
|
};
|
|
|
|
GLOBAL = {
|
|
|
|
ENTER = (
|
|
|
|
"setSpeedFactorTo: 0.1",
|
|
|
|
"setStateTo: LOOK_FOR_SPLINTERS"
|
|
|
|
);
|
|
|
|
EXIT = (
|
|
|
|
);
|
|
|
|
UPDATE = (
|
|
|
|
);
|
|
|
|
};
|
|
|
|
LOOK_FOR_ROCKS = {
|
|
|
|
ATTACKED = (
|
|
|
|
setTargetToPrimaryAggressor,
|
|
|
|
broadcastDistressMessage,
|
|
|
|
"setStateTo: FLEE"
|
|
|
|
);
|
|
|
|
ENTER = (
|
|
|
|
performIdle
|
|
|
|
);
|
|
|
|
EXIT = (
|
|
|
|
);
|
|
|
|
INCOMING_MISSILE = (
|
|
|
|
fightOrFleeMissile,
|
|
|
|
"setStateTo: FLEE"
|
|
|
|
);
|
|
|
|
NOTHING_FOUND = (
|
|
|
|
"setStateTo: DOCK_WITH_STATION"
|
|
|
|
);
|
|
|
|
TARGET_FOUND = (
|
|
|
|
setTargetToFoundTarget,
|
|
|
|
"setStateTo: BREAK_ROCKS"
|
|
|
|
);
|
|
|
|
UPDATE = (
|
|
|
|
scanForRocks,
|
|
|
|
"pauseAI: 10.0"
|
|
|
|
);
|
|
|
|
};
|
|
|
|
LOOK_FOR_SPLINTERS = {
|
|
|
|
ATTACKED = (
|
|
|
|
setTargetToPrimaryAggressor,
|
|
|
|
broadcastDistressMessage,
|
|
|
|
"setStateTo: FLEE"
|
|
|
|
);
|
|
|
|
ENTER = (
|
|
|
|
performIdle
|
|
|
|
);
|
|
|
|
EXIT = (
|
|
|
|
);
|
|
|
|
HOLD_FULL = (
|
|
|
|
"setStateTo: DOCK_WITH_STATION"
|
|
|
|
);
|
|
|
|
INCOMING_MISSILE = (
|
|
|
|
fightOrFleeMissile,
|
|
|
|
"setStateTo: FLEE"
|
|
|
|
);
|
|
|
|
NOTHING_FOUND = (
|
|
|
|
"setStateTo: LOOK_FOR_ROCKS"
|
|
|
|
);
|
|
|
|
TARGET_FOUND = (
|
|
|
|
setTargetToFoundTarget,
|
|
|
|
"setStateTo: COLLECT_STUFF"
|
|
|
|
);
|
|
|
|
UPDATE = (
|
|
|
|
scanForRandomLoot,
|
|
|
|
"pauseAI: 10.0"
|
|
|
|
);
|
|
|
|
};
|
|
|
|
}
|