Пример #1
0
    public void AddBuff(BaseBuff.BuffType type, float time, float val)
    {
        for (int i = 0; i < buffList.Count; i++)
        {
            if (buffList[i].GetBuffType() == type)
            {
                buffList[i].Reset(time, val);
                return;
            }
        }

        BaseBuff buff = null;

        switch (type)
        {
        case BaseBuff.BuffType.speed:
            buff = new BuffSpeed();
            break;

        default:
            Debug.LogError("no buff :" + type);
            break;
        }
        buff.Init(type, time, val);
        addList.Add(buff);
    }
Пример #2
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();
 }
Пример #3
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);
            }
        }
Пример #4
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;
        }
Пример #5
0
        protected override void Interaction()
        {
            bool IsGood = true;

            BuffSpeed.Invoke(IsGood);
        }