NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

abilityController.py (2047B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\squadrons\abilityController.py
      2 from eve.client.script.ui.inflight.squadrons.shipFighterState import GetShipFighterState
      3 import fighters
      4 
      5 class AbilityController(object):
      6 
      7     def __init__(self, abilityID, fighterID, slotID, fighterTypeID):
      8         self.abilityID = abilityID
      9         self.fighterID = fighterID
     10         self.slotID = slotID
     11         self.fighterTypeID = fighterTypeID
     12         self.shipFighterState = GetShipFighterState()
     13 
     14     def GetAbilityInfo(self):
     15         return fighters.AbilityStorage()[self.abilityID]
     16 
     17     def OnAbilityClick(self, targetMode):
     18         if self.shipFighterState.IsAbilityActive(self.fighterID, self.slotID):
     19             self.DeactivateAbility()
     20         else:
     21             self.ActivateAbility(targetMode)
     22 
     23     def ActivateAbility(self, targetMode):
     24         if self.fighterID is None:
     25             raise RuntimeError('Attempt to activate ability on null fighter')
     26         if targetMode == fighters.TARGET_MODE_UNTARGETED:
     27             self._OnActivateAbilityOnSelf()
     28         elif targetMode == fighters.TARGET_MODE_ITEMTARGETED:
     29             targetID = sm.GetService('target').GetActiveTargetID()
     30             self._OnActivateAbilityOnTarget(targetID)
     31         elif targetMode == fighters.TARGET_MODE_POINTTARGETED:
     32             eveCommands = sm.GetService('cmd')
     33             eveCommands.CmdAimFighterAbility(self.fighterID, self.slotID)
     34         else:
     35             raise ValueError('ActivateAbility got unexpected targetmode')
     36 
     37     def DeactivateAbility(self):
     38         self._OnDeactivateAbility()
     39 
     40     def _OnActivateAbilityOnTarget(self, targetID):
     41         sm.GetService('fighters').ActivateAbilitySlotsOnTarget([self.fighterID], self.slotID, targetID)
     42 
     43     def _OnActivateAbilityOnSelf(self):
     44         sm.GetService('fighters').ActivateAbilitySlotsOnSelf([self.fighterID], self.slotID)
     45 
     46     def _OnDeactivateAbility(self):
     47         sm.GetService('fighters').DeactivateAbilitySlots([self.fighterID], self.slotID)