public void Add(StageTraits traits) { var s = new Stage(traits); s.GetTraits().Ruleset = new Deathmatch(s); _stages.Add(s); }
public void CreateClanwar(List<Client> red, List<Client> blue) { var traits = new StageTraits(); traits.StageId = Globals.StageCounter.GetNext(); traits.Name = "LADDER_GAME"; traits.MaxPlayers = (byte)(red.Count + blue.Count); traits.RoundCount = 4; traits.Locked = true; traits.Gametype = ObjectStageGameType.TeamDeathMatch; traits.Password = "******"; traits.Master = red[0]; traits.Map = "Town"; //default for now traits.CurrentMap = Globals.Maps.GetMap(traits.Map); traits.WinThePoint = true; var stage = new Stage(traits); traits.Ruleset = new TeamDeathmatch(stage); foreach (var client in red) { client.ClientPlayer.PlayerTeam = Team.Red; stage.Join(client); StagePackets.LadderPrepare(client, (int)Team.Red); } StagePackets.ResponseSettings(red, traits); foreach (var client in blue) { client.ClientPlayer.PlayerTeam = Team.Blue; stage.Join(client); StagePackets.LadderPrepare(client, (int)Team.Blue); } StagePackets.ResponseSettings(blue, traits); traits.Ruleset.GameStartCallback(red[0], true); }
public BaseGametype(Stage stage, ObjectStageGameType gameType) { _stage = stage; _gameType = gameType; }
public Deathmatch(Stage stage) : base(stage, ObjectStageGameType.DeathMatch) { }
public static void ResponseStageMaster(List<Client> clients, Stage stage) { using (var packet = new PacketWriter(Operation.StageMaster, CryptFlags.Encrypt)) { packet.Write(stage.GetTraits().StageId); packet.Write(stage.GetTraits().Master.GetMuid()); clients.ForEach(c => c.Send(packet)); } }
public Quest(Stage stage) : base(stage, ObjectStageGameType.Quest) { }
public Berserker(Stage stage) : base(stage, ObjectStageGameType.Berserker) { }
public Assassination(Stage currentStage) : base(currentStage, ObjectStageGameType.Assassination) { }
public void Remove(Stage stage) { _stages.Remove(stage); }
public int Index(Stage stage) { return _stages.IndexOf(stage); }
public Duel(Stage stage) : base(stage, ObjectStageGameType.Duel) { }
public TeamDeathmatch(Stage currentStage) : base(currentStage, ObjectStageGameType.TeamDeathMatch) { }
public bool StageExists(Stage stage) { return _stages.Find(stage.GetTraits().StageId) != null; }
public void Remove(Stage stage) { lock (_objectLock) { _stages.Remove(stage); } }