public bool Demolish(Mobile by) { CharacterStatueDeed deed = new CharacterStatueDeed(null); if (by.PlaceInBackpack(deed)) { Delete(); deed.Statue = this; deed.StatueType = m_Type; deed.IsRewardItem = m_IsRewardItem; if (m_Plinth != null) { m_Plinth.Delete(); } return(true); } else { by.SendLocalizedMessage(500720); // You don't have enough room in your backpack! deed.Delete(); return(false); } }
public bool Demolish(Mobile m) { var deed = new CharacterStatueDeed(null); if (m.PlaceInBackpack(deed)) { Delete(); deed.Statue = this; deed.StatueType = m_Type; if (Plinth != null) { Plinth.Delete(); Plinth = null; } return(true); } m.SendLocalizedMessage(500720); // You don't have enough room in your backpack! deed.Delete(); return(false); }
public void Demolish(Mobile by) { CharacterStatueDeed deed = new CharacterStatueDeed(null); if (by.PlaceInBackpack(deed)) { Internalize(); deed.Statue = this; if (m_Plinth != null) { m_Plinth.Internalize(); } } else { by.SendLocalizedMessage(500720); // You don't have enough room in your backpack! deed.Delete(); } }
public void Demolish(Mobile by) { CharacterStatueDeed deed = new CharacterStatueDeed(null); if (by.PlaceInBackpack(deed)) { by.CloseGump(typeof(CharacterStatueGump)); //They don't get the deed back twice Internalize(); deed.Statue = this; deed.IsRewardItem = m_IsRewardItem; if (m_Plinth != null) { m_Plinth.Internalize(); } } else { by.SendLocalizedMessage(500720); // You don't have enough room in your backpack! deed.Delete(); } }
protected override void OnTarget(Mobile from, object targeted) { IPoint3D p = targeted as IPoint3D; Map map = from.Map; if (p == null || map == null || m_Maker == null || m_Maker.Deleted) { return; } if (m_Maker.IsChildOf(from.Backpack)) { SpellHelper.GetSurfaceTop(ref p); BaseHouse house = null; Point3D loc = new Point3D(p); if (targeted is Item && !((Item)targeted).IsLockedDown && !((Item)targeted).IsSecure && !(targeted is AddonComponent)) { from.SendLocalizedMessage(1076191); // Statues can only be placed in houses. return; } else if (from.IsBodyMod) { from.SendLocalizedMessage(1073648); // You may only proceed while in your original state... return; } AddonFitResult result = CouldFit(loc, map, from, ref house); if (result == AddonFitResult.Valid || from.AccessLevel >= AccessLevel.GameMaster) { CharacterStatue statue = new CharacterStatue(from, m_Type); CharacterStatuePlinth plinth = new CharacterStatuePlinth(statue); if (house != null) { house.Addons.Add(plinth); } if (m_Maker is IRewardItem) { statue.IsRewardItem = ((IRewardItem)m_Maker).IsRewardItem; } statue.Plinth = plinth; plinth.Hue = statue.Hue; plinth.MoveToWorld(loc, map); statue.InvalidatePose(); CharacterStatue backup = null; CharacterStatueDeed deed = m_Maker as CharacterStatueDeed; if (deed != null) { backup = deed.Statue; deed.Delete(true); } else { m_Maker.Delete(); } CharacterStatue.CloseGump(from); from.SendGump(new CharacterStatueGump(statue, from, backup)); } else if (result == AddonFitResult.Blocked) { from.SendLocalizedMessage(500269); // You cannot build that there. } else if (result == AddonFitResult.NotInHouse) { from.SendLocalizedMessage(1076192); // Statues can only be placed in houses where you are the owner or co-owner. } //else if ( result == AddonFitResult.DoorsNotClosed ) // from.SendMessage( "You must close all house doors before placing this." ); else if (result == AddonFitResult.DoorTooClose) { from.SendLocalizedMessage(500271); // You cannot build near the door. } } else { from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it. } }