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

triglavianBeam.py (1832B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\environment\effects\triglavianBeam.py
      2 from eve.client.script.environment.effects.GenericEffect import STOP_REASON_DEFAULT
      3 from eve.client.script.environment.effects.turrets import StandardWeapon
      4 
      5 class TriglavianBeam(StandardWeapon):
      6 
      7     def __init__(self, trigger, *args):
      8         StandardWeapon.__init__(self, trigger, *args)
      9         self.graphicInfo = trigger.graphicInfo
     10         self._laserIntensity = None
     11         self._startIntensity = 0.3
     12         self.damageMultiplierBonusCurrent = 0
     13         self.damageMultiplierBonusPerCycle = self.graphicInfo['mulitplierBonusPerCycle']
     14         self.damageMultiplierBonusMax = self.graphicInfo['multiplierBonusMax']
     15 
     16     def Start(self, duration):
     17         super(TriglavianBeam, self).Start(duration)
     18         self.laserIntensity = self._startIntensity
     19 
     20     def Repeat(self, duration):
     21         self.damageMultiplierBonusCurrent += self.damageMultiplierBonusPerCycle
     22         if self.damageMultiplierBonusCurrent > self.damageMultiplierBonusMax:
     23             self.damageMultiplierBonusCurrent = self.damageMultiplierBonusMax
     24         self.laserIntensity = self._startIntensity + self.damageMultiplierBonusCurrent / self.damageMultiplierBonusMax
     25         StandardWeapon.Repeat(self, duration)
     26 
     27     @property
     28     def laserIntensity(self):
     29         return self._laserIntensity
     30 
     31     @laserIntensity.setter
     32     def laserIntensity(self, value):
     33         if value != self._laserIntensity:
     34             self._laserIntensity = value
     35             for turret in self.turrets:
     36                 turret.SetIntensity(self._laserIntensity)
     37 
     38     def Stop(self, reason = STOP_REASON_DEFAULT):
     39         super(TriglavianBeam, self).Stop(reason)
     40         self.laserIntensity = None
     41         self.damageMultiplierBonusCurrent = 0