Files
abysmal-isle/Scripts/Scripts-master/Commands/CharacterSheet.cs
Unstable Kitsune b918192e4e Overwrite
Complete Overwrite of the Folder with the free shard. ServUO 57.3 has been added.
2023-11-28 23:20:26 -05:00

181 lines
9.2 KiB
C#

using System;
using Server;
using Server.Gumps;
using Server.Items;
using Server.Network;
using Server.Commands;
using Server.Targeting;
using Server.Mobiles;
namespace Server.Gumps
{
public class CharacterSheetDragon : Gump
{
public static void Initialize()
{
CommandSystem.Register("mystats", AccessLevel.Player, new CommandEventHandler(StatsDragon_OnCommand));
}
private static void StatsDragon_OnCommand(CommandEventArgs e)
{
e.Mobile.CloseGump(typeof(CharacterSheetDragon));
e.Mobile.SendGump(new CharacterSheetDragon(e.Mobile));
}
public CharacterSheetDragon(Mobile m)
: base( 208, 166 )
{
PlayerMobile pm = m as PlayerMobile;
// configuration
int LRCCap = 100;
int LMCCap = 40;
double BandageSpeedCap = 0.0;
int SwingSpeedCap = 125;
int HCICap = 45;
int DCICap = 45;
int FCCap = 4;
int FCRCap = 6;
int DamageIncreaseCap = 100;
int SDICap = 100;
int ReflectDamageCap = 50;
int SSICap = 100;
int LRC = AosAttributes.GetValue(pm, AosAttribute.LowerRegCost) > LRCCap ? LRCCap : AosAttributes.GetValue(pm, AosAttribute.LowerRegCost);
int LMC = AosAttributes.GetValue(pm, AosAttribute.LowerManaCost) > LMCCap ? LMCCap : AosAttributes.GetValue(pm, AosAttribute.LowerManaCost);
double BandageSpeed = (2.0 + (0.5 * ((double)(205 - pm.Dex) / 10))) < BandageSpeedCap ? BandageSpeedCap : (2.0 + (0.5 * ((double)(205 - pm.Dex) / 10)));
TimeSpan SwingSpeed = (pm.Weapon as BaseWeapon).GetDelay(pm) > TimeSpan.FromSeconds(SwingSpeedCap) ? TimeSpan.FromSeconds(SwingSpeedCap) : (pm.Weapon as BaseWeapon).GetDelay(pm);
int HCI = AosAttributes.GetValue(pm, AosAttribute.AttackChance) > HCICap ? HCICap : AosAttributes.GetValue(pm, AosAttribute.AttackChance);
int DCI = AosAttributes.GetValue(pm, AosAttribute.DefendChance) > DCICap ? DCICap : AosAttributes.GetValue(pm, AosAttribute.DefendChance);
int FC = AosAttributes.GetValue(pm, AosAttribute.CastSpeed) > FCCap ? FCCap : AosAttributes.GetValue(pm, AosAttribute.CastSpeed);
int FCR = AosAttributes.GetValue(pm, AosAttribute.CastRecovery) > FCRCap ? FCRCap : AosAttributes.GetValue(pm, AosAttribute.CastRecovery);
int DamageIncrease = AosAttributes.GetValue(pm, AosAttribute.WeaponDamage) > DamageIncreaseCap ? DamageIncreaseCap : AosAttributes.GetValue(pm, AosAttribute.WeaponDamage);
int SDI = AosAttributes.GetValue(pm, AosAttribute.SpellDamage) > SDICap ? SDICap : AosAttributes.GetValue(pm, AosAttribute.SpellDamage);
int ReflectDamage = AosAttributes.GetValue(pm, AosAttribute.ReflectPhysical) > ReflectDamageCap ? ReflectDamageCap : AosAttributes.GetValue(pm, AosAttribute.ReflectPhysical);
int SSI = AosAttributes.GetValue(pm, AosAttribute.WeaponSpeed) > SSICap ? SSICap : AosAttributes.GetValue(pm, AosAttribute.WeaponSpeed);
int hue = 1149;
this.Closable=true;
this.Disposable=true;
this.Dragable=true;
this.Resizable=false;
this.AddPage(0);
this.AddBackground(56, 56, 423, 340, 9270);
this.AddImage(443, 20, 10441);
this.AddImage(10, 20, 10440);
this.AddBackground(144, 20, 249, 42, 9270);
this.AddLabel(173, 31, 394, @"Lumyr Character Information");
/*********** STATS *****************/
this.AddLabel(75, 74, 394, @"Stats");
this.AddImage(75, 94, 9277);
this.AddImage(133, 94, 9277);
this.AddLabel(75, 106, 155, @"Strength:");
this.AddLabel(200, 106, hue, @"" + pm.RawStr + " + " + (pm.Str - pm.RawStr) + "");
this.AddLabel(76, 136, 155, @"Intelligence:");
this.AddLabel(200, 136, hue, @"" + pm.RawInt + " + " + (pm.Int - pm.RawInt) + "");
this.AddLabel(75, 121, 155, @"Dexterity:");
this.AddLabel(200, 121, hue, @"" + pm.RawDex + " + " + (pm.Dex - pm.RawDex) + "");
/*********** VITALS ****************/
this.AddLabel(75, 157, 394, @"Vitals");
this.AddLabel(217, 157, 394, @"Regen");
this.AddLabel(169, 157, 394, @"Bonus");
this.AddImage(75, 178, 9277);
this.AddImage(133, 178, 9277);
this.AddLabel(75, 190, 155, @"HP:");
this.AddLabel(105, 190, hue, @"" + pm.Hits + "/" + pm.HitsMax + "");
this.AddLabel(174, 190, hue, @"(+ " + AosAttributes.GetValue(pm, AosAttribute.BonusHits) + ")");
this.AddLabel(232, 190, hue, @"" + AosAttributes.GetValue(pm, AosAttribute.RegenHits) + "");
this.AddLabel(75, 205, 155, @"MP:");
this.AddLabel(105, 205, hue, @"" + pm.Mana + "/" + pm.ManaMax + "");
this.AddLabel(174, 205, hue, @"(+ " + AosAttributes.GetValue(pm, AosAttribute.BonusMana) + ")");
this.AddLabel(232, 205, hue, @"" + AosAttributes.GetValue(pm, AosAttribute.RegenMana) + "");
this.AddLabel(75, 220, 155, @"SP:");
this.AddLabel(105, 220, hue, @"" + pm.Stam + "/" + pm.StamMax + "");
this.AddLabel(174, 220, hue, @"(+ " + AosAttributes.GetValue(pm, AosAttribute.BonusStam) + ")");
this.AddLabel(232, 220, hue, @"" + AosAttributes.GetValue(pm, AosAttribute.RegenStam) + "");
/************ POINTS ************/
this.AddLabel(75, 240, 394, @"Points");
this.AddImage(75, 260, 9277);
this.AddImage(133, 260, 9277);
this.AddLabel(75, 270, 155, @"Tithing Points:");
this.AddLabel(182, 270, hue, @"" + pm.TithingPoints + "");
this.AddLabel(75, 285, 155, @"Karma:");
this.AddLabel(182, 285, hue, @"" + pm.Karma + "");
this.AddLabel(75, 300, 155, @"Fame:");
this.AddLabel(182, 300, hue, @"" + pm.Fame + "");
this.AddLabel(75, 315, 155, @"Player Kills:");
this.AddLabel(182, 315, hue, @"" + pm.Kills + "");
this.AddLabel(75, 330, 155, @"Followers:");
this.AddLabel(182, 330, hue, @"" + pm.Followers + "/" + pm.FollowersMax + "");
// Setup Damage
IWeapon weapon = m.Weapon;
int min = 0, max = 0;
if (weapon != null)
weapon.GetStatusDamage(m, out min, out max);
this.AddLabel(75, 345, 155, @"Damage:");
this.AddLabel(182, 345, hue, @"" + min + " - " + max + "");
this.AddLabel(75, 360, 155, @"Luck:");
this.AddLabel(182, 360, hue, @"" + pm.Luck + "");
/************* CHAR INFO *********************/
this.AddLabel(272, 74, 394, @"Character Information");
this.AddImage(272, 94, 9277);
this.AddImage(330, 94, 9277);
this.AddLabel(272, 106, 93, @"" + pm.Name + "");
this.AddLabel(272, 126, 155, @"LRC:");
this.AddLabel(304, 126, hue, @"" + LRC + " %");
this.AddLabel(350, 126, 155, @"LMC:");
this.AddLabel(385, 126, hue, @"" + LMC + " %");
this.AddLabel(272, 146, 155, @"FC:");
this.AddLabel(305, 146, hue, @"" + FC + "");
this.AddLabel(350, 146, 155, @"FCR:");
this.AddLabel(385, 146, hue, @"" + FCR + "");
this.AddLabel(273, 166, 155, @"SDI:");
this.AddLabel(305, 166, hue, @"" + SDI + " %");
this.AddLabel(350, 166, 155, @"SSI:");
this.AddLabel(385, 166, hue, @"" + SSI + " %");
this.AddLabel(273, 186, 155, @"HCI:");
this.AddLabel(305, 186, hue, @"" + HCI + " %");
this.AddLabel(350, 186, 155, @"DCI:");
this.AddLabel(385, 186, hue, @"" + DCI + " %");
this.AddLabel(273, 206, 155, @"Damage Increase:");
this.AddLabel(385, 206, hue, @"" + DamageIncrease + " %");
this.AddLabel(273, 226, 155, @"Bandage Speed:");
this.AddLabel(385, 226, hue, String.Format("{0:0.0}s", new DateTime(TimeSpan.FromSeconds(BandageSpeed).Ticks).ToString("s.ff")));
this.AddLabel(273, 246, 155, @"Swing Speed:");
this.AddLabel(385, 246, hue, String.Format("{0}s", new DateTime(SwingSpeed.Ticks).ToString("s.ff")));
this.AddLabel(273, 266, 155, @"Reflect Damage:");
this.AddLabel(385, 266, hue, @"" + ReflectDamage + " %");
// Setup Weight
int weight = Mobile.BodyWeight + m.TotalWeight;
this.AddLabel(273, 286, 155, @"Weight:");
this.AddLabel(385, 286, hue, @"" + weight + "/" + pm.MaxWeight + "");
this.AddLabel(273, 306, 155, @"Skill Total:");
this.AddLabel(385, 306, hue, @"" + pm.SkillsTotal + "");
/************* MONEY ***************/
//Lets Setup the Box as the Characters BankBox
BankBox box = pm.BankBox;
this.AddLabel(272, 331, 394, @"Loose Coins");
this.AddLabel(362, 331, 394, @"Carried/Bank");
this.AddImage(272, 351, 9277);
this.AddImage(330, 351, 9277);
this.AddLabel(276, 360, 144, @"Gold");
this.AddLabel(330, 360, hue, @"" + pm.TotalGold + "/" + Banker.GetBalance( pm ).ToString());
}
}
}