Beispiel #1
0
        public void ShowInfo(Creature creature)
        {
            var targetInfo = PlayerManager.GetOnlinePlayer(creature.DebugDamageTarget);

            if (targetInfo == null)
            {
                creature.DebugDamage = Creature.DebugDamageType.None;
                return;
            }

            // setup
            var info = $"Attacker: {Attacker.Name} ({Attacker.Guid})\n";

            info += $"Defender: {Defender.Name} ({Defender.Guid})\n";

            info += $"CombatType: {CombatType}\n";

            info += $"DamageSource: {DamageSource.Name} ({DamageSource.Guid})\n";
            info += $"DamageType: {DamageType}\n";

            var weaponName = Weapon != null ? $"{Weapon.Name} ({Weapon.Guid})" : "None\n";

            info += $"Weapon: {weaponName}\n";

            info += $"AttackType: {AttackType}\n";
            info += $"AttackHeight: {AttackHeight}\n";

            // lifestone protection
            info += $"LifestoneProtection: {LifestoneProtection}\n";

            // evade
            info += $"AccuracyMod: {AccuracyMod}\n";
            info += $"EffectiveAttackSkill: {EffectiveAttackSkill}\n";
            info += $"EffectiveDefenseSkill: {EffectiveDefenseSkill}\n";

            if (Attacker.Overpower != null)
            {
                info += $"Overpower: {Overpower} ({Creature.GetOverpowerChance(Attacker, Defender)})\n";
            }

            info += $"EvasionChance: {EvasionChance}\n";
            info += $"Evaded: {Evaded}\n";

            if (!(Attacker is Player))
            {
                if (AttackMotion != null)
                {
                    info += $"AttackMotion: {AttackMotion}\n";
                }
                if (AttackPart.Value != null)
                {
                    info += $"AttackPart: {AttackPart.Key}\n";
                }
            }

            // base damage
            if (BaseDamageMod != null)
            {
                info += $"BaseDamageRange: {BaseDamageMod.Range}\n";
            }


            info += $"BaseDamage: {BaseDamage}\n";

            // damage modifiers
            info += $"AttributeMod: {AttributeMod}\n";
            info += $"PowerMod: {PowerMod}\n";
            info += $"SlayerMod: {SlayerMod}\n";

            if (BaseDamageMod != null)
            {
                info += $"ElementalDamageBonus: {BaseDamageMod.ElementalBonus}\n";
                info += $"MissileWeaponModifier: {BaseDamageMod.DamageMod}\n";
                info += $"BloodDrinker/ThirstTotal: {BaseDamageMod.DamageBonus}\n";
            }

            // damage ratings
            if (!(Defender is Player))
            {
                info += $"DamageRatingBaseMod: {DamageRatingBaseMod}\n";
            }

            info += $"HeritageMod: {HeritageMod}\n";
            info += $"RecklessnessMod: {RecklessnessMod}\n";
            info += $"SneakAttackMod: {SneakAttackMod}\n";
            info += $"DamageRatingMod: {DamageRatingMod}\n";

            // critical hit
            info += $"CriticalChance: {CriticalChance}\n";
            info += $"CriticalHit: {IsCritical}\n";
            info += $"CriticalDefended: {CriticalDefended}\n";
            info += $"CriticalDamageMod: {CriticalDamageMod}\n";

            if (BodyPart != 0)
            {
                // player body part
                info += $"BodyPart: {BodyPart}\n";
            }
            if (Armor != null && Armor.Count > 0)
            {
                info += $"Armors: {string.Join(", ", Armor.Select(i => i.Name))}\n";
            }

            if (CreaturePart != null)
            {
                // creature body part
                info += $"BodyPart: {PropertiesBodyPart.Key}\n";
                info += $"BaseArmor: {CreaturePart.Biota.Value.BaseArmor}\n";
            }

            // damage mitigation
            info += $"ArmorMod: {ArmorMod}\n";
            info += $"ResistanceMod: {ResistanceMod}\n";
            info += $"ShieldMod: {ShieldMod}\n";
            info += $"WeaponResistanceMod: {WeaponResistanceMod}\n";

            info += $"DamageResistanceRatingMod: {DamageResistanceRatingMod}\n";

            if (IgnoreMagicArmor)
            {
                info += $"IgnoreMagicArmor: {IgnoreMagicArmor}\n";
            }
            if (IgnoreMagicResist)
            {
                info += $"IgnoreMagicResist: {IgnoreMagicResist}\n";
            }

            // final damage
            info += $"DamageBeforeMitigation: {DamageBeforeMitigation}\n";
            info += $"DamageMitigated: {DamageMitigated}\n";
            info += $"Damage: {Damage}\n";

            info += "----";

            targetInfo.Session.Network.EnqueueSend(new GameMessageSystemChat(info, ChatMessageType.Broadcast));
        }