Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class Frozen : ActorEffect
- {
- public Frozen() { }
- public Frozen(int _Duration)
- {
- Duration = _Duration;
- }
- public override void Initialize()
- {
- InitialDuration = Duration;
- ParticlesName = "FrozenEffect";
- ParticlesOffset.y = 0.0f;
- ParticlesRotation = new Vector3(0, 0, 0);
- Buff = true;
- var spellInfo = "IceCubed".GetSpellInfoFromID();
- if (spellInfo != null) Sprite = spellInfo.spellImage;
- }
- public override void Register(ActorCtrl Object)
- {
- Object.RegisterEffectEvent(this, EventName.CheckCanMove);
- Object.RegisterEffectEvent(this, EventName.CheckCanAct);
- Object.RegisterEffectEvent(this, EventName.AfterTakeDamage);
- if (OwnerObject)
- {
- OwnerObject.CheckForCanAct();
- if (OwnerObject.Body != null && OwnerObject.Body.animator != null) OwnerObject.Body.animator.speed = 0;
- }
- }
- public override void Unregister(ActorCtrl Object)
- {
- Object.UnregisterEffectEvent(this, EventName.CheckCanMove);
- Object.UnregisterEffectEvent(this, EventName.CheckCanAct);
- Object.UnregisterEffectEvent(this, EventName.AfterTakeDamage);
- DiscardIceBlock();
- if (OwnerObject)
- {
- OwnerObject.CheckForCanAct();
- if (OwnerObject.Body != null && OwnerObject.Body.animator != null) OwnerObject.Body.animator.speed = 1;
- }
- }
- public override bool SendEvent(ActorEvent E)
- {
- if (E.ID == EventName.CheckCanMove || E.ID == EventName.CheckCanAct)
- {
- return false;
- }
- if (E.ID == EventName.AfterTakeDamage)
- {
- Duration = 0;
- DiscardIceBlock();
- }
- return base.SendEvent(E);
- }
- private void DiscardIceBlock()
- {
- if (ParticleObject != null && ParticleObject.fxLifetimeHelper)
- {
- ParticleObject.fxLifetimeHelper.DoEnd();
- ParticleObject.followTransform = null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment