// Update is called once per frame void Update() { timer -= Time.deltaTime; if (timer <= 0) { // Create explosion particle effect for a set duration before destroying self if (!explode) { gameObject.GetComponent <ParticleSystem>().Play(); gameObject.GetComponent <SpriteRenderer>().enabled = false; timer = 1f; explode = true; player = GameObject.FindGameObjectWithTag("Player"); // If distance to player is < 3, apply freeze and slow debuff if ((player != null) && (Vector3.Distance(player.transform.position, transform.position) < 3)) { player.GetComponent <PlayerHealth>().TakeDamage(power); BuffFreeze freeze = player.AddComponent <BuffFreeze>(); player.GetComponent <BuffHandler>().AddBuff(freeze); BuffSlow slow = player.AddComponent <BuffSlow>(); slow.SetBuffTimer(5f); player.GetComponent <BuffHandler>().AddBuff(slow); } } else { Destroy(gameObject); } } }
public void Update(long currentTime) { MobStatValue endFlag = 0; BuffPhysicalDamage.TryReset(currentTime, ref endFlag); BuffPhysicalDefense.TryReset(currentTime, ref endFlag); BuffMagicDamage.TryReset(currentTime, ref endFlag); BuffMagicDefense.TryReset(currentTime, ref endFlag); BuffAccurrency.TryReset(currentTime, ref endFlag); BuffEvasion.TryReset(currentTime, ref endFlag); BuffSpeed.TryReset(currentTime, ref endFlag); BuffStun.TryReset(currentTime, ref endFlag); BuffFreeze.TryReset(currentTime, ref endFlag); BuffPoison.TryReset(currentTime, ref endFlag); BuffSeal.TryReset(currentTime, ref endFlag); BuffDarkness.TryReset(currentTime, ref endFlag); BuffPowerUp.TryReset(currentTime, ref endFlag); BuffMagicUp.TryReset(currentTime, ref endFlag); BuffPowerGuardUp.TryReset(currentTime, ref endFlag); BuffMagicGuardUp.TryReset(currentTime, ref endFlag); BuffPhysicalImmune.TryReset(currentTime, ref endFlag); BuffMagicImmune.TryReset(currentTime, ref endFlag); BuffDoom.TryReset(currentTime, ref endFlag); BuffWeb.TryReset(currentTime, ref endFlag); BuffHardSkin.TryReset(currentTime, ref endFlag); BuffAmbush.TryReset(currentTime, ref endFlag); BuffVenom.TryReset(currentTime, ref endFlag); BuffBlind.TryReset(currentTime, ref endFlag); BuffSealSkill.TryReset(currentTime, ref endFlag); if (endFlag > 0) { MobPacket.SendMobStatsTempReset(Mob, endFlag); } }
public void Clear() { BuffPhysicalDamage.Reset(); BuffPhysicalDefense.Reset(); BuffMagicDamage.Reset(); BuffMagicDefense.Reset(); BuffAccurrency.Reset(); BuffEvasion.Reset(); BuffSpeed.Reset(); BuffStun.Reset(); BuffFreeze.Reset(); BuffPoison.Reset(); BuffSeal.Reset(); BuffDarkness.Reset(); BuffPowerUp.Reset(); BuffMagicUp.Reset(); BuffPowerGuardUp.Reset(); BuffMagicGuardUp.Reset(); BuffPhysicalImmune.Reset(); BuffMagicImmune.Reset(); BuffDoom.Reset(); BuffWeb.Reset(); BuffHardSkin.Reset(); BuffAmbush.Reset(); BuffVenom.Reset(); BuffBlind.Reset(); BuffSealSkill.Reset(); }
// Update is called once per frame void Update() { // Might be able to integrate BombEnemy into this later if (!explodeState) { destructionTimer -= Time.deltaTime; if (destructionTimer <= 0) { explodeState = true; } transform.Rotate(new Vector3(0f, 0f, rotate)); if ((player != null) && (player.tag == "Player") && (Mathf.Abs(Vector3.Distance(transform.position, player.transform.position)) < 1.5f)) { BuffFreeze freeze = player.AddComponent <BuffFreeze>(); player.GetComponent <BuffHandler>().AddBuff(freeze); explodeState = true; } else { player = GameObject.FindGameObjectWithTag("Player"); } } else { gameObject.GetComponent <Animator>().speed = 1; } }
public void Encode(Packet pPacket, MobStatValue pSpecificFlag = MobStatValue.ALL) { long currentTime = MasterThread.CurrentTime; int tmpBuffPos = pPacket.Position; MobStatValue endFlag = 0; pPacket.WriteUInt((uint)endFlag); BuffPhysicalDamage.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffPhysicalDefense.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffMagicDamage.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffMagicDefense.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffAccurrency.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffEvasion.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffSpeed.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffStun.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffFreeze.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffPoison.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffSeal.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffDarkness.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffPowerUp.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffMagicUp.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffPowerGuardUp.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffMagicGuardUp.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffPhysicalImmune.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffMagicImmune.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffDoom.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffWeb.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffHardSkin.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffAmbush.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffVenom.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffBlind.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); BuffSealSkill.EncodeForLocal(pPacket, ref endFlag, currentTime, pSpecificFlag); int tmpBuffPos2 = pPacket.Position; pPacket.Position = tmpBuffPos; pPacket.WriteUInt((uint)endFlag); pPacket.Position = tmpBuffPos2; }