| 8 | |
| 9 | |
| 10 | class CalcAddProjectedFighterCommand(wx.Command): |
| 11 | |
| 12 | def __init__(self, fitID, fighterInfo, position=None): |
| 13 | wx.Command.__init__(self, True, 'Add Projected Fighter') |
| 14 | self.fitID = fitID |
| 15 | self.fighterInfo = fighterInfo |
| 16 | self.position = position |
| 17 | |
| 18 | def Do(self): |
| 19 | pyfalog.debug('Doing addition of projected fighter {} onto: {}'.format(self.fighterInfo, self.fitID)) |
| 20 | fighter = self.fighterInfo.toFighter() |
| 21 | if fighter is None: |
| 22 | return False |
| 23 | fit = Fit.getInstance().getFit(self.fitID) |
| 24 | if self.position is not None: |
| 25 | fit.projectedFighters.insert(self.position, fighter) |
| 26 | if fighter not in fit.projectedFighters: |
| 27 | return False |
| 28 | else: |
| 29 | fit.projectedFighters.append(fighter) |
| 30 | if fighter not in fit.projectedFighters: |
| 31 | return False |
| 32 | self.position = fit.projectedFighters.index(fighter) |
| 33 | return True |
| 34 | |
| 35 | def Undo(self): |
| 36 | pyfalog.debug('Undoing addition of projected fighter {} onto: {}'.format(self.fighterInfo, self.fitID)) |
| 37 | from .projectedRemove import CalcRemoveProjectedFighterCommand |
| 38 | cmd = CalcRemoveProjectedFighterCommand(fitID=self.fitID, position=self.position) |
| 39 | return cmd.Do() |