effect.py (3986B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\common\script\dogma\effect.py 2 ApplyBrainEffect = {'M': lambda dogmaLM, targetID, fromAttrib, toAttribID, operation: dogmaLM.AddModifierWithSource(operation, targetID, toAttribID, fromAttrib), 3 'LG': lambda dogmaLM, targetID, fromAttrib, toAttribID, operation, groupID: dogmaLM.AddLocationGroupModifierWithSource(operation, targetID, groupID, toAttribID, fromAttrib), 4 'LRS': lambda dogmaLM, targetID, fromAttrib, toAttribID, operation, skillID: dogmaLM.AddLocationRequiredSkillModifierWithSource(operation, targetID, skillID, toAttribID, fromAttrib), 5 'ORS': lambda dogmaLM, targetID, fromAttrib, toAttribID, operation, skillID: dogmaLM.AddOwnerRequiredSkillModifierWithSource(operation, targetID, skillID, toAttribID, fromAttrib), 6 'L': lambda dogmaLM, targetID, fromAttrib, toAttribID, operation: dogmaLM.AddLocationModifierWithSource(operation, targetID, toAttribID, fromAttrib)} 7 RemoveBrainEffect = {'M': lambda dogmaLM, targetID, fromAttrib, toAttribID, operation: dogmaLM.RemoveModifierWithSource(operation, targetID, toAttribID, fromAttrib), 8 'LG': lambda dogmaLM, targetID, fromAttrib, toAttribID, operation, groupID: dogmaLM.RemoveLocationGroupModifierWithSource(operation, targetID, groupID, toAttribID, fromAttrib), 9 'LRS': lambda dogmaLM, targetID, fromAttrib, toAttribID, operation, skillID: dogmaLM.RemoveLocationRequiredSkillModifierWithSource(operation, targetID, skillID, toAttribID, fromAttrib), 10 'ORS': lambda dogmaLM, targetID, fromAttrib, toAttribID, operation, skillID: dogmaLM.RemoveOwnerRequiredSkillModifierWithSource(operation, targetID, skillID, toAttribID, fromAttrib), 11 'L': lambda dogmaLM, targetID, fromAttrib, toAttribID, operation: dogmaLM.RemoveLocationModifierWithSource(operation, targetID, toAttribID, fromAttrib)} 12 import dogma.const as dgmconst 13 CombineModifiers = {dgmconst.dgmAssPreAssignment: lambda mod1, mod2: mod2, 14 dgmconst.dgmAssPostAssignment: lambda mod1, mod2: mod2, 15 dgmconst.dgmAssPreMul: lambda mod1, mod2: mod1 * mod2, 16 dgmconst.dgmAssPostMul: lambda mod1, mod2: mod1 * mod2, 17 dgmconst.dgmAssPreDiv: lambda mod1, mod2: mod1 * mod2, 18 dgmconst.dgmAssPostDiv: lambda mod1, mod2: mod1 * mod2, 19 dgmconst.dgmAssModAdd: lambda mod1, mod2: mod1 + mod2, 20 dgmconst.dgmAssModSub: lambda mod1, mod2: mod1 + mod2, 21 dgmconst.dgmAssPostPercent: lambda mod1, mod2: (100 + mod1) / 100.0 * ((100 + mod2) / 100.0) * 100 - 100, 22 dgmconst.dgmAssPostPercentUnNerfed: lambda mod1, mod2: (100 + mod1) / 100.0 * ((100 + mod2) / 100.0) * 100 - 100} 23 24 class Effect: 25 __guid__ = 'dogmaXP.Effect' 26 isPythonEffect = True 27 __modifier_only__ = False 28 __modifies_character__ = False 29 __modifies_ship__ = False 30 31 def RestrictedStop(self, *args): 32 pass 33 34 def PreStartChecks(self, *args): 35 pass 36 37 def StartChecks(self, *args): 38 pass 39 40 def Start(self, *args): 41 pass 42 43 def Stop(self, *args): 44 pass 45 46 47 class BrainEffect(object): 48 49 def __init__(self, fromAttrib, toItemID, modifierType, toAttribID, operation, extras = tuple()): 50 self.fromAttrib = fromAttrib 51 self.value = None 52 self.toItemID = toItemID 53 self.modifierType = modifierType 54 self.toAttribID = toAttribID 55 self.operation = operation 56 self.extras = extras 57 self.skills = [fromAttrib.invItem.typeID] 58 59 def GetLiteralKey(self): 60 return (tuple(self.skills), self.value) 61 62 def CombineWithEffect(self, effect): 63 self.value = CombineModifiers[effect.operation](self.value, effect.value) 64 self.skills.extend(effect.skills) 65 66 def ResolveValue(self): 67 self.value = self.fromAttrib.GetValue() 68 self.fromAttrib = None 69 70 def GetTargetKey(self): 71 return (self.toItemID, 72 self.toAttribID, 73 self.modifierType, 74 self.operation, 75 self.extras) 76 77 def GetApplicationArgs(self): 78 return (self.toAttribID, self.operation) + self.extras