Vega strike Python Modules doc  0.5.1
Documentation of the " Modules " folder of Vega strike
 All Data Structures Namespaces Files Functions Variables
go_to_adjacent_systems.py
Go to the documentation of this file.
1 import VS
2 import universe
3 import unit
4 import Briefing
5 import vsrandom
6 import Director
7 def formatSystemName(ship):
8  where=ship.rfind("/")
9  if (where!=-1):
10  ship=ship[where+1:]
11  return ship.capitalize()
12 
14  def InSystem(self):
15  return self.arrivedsys
16 
17  def DestinationSystem (self):
18  return self.destination
19 
20  def JumpPoints (self):
21  return self.jumps
22 
23  def ChangeObjective(self,newind):
24  if (self.jumps[-1]!=self.jumps[newind]):
25  VS.setObjective(self.obj,"Jump to %s enroute to %s." % (formatSystemName(self.jumps[newind]),formatSystemName(self.jumps[-1])))
26  else:
27  VS.setObjective(self.obj,"Jump to final system: %s." % (formatSystemName(self.jumps[-1])))
28 
29  def __init__ (self,you, numsystemsaway,jumps=(),preffaction=''):
30  self.arrivedsys=0
31  self.jumps=()
32  self.destination=""
33  self.obj=0
34  self.com=0
35  self.you = you
36  sys=VS.getSystemFile()
37  if len(jumps)>0:
38  sys=jumps[-1]
39  (self.destination,self.jumps)=universe.getAdjacentSystems(sys,numsystemsaway,jumps,preffaction)
40  for i in self.jumps:
41  key = "visited_"+i
42  leng=Director.getSaveDataLength(VS.getCurrentPlayer(),key)
43  if leng==0:
44  Director.pushSaveData(VS.getCurrentPlayer(),key,float(2))
45  if (len(self.jumps)>0):
46  self.obj=VS.addObjective("")
47  self.com=(1.0/float(len(self.jumps)))
48  VS.setCompleteness(self.obj,0)
49  if (self.you):
50  VS.setOwner(self.obj,self.you)
51  self.ChangeObjective(0)
52  else:
53  self.arrivedsys=1
54 
55  def Print(self,beginstr,midstr,endstr,fro,wait=0):
56  msgply=universe.getMessagePlayer(self.you)
57  if (len(self.jumps)>0):
58  VS.IOmessage(wait,fro,msgply,beginstr % (formatSystemName(VS.getSystemFile())))
59  for i in range(len(self.jumps)-1):
60  VS.IOmessage(wait,fro,msgply,midstr % (formatSystemName(self.jumps[i])))
61  VS.IOmessage(wait,fro,msgply,endstr % (formatSystemName(self.jumps[len(self.jumps)-1])))
62  def HaveArrived(self):
63  return self.arrivedsys
64  def Execute (self):
65  cursys=VS.getSystemFile()
66  if (cursys in self.jumps):
67  newjumps=list(self.jumps) #only lists can do 'index' but tuples strangely can do 'in'... at least it only happens when you jump...
68  curind=newjumps.index(cursys)
69  if ((curind+1)<len(self.jumps)):
70  self.ChangeObjective(curind+1)
71  newjumps.pop(curind)
72  self.jumps=tuple(newjumps) #make it another tuple...
73  if (cursys==self.destination):
74  self.arrivedsys=1
75  VS.setCompleteness(self.obj,1.0)
76  else:
77  VS.setCompleteness(self.obj,self.com*curind)
78  return self.arrivedsys
79 
80  def initbriefing(self):
81  self.jump_ani=0
82  self.rnd_y=0.0
83  self.added_warp=1
84  self.brief_stage=0
85  self.begintime= VS.GetGameTime()-6.0
86  print "starting briefing"
87  if (self.you.isNull()):
88  Briefing.terminate()
89  return
90  self.faction=self.you.getFactionName()
91  name=self.you.getName()
92  self.brief_you=Briefing.addShip(name,self.faction,(0.0,0.0,80.0))
93  VS.IOmessage (0,"go_to_adjacent_system","briefing","You must go to the %s system. In order to get there, you must follow this route that we have planned out for you." % self.DestinationSystem())
94 
95  def loopbriefing(self):
96  size=len(self.JumpPoints())
97  time = VS.GetGameTime()
98  Briefing.setCamPosition((1.6*(time-self.begintime)*self.brief_stage,0.0,0.0))
99  if (((time-self.begintime)>=5.0) and self.added_warp):
100  self.jump_ani=Briefing.addShip("brief_warp",self.faction,(20.0*(self.brief_stage),self.rnd_y,79.5+self.rnd_y))
101  self.added_warp=0
102  if (((time-self.begintime)>=6.0)):
103  if (self.jump_ani!=0):
104  Briefing.removeShip(self.jump_ani)
105  self.jump_ani=0
106  if ((size==self.brief_stage) and ((time-self.begintime)>=6.0)):
107  self.brief_stage=size+1
108  self.added_warp=0
109  self.time=0.0
110  elif ((self.brief_stage>size) and ((time-self.begintime)>=11.0)):
111  return self.brief_you
112  elif (((time-self.begintime)>=6.0) and (self.brief_stage<size)):
113  self.added_warp=1
114  self.rnd_y=(vsrandom.random()*40.0-20.0)
115  Briefing.addShip("brief_jump",self.faction,(20.0*(self.brief_stage+1),self.rnd_y,79.6+self.rnd_y))
116  Briefing.enqueueOrder (self.brief_you,(20.0*(self.brief_stage+1) ,self.rnd_y,80.0+self.rnd_y) , 5.0)
117  self.begintime=time
118  myname=self.JumpPoints() [self.brief_stage]
119  VS.IOmessage (0,"cargo mission","briefing","You must go to the '%s' jump point" % (myname))
120  self.brief_stage+=1
121  return -1
122  def endbriefing(self):
123  print "endinging briefing"
124  del self.jump_ani
125  del self.rnd_y
126  del self.added_warp
127  del self.brief_stage
128  del self.begintime
129  del self.faction
130  del self.brief_you