hostile-takeover/utilities/trigger.py
2014-07-06 17:47:28 -07:00

84 lines
4.1 KiB
Python

import condition
import action
import cStringIO
class Trigger:
def __init__(self):
self.conditions = []
self.actions = []
def LoadCondition(self, txt):
c = {
0 : lambda t: condition.MissionLoadedCondition(t),
1 : lambda t: condition.CreditsCondition(t),
2 : lambda t: condition.AreaContainsUnitsCondition(t),
3 : lambda t: condition.GalaxiteCapacityReachedCondition(t),
4 : lambda t: condition.MobileHQDeployedCondition(t),
5 : lambda t: condition.PlaceStructureModeCondition(t),
6 : lambda t: condition.ElapsedTimeCondition(t),
7 : lambda t: condition.OwnsUnitsCondition(t),
8 : lambda t: condition.MinerCantFindGalaxiteCondition(t),
9 : lambda t: condition.UnitSeesUnitCondition(t),
10 : lambda t: condition.UnitDestroyedCondition(t),
11 : lambda t: condition.SwitchCondition(t),
12 : lambda t: condition.PeriodicTimerCondition(t),
13 : lambda t: condition.DiscoversSideCondition(t),
14 : lambda t: condition.CountdownTimerCondition(t),
15 : lambda t: condition.CounterCondition(t),
16 : lambda t: condition.TestPvarCondition(t),
17 : lambda t: condition.HasUpgradesCondition(t)
}[int(txt.split(',')[0])](','.join(txt.split(',')[1:]))
self.conditions.append(c)
def LoadAction(self, txt):
a = {
0 : lambda t: action.SetResourcesTriggerAction(t),
1 : lambda t: action.SetAllowedUnitsTriggerAction(t),
2 : lambda t: action.EcomTriggerAction(t),
3 : lambda t: action.SetObjectiveTriggerAction(t),
4 : lambda t: action.SetNextMissionTriggerAction(t),
5 : lambda t: action.EndMissionTriggerAction(t),
6 : lambda t: action.WaitTriggerAction(t),
7 : lambda t: action.SetSwitchTriggerAction(t),
8 : lambda t: action.SetPlayerControlsTriggerAction(t),
9 : lambda t: action.PreserveTriggerTriggerAction(t),
10 : lambda t: action.CenterViewTriggerAction(t),
11 : lambda t: action.PanViewTriggerAction(t),
12 : lambda t: action.DefogAreaTriggerAction(t),
13 : lambda t: action.MoveUnitTriggerAction(t),
14 : lambda t: action.TargetUnitTriggerAction(t),
15 : lambda t: action.CreateUnitGroupTriggerAction(t),
16 : lambda t: action.HuntTriggerAction(t),
17 : lambda t: action.CreateRandomUnitGroupTriggerAction(t),
18 : lambda t: action.AlliesTriggerAction(t),
19 : lambda t: action.StartCountdownTimerTriggerAction(t),
20 : lambda t: action.ModifyCountdownTimerTriggerAction(t),
21 : lambda t: action.RepairTriggerAction(t),
22 : lambda t: action.EnableReplicatorTriggerAction(t),
23 : lambda t: action.ModifyCreditsTriggerAction(t),
24 : lambda t: action.ModifyCounterTriggerAction(t),
25 : lambda t: action.MoveUnitsInAreaTriggerAction(t),
26 : lambda t: action.SetFormalObjectiveTextTriggerAction(t),
27 : lambda t: action.SetFormalObjectiveStatusTriggerAction(t),
28 : lambda t: action.ShowObjectivesTriggerAction(t),
29 : lambda t: action.SetFormalObjectiveInfoTriggerAction(t),
30 : lambda t: action.CutSceneTriggerAction(t),
31 : lambda t: action.JumpToMissionTriggerAction(t),
32 : lambda t: action.ModifyPvarTriggerAction(t),
33 : lambda t: action.SetPvarTextTriggerAction(t),
34 : lambda t: action.ShowAlertTriggerAction(t),
35 : lambda t: action.SetAllowedUpgradesTriggerAction(t),
36 : lambda t: action.SetUpgradesTriggerAction(t)
}[int(txt.split(',')[0])](','.join(txt.split(',')[1:]))
self.actions.append(a)
def __str__(self):
io = cStringIO.StringIO()
for condition in self.conditions:
io.write('%s\n' % condition)
for action in self.actions:
io.write('%s\n' % action)
io.write('\n')
return io.getvalue()