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