7 profiling_level = int(VS.vsConfig(
"general",
"profiling",
"0"))
13 return un.isDockableUnit()
16 unit_fgid = un.getFlightgroupName()
17 retval = unit_fgid==
"Base"
18 return retval
and not un.isSun()
21 for i
in range (VS.getNumPlayers()):
22 if (VS.getPlayerX(i)==VS.getPlayer()):
27 unit_fgid = un.getFlightgroupName()
28 retval = unit_fgid==
"Asteroid"
32 def reposition(un,playa,min_distance,vel):
36 if vel[0]==0
and vel[1]==0
and vel[2]==0:
39 print "offsetting you a few meters to the "+
str(dir)
40 un.SetPosition(
Vector.Add(playa.Position(),dir))
44 min_forward_distance=1300
46 min_distance=faction_ships.min_distance
47 min_forward_distance=faction_ships.min_forward_distance
49 print "badness no faction_ships.min_distance"
50 dis=un.getDistance(playa)
52 vel=playa.GetVelocity()
54 if (dis<min_distance):
55 reposition(un,playa,min_distance,vel)
57 if (dis<min_forward_distance
and Vector.Dot(dir,vel)>.8):
58 reposition(un,playa,min_distance,vel)
61 thename=(un.getFullname())
62 snumber=
str(un.getFgSubnumber())
63 fg=un.getFlightgroupName()
68 thename=thename+
" "+snumber
69 elif fg!=
'Shadow' and fg!=
'':
71 thename=un.getFactionName().
replace(
"_",
" ")+
" "+thename+
" "+snumber +
' in the '+fg+
' flightgroup'
73 thename=thename+
":"+fg+
' <'+snumber+
'>'
75 thename=thename+
":"+fg+
' <'+snumber+
'>'
80 if not (landable_only
or capship_only):
94 return getSignificant (whichsignificant,0,0)
96 debug.warn(
"no significants in system "+VS.getSystemFile())
105 if (i.current()==unit):
113 i.advanceNSignificant(whichsignificant)
115 i.advanceNPlanet(whichshignificant)
126 i.advanceNSignificant(0)
130 res.append(i.current())
132 i.advanceSignificant()
139 i.advanceNJumppoint(whichsignificant)
153 unit_pos=un.Position()
154 dist=my_unit.getMinDis(unit_pos)
155 relation=my_unit.getRelation(unit)
157 if((my_unit==unit)
and (dist<range)
and (dist<min_dist)):
162 other_fgid=min_enemy.getFgID()
166 threat=un.getThreat()
176 unit_fgid=un.getFgID()
177 if(unit_fgid[:len(which_fgid)]==which_fgid):
178 un.SetTarget(target_unit)
183 mindist=100000000000000000000000000000000000000000000.0
185 tempdist = sig1.getSignificantDistance(sig2)
186 if (tempdist<mindist
and tempdist>0.0):
193 mindist=100000000000000000000000000000000000000000000.0
196 tempdist = getMinDistFrom (sig1,siglist)
203 mindist = mindist/ave
207 return VS.getUnitByName(name)
or VS.getUnit(0)
212 found_unit = VS.Unit()
213 while i.notDone()
and not found_unit:
215 unit_fgid=un.getFgID()
233 unit_fgid=un.getFgID()
234 if(unit_fgid[:len(which_fgid)]==which_fgid):
275 tup[i].SetTarget(tgt)
276 tup[i].setFgDirective(dir)
282 tup[i].JumpTo(system)
289 rez1.append(i.current())
300 distance = ship.getDistance(station)
303 vec =
Vector.Sub(station.Position(),ship.Position())
304 ship.SetOrientation((1,0,0),vec)
307 ship.SetVelocity(vec)
310 ship.SetVelocity((0,0,0))
312 ship.SetAngularVelocity((0,0,0))
314 station.RequestClearance(ship)
323 vec =
Vector.Sub(target.Position(),ship.Position())
324 ship.SetOrientation((1,0,0),vec)
330 vec =
Vector.Sub(unit2.Position(),unit1.Position())
345 unit.SetAngularVelocity(angular)
346 unit.LongitudinalThrust(thrust)
352 shield = (unit.FShieldData() + unit.RShieldData() + unit.LShieldData() + unit.BShieldData()) / 4