From be7538a243dbfabbe8677ec67c2c70a25e960bb5 Mon Sep 17 00:00:00 2001 From: WarrentyExpired Date: Fri, 7 Aug 2026 18:06:05 -0400 Subject: [PATCH] #W# Added bandage self command. --- Scripts/Commands/BandSelf.cs | 75 ++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 Scripts/Commands/BandSelf.cs diff --git a/Scripts/Commands/BandSelf.cs b/Scripts/Commands/BandSelf.cs new file mode 100644 index 0000000..1094120 --- /dev/null +++ b/Scripts/Commands/BandSelf.cs @@ -0,0 +1,75 @@ +using System; +using Server; +using Server.Items; +using Server.Commands; +using Server.Mobiles; + +namespace Server.Commands +{ + public class BandSelf + { + public static void Initialize() + { + CommandSystem.Register("Bandself", AccessLevel.Player, new CommandEventHandler(Bandself_OnCommand)); + } + + [Usage("Bandself")] + [Description("Uses a bandage from the player's backpack on themselves.")] + public static void Bandself_OnCommand(CommandEventArgs e) + { + Mobile from = e.Mobile; + + if (BandageContext.GetContext(from) != null) + { + from.SendMessage( 33, "You are already applying a bandage." ); + return; + } + + EnchantedBandage enchanted = from.Backpack.FindItemByType(); + + if (enchanted != null && enchanted.Charges > 0) + { + if ( EnchantedBandage.CooldownTable.ContainsKey( from ) && EnchantedBandage.CooldownTable[from] > DateTime.UtcNow ) + { + from.SendMessage( 33, "You must wait a moment before using an enchanted bandage again." ); + return; + } + + if (Utility.RandomDouble() < 0.30) + { + from.Poison = null; + from.Hits = from.HitsMax; + + from.PlaySound(0x1F2); + from.FixedParticles(0x376A, 9, 32, 5030, EffectLayer.Waist); + from.SendMessage(63, "The enchanted bandage glows brightly, instantly curing and fully healing you!"); + + EnchantedBandage.CooldownTable[from] = DateTime.UtcNow + TimeSpan.FromSeconds( 5 ); + } + else + { + if (BandageContext.BeginHeal(from, from) != null) + { + enchanted.Charges--; + } + } + + return; + } + + Bandage bandage = from.Backpack.FindItemByType(); + + if (bandage != null) + { + if (BandageContext.BeginHeal(from, from) != null) + { + bandage.Consume(); + } + } + else + { + from.SendMessage("You do not have any bandages in your backpack."); + } + } + } +}