示例#1
0
        public CEffectDamageMeta(string id) : base(id)
        {
            Type       = EffectType.Damage;
            DamageType = EffectDamageType.Melee;

            //int max = (int)CAbilityEnum.AttributeType.Count;
            //AttributeBonusList = new AttributeBonus[max];
            //	AttributeMultiplierBonusList = new AttributeBonus[max];

            //for (int i = 0; i < max; i++) {
            //		AttributeBonusList[i].Index = (CAbilityEnum.AttributeType)i;
            //		AttributeBonusList[i].Value = 0;
            //	}

            //	for (int i = 0; i < max; i++) {
            //		AttributeBonusList[i].Index = (CAbilityEnum.AttributeType)i;
            //		AttributeBonusList[i].Value = 1f;
            //	}
        }
示例#2
0
        //sent to the player taking spike damage and map TP drains
        private void _handleEffectSpec(OldPacket pkt)
        {
            //1 in eoserv Map::TimedDrains - tp
            //2 in eoserv Character::SpikeDamage
            EffectDamageType damageType = (EffectDamageType)pkt.GetChar();

            switch (damageType)
            {
            case EffectDamageType.TimedDrainTP:
            {
                short amount = pkt.GetShort();
                short tp     = pkt.GetShort();
                short maxtp  = pkt.GetShort();

                if (OnTimedMapDrainTP != null)
                {
                    OnTimedMapDrainTP(amount, tp, maxtp);
                }
            }
            break;

            case EffectDamageType.SpikeDamage:
            {
                short damage = pkt.GetShort();
                short hp     = pkt.GetShort();
                short maxhp  = pkt.GetShort();

                if (OnPlayerTakeSpikeDamage != null)
                {
                    OnPlayerTakeSpikeDamage(damage, hp, maxhp);
                }
            }
            break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }