10 where=place.LocalPosition()
11 print "moving "+un.getName() +
" to "+place.getName()
13 prp = VS.getPlanetRadiusPercent()
14 if (place.isPlanet()):
16 where=(where[0]+un.rSize()+prsize+radius,where[1],where[2]);
17 un.SetPosition(VS.SafeEntrancePoint(where,un.rSize()))
23 return self.arrivedarea
26 return self.significantun
31 def __init__ (self,you, landable_only, distance_away_to_trigger,base_only=0,capshipfaction="", dyn_fg="", showObjective=1, forcestarship=0):
33 self.showObjective=showObjective
38 self.distfrombase=distance_away_to_trigger
41 self.sysfil=VS.getSystemFile()
42 if (landable_only
or base_only):
45 if landable_only
and not base_only:
48 significant = unit.getSignificant (randint,landable_only,base_only)
50 if significant.isPlanet():
54 if (landable_only
and not unit.isLandable(significant))
or forcestarship:
56 if (capshipfaction==
""):
57 capshipfaction=
"merchant"
58 if (self.capship
and capshipfaction!=
""):
59 if (significant.isNull()):
61 self.orbitee=
"%s" % (significant.getName())
63 print "orbitee %s " % self.orbitee
70 near*=faction_ships.launch_distance_factor
71 far*=faction_ships.launch_distance_factor
80 significant=
moveUnitTo(testun,significant,near)
88 near*=faction_ships.launch_distance_factor
98 significant=
moveUnitTo(testun,significant,near)
103 significant.setFullname(dyn_fg)
105 significant = universe.getRandomJumppoint ()
106 if (significant.isNull()):
107 print "ERROR: no significants found in starsystem %s" % (self.sysfil)
108 self.significantun=VS.getPlayer()
110 self.significantun=significant
111 self.significantun.setMissionRelevant()
115 if (self.showObjective):
116 self.obj=VS.addObjective(
"Visit %s %s" % (self.getSignificantFullName (),aroundthe))
117 VS.setOwner(self.obj,VS.getPlayer())
120 def Print(self,visitstr,fro,dockstr="\0%s",time=0):
122 visitstr+=(dockstr % (self.orbitee))
126 return self.significantun.getUnitSystemFile();
128 return self.DestinationSystem()
130 if (self.significantun.isNull()
or self.you.isNull()
or VS.getSystemFile()!=self.DestinationSystem()):
133 sigdis=self.you.getSignificantDistance(self.significantun)
134 if (sigdis<=self.distfrombase):
136 if (self.showObjective):
137 VS.setCompleteness(self.obj,1.0)
140 return self.HaveArrived()
142 self.mytime = VS.GetGameTime();
143 faction=self.you.getFactionName();
144 name=self.you.getName()
145 self.brief_you=Briefing.addShip(name,faction,(40.0,0.0,80.0))
146 faction=self.significantun.getFactionName()
147 name = self.significantun.getName()
148 self.brief_sig=Briefing.addShip(name,faction,(-40,0.0,8000.0))
149 Briefing.enqueueOrder (self.brief_you,(-30,0.0,7900.0),5.0)
151 if (VS.GetGameTime()-self.mytime>5):
152 return self.brief_you