Advertisement
Guest User

Untitled

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