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; // } }
//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(); } }