Guest User

Untitled

a guest
May 6th, 2018
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.15 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5. public class Frozen : ActorEffect
  6. {
  7.     public Frozen() { }
  8.     public Frozen(int _Duration)
  9.     {
  10.         Duration = _Duration;
  11.     }
  12.  
  13.     public override void Initialize()
  14.     {
  15.         InitialDuration = Duration;
  16.         ParticlesName = "FrozenEffect";
  17.         ParticlesOffset.y = 0.0f;
  18.         ParticlesRotation = new Vector3(0, 0, 0);
  19.         Buff = true;
  20.         var spellInfo = "IceCubed".GetSpellInfoFromID();
  21.         if (spellInfo != null) Sprite = spellInfo.spellImage;
  22.     }
  23.  
  24.     public override void Register(ActorCtrl Object)
  25.     {
  26.         Object.RegisterEffectEvent(this, EventName.CheckCanMove);
  27.         Object.RegisterEffectEvent(this, EventName.CheckCanAct);
  28.         Object.RegisterEffectEvent(this, EventName.AfterTakeDamage);
  29.         if (OwnerObject)
  30.         {
  31.             OwnerObject.CheckForCanAct();
  32.             if (OwnerObject.Body != null && OwnerObject.Body.animator != null) OwnerObject.Body.animator.speed = 0;
  33.         }
  34.     }
  35.  
  36.     public override void Unregister(ActorCtrl Object)
  37.     {
  38.         Object.UnregisterEffectEvent(this, EventName.CheckCanMove);
  39.         Object.UnregisterEffectEvent(this, EventName.CheckCanAct);
  40.         Object.UnregisterEffectEvent(this, EventName.AfterTakeDamage);
  41.  
  42.         DiscardIceBlock();
  43.  
  44.         if (OwnerObject)
  45.         {
  46.             OwnerObject.CheckForCanAct();
  47.             if (OwnerObject.Body != null && OwnerObject.Body.animator != null) OwnerObject.Body.animator.speed = 1;
  48.         }
  49.     }
  50.  
  51.     public override bool SendEvent(ActorEvent E)
  52.     {
  53.         if (E.ID == EventName.CheckCanMove || E.ID == EventName.CheckCanAct)
  54.         {
  55.             return false;
  56.         }
  57.         if (E.ID == EventName.AfterTakeDamage)
  58.         {
  59.             Duration = 0;
  60.             DiscardIceBlock();
  61.         }
  62.         return base.SendEvent(E);
  63.     }
  64.  
  65.     private void DiscardIceBlock()
  66.     {
  67.         if (ParticleObject != null && ParticleObject.fxLifetimeHelper)
  68.         {
  69.             ParticleObject.fxLifetimeHelper.DoEnd();
  70.             ParticleObject.followTransform = null;
  71.         }
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment