コード例 #1
0
    // 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);
            }
        }
    }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
 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();
 }
コード例 #4
0
    // 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;
        }
    }
コード例 #5
0
        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;
        }