public void OnSelectVirtue(Mobile from, object target, object state) { BattleVirtue bv = target as BattleVirtue; ArrayList list = state as ArrayList; if (bv == null) { from.SendAsciiMessage(0x25, "Select the BattleVirtue to add the items to!"); from.BeginTarget(18, false, TargetFlags.None, new TargetStateCallback(OnSelectVirtue), state); return; } int count = 0; foreach (Item i in list) { if (i != bv && !bv.Decorations.Contains(i)) { bv.Decorations.Add(i); count++; } } from.SendAsciiMessage(count.ToString() + " items added to virtue."); }
public override void ExecuteList(CommandEventArgs e, ArrayList list) { BattleVirtue bv = null; foreach (Item item in list) { if (item is BattleVirtue) { if (bv != null) { LogFailure("You can only select one BattleVirtue at a time!"); return; } bv = item as BattleVirtue; } } if (bv == null) { e.Mobile.SendAsciiMessage("Select the BattleVirtue to add the items to."); e.Mobile.BeginTarget(18, false, TargetFlags.None, new TargetStateCallback(OnSelectVirtue), list); } else { OnSelectVirtue(e.Mobile, bv, list); } }
public BattleVirtueRegion(BattleVirtue ctrl, Rectangle2D area, Point3D goloc, Map map) : base(null, map, 100, area) { GoLocation = goloc; _Ctrl = ctrl; Register(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); TimeSpan duration = TimeSpan.Zero; int vCount = MaxVirtues; switch (version) { case 0: _Owner = reader.ReadInt(); _Buildings = reader.ReadStrongItemList <BattleBuilding>(); _UnownedHue = reader.ReadInt(); vCount = reader.ReadInt(); for (int i = 0; i < vCount; i++) { BattleVirtue bv = reader.ReadItem <BattleVirtue>(); if (i < MaxVirtues) { _Virtues[i] = bv; } } duration = reader.ReadTimeSpan(); _Day = (DayOfWeek)reader.ReadInt(); _Hour = reader.ReadTimeSpan(); _Length = reader.ReadTimeSpan(); _PreBattleLen = reader.ReadTimeSpan(); _PostBattleLen = reader.ReadTimeSpan(); _Enabled = reader.ReadBool(); break; } if (duration > TimeSpan.Zero) { _EndTime = DateTime.Now + duration + TimeSpan.FromMinutes(1); // 1 minute accounts for world load delay } else { _EndTime = DateTime.MinValue; } ResetTimers(); Timer.DelayCall(TimeSpan.Zero, new TimerCallback(OnLoad)); }