Advertisement
Guest User

Untitled

a guest
May 21st, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class X2Effect_Slag extends X2Effect_Persistent;
  2.  
  3. function int GetAttackingDamageModifier(XComGameState_Effect EffectState, XComGameState_Unit Attacker, Damageable TargetDamageable, XComGameState_Ability AbilityState, const out EffectAppliedData AppliedData, const int CurrentDamage, optional XComGameState NewGameState)
  4. {
  5.     local XComGameStateContext_Ability  AbilityContext;
  6.     local XComGameState_Unit            TargetUnit;
  7.     local XComGameState_Item            SourceWeapon;
  8.     local PostEffectVisWrapper          Wrapper;
  9.     local EffectAppliedData             EffectData;
  10.     local X2Effect_IRI_Burning          BurnEffect;
  11.  
  12.     if (NewGameState != none)
  13.     {
  14.         TargetUnit = XComGameState_Unit(TargetDamageable);
  15.         SourceWeapon = AbilityState.GetSourceWeapon();
  16.         AbilityContext = XComGameStateContext_Ability(NewGameState.GetContext());
  17.  
  18.         //if (`SYNC_RAND_STATIC(100) < default.SLAG_TRIGGER_CHANCE)
  19.  
  20.         //  we're shooting at a unit with a weapon from which the Slag effect originates from
  21.         if (TargetUnit != none && class'XComGameStateContext_Ability'.static.IsHitResultHit(AppliedData.AbilityResultContext.HitResult)
  22.             && SourceWeapon != none && SourceWeapon.ObjectID == EffectState.ApplyEffectParameters.ItemStateObjectRef.ObjectID)
  23.         {
  24.             TargetUnit = XComGameState_Unit(NewGameState.ModifyStateObject(none, TargetUnit.ObjectID));
  25.  
  26.             //BurnEffect = X2Effect_Burning(class'XComEngine'.static.GetClassDefaultObject(class'X2Effect_IRI_Burning'));
  27.             BurnEffect = X2Effect_IRI_Burning(class'X2Effect_IRI_Burning'.static.StaticGet());
  28.  
  29.             EffectData = AppliedData;
  30.             EffectData.EffectRef.LookupType = TELT_PersistantEffect;
  31.             EffectData.EffectRef.SourceTemplateName = class'X2Effect_IRI_Burning'.Name;
  32.  
  33.             if (BurnEffect.ApplyEffect(EffectData, TargetUnit, NewGameState) == 'AA_Success')
  34.             {
  35.                 `log(`showvar(TargetUnit),, 'IRISINGE');
  36.                 `log(`showvar(TargetUnit.AffectedByEffectNames.Find('Burning')),, 'IRISINGE');
  37.  
  38.                 Wrapper = new class'PostEffectVisWrapper';
  39.                 Wrapper.Effect = BurnEffect;
  40.                 Wrapper.TargetRef = TargetUnit.GetReference();
  41.                 AbilityContext.PostBuildVisualizationFn.AddItem(Wrapper.BuildVisualization);
  42.             }
  43.         }
  44.     }
  45.     return 0;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement