1 from campaign_lib
import *
8 return a.__init__.im_func==typ.__init__.im_func
15 def pre(self,precond):
20 if (scriptname==
None and not isType(trav.node,CampaignChoiceNode)):
21 trav.warn(
"None script")
23 return isinstance(scriptname,TrueSubnode)
32 if (len(node.preconditions)!=1):
37 print node.preconditions
39 if (node.preconditions[0].__init__.im_func!=precond.__init__.im_func):
41 return node.preconditions[0].system==precond.system
and node.preconditions[0].dockedshipname==precond.dockedshipname
43 precons=node.preconditions
47 if isinstance(pc,InSystemCondition):
48 currnodesys.append(pc.system)
49 currnodeship.append(pc.dockedshipname)
50 if not len(currnodesys):
52 if len(currnodesys)>1:
53 print "Two system checks for the same node. Impossible to evaluate as True."
58 elif isinstance(selector,TrueSubnode):
62 subnodes=node.subnodes
64 for i
in range(len(subnodes)):
65 snp=snp+subnodes[i].preconditions
69 if isinstance(pc,InSystemCondition):
70 subnodesys.append(pc.system)
71 subnodeship.append(pc.dockedshipname)
75 for i
in range(len(subnodesys)):
76 if subnodesys[i] != currnodesys[0]:
79 elif not (currnodeship[0]
is None or subnodeship[i]
is None or currnodeship[0] == subnodeship[i]):
85 print currnodesys+currnodeship
86 print subnodesys+subnodeship
94 if isinstance(sc,LoadMission):
102 print " ++ Mission '%s'"%m.mname
124 self.visitednodes.append(newnode)
129 self.
warn(
"Warning: Superimposition detected.")
131 self.
warn(
"Warning: Invalid Mission Arguments.")
133 if not cond.pre(self.node.preconditions):
135 if cond.script(self.node.script,self):
137 for sn
in self.node.subnodes:
138 if (cond.post(sn.preconditions)):
141 traverser.append(tmp)
142 if (self.node.contingency):
143 self.
cont(self.node.contingency)
146 elif self.node.contingency:
147 for sn
in self.node.subnodes:
150 traverser.append(tmp)
152 self.
warn(
"Warning: Contingency in non trueSubnode")
154 exnonescript=self.
node
155 self.
cont(self.node.contingency)
156 elif (len(self.node.subnodes)):
157 if (len(self.node.subnodes)>1):
158 for sn
in self.node.subnodes[1:]:
161 traverser.append(tmp)
162 self.
cont(self.node.subnodes[0])
168 for i
in range(len(traverser)-1,-1,-1):
170 if IsEnd(traverser[i].node):
173 return len(traverser)>0
174 for iter
in campaigns.campaigns:
175 import verify_missions
176 verify_missions.campaign_name[iter.name]=1
179 while len(traverser):
183 for i
in range(len(traverser)):
184 var=traverser[i].Update(variables)
185 if (type(var)==type([])):
188 if not progress
and len(traverser):