destructioneffectmanager.py (1164B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\destructionEffect\destructioneffectmanager.py 2 import math 3 import random 4 import geo2 5 6 class DestructionEffectManager(object): 7 8 def __init__(self, spaceObject): 9 self.spaceObject = spaceObject 10 11 def PlayDissolveEffect(self): 12 idx = self.GetLastHitDamageLocator() 13 locatorsSets = self.spaceObject.model.locatorSets.FindByName('damage') 14 if idx > -1: 15 locatorPos = locatorsSets.locators[idx][0] 16 else: 17 locatorPos = random.choice(locatorsSets.locators)[0] 18 self.spaceObject.SetControllerVariable('IsDissolving', 1.0) 19 20 def GetLastHitDamageLocator(self): 21 damageLocator = getattr(self.spaceObject.model, 'lastDamageLocatorHit', -1) 22 return damageLocator 23 24 def SetClipSphereCenter(self, locatorPos): 25 unitLocatorPos = geo2.Vec3Normalize(locatorPos) 26 radius = self.spaceObject.model.boundingSphereRadius 27 x = unitLocatorPos[0] * radius 28 y = unitLocatorPos[1] * radius 29 z = unitLocatorPos[2] * radius 30 self.spaceObject.model.clipSphereCenter = (x, y, z)