Vega strike Python Modules doc  0.5.1
Documentation of the " Modules " folder of Vega strike
 All Data Structures Namespaces Files Functions Variables
quest_drone.py
Go to the documentation of this file.
1 import quest
2 import Vector
3 import VS
4 import unit
5 import vsrandom
6 
7 drone=VS.Unit()
8 
10  def __init__ (self):
11  self.sysfile = VS.getSystemFile()
12  self.stage=0
13  self.lastdist=10000
14  self.derelict=VS.Unit()
15  self.jumping=0
16  def launchNewDrone (self):
17  global drone
18  playa=VS.getPlayer()
19  if (not playa.isNull()):
20  self.makeQuestPersistent()
21  vec = playa.Position()
22  vec = Vector.Add(vec,(1000,0,0))
23  drone=VS.launch("IO47","drone","unknown","unit","default",1,1,vec,'')
24  VS.AdjustRelation("unknown",playa.getFactionName(),-1,10);
25  VS.AdjustRelation(playa.getFactionName(),"unknown",-1,10);
26  drone.SetTarget(playa)
27  self.stage=1
28  else:
29  drone=VS.Unit()
30  def generateBase (self):
31  self.derelict=VS.launch("base","derelict","neutral","unit","sitting_duck",1,1,(-1000000,-1000000,-1000000),'')
32 
33  def setDroneNear (self,playa):
34  global drone
35  vec = playa.Position()
36  vec = Vector.Add (vec,(vsrandom.uniform(-1000,1000),
37  vsrandom.uniform(-1000,1000),
38  vsrandom.uniform(-1000,1000)))
39  drone.SetCurPosition(vec)
40  drone.SetTarget(playa)
41  def Execute (self):
42  global drone
43  playa=VS.getPlayer()
44  if (playa.isNull()):
45  return 1
46  if not quest.checkSaveValue(playa.isPlayerStarship(),'privateer_drone_active',1):
47  return 1
48  if VS.getSystemFile() == "Gemini/deltaprime":
49  if self.derelict.isNull():
50  self.generateBase()
51  if (not self.stage):
52  if (self.derelict and (VS.getSystemFile()==self.sysfile)):
53  if (self.derelict.getSignificantDistance(playa)<200):
54  self.launchNewDrone()
55  else:
56  self.launchNewDrone()
57  else:
58  if (drone.isNull()):
59  self.removeQuest();
60  return 0
61  sf = VS.getSystemFile();
62  if (self.sysfile!=sf and not self.jumping):
63  drone.JumpTo(sf);
64  self.sysfile=sf
65 # self.setDroneNear(playa)
66  self.lastdist=10000
67  self.jumping=1
68  print "jumping"
69  else:
70  if (self.jumping):
71  if (playa.getUnitSystemFile()==drone.getUnitSystemFile()):
72  drone.SetTarget (playa)
73  self.jumping=0
74  self.setDroneNear(playa)
75 
76  return 1
77 
79  def __init__ (self):
80  quest.quest_factory.__init__ (self,"quest_drone")
81  def create (self):
82  return quest_drone()