コード例 #1
0
ファイル: StageList.cs プロジェクト: Theoretical/bunnyemu
        public void Add(StageTraits traits)
        {
            var s = new Stage(traits);
            s.GetTraits().Ruleset = new Deathmatch(s);

            _stages.Add(s);
        }
コード例 #2
0
ファイル: StageList.cs プロジェクト: Theoretical/bunnyemu
        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);
        }
コード例 #3
0
ファイル: BaseGametype.cs プロジェクト: Theoretical/bunnyemu
 public BaseGametype(Stage stage, ObjectStageGameType gameType)
 {
     _stage = stage;
     _gameType = gameType;
 }
コード例 #4
0
ファイル: Deathmatch.cs プロジェクト: Theoretical/bunnyemu
 public Deathmatch(Stage stage)
     : base(stage, ObjectStageGameType.DeathMatch)
 {
 }
コード例 #5
0
ファイル: StagePackets.cs プロジェクト: Theoretical/bunnyemu
        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));
            }
        }
コード例 #6
0
ファイル: Quest.cs プロジェクト: Theoretical/bunnyemu
 public Quest(Stage stage)
     : base(stage, ObjectStageGameType.Quest)
 {
 }
コード例 #7
0
ファイル: Berserker.cs プロジェクト: Theoretical/bunnyemu
 public Berserker(Stage stage)
     : base(stage, ObjectStageGameType.Berserker)
 {
 }
コード例 #8
0
ファイル: Assassination.cs プロジェクト: Theoretical/bunnyemu
 public Assassination(Stage currentStage)
     : base(currentStage, ObjectStageGameType.Assassination)
 {
 }
コード例 #9
0
ファイル: StageList.cs プロジェクト: Theoretical/bunnyemu
 public void Remove(Stage stage)
 {
     _stages.Remove(stage);
 }
コード例 #10
0
ファイル: StageList.cs プロジェクト: Theoretical/bunnyemu
 public int Index(Stage stage)
 {
     return _stages.IndexOf(stage);
 }
コード例 #11
0
ファイル: Duel.cs プロジェクト: Theoretical/bunnyemu
 public Duel(Stage stage)
     : base(stage, ObjectStageGameType.Duel)
 {
 }
コード例 #12
0
 public TeamDeathmatch(Stage currentStage)
     : base(currentStage, ObjectStageGameType.TeamDeathMatch)
 {
 }
コード例 #13
0
ファイル: Channel.cs プロジェクト: Theoretical/bunnyemu
 public bool StageExists(Stage stage)
 {
     return _stages.Find(stage.GetTraits().StageId) != null;
 }
コード例 #14
0
ファイル: Channel.cs プロジェクト: Theoretical/bunnyemu
 public void Remove(Stage stage)
 {
     lock (_objectLock)
     {
         _stages.Remove(stage);
     }
 }