def takeCargoAndTerminate(self, you, remove):
     removenum = 0  #if you terminate without remove, you are SKREWED
     self.base.setCombatRole(self.role)
     if (remove):
         removenum = you.removeCargo(self.cargoname, self.quantity, bool(1))
         debug.debug("removed %d" % removenum)
         mpart = VS.GetMasterPartList()
         newcarg = mpart.GetCargo(self.cargoname)
         newcarg.SetQuantity(removenum)
         #self.base.addCargo(newcarg)#not for resale
         has = self.you.hasCargo(self.cargoname)
         if (has):
             has = self.you.removeCargo(self.cargoname, has, bool(1))
             newcarg.SetMissionFlag(0)
             newcarg.SetQuantity(has)
             self.you.addCargo(
                 newcarg
             )  #It seems that removing and then adding it again is the only way...
     if ((removenum >= self.quantity) or (self.quantity == 0)
             or removenum >= 1):
         VS.IOmessage(0, "cargo mission", self.mplay,
                      "#00ff00Excellent work pilot.")
         VS.IOmessage(
             0, "cargo mission", self.mplay,
             "#00ff00You have been rewarded for your effort as agreed.")
         VS.IOmessage(0, "cargo mission", self.mplay,
                      "#00ff00Your excellent work will be remembered.")
         you.addCredits(self.cred)
         VS.AdjustRelation(you.getFactionName(), self.faction,
                           .01 * self.difficulty, 1)
         self.SetVar(1)
         VS.terminateMission(1)
         return
     else:
         VS.IOmessage(
             0, "cargo mission", self.mplay,
             "#ff0000You did not follow through on your end of the deal.")
         if (self.difficulty < 1):
             VS.IOmessage(0, "cargo mission", self.mplay,
                          "#ff0000Your pay will be reduced")
             VS.IOmessage(
                 0, "cargo mission", self.mplay,
                 "#ff0000And we will consider if we will accept you on future missions."
             )
             addcred = (float(removenum) /
                        (float(self.quantity *
                               (1 + self.difficulty)))) * self.cred
             you.addCredits(addcred)
         else:
             VS.IOmessage(0, "cargo mission", self.mplay,
                          "#ff0000You will not be paid!")
             universe.punish(self.you, self.faction, self.difficulty)
         self.SetVar(-1)
         VS.terminateMission(0)
         return
 def Execute(self):
     if (VS.GetGameTime() - self.gametime > 10):
         self.escortee.setFgDirective('F')
     if self.you.isNull():
         VS.IOmessage(
             0, "escort", self.mplay,
             "#ff0000You were to protect your escort. Mission failed.")
         VS.terminateMission(0)
         return
     self.escortee.setFlightgroupLeader(self.you)
     #print 'name: '+self.escortee.getFlightgroupLeader().getName()
     #self.escortee.SetVelocity(self.you.GetVelocity())
     if (self.escortee.isNull()):
         VS.IOmessage(
             0, "escort", self.mplay,
             "#ff0000You were to protect your escort. Mission failed.")
         universe.punish(self.you, self.faction, self.difficulty)
         if (self.var_to_set != ''):
             quest.removeQuest(self.you.isPlayerStarship(), self.var_to_set,
                               -1)
         VS.terminateMission(0)
         return
     if (not self.adjsys.Execute()):
         if (self.arrived):
             self.adjsys.SignificantUnit().setSpeed(0.0)
             self.adjsys.SignificantUnit().SetVelocity((0.0, 0.0, 0.0))
         return
     if (not self.arrived):
         self.arrived = 1
         self.adjsys = go_somewhere_significant(
             self.you, 1, self.distfrombase + 15 * self.escortee.rSize(),
             self.difficulty <= 1, self.faction)
         self.role = self.adjsys.SignificantUnit().getCombatRole()
         self.adjsys.SignificantUnit().setCombatRole("INERT")
         self.adjsys.Print("You must escort your starship to the %s",
                           "defend", "docked around the %s", 0)
     elif (self.you.getDistance(self.escortee) < 2000):
         self.you.addCredits(self.creds)
         VS.AdjustRelation(self.you.getFactionName(), self.faction,
                           self.difficulty * .01, 1)
         VS.IOmessage(
             0, "escort", self.mplay,
             "#00ff00Excellent work! You have completed this mission!")
         self.escortee.setFgDirective('b')
         self.escortee.setFlightgroupLeader(self.escortee)
         self.escortee.performDockingOperations(
             self.adjsys.SignificantUnit(), 0)
         self.adjsys.SignificantUnit().setCombatRole(self.role)
         if (self.var_to_set != ''):
             quest.removeQuest(self.you.isPlayerStarship(), self.var_to_set,
                               1)
         VS.terminateMission(1)
 def takeCargoAndTerminate (self,you, remove):
     removenum=0 #if you terminate without remove, you are SKREWED
     self.base.setCombatRole(self.role)
     if (remove):
         removenum=you.removeCargo(self.cargoname,self.quantity,1)
         print "removed %d" % removenum
         mpart=VS.GetMasterPartList()
         newcarg=mpart.GetCargo(self.cargoname)
         newcarg.SetQuantity(removenum)
         #self.base.addCargo(newcarg)
         has=self.you.hasCargo(self.cargoname)
         print "has cargo "+str(has)
         if (has):
             has=self.you.removeCargo(self.cargoname,has,1)
             print "removedagain %d"%has
             newcarg.SetMissionFlag(0)
             newcarg.SetQuantity(has)
             self.you.addCargo(newcarg) #It seems that removing and then adding it again is the only way...
     if ((removenum>=self.quantity) or (self.quantity==0) or removenum>=1):
         VS.IOmessage (0,"cargo mission",self.mplay,"#00ff00Excellent work pilot.")
         VS.IOmessage (0,"cargo mission",self.mplay,"#00ff00You have been rewarded for your effort as agreed.")
         VS.IOmessage (0,"cargo mission",self.mplay,"#00ff00Your excellent work will be remembered.")
         you.addCredits(self.cred)
         VS.AdjustRelation(you.getFactionName(),self.faction,.01*self.difficulty,1)
         self.SetVar(1)
         VS.terminateMission(1)
         return
     else:
         VS.IOmessage (0,"cargo mission",self.mplay,"#ff0000You did not follow through on your end of the deal.")
         if (self.difficulty<1):
             VS.IOmessage (0,"cargo mission",self.mplay,"#ff0000Your pay will be reduced")
             VS.IOmessage (0,"cargo mission",self.mplay,"#ff0000And we will consider if we will accept you on future missions.")
             addcred=(float(removenum)/(float(self.quantity*(1+self.difficulty))))*self.cred
             you.addCredits(addcred)
         else:
             VS.IOmessage (0,"cargo mission",self.mplay,"#ff0000You will not be paid!")
             universe.punish(self.you,self.faction,self.difficulty)
         self.SetVar(-1)
         VS.terminateMission(0)
         return
 def Execute (self):
     if (VS.GetGameTime()-self.gametime>10):
         self.escortee.setFgDirective('F')
     if self.you.isNull():
         VS.IOmessage (0,"escort",self.mplay,"#ff0000You were to protect your escort. Mission failed.")
         VS.terminateMission(0)
         return
     self.escortee.setFlightgroupLeader(self.you)
     #print 'name: '+self.escortee.getFlightgroupLeader().getName()
     #self.escortee.SetVelocity(self.you.GetVelocity())
     if (self.escortee.isNull()):
         VS.IOmessage (0,"escort",self.mplay,"#ff0000You were to protect your escort. Mission failed.")
         universe.punish(self.you,self.faction,self.difficulty)
         if (self.var_to_set!=''):
             quest.removeQuest (self.you.isPlayerStarship(),self.var_to_set,-1)
         VS.terminateMission(0)
         return   
     if (not self.adjsys.Execute()):
         if (self.arrived):
             self.adjsys.SignificantUnit().setSpeed(0.0)
             self.adjsys.SignificantUnit().SetVelocity((0.0,0.0,0.0))
         return
     if (not self.arrived):
         self.arrived=1
         self.adjsys=go_somewhere_significant (self.you,1,self.distfrombase+15*self.escortee.rSize(),self.difficulty<=1,self.faction)
         self.role = self.adjsys.SignificantUnit().getCombatRole()
         self.adjsys.SignificantUnit().setCombatRole("INERT");
         self.adjsys.Print ("You must escort your starship to the %s","defend","docked around the %s", 0)
     elif (self.you.getDistance(self.escortee)<2000):
         self.you.addCredits(self.creds)
         VS.AdjustRelation(self.you.getFactionName(),self.faction,self.difficulty*.01,1)
         VS.IOmessage (0,"escort",self.mplay,"#00ff00Excellent work! You have completed this mission!")
         self.escortee.setFgDirective('b')
         self.escortee.setFlightgroupLeader(self.escortee)
         self.escortee.performDockingOperations(self.adjsys.SignificantUnit(),0)
         self.adjsys.SignificantUnit().setCombatRole(self.role);
         if (self.var_to_set!=''):
             quest.removeQuest (self.you.isPlayerStarship(),self.var_to_set,1)
         VS.terminateMission(1)