1 from go_to_adjacent_systems
import *
2 from go_somewhere_significant
import *
13 def __init__ (self,factionname,numsystemsaway, enemyquantity, distance_from_base, escape_distance, creds, defendthis, defend_base,protectivefactionname='',jumps=(),var_to_set=
'',dynamic_flightgroup=
'',dynamic_type=
'', dynamic_defend_fg=
'',waves=0, greetingText=[
'We will defeat your assets in this battle, privateer...',
'Have no doubt!']):
14 Director.Mission.__init__(self)
36 if (minsigdist*.5<self.
escdist):
45 self.
you=VS.getPlayer()
46 name = self.you.getName ()
49 self.adjsys.Print(
"You are in the %s system,",
"Proceed swiftly to %s.",
"Your arrival point is %s.",
"defend",1)
50 VS.IOmessage (2,
"defend",self.
mplay,
"And there eliminate any %s starships." % self.
faction)
53 quest.removeQuest (self.you.isPlayerStarship(),self.
var_to_set,value)
55 self.you.addCredits (self.
cred)
56 VS.AdjustRelation(self.you.getFactionName(),self.
faction,.03,1)
58 VS.IOmessage(0,
"defend",self.
mplay,
"[Computer] Defend mission accomplished")
60 VS.IOmessage(0,
"defend",self.
mplay,
"[Computer] Bank account has been credited as agreed.")
61 VS.terminateMission(1)
63 self.you.addCredits (-self.
cred)
64 VS.AdjustRelation(self.you.getFactionName(),self.
faction,-.02,1)
66 VS.IOmessage (0,
"defend",self.
mplay,
"[Computer] Detected failure to protect mission asset.")
67 VS.IOmessage (0,
"defend",self.
mplay,
"[Computer] Mission failed!")
68 VS.IOmessage (1,
"defend",self.
mplay,
"[Computer] Bank has been informed of failure to assist asset. They have removed a number of your credits as a penalty to help pay target insurance.")
69 VS.terminateMission(0)
71 if (self.adjsys.DestinationSystem()!=VS.getSystemFile()):
79 if (un.isNull()
or (un.GetHullPercent()<.7
and self.defendee.getDistance(un)>7000)):
89 jp.setMissionRelevant()
101 L.ai=
"default";L.num=1;L.minradius=2000.0;L.maxradius=4500.0
103 L.minradius*=faction_ships.launch_distance_factor
104 L.maxradius*=faction_ships.launch_distance_factor
108 launched=L.launch(you)
110 self.you.SetTarget(launched)
112 launched.SetTarget (jp)
114 launched.SetTarget (you)
116 launched.setFgDirective(
'B')
124 VS.IOmessage (0,
"escort mission",self.
mplay,
"Eliminate all %s ships here" % self.
faction)
128 if (self.you.isNull()
or (self.
arrived and self.defendee.isNull())):
129 VS.IOmessage (0,
"defend",self.
mplay,
"#ff0000You were unable to arrive in time to help. Mission failed.")
131 VS.terminateMission(0)
133 if (
not self.adjsys.Execute()):
140 if (tempfaction==
''):
143 self.adjsys.Print (
"You must visit the %s",
"defend",
"near the %s", 0)
144 self.
defendee=self.adjsys.SignificantUnit()
146 if (self.defendee.isNull ()):
160 if (
not un.isNull()):
162 if (un.getName()
in faction_ships.isBomber):
163 if (self.
quantity >= faction_ships.isBomber[un.getName()]):
166 un.setFgDirective(
'b')
168 un.setFgDirective(
'b')
170 un.SetTarget (self.
you)
179 print "ending briefing"
181 print "loop briefing"
182 Briefing.terminate();
184 print "ending briefing"
186 def initrandom(factionname,numsysaway,minenquant,maxenquant,credperen,defendit,defend_base,p_faction='',jumps=(),var_to_set=
''):
189 return defend(factionname,numsysaway,enq,8000.0,100000.0,enq*credperen,defendit,defend_base,p_faction,jumps,var_to_set)