public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); _Style = (BombermanStyle)reader.ReadInt(); _DefaultMaxBombs = reader.ReadInt(); _DefaultBombStrength = reader.ReadInt(); _DefaultDetonatorMode = reader.ReadBool(); _DefaultBaddaBoom = reader.ReadBool(); int count = reader.ReadInt(); for (int i = 0; i < count; i++) { BombBags.Add((BombBag)reader.ReadItem()); } }
protected override void PrimePlayers() { base.PrimePlayers(); for (int i = 0; i < Players.Count; i++) { Mobile player = Players[i]; Point3D movepoint; switch (i) { case 0: { movepoint = new Point3D(X + BoardOffset.X + 1, Y + BoardOffset.Y + 1, Z + BoardOffset.Z); break; } case 1: { movepoint = new Point3D(X + BoardOffset.X + BoardWidth - 2, Y + BoardOffset.Y + 1, Z + BoardOffset.Z); break; } case 2: { movepoint = new Point3D(X + BoardOffset.X + 1, Y + BoardOffset.Y + BoardHeight - 2, Z + BoardOffset.Z); break; } case 3: { movepoint = new Point3D(X + BoardOffset.X + +BoardWidth - 2, Y + BoardOffset.Y + +BoardHeight - 2, Z + BoardOffset.Z); break; } case 4: { movepoint = new Point3D(X + BoardOffset.X + BoardWidth / 2, Y + BoardOffset.Y + 1, Z + BoardOffset.Z); break; } case 5: { movepoint = new Point3D(X + BoardOffset.X + BoardWidth - 2, Y + BoardOffset.Y + BoardHeight / 2, Z + BoardOffset.Z); break; } case 6: { movepoint = new Point3D(X + BoardOffset.X + BoardWidth / 2, Y + BoardOffset.Y + BoardHeight - 2, Z + BoardOffset.Z); break; } case 7: default: { movepoint = new Point3D(X + BoardOffset.X + 1, Y + BoardOffset.Y + BoardHeight / 2, Z + BoardOffset.Z); break; } } player.MoveToWorld(movepoint, BoardMap); BombBag bag = new BombBag(this, _DefaultMaxBombs, _DefaultBombStrength); BombBags.Add(bag); bag.Owner = player; player.Backpack.DropItem(bag); if (_DefaultDetonatorMode) { BombDetonator detonator = new BombDetonator(bag); bag.Detonator = detonator; player.Backpack.DropItem(detonator); } bag.BaddaBoom = _DefaultBaddaBoom; } }