public FourCannonAddon(CannonDirection direction) { m_CannonDirection = direction; switch (direction) { case CannonDirection.North: { AddComponent(new FourLBCannon(0x44F5), 0, 0, 0); AddComponent(new FourLBCannon(0x44F4), 0, 1, 0); AddComponent(new FourLBCannon(0x44F3), 0, 2, 0); break; } case CannonDirection.East: { AddComponent(new FourLBCannon(0x44F6), 0, 0, 0); AddComponent(new FourLBCannon(0x44F7), -1, 0, 0); AddComponent(new FourLBCannon(0x44F8), -2, 0, 0); break; } default: { AddComponent(new FourLBCannon(0x44F5), 0, 0, 0); AddComponent(new FourLBCannon(0x44F4), 1, 0, 0); AddComponent(new FourLBCannon(0x44F3), 2, 0, 0); break; } } }
public FortyEightCannonAddon(CannonDirection direction) { m_CannonDirection = direction; switch (direction) { case CannonDirection.South: { AddComponent(new FortyEightLBShipCannon(0x4220), 0, 0, 0); AddComponent(new FortyEightLBShipCannon(0x4221), 0, 1, 0); AddComponent(new FortyEightLBShipCannon(0x4222), 0, 2, 0); break; } case CannonDirection.West: { AddComponent(new FortyEightLBShipCannon(0x4223), 0, 0, 0); AddComponent(new FortyEightLBShipCannon(0x424A), -1, 0, 0); AddComponent(new FortyEightLBShipCannon(0x418F), -2, 0, 0); break; } default: { AddComponent(new FortyEightLBShipCannon(0x4220), 0, 0, 0); AddComponent(new FortyEightLBShipCannon(0x4221), 0, 1, 0); AddComponent(new FortyEightLBShipCannon(0x4222), 0, 2, 0); break; } } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); m_CannonDirection = (CannonDirection)reader.ReadInt(); }
public void OnOptionSelected(Mobile from, int option) { m_Direction = (CannonDirection)option; if (!Deleted) { base.OnDoubleClick(from); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); /*int version = */ reader.ReadInt(); m_CannonDirection = (CannonDirection)reader.ReadEncodedInt(); m_Canoneer = (MilitiaCanoneer)reader.ReadMobile(); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); m_CannonDirection = (CannonDirection)reader.ReadInt(); m_Charges = reader.ReadInt(); m_IsRewardItem = reader.ReadBool(); }
private void CreateCannon(GameEntity entity, CannonDirection direction) { entity.ReplaceLayer(2); entity.AddLayerResetting(2); entity.isRemoverSensitive = true; entity.isCanBeActivatedByNearMatch = true; entity.isCantHaveBubbleOnTop = true; entity.isBottomCellBlocking = true; entity.AddGenerator(GeneratorType.Item); entity.AddItemToGenerate(BeachBall); entity.AddGoalToGenerate(GoalType.BeachBall); entity.AddGenerationAmount(3); entity.AddGeneratorRadius(GeneratorRadius.All); entity.AddGoalEffectType(GoalEffectType.Decrease); entity.AddCannonDirection(direction); }
public ZombieCannonAddon(CannonDirection direction) { Name = "Zombie Annihilator Mk. II"; m_CannonDirection = direction; switch (direction) { case CannonDirection.North: { AddComponent(new NewFireableCannonAddonComponent(0xE8D), 0, 0, 0); AddComponent(new NewFireableCannonAddonComponent(0xE8C), 0, 1, 0); AddComponent(new NewFireableCannonAddonComponent(0xE8B), 0, 2, 0); break; } case CannonDirection.East: { AddComponent(new NewFireableCannonAddonComponent(0xE96), 0, 0, 0); AddComponent(new NewFireableCannonAddonComponent(0xE95), -1, 0, 0); AddComponent(new NewFireableCannonAddonComponent(0xE94), -2, 0, 0); break; } case CannonDirection.South: { AddComponent(new NewFireableCannonAddonComponent(0xE91), 0, 0, 0); AddComponent(new NewFireableCannonAddonComponent(0xE92), 0, -1, 0); AddComponent(new NewFireableCannonAddonComponent(0xE93), 0, -2, 0); break; } default: { AddComponent(new NewFireableCannonAddonComponent(0xE8E), 0, 0, 0); AddComponent(new NewFireableCannonAddonComponent(0xE8F), 1, 0, 0); AddComponent(new NewFireableCannonAddonComponent(0xE90), 2, 0, 0); break; } } }
public CannonAddon(CannonDirection direction) { m_CannonDirection = direction; switch (direction) { case CannonDirection.North: { AddComponent(new CannonAddonComponent(0xE8D), 0, 0, 0); AddComponent(new CannonAddonComponent(0xE8C), 0, 1, 0); AddComponent(new CannonAddonComponent(0xE8B), 0, 2, 0); break; } case CannonDirection.East: { AddComponent(new CannonAddonComponent(0xE96), 0, 0, 0); AddComponent(new CannonAddonComponent(0xE95), -1, 0, 0); AddComponent(new CannonAddonComponent(0xE94), -2, 0, 0); break; } case CannonDirection.South: { AddComponent(new CannonAddonComponent(0xE91), 0, 0, 0); AddComponent(new CannonAddonComponent(0xE92), 0, -1, 0); AddComponent(new CannonAddonComponent(0xE93), 0, -2, 0); break; } default: { AddComponent(new CannonAddonComponent(0xE8E), 0, 0, 0); AddComponent(new CannonAddonComponent(0xE8F), 1, 0, 0); AddComponent(new CannonAddonComponent(0xE90), 2, 0, 0); break; } } }
public Cannon(CannonDirection direction) { m_CannonDirection = direction; switch (direction) { case CannonDirection.North: { AddComponent(new CannonComponent(0xE8D, this), 0, 0, 0); AddComponent(new CannonComponent(0xE8C, this), 0, 1, 0); AddComponent(new CannonComponent(0xE8B, this), 0, 2, 0); break; } case CannonDirection.East: { AddComponent(new CannonComponent(0xE96, this), 0, 0, 0); AddComponent(new CannonComponent(0xE95, this), -1, 0, 0); AddComponent(new CannonComponent(0xE94, this), -2, 0, 0); break; } case CannonDirection.South: { AddComponent(new CannonComponent(0xE91, this), 0, 0, 0); AddComponent(new CannonComponent(0xE92, this), 0, -1, 0); AddComponent(new CannonComponent(0xE93, this), 0, -2, 0); break; } default: { AddComponent(new CannonComponent(0xE8E, this), 0, 0, 0); AddComponent(new CannonComponent(0xE8F, this), 1, 0, 0); AddComponent(new CannonComponent(0xE90, this), 2, 0, 0); break; } } }
public FourShipCannonAddon(CannonDirection direction) { m_CannonDirection = direction; switch (direction) { case CannonDirection.North: { AddComponent(new FourLBShipCannon(0x4218), 0, 0, 0); break; } case CannonDirection.East: { AddComponent(new FourLBShipCannon(0x4219), 0, 0, 0); break; } case CannonDirection.South: { AddComponent(new FourLBShipCannon(0x4216), 0, 0, 0); break; } case CannonDirection.West: { AddComponent(new FourLBShipCannon(0x4217), 0, 0, 0); break; } default: { AddComponent(new FourLBShipCannon(0x4218), 0, 0, 0); break; } } }
public EighteenCannonAddon(CannonDirection direction) { m_CannonDirection = direction; switch (direction) { case CannonDirection.North: { AddComponent(new EighteenLBShipCannon(0x421C), 0, 0, 0); break; } case CannonDirection.East: { AddComponent(new EighteenLBShipCannon(0x421D), 0, 0, 0); break; } case CannonDirection.South: { AddComponent(new EighteenLBShipCannon(0x421A), 0, 0, 0); break; } case CannonDirection.West: { AddComponent(new EighteenLBShipCannon(0x421B), 0, 0, 0); break; } default: { AddComponent(new EighteenLBShipCannon(0x421C), 0, 0, 0); break; } } }
public CannonAddon( CannonDirection direction ) { m_CannonDirection = direction; switch ( direction ) { case CannonDirection.North: { AddComponent( new CannonAddonComponent( 0xE8D ), 0, 0, 0 ); AddComponent( new CannonAddonComponent( 0xE8C ), 0, 1, 0 ); AddComponent( new CannonAddonComponent( 0xE8B ), 0, 2, 0 ); break; } case CannonDirection.East: { AddComponent( new CannonAddonComponent( 0xE96 ), 0, 0, 0 ); AddComponent( new CannonAddonComponent( 0xE95 ), -1, 0, 0 ); AddComponent( new CannonAddonComponent( 0xE94 ), -2, 0, 0 ); break; } case CannonDirection.South: { AddComponent( new CannonAddonComponent( 0xE91 ), 0, 0, 0 ); AddComponent( new CannonAddonComponent( 0xE92 ), 0, -1, 0 ); AddComponent( new CannonAddonComponent( 0xE93 ), 0, -2, 0 ); break; } default: { AddComponent( new CannonAddonComponent( 0xE8E ), 0, 0, 0 ); AddComponent( new CannonAddonComponent( 0xE8F ), 1, 0, 0 ); AddComponent( new CannonAddonComponent( 0xE90 ), 2, 0, 0 ); break; } } }
public void OnOptionSelected(Mobile from, int option) { m_Direction = (CannonDirection) option; if (!Deleted) { base.OnDoubleClick(from); } }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadEncodedInt(); m_CannonDirection = (CannonDirection) reader.ReadInt(); }
private void RandomizeCannonType() { cannonDirection = (CannonDirection)random.Next(0, 4); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); this.m_CannonDirection = (CannonDirection)reader.ReadEncodedInt(); this.m_Canoneer = (MilitiaCanoneer)reader.ReadMobile(); }
public Item Construct() { Item item; try { if (m_Type == typeofStatic) { item = new Static(m_ItemID); } else if (m_Type == typeofLocalizedStatic) { int labelNumber = 0; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("LabelNumber")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { labelNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf)); break; } } } item = new LocalizedStatic(m_ItemID, labelNumber); } else if (m_Type == typeofLocalizedSign) { int labelNumber = 0; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("LabelNumber")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { labelNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf)); break; } } } item = new LocalizedSign(m_ItemID, labelNumber); } else if (m_Type == typeofAnkhWest || m_Type == typeofAnkhNorth) { bool bloodied = false; for (int i = 0; !bloodied && i < m_Params.Length; ++i) { bloodied = (m_Params[i] == "Bloodied"); } if (m_Type == typeofAnkhWest) { item = new AnkhWest(bloodied); } else { item = new AnkhNorth(bloodied); } } else if (m_Type == typeofMarkContainer) { bool bone = false; bool locked = false; Map map = Map.Malas; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i] == "Bone") { bone = true; } else if (m_Params[i] == "Locked") { locked = true; } else if (m_Params[i].StartsWith("TargetMap")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { map = Map.Parse(m_Params[i].Substring(++indexOf)); } } } MarkContainer mc = new MarkContainer(bone, locked); mc.TargetMap = map; mc.Description = "strange location"; item = mc; } else if (m_Type == typeofHintItem) { int range = 0; int messageNumber = 0; string messageString = null; int hintNumber = 0; string hintString = null; TimeSpan resetDelay = TimeSpan.Zero; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("Range")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { range = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("WarningString")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { messageString = m_Params[i].Substring(++indexOf); } } else if (m_Params[i].StartsWith("WarningNumber")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { messageNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("HintString")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { hintString = m_Params[i].Substring(++indexOf); } } else if (m_Params[i].StartsWith("HintNumber")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { hintNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("ResetDelay")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { resetDelay = TimeSpan.Parse(m_Params[i].Substring(++indexOf)); } } } HintItem hi = new HintItem(m_ItemID, range, messageNumber, hintNumber); hi.WarningString = messageString; hi.HintString = hintString; hi.ResetDelay = resetDelay; item = hi; } else if (m_Type == typeofWarningItem) { int range = 0; int messageNumber = 0; string messageString = null; TimeSpan resetDelay = TimeSpan.Zero; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("Range")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { range = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("WarningString")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { messageString = m_Params[i].Substring(++indexOf); } } else if (m_Params[i].StartsWith("WarningNumber")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { messageNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("ResetDelay")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { resetDelay = TimeSpan.Parse(m_Params[i].Substring(++indexOf)); } } } WarningItem wi = new WarningItem(m_ItemID, range, messageNumber); wi.WarningString = messageString; wi.ResetDelay = resetDelay; item = wi; } else if (m_Type == typeofCannon) { CannonDirection direction = CannonDirection.North; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("CannonDirection")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { direction = (CannonDirection)Enum.Parse(typeof(CannonDirection), m_Params[i].Substring(++indexOf), true); } } } item = new Cannon(direction); } else if (m_Type == typeofSerpentPillar) { string word = null; Rectangle2D destination = new Rectangle2D(); for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("Word")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { word = m_Params[i].Substring(++indexOf); } } else if (m_Params[i].StartsWith("DestStart")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { destination.Start = Point2D.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("DestEnd")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { destination.End = Point2D.Parse(m_Params[i].Substring(++indexOf)); } } } item = new SerpentPillar(word, destination); } else if (m_Type.IsSubclassOf(typeofBeverage)) { BeverageType content = BeverageType.Liquor; bool fill = false; for (int i = 0; !fill && i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("Content")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { content = (BeverageType)Enum.Parse(typeof(BeverageType), m_Params[i].Substring(++indexOf), true); fill = true; } } } if (fill) { item = (Item)Activator.CreateInstance(m_Type, new object[] { content }); } else { item = (Item)Activator.CreateInstance(m_Type); } } else if (m_Type.IsSubclassOf(typeofBaseDoor)) { DoorFacing facing = DoorFacing.WestCW; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("Facing")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { facing = (DoorFacing)Enum.Parse(typeof(DoorFacing), m_Params[i].Substring(++indexOf), true); break; } } } item = (Item)Activator.CreateInstance(m_Type, new object[] { facing }); } else { item = (Item)Activator.CreateInstance(m_Type); } } catch (Exception e) { throw new Exception(String.Format("Bad type: {0}", m_Type), e); } if (item is BaseAddon) { if (item is MaabusCoffin) { MaabusCoffin coffin = (MaabusCoffin)item; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("SpawnLocation")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { coffin.SpawnLocation = Point3D.Parse(m_Params[i].Substring(++indexOf)); } } } } else if (m_ItemID > 0) { List <AddonComponent> comps = ((BaseAddon)item).Components; for (int i = 0; i < comps.Count; ++i) { AddonComponent comp = (AddonComponent)comps[i]; if (comp.Offset == Point3D.Zero) { comp.ItemID = m_ItemID; } } } } else if (item is BaseLight) { bool unlit = false, unprotected = false; for (int i = 0; i < m_Params.Length; ++i) { if (!unlit && m_Params[i] == "Unlit") { unlit = true; } else if (!unprotected && m_Params[i] == "Unprotected") { unprotected = true; } if (unlit && unprotected) { break; } } if (!unlit) { ((BaseLight)item).Ignite(); } if (!unprotected) { ((BaseLight)item).Protected = true; } if (m_ItemID > 0) { item.ItemID = m_ItemID; } } else if (item is Server.Mobiles.Spawner) { Server.Mobiles.Spawner sp = (Server.Mobiles.Spawner)item; sp.NextSpawn = TimeSpan.Zero; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("Spawn")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { sp.CreaturesName.Add(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("MinDelay")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { sp.MinDelay = TimeSpan.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("MaxDelay")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { sp.MaxDelay = TimeSpan.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("NextSpawn")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { sp.NextSpawn = TimeSpan.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Count")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { sp.Count = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Team")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { sp.Team = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("HomeRange")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { sp.HomeRange = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Running")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { sp.Running = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Group")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { sp.Group = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } } } else if (item is RecallRune) { RecallRune rune = (RecallRune)item; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("Description")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { rune.Description = m_Params[i].Substring(++indexOf); } } else if (m_Params[i].StartsWith("Marked")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { rune.Marked = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("TargetMap")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { rune.TargetMap = Map.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Target")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { rune.Target = Point3D.Parse(m_Params[i].Substring(++indexOf)); } } } } else if (item is SkillTeleporter) { SkillTeleporter tp = (SkillTeleporter)item; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("Skill")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Skill = (SkillName)Enum.Parse(typeof(SkillName), m_Params[i].Substring(++indexOf), true); } } else if (m_Params[i].StartsWith("RequiredFixedPoint")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Required = Utility.ToInt32(m_Params[i].Substring(++indexOf)) * 0.01; } } else if (m_Params[i].StartsWith("Required")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Required = Utility.ToDouble(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("MessageString")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.MessageString = m_Params[i].Substring(++indexOf); } } else if (m_Params[i].StartsWith("MessageNumber")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.MessageNumber = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("PointDest")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.PointDest = Point3D.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("MapDest")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.MapDest = Map.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Creatures")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Creatures = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("SourceEffect")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.SourceEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("DestEffect")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.DestEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("SoundID")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.SoundID = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Delay")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Delay = TimeSpan.Parse(m_Params[i].Substring(++indexOf)); } } } if (m_ItemID > 0) { item.ItemID = m_ItemID; } } else if (item is KeywordTeleporter) { KeywordTeleporter tp = (KeywordTeleporter)item; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("Substring")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Substring = m_Params[i].Substring(++indexOf); } } else if (m_Params[i].StartsWith("Keyword")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Keyword = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Range")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Range = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("PointDest")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.PointDest = Point3D.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("MapDest")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.MapDest = Map.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Creatures")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Creatures = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("SourceEffect")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.SourceEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("DestEffect")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.DestEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("SoundID")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.SoundID = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Delay")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Delay = TimeSpan.Parse(m_Params[i].Substring(++indexOf)); } } } if (m_ItemID > 0) { item.ItemID = m_ItemID; } } else if (item is Teleporter) { Teleporter tp = (Teleporter)item; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("PointDest")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.PointDest = Point3D.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("MapDest")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.MapDest = Map.Parse(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Creatures")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Creatures = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("SourceEffect")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.SourceEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("DestEffect")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.DestEffect = Utility.ToBoolean(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("SoundID")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.SoundID = Utility.ToInt32(m_Params[i].Substring(++indexOf)); } } else if (m_Params[i].StartsWith("Delay")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { tp.Delay = TimeSpan.Parse(m_Params[i].Substring(++indexOf)); } } } if (m_ItemID > 0) { item.ItemID = m_ItemID; } } else if (item is FillableContainer) { FillableContainer cont = (FillableContainer)item; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("ContentType")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { cont.ContentType = (FillableContentType)Enum.Parse(typeof(FillableContentType), m_Params[i].Substring(++indexOf), true); } } } if (m_ItemID > 0) { item.ItemID = m_ItemID; } } else if (m_ItemID > 0) { item.ItemID = m_ItemID; } item.Movable = false; for (int i = 0; i < m_Params.Length; ++i) { if (m_Params[i].StartsWith("Light")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { item.Light = (LightType)Enum.Parse(typeof(LightType), m_Params[i].Substring(++indexOf), true); } } else if (m_Params[i].StartsWith("Hue")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { int hue = Utility.ToInt32(m_Params[i].Substring(++indexOf)); if (item is DyeTub) { ((DyeTub)item).DyedHue = hue; } else { item.Hue = hue; } } } else if (m_Params[i].StartsWith("Name")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { item.Name = m_Params[i].Substring(++indexOf); } } else if (m_Params[i].StartsWith("Amount")) { int indexOf = m_Params[i].IndexOf('='); if (indexOf >= 0) { // Must supress stackable warnings bool wasStackable = item.Stackable; item.Stackable = true; item.Amount = Utility.ToInt32(m_Params[i].Substring(++indexOf)); item.Stackable = wasStackable; } } } return(item); }
public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadEncodedInt(); m_CannonDirection = (CannonDirection) reader.ReadInt(); m_Charges = reader.ReadInt(); m_IsRewardItem = reader.ReadBool(); }