Vega strike Python Modules doc  0.5.1
Documentation of the " Modules " folder of Vega strike
 All Data Structures Namespaces Files Functions Variables
quest_intro2.py
Go to the documentation of this file.
1 import quest
2 import VS
3 import fixers
4 from fixers import Conversation, Node, RootNode, SubNode
5 import Director
6 
7 SAVE_KEY = "bobo_fixer"
8 
9 REJECTED = 2
10 STARTED = 3
11 DELIVERED = 4
12 FAILED = 5
13 WARNEDOFF = 6
14 SUCCESS = 7
15 
16 AMOUNTTOPAY = 5000
17 
18 playa = VS.getPlayer()
19 
20 def putSaveValue(value, key=SAVE_KEY):
21  Director.eraseSaveData(playa.isPlayerStarship(),key,0)
22  Director.pushSaveData(playa.isPlayerStarship(),key,value)
23  print "Changing Save Value for key " + SAVE_KEY
24  return 1
25 
26 def getSaveValue(key=SAVE_KEY):
27  if Director.getSaveDataLength(playa.isPlayerStarship(),key) > 0:
28  return Director.getSaveData(playa.isPlayerStarship(),key,0)
29  return 0
30 
31 def payMe():
32  playa.addCredits(AMOUNTTOPAY)
33  putSaveValue(SUCCESS)
34  return 1
35 
36 def takeCargo():
37  c = playa.GetCargo("PolyDuranium")
38  if c.GetQuantity() > 0:
39  c.SetQuantity(0)
40  putSaveValue(DELIVERED)
41  return 1
42  return 0
43 
44 def loadCargo():
45  playa.addCargo(VS.GetMasterPartList().GetCargo("PolyDuranium"))
46 
47 def isAt(sysstring):
48  syss = sysstring.split('/')
49  sy = syss[0] + '/' + syss[1]
50  un = ''
51  if len(syss)>2:
52  un = syss[2]
53  if sy != VS.getSystemFile():
54  return 0
55  if un:
56  iter = VS.getUnitList()
57  while iter.notDone():
58  if (playa.isDocked(iter.current()) or iter.current().isDocked(playa)):
59  return iter.current().getName() == un
60  iter.advance()
61  return 0
62  return 1
63 
64 def cargoIterate(ref="Root"):
65  if ref == "accept":
66  loadCargo()
67  putSaveValue(STARTED)
68  elif ref == "reject":
69  putSaveValue(REJECTED)
70  getCargoCon().iterate(ref)
71 
72 
74  con = Conversation( SAVE_KEY,
75  ['#\nimport quest_intro2\nresult = (quest_intro2.isAt(\"Crucible/Cephid_17/Dakar\") or quest_intro2.isAt(\"Crucible/Enyo\"))'],
76  "#\nimport quest_intro2\nquest_intro2.cargoIterate()" )
77  roo = RootNode()
78  roo.addSubNode(SubNode( "The mission robot.",
79  ['#\nimport quest_intro2\nresult = quest_intro2.isAt(\"Crucible/Cephid_17/Dakar\")'],
80  ['#\nimport quest_intro2\nquest_intro2.cargoIterate(\"irobo\")'],
81  "bases/fixers/hunter.spr",
82  "Talk to iRobo" ))
83  roo.addSubNode(SubNode( "The receiving merchant.",
84  ['#\nimport quest_intro2\nresult = quest_intro2.isAt(\"Crucible/Enyo\")'],
85  ['#\nimport quest_intro2\nquest_intro2.cargoIterate(\"merchant\")'],
86  "bases/fixers/merchant.spr",
87  "Talk to the Merchant." ))
88  con.addNode(roo)
89 
90  mer = Node()
91  mer.addSubNode(SubNode( "Thankyou! I've been waiting hours for this!",
92  [str(SAVE_KEY) + '#' + str(STARTED),
93  '#\nimport quest_intro2\nresult = quest_intro2.takeCargo()'] ))
94  mer.addSubNode(SubNode( "You lost it!!!",
95  [str(SAVE_KEY) + '#' + str(STARTED),
96  '#\nimport quest_intro2\nresult = quest_intro2.putSaveValue(%s)'%str(FAILED)] ))
97  mer.addSubNode(SubNode( "Filthy privateer, get out of my sight!",
98  [str(SAVE_KEY) + '#' + str(FAILED)] ))
99  mer.addSubNode(SubNode( "Filthy privateer, get out of my sight!",
100  [str(SAVE_KEY) + '#' + str(WARNEDOFF)] ))
101  mer.addSubNode(SubNode( "Thank you again!",
102  [str(SAVE_KEY) + '#' + str(DELIVERED)] ))
103  mer.addSubNode(SubNode( "Thank you again!",
104  [str(SAVE_KEY) + '#' + str(SUCCESS)] ))
105  mer.addSubNode(SubNode( "Hello! I'm sorry I can't talk, I'm waiting for a very important package." ))
106  con.addNode(mer, "merchant")
107 
108  rob = Node()
109  rob.addSubNode(SubNode( "Go away before I change my mind.",
110  [str(SAVE_KEY) + '#' + str(WARNEDOFF)] ))
111  rob.addSubNode(SubNode( "You did not complete the mission! Leave now and you will not be penalised.",
112  [str(SAVE_KEY) + '#' + str(FAILED),
113  '#\nimport quest_intro2\nresult = quest_intro2.putSaveValue(%s)'%str(WARNEDOFF)] ))
114  rob.addSubNode(SubNode( "Thanks you again.",
115  [str(SAVE_KEY) + '#' + str(SUCCESS)] ))
116  rob.addSubNode(SubNode( "Thanks you. Here's %s."%str(AMOUNTTOPAY),
117  [str(SAVE_KEY) + '#' + str(DELIVERED),
118  '#\nimport quest_intro2\nresult = quest_intro2.payMe()'] ))
119  rob.addSubNode(SubNode( "Get going!",
120  [str(SAVE_KEY) + '#' + str(STARTED)] ))
121  rob.addSubNode(SubNode( "You feel up to the mission yet?",
122  [str(SAVE_KEY) + '#' + str(REJECTED)],
123  ["bases/fixers/no.spr|#\nimport quest_intro2\nquest_intro2.cargoIterate(\"reject\")|Sorry, still sick.",
124  "bases/fixers/yes.spr|#\nimport quest_intro2\nquest_intro2.cargoIterate(\"accept\")|Much better."] ))
125  rob.addSubNode(SubNode( "I need someone to deliver a package to Enyo, can you be of assistance?",
126  list(),
127  ["bases/fixers/no.spr|#\nimport quest_intro2\nquest_intro2.cargoIterate(\"reject\")|Sorry, I don't feel well.",
128  "bases/fixers/yes.spr|#\nimport quest_intro2\nquest_intro2.cargoIterate(\"accept\")|Yes."] ))
129  con.addNode(rob, "irobo")
130 
131  acc = Node()
132  acc.addSubNode(SubNode( "Great, take this package to the merchant in the Enyo system. You'll find him easy enough, he pops up all over the place.",
133  list(),
134  list() ))
135  con.addNode(acc,"accept")
136  rej = Node()
137  rej.addSubNode(SubNode( "Then quit bothering me!",
138  list(),
139  list() ))
140  con.addNode(rej,"reject")
141  return con