public EndRound(Entities.Room r, Enums.Team winningTeam)
     : base((ushort)Enums.Packets.GamePacket)
 {
     Append(1);
     Append(-1);
     Append(r.ID);
     Append(1);
     Append(6);                 // TYPE
     Append(0);                 // ?
     Append(1);                 // ?
     Append((byte)winningTeam); // Winning Team ID
     Append(r.CurrentGameMode.CurrentRoundTeamA());
     Append(r.CurrentGameMode.CurrentRoundTeamB());
     Append(5); // Remaining Rounds?
     Append(0);
     Append(92);
     Append(-1);
     Append(0);
     Append(0);
     Append(1200000);
     Append(-900000);
     Append(1200000);
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append("0.0000");
     Append(0);
     Append(0);
     Append("DS05");
 }
예제 #2
0
 public void SetCurrentTurn(Enums.Team team)
 {
     currentTeamTurn = team;
     if (currentTeamTurn == Enums.Team.Left)
     {
         teamRight.SetTurn(true);
     }
     else
     {
         teamLeft.SetTurn(true);
     }
 }
예제 #3
0
        public EndGame(Entities.Room r, Entities.Player[] players, Enums.Team winningTeam)
            : base((ushort)Enums.Packets.EndGame)
        {
            int[] teamKills  = new int[] { 0, 0 };
            int[] teamDeaths = new int[] { 0, 0 };

            teamKills[(byte)Enums.Team.Derbaran]  = players.Where(n => n.Team == Enums.Team.Derbaran).Sum(n => n.Kills);
            teamKills[(byte)Enums.Team.NIU]       = players.Where(n => n.Team == Enums.Team.NIU).Sum(n => n.Kills);
            teamDeaths[(byte)Enums.Team.Derbaran] = players.Where(n => n.Team == Enums.Team.Derbaran).Sum(n => n.Deaths);
            teamDeaths[(byte)Enums.Team.NIU]      = players.Where(n => n.Team == Enums.Team.NIU).Sum(n => n.Deaths);

            Append(Core.Constants.Error_OK);

            if (r.CurrentGameMode != null)                     //random crash
            {
                Append(r.CurrentGameMode.CurrentRoundTeamA()); //DERBARAN ROUNDS
                Append(r.CurrentGameMode.CurrentRoundTeamB()); //NIU ROUNDS
            }
            else
            {
                Fill(2, 0);
                Log.Instance.WriteDev("FFA Crash stopped"); //TODO
            }


            Append(teamKills[(byte)Enums.Team.Derbaran]);
            Append(teamDeaths[(byte)Enums.Team.Derbaran]);
            Append(teamKills[(byte)Enums.Team.NIU]);
            Append(teamDeaths[(byte)Enums.Team.NIU]);
            Append(0);
            Append(0);
            Append(players.Length);
            for (byte i = 0; i < players.Length; i++)
            {
                Entities.Player plr = players[i];
                Append(plr.Id);          // Slot
                Append(plr.Kills);       // Kills
                Append(plr.Deaths);      // Deaths
                Append(plr.Flags);       //Flags
                Append(plr.Points);      // Points
                Append(plr.MoneyEarned); // Dinar earned
                Append(plr.XPEarned);    // Exp earned
                Append(plr.User.XP);     // Player Exp
            }

            Append(r.Master);
        }
예제 #4
0
    IEnumerator StartCoolDown(TeamUi teamUi, float coolDownTime)
    {
        float totalTime = coolDownTime;

        totalTime -= Time.deltaTime;
        while (totalTime > 0)
        {
            float percent = Helper.GetRatePercent01(totalTime, 0, coolDownTime);
            teamUi.filler.fillAmount = percent;
            yield return(null);
        }

        //Stop the turn
        if (totalTime <= 0)
        {
            MatchHandler.instance.OnCooldownDone(currentTeam);
            currentTeam = Enums.Team.None;
        }
    }
예제 #5
0
    public void OnGoal(string goalTag)
    {
        bool foul = kickOff;

        if (kickOff)
        {
            print("Foul");
        }

        if (!updateGaols)
        {
            return;
        }
        timePaused  = true;
        updateGaols = false;
        Team team = null;

        kickOff       = true;
        canChangeTurn = false;

        if (!foul)
        {
            if (goalTag == GoalLeftTag)
            {
                team = goals[Enums.GoalId.Left];
                team.goalCount++;
                currentTeamTurn = team.team;
            }
            else if (goalTag == GoalRightTag)
            {
                team = goals[Enums.GoalId.Right];
                team.goalCount++;
                currentTeamTurn = team.team;
            }
            MatchUiManager.instance.UpdateTeamGoalCount(team);
        }


        Invoke(nameof(ResetSquadPositions), 2);
    }
예제 #6
0
        public EndGame(Entities.Room r, Entities.Player[] players, Enums.Team winningTeam)
            : base((ushort)Enums.Packets.EndGame)
        {
            int[] teamKills  = new int[] { 0, 0 };
            int[] teamDeaths = new int[] { 0, 0 };

            teamKills[(byte)Enums.Team.Derbaran]  = players.Where(n => n.Team == Enums.Team.Derbaran).Sum(n => n.Kills);
            teamKills[(byte)Enums.Team.NIU]       = players.Where(n => n.Team == Enums.Team.NIU).Sum(n => n.Kills);
            teamDeaths[(byte)Enums.Team.Derbaran] = players.Where(n => n.Team == Enums.Team.Derbaran).Sum(n => n.Deaths);
            teamDeaths[(byte)Enums.Team.NIU]      = players.Where(n => n.Team == Enums.Team.NIU).Sum(n => n.Deaths);

            // ACTUAL PACKET //
            Append(Core.Constants.Error_OK);
            Append(r.CurrentGameMode.CurrentRoundTeamA());
            Append(r.CurrentGameMode.CurrentRoundTeamB());

            Append(teamKills[(byte)Enums.Team.Derbaran]);
            Append(teamDeaths[(byte)Enums.Team.Derbaran]);
            Append(teamKills[(byte)Enums.Team.NIU]);
            Append(teamDeaths[(byte)Enums.Team.NIU]);

            Append(0);     // ?
            Append(0);     // ?

            Append(players.Length);
            for (byte i = 0; i < players.Length; i++)
            {
                Entities.Player plr = players[i];
                Append(plr.Id);          // Slot
                Append(plr.Kills);       // Kills
                Append(plr.Deaths);      // Deaths
                Append(plr.Flags);       //Flags
                Append(plr.Points);      // Points
                Append(plr.MoneyEarned); // Dinar earned
                Append(plr.XPEarned);    // Exp earned
                Append(plr.User.XP);     // Player Exp
            }

            Append(r.Master);
        }
예제 #7
0
 public byte GetSpawnFlag(Enums.Team team)
 {
     return(this.SpawnFlags[(byte)team]);
 }
예제 #8
0
 public void OnCooldownDone(Enums.Team team)
 {
     if (team == currentTeamTurn)
     {
     }
 }
예제 #9
0
 public void SetCurrentTurn(Enums.Team team, float coolDown)
 {
     currentTeam     = team;
     coolDownRoutine = StartCoroutine(StartCoolDown(teams.Where(x => x.team == team).FirstOrDefault(), coolDown));
 }
 public void SetTeam(Enums.Team team)
 {
     Team = team;
 }