public override void OnDoubleClick(Mobile from) { if (from is TeiravonMobile) { TeiravonMobile m_Player = (TeiravonMobile)from; if (m_Player.IsShifted() && m_Player.Shapeshifted) { m_Player.SendMessage("You cannot apply bandages while shapeshifted."); return; } } if (from.InRange(GetWorldLocation(), Core.AOS ? 2 : 1)) { from.RevealingAction(); from.SendLocalizedMessage(500948); // Who will you use the bandages on? from.Target = new InternalTarget(this); } else { from.SendLocalizedMessage(500295); // You are too far away to do that. } }
public override void OnResponse(Server.Network.NetState sender, RelayInfo info) { switch (info.ButtonID) { case (int)Buttons.CAdd1: AddTransformation(1); break; case (int)Buttons.CAdd2: AddTransformation(2); break; case (int)Buttons.CAdd3: AddTransformation(3); break; case (int)Buttons.CAdd4: AddTransformation(4); break; case (int)Buttons.CAdd5: AddTransformation(5); break; case (int)Buttons.CAdd6: AddTransformation(6); break; case (int)Buttons.CAdd7: AddTransformation(7); break; case (int)Buttons.CDelete1: DeleteSlot(1, m_Player); break; case (int)Buttons.CDelete2: DeleteSlot(2, m_Player); break; case (int)Buttons.CDelete3: DeleteSlot(3, m_Player); break; case (int)Buttons.CDelete4: DeleteSlot(4, m_Player); break; case (int)Buttons.CDelete5: DeleteSlot(5, m_Player); break; case (int)Buttons.CDelete6: DeleteSlot(6, m_Player); break; case (int)Buttons.CDelete7: DeleteSlot(7, m_Player); break; case (int)Buttons.Information: m_Player.SendMessage("Target a creature."); m_Player.Target = new TransformationInformation(m_Player); break; case (int)Buttons.CTransform1: if (m_Player.IsShifted() || m_Player.Shapeshifted) { NoTransform(m_Player, 1); } else if (NextTransform(m_Player)) { break; } else { ShapeshiftFunctions(true, 1, m_Player); } break; case (int)Buttons.CTransform2: if (m_Player.IsShifted() || m_Player.Shapeshifted) { NoTransform(m_Player, 2); } else if (NextTransform(m_Player)) { break; } else { ShapeshiftFunctions(true, 2, m_Player); } break; case (int)Buttons.CTransform3: if (m_Player.IsShifted() || m_Player.Shapeshifted) { NoTransform(m_Player, 3); } else if (NextTransform(m_Player)) { break; } else { ShapeshiftFunctions(true, 3, m_Player); } break; case (int)Buttons.CTransform4: if (m_Player.IsShifted() || m_Player.Shapeshifted) { NoTransform(m_Player, 4); } else if (NextTransform(m_Player)) { break; } else { ShapeshiftFunctions(true, 4, m_Player); } break; case (int)Buttons.CTransform5: if (m_Player.IsShifted() || m_Player.Shapeshifted) { NoTransform(m_Player, 5); } else if (NextTransform(m_Player)) { break; } else { ShapeshiftFunctions(true, 5, m_Player); } break; case (int)Buttons.CTransform6: if (m_Player.IsShifted() || m_Player.Shapeshifted) { NoTransform(m_Player, 6); } else if (NextTransform(m_Player)) { break; } else { ShapeshiftFunctions(true, 6, m_Player); } break; case (int)Buttons.CTransform7: if (m_Player.IsShifted() || m_Player.Shapeshifted) { NoTransform(m_Player, 7); } else if (NextTransform(m_Player)) { break; } else { ShapeshiftFunctions(true, 7, m_Player); } break; case (int)Buttons.Cancel: ShapeshiftFunctions(false, 1, m_Player); break; default: break; } }
public NewShapeshiftGump(TeiravonMobile from) : base(0, 0) { m_Player = from; max = 1 + m_Player.PlayerLevel / (m_Player.IsShapeshifter()? 4 : 7); if (max > 7) { max = 7; } Closable = true; Disposable = true; Dragable = true; Resizable = false; m_Player = (TeiravonMobile)from; m_Player.CloseGump(typeof(NewShapeshiftGump)); this.AddPage(0); AddBackground(312, 10, 30 + (max * 98), 140, 9260); //this.AddImage(328, -5, 30061); //this.AddImage(328, 55 + (max * 82), 30077); //AddLabel(355, 115, 2930, @"Evaluate creature"); AddButton(330, 120, 22153, 22155, (int)Buttons.Information, GumpButtonType.Reply, 0); if (m_Player.IsShifted() && m_Player.Shapeshifted) { //AddLabel(401, 487, 2930, @"Undo transformation"); AddButton(276 + ((30 + (max * 98))), 112, 5052, 5053, (int)Buttons.Cancel, GumpButtonType.Reply, 0); } bool DeleteTime = false; if (m_Player.ShapeshiftSlotDelete <= DateTime.Now) { DeleteTime = true; } switch (max) { case 1: if (FilledSlot(1, m_Player)) { FullSlot((int)Buttons.CTransform1, 1, m_Player); if (DeleteTime) { DeleteButton((int)Buttons.CDelete1, 1); } } else { EmptySlot((int)Buttons.CAdd1, 1); } break; case 2: if (FilledSlot(2, m_Player)) { FullSlot((int)Buttons.CTransform2, 2, m_Player); if (DeleteTime) { DeleteButton((int)Buttons.CDelete2, 2); } } else { EmptySlot((int)Buttons.CAdd2, 2); } goto case 1; case 3: if (FilledSlot(3, m_Player)) { FullSlot((int)Buttons.CTransform3, 3, m_Player); if (DeleteTime) { DeleteButton((int)Buttons.CDelete3, 3); } } else { EmptySlot((int)Buttons.CAdd3, 3); } goto case 2; case 4: if (FilledSlot(4, m_Player)) { FullSlot((int)Buttons.CTransform4, 4, m_Player); if (DeleteTime) { DeleteButton((int)Buttons.CDelete4, 4); } } else { EmptySlot((int)Buttons.CAdd4, 4); } goto case 3; case 5: if (FilledSlot(5, m_Player)) { FullSlot((int)Buttons.CTransform5, 5, m_Player); if (DeleteTime) { DeleteButton((int)Buttons.CDelete5, 5); } } else { EmptySlot((int)Buttons.CAdd5, 5); } goto case 4; case 6: if (FilledSlot(6, m_Player)) { FullSlot((int)Buttons.CTransform6, 6, m_Player); if (DeleteTime) { DeleteButton((int)Buttons.CDelete6, 6); } } else { EmptySlot((int)Buttons.CAdd6, 6); } goto case 5; case 7: if (FilledSlot(7, m_Player)) { FullSlot((int)Buttons.CTransform7, 7, m_Player); if (DeleteTime) { DeleteButton((int)Buttons.CDelete7, 7); } } else { EmptySlot((int)Buttons.CAdd7, 7); } goto case 6; default: break; } }
public static int ComputeLevelFor(Mobile from) { if (m_LevelOverride > int.MinValue) { return(m_LevelOverride); } bool teiravon = false; bool drow = false; bool lowlight = false; bool shapeshifted = false; if (from is TeiravonMobile) { teiravon = true; TeiravonMobile m_Player = (TeiravonMobile)from; if (m_Player.IsDrow()) { drow = true; } else if (m_Player.IsElf() || m_Player.IsDwarf() || m_Player.IsDuergar() || m_Player.IsOrc() || m_Player.IsHalfElf() || m_Player.IsGoblin() || m_Player.IsGnome()) { lowlight = true; } else if (m_Player.IsShifted() && m_Player.Shapeshifted) { shapeshifted = true; } } int hours, minutes; Server.Items.Clock.GetTime(from.Map, from.X, from.Y, out hours, out minutes); /* OSI times: * * Midnight -> 3:59 AM : Night * 4:00 AM -> 11:59 PM : Day * * RunUO times: * * 10:00 PM -> 11:59 PM : Scale to night * Midnight -> 3:59 AM : Night * 4:00 AM -> 5:59 AM : Scale to day * 6:00 AM -> 9:59 PM : Day * * Drow times: * * 10:00 PM -> 11:59 PM : Scale to day * Midnight -> 3:59 AM : Day * 4:00 AM -> 5:59 AM : Scale to night * 6:00 AM -> 9:59 PM : Night */ if (!teiravon) { if (hours < 4) { return(NightLevel); } if (hours < 6) { return(NightLevel + (((((hours - 4) * 60) + minutes) * (DayLevel - NightLevel)) / 120)); } if (hours < 22) { return(DayLevel); } if (hours < 24) { return(DayLevel + (((((hours - 22) * 60) + minutes) * (NightLevel - DayLevel)) / 120)); } } else { if (!drow && !lowlight && !shapeshifted) { // No Low-Light vision or Infravision if (hours < 4) { return(NightLevel); } if (hours < 6) { return(NightLevel + (((((hours - 4) * 60) + minutes) * (DayLevel - NightLevel)) / 120)); } if (hours < 22) { return(DayLevel); } if (hours < 24) { return(DayLevel + (((((hours - 22) * 60) + minutes) * (NightLevel - DayLevel)) / 120)); } } else if (shapeshifted && !drow) { if (hours < 4) //goes from 10 to 5 { return(10 - ((((hours * 60) + minutes) * 5) / 240)); } if (hours < 6) //goes from 5 -> 0 { return(5 - (((((hours - 4) * 60) + minutes) * 5) / 120)); } if (hours < 22) //is zero during daytime { return(DayLevel); } if (hours < 24) //goes from 0 -> 10 { return(DayLevel + (((((hours - 22) * 60) + minutes) * 10) / 120)); } } else if (lowlight) { // Low-Light vision if (hours < 4) //goes from 12 to 6 { return(12 - ((((hours * 60) + minutes) * 6) / 240)); } if (hours < 6) //goes from 6 to 0 { return(6 - (((((hours - 4) * 60) + minutes) * 6) / 120)); } if (hours < 22) //zero { return(DayLevel); } if (hours < 24) //goes from 0 to 12 { return(DayLevel + (((((hours - 22) * 60) + minutes) * 12) / 120)); } } else { // Simulate Drow infravision int light = 0; if (hours < 4) { return(DayLevel); } if (hours < 6) { light = DayLevel + (((((hours - 4) * 60) + minutes) * (NightLevel - DayLevel)) / 120); return(((light > DungeonLevel) || (light < 0)) ? DungeonLevel : light); } if (hours < 22) { return(NightLevel); } if (hours < 24) { light = NightLevel + (((((hours - 22) * 60) + minutes) * (DayLevel - NightLevel)) / 120); return(((light > DungeonLevel) || (light < 0)) ? DungeonLevel : light); } } } return(NightLevel); // should never be }
public override void OnDoubleClick(Mobile from) { //STARTMOD: Teiravon if (!from.CanBeginAction(typeof(BattleNet))) { from.SendMessage("You cannot do this yet."); } if (from is TeiravonMobile) { TeiravonMobile m_Player = (TeiravonMobile)from; if ((m_Player.IsShapeshifter() || m_Player.IsForester()) && (m_Player.Shapeshifted || m_Player.IsShifted())) { m_Player.SendMessage("You cannot use nets while shapeshifted."); return; } } if (IsChildOf(from.Backpack)) { from.SendMessage("Who is your target?"); from.BeginTarget(-1, true, TargetFlags.None, new TargetCallback(OnTarget)); } else { from.SendLocalizedMessage(1042001); // That must be in your pack for you to use it. } }
public override void OnDoubleClick(Mobile from) { if (!Movable || !from.CanBeginAction(typeof(BasePotion))) { return; } if (from.InRange(this.GetWorldLocation(), 1)) { //STARTMOD: Teiravon if (from is TeiravonMobile) { TeiravonMobile m_Player = (TeiravonMobile)from; if ((m_Player.IsShapeshifter() || m_Player.IsForester()) && (m_Player.Shapeshifted || m_Player.IsShifted())) { m_Player.SendMessage("You cannot use potions while shapeshifted."); return; } } //ENDMOD: Teiravon if (!RequireFreeHand || HasFreeHand(from)) { Drink(from); } else { from.SendLocalizedMessage(502172); // You must have a free hand to drink a potion. } } else { from.SendLocalizedMessage(502138); // That is too far away for you to use } }