Exemple #1
0
    // Token: 0x06003F10 RID: 16144 RVA: 0x0013DE5C File Offset: 0x0013C25C
    public void UpdateTeams()
    {
        Array       values     = Enum.GetValues(typeof(PunTeams.Team));
        IEnumerator enumerator = values.GetEnumerator();

        try
        {
            while (enumerator.MoveNext())
            {
                object obj = enumerator.Current;
                PunTeams.PlayersPerTeam[(PunTeams.Team)obj].Clear();
            }
        }
        finally
        {
            IDisposable disposable;
            if ((disposable = (enumerator as IDisposable)) != null)
            {
                disposable.Dispose();
            }
        }
        for (int i = 0; i < PhotonNetwork.playerList.Length; i++)
        {
            PhotonPlayer  photonPlayer = PhotonNetwork.playerList[i];
            PunTeams.Team team         = photonPlayer.GetTeam();
            PunTeams.PlayersPerTeam[team].Add(photonPlayer);
        }
    }
Exemple #2
0
    void Shoot(float speed, PunTeams.Team team, Vector3 spawnPos, float damage, int photonId, int shooter)
    {
        GameObject bullet = Instantiate(Minion.bulletPrefab, spawnPos, transform.rotation);
        Bullet     b      = bullet.GetComponent <Bullet>();

        b.Setup(damage, team, transform.position, photonId, shooter);
    }
Exemple #3
0
        /// <summary>
        /// Update button color and text
        /// </summary>
        public void UpdateButton()
        {
            assignedPlayer = null;
            for (int i = 0; i < PhotonNetwork.playerList.Length; i++)
            {
                PhotonPlayer  player     = PhotonNetwork.playerList[i];
                PunTeams.Team playerTeam = player.GetTeam();
                PunTeams.Role playerRole = player.GetRole();

                if ((playerTeam == team) && (playerRole == role))
                {
                    assignedPlayer = player;
                    break;
                }
            }

            if (assignedPlayer != null)
            {
                image.color = Color.red;
                text.text   = assignedPlayer.NickName;
            }
            else
            {
                image.color = Color.green;
                text.text   = "<empty>";
            }
        }
Exemple #4
0
    public void InitHPAndTeam(float hp, float maxHP, PunTeams.Team team, string n)
    {
        Team      = team;
        Health    = hp;
        maxHealth = maxHP;
        Name      = n;

        if ((photonView.isMine) & (!isBot))
        {
            Game.PlayerHP = Health;
        }

        plyMat = Instantiate(GetComponent <Renderer>().material) as Material;
        if (team == PunTeams.Team.red)
        {
            plyMat.color = Color.red;
        }
        else if (team == PunTeams.Team.blue)
        {
            plyMat.color = Color.blue;
        }

        foreach (Transform child in transform)
        {
            if (child.GetComponent <Renderer>())
            {
                child.GetComponent <Renderer>().material = plyMat;
            }
        }

        GetComponent <Renderer>().material = plyMat;
    }
Exemple #5
0
    public void VictoryOrDefeatScreen(PunTeams.Team losingTeam)
    {
        PunTeams.Team playerTeam = PhotonNetwork.player.GetTeam();

        if (losingTeam == PunTeams.Team.blue)
        {
            if (playerTeam == PunTeams.Team.red)
            {
                GameObject.Find("VictoryCamera").GetComponent <Camera>().enabled = true;
            }
            else if (playerTeam == PunTeams.Team.blue)
            {
                GameObject.Find("DefeatCamera").GetComponent <Camera>().enabled = true;
            }
        }
        else if (losingTeam == PunTeams.Team.red)
        {
            if (playerTeam == PunTeams.Team.blue)
            {
                GameObject.Find("VictoryCamera").GetComponent <Camera>().enabled = true;
            }
            else if (playerTeam == PunTeams.Team.red)
            {
                GameObject.Find("DefeatCamera").GetComponent <Camera>().enabled = true;
            }
        }
    }
Exemple #6
0
    public virtual void AddBots()
    {
        if (!HasOptionBotCount)
        {
            return;
        }
        int addAmount = BotCount;

        Bots.Clear();
        // Adjust bot count
        int maxPlayers = PhotonNetwork.room.MaxPlayers;

        if (networkManager.isConnectOffline)
        {
            maxPlayers = networkManager.maxConnections;
        }
        if (PhotonNetwork.room.PlayerCount + addAmount > maxPlayers)
        {
            addAmount = maxPlayers - PhotonNetwork.room.PlayerCount;
        }
        for (var i = 0; i < addAmount; ++i)
        {
            var character = NewBot();
            if (IsTeamGameplay)
            {
                character.playerTeam = tempTeam = (tempTeam == PunTeams.Team.red ? PunTeams.Team.blue : PunTeams.Team.red);
            }
            networkManager.RegisterCharacter(character);
            Bots.Add(character);
        }
    }
    public void PerformTurn(string teamName, int x, int y)
    {
        if (State == GameState.YouLost | State == GameState.YouWon | State == GameState.Tie)
        {
            return;
        }

        IntVector2 coordinates = new IntVector2(x, y);

        PunTeams.Team team = Helpers.ParseEnum <PunTeams.Team>(teamName);

        if (team == PunTeams.Team.none | State == GameState.WaitingForRestart)
        {
            return;
        }

        if (team == PunTeams.Team.X && State == GameState.WaitingForTurnByX ||
            team == PunTeams.Team.O && State == GameState.WaitingForTurnByO)
        {
            if (Grid.get.PerformTurn(coordinates, team))
            {
                State = State == GameState.WaitingForTurnByX ? GameState.WaitingForTurnByO : (State == GameState.WaitingForTurnByO ? GameState.WaitingForTurnByX : State);
            }
        }
    }
Exemple #8
0
    void OnVictory(PunTeams.Team winningTeam)
    {
        if (!victory)
        {
            victory = true;
            GameObject losingNexus;
            if (winningTeam == PunTeams.Team.blue)
            {
                losingNexus = GameObject.Find("Red Nexus");
            }
            else
            {
                losingNexus = GameObject.Find("Blue Nexus");
            }

            // Prevent errors in trying to move the camera to something that doesn't exist
            if (losingNexus != null)
            {
                Vector3 pos = new Vector3(losingNexus.transform.position.x, 15f, losingNexus.transform.position.z - 15f);
                Camera.main.GetComponent <PlayerCamera>().SetEndOfGameTarget(pos, 1f);
            }

            // End the game
            StartCoroutine(VictoryEnum(winningTeam));
            if (onGameEnd != null)
            {
                onGameEnd();
            }
        }
    }
Exemple #9
0
    private void CreateBot(string _vehicle, PunTeams.Team _botTeam)
    {
        GameObject[] teamStartPoint = null;

        switch (_botTeam)
        {
        case PunTeams.Team.red:
            teamStartPoint = GameObject.FindGameObjectsWithTag("TeamAStartPoint");
            break;

        case PunTeams.Team.blue:
            teamStartPoint = GameObject.FindGameObjectsWithTag("TeamBStartPoint");
            break;
        }
        Vector3   airplaneOffsetHeight;
        Transform StartPoint = respawnPointModule.RandomStartPoint(teamStartPoint, false, out airplaneOffsetHeight);

        TankInitSystem vehicle = new GameObject("Vehicle", typeof(TankInitSystem)).GetComponent <TankInitSystem>();

        vehicle.VehicleName      = _vehicle;
        vehicle._InstanceNetType = InstanceNetType.GameNetworkBotOffline;
        vehicle.ownerTeam        = _botTeam;

        vehicle.BulletCountList = new int[] { 1000, 1000, 1000 };

        vehicle.InitTankInitSystem();
        vehicle.transform.position    = StartPoint.position;
        vehicle.transform.eulerAngles = StartPoint.eulerAngles;
    }
    private void CreatePlayerUI(PhotonPlayer player)
    {
        string key = player.UserId;

        DestroyPlayerUI(key);

        PunTeams.Team team      = player.GetTeam();
        Transform     container = waitingPlayerListContainer;
        Dictionary <string, UIPhotonWaitingPlayer> uiDict = waitingPlayers;

        switch (team)
        {
        case PunTeams.Team.red:
            container = waitingPlayerTeamAListContainer;
            uiDict    = waitingTeamAPlayers;
            break;

        case PunTeams.Team.blue:
            container = waitingPlayerTeamBListContainer;
            uiDict    = waitingTeamBPlayers;
            break;
        }
        UIPhotonWaitingPlayer newEntry = Instantiate(waitingPlayerPrefab, container);

        newEntry.SetData(this, player);
        newEntry.gameObject.SetActive(true);
        uiDict.Add(key, newEntry);

        players[player.UserId] = player;
    }
Exemple #11
0
 void Update()
 {
     if (photonPlayer.CustomProperties.ContainsValue(charID))
     {
         //nothin
     }
     else
     {
         photonPlayer.CustomProperties.TryGetValue("PlayerID", out newID);
         charID           = Convert.ToInt32(newID);
         character.sprite = playerImages[charID];
     }
     if (photonPlayer.GetTeam() != teamSet)
     {
         teamSet = photonPlayer.GetTeam();
         if (teamSet == PunTeams.Team.blue)
         {
             button.color = new Color32(92, 171, 229, 254);
         }
         else
         {
             button.color = new Color32(254, 73, 92, 254);
         }
     }
 }
Exemple #12
0
    /**
     * Create a message indicating which team has picked up the flag.
     */
    public void AddFlagPickupMessage(PunTeams.Team pickupTeam)
    {
        string teamStr = "";
        MColor color   = MColor.neutralTeam;

        switch (pickupTeam)
        {
        case PunTeams.Team.red:
            teamStr = "Red";
            color   = MColor.redTeam;
            break;

        case PunTeams.Team.blue:
            teamStr = "Blue";
            color   = MColor.blueTeam;
            break;

        case PunTeams.Team.none:
            teamStr = "Neutral";
            color   = MColor.neutralTeam;
            break;

        default:
            Debug.Assert(false, "Panic: Invalid team value");
            break;
        }

        string message = string.Format(">>> {0} team has the flag", teamStr);

        GetComponent <PhotonView>().RPC("AddTextMessage_RPC",
                                        PhotonTargets.AllBuffered, message, color);
    }
Exemple #13
0
 public void RPC_PlayerDead(PunTeams.Team team)
 {
     if (team == PunTeams.Team.blue)
     {
         if (PhotonNetwork.isMasterClient)
         {
             bluePlayers--;
         }
         if (bluePlayers <= 1)
         {
             redWin.SetActive(true);
             if (PhotonNetwork.isMasterClient)
             {
                 GetComponent <PhotonView>().RPC("RPC_SyncInt", PhotonTargets.All, true);
             }
             StartCoroutine(startNewRound());
         }
     }
     else
     {
         if (PhotonNetwork.isMasterClient)
         {
             redPlayers--;
         }
         if (redPlayers <= 1)
         {
             blueWin.SetActive(true);
             if (PhotonNetwork.isMasterClient)
             {
                 GetComponent <PhotonView>().RPC("RPC_SyncInt", PhotonTargets.All, false);
             }
             StartCoroutine(startNewRound());
         }
     }
 }
Exemple #14
0
 public void RPC_StartSpike(Vector3 location, PunTeams.Team team, int play)
 {
     teamOn   = team;
     player   = play;
     isSpiked = true;
     StartCoroutine(move(location));
 }
Exemple #15
0
    public override void TakeDamage(PunTeams.Team enemyTeam, int power)
    {
        int newBlood;

        if (bloodTeam != enemyTeam)
        {
            newBlood = curBlood - power;
            if (newBlood <= 0)
            {
                newBlood *= -1;
                bloodTeam = (enemyTeam);
            }
        }
        else
        {
            newBlood = curBlood + power;
            if (newBlood >= originBlood)
            {
                newBlood = originBlood;
                attackBase.OnTeamChanged(bloodTeam);
            }
        }
        if (newBlood != curBlood)
        {
            OnHealthChanged(newBlood);
        }
    }
Exemple #16
0
    /*public override void OnSend (NanoBuffers.NanoWriter writer)
     * {
     *      base.OnSend (writer);
     *      writer.put (targetPosition);
     * }
     *
     * public override void OnReceived (NanoBuffers.NanoReader reader)
     * {
     *      base.OnReceived (reader);
     *      reader.get (out targetPosition);
     *      Generate ();
     * }*/

    void Generate()
    {
        PunTeams.Team myTeam         = gameObject.PropertyComponent().myTeam;
        Vector3       targetPosition = GetEnermyQuanShui(myTeam);
        Vector3       pos            = transform.position;

        pos.y = 3;
        GameObject ins = null;
        int        rd  = Random.Range(0, 2);

        if (rd < 1)
        {
            ins = magician;
        }
        else
        {
            ins = soldier;
        }
        total++;
        GameObject obj = PhotonNetwork.InstantiateSceneObject(ins.name, pos, Quaternion.identity, 0, null);
        Property   p   = obj.PropertyComponent();

        p.myTeam = myTeam;
        (p as SoldierProperty).originDestination = targetPosition;
    }
Exemple #17
0
    public override void ChangeMaterial(PunTeams.Team newTeam)
    {
        base.ChangeMaterial(newTeam);
        Color newColor;

        if (newTeam == PunTeams.Team.none)
        {
            newColor = PunTeams.TeamColor [(int)newTeam];
        }
        else
        {
            if (newTeam == PhotonNetwork.player.GetTeam())
            {
                newColor = Color.blue;
            }
            else
            {
                newColor = Color.red;
            }
        }
        string[] str = { "Banners", "Crystal" };
        foreach (var s in str)
        {
            transform.Find(s).GetComponent <MeshRenderer> ().material.color = newColor;
        }
    }
    string GetButtonLabel(PunTeams.Team team)
    {
        GameObject[] playerObjects = GameObject.FindGameObjectsWithTag("Player");
        int          playerCount   = 0;

        for (int i = 0; i < playerObjects.Length; ++i)
        {
            if (playerObjects[i].GetPhotonView().owner.GetTeam() == team)
            {
                playerCount++;
            }
        }

        string label = team.ToString() + " team\n";

        label += playerCount.ToString();

        if (playerCount == 1)
        {
            label += " player";
        }
        else
        {
            label += " players";
        }

        return(label);
    }
 private void UpdatePlayerUI(PhotonPlayer player)
 {
     PunTeams.Team team = player.GetTeam();
     if (waitingPlayers.ContainsKey(player.UserId))
     {
         if (team != PunTeams.Team.none)
         {
             // If player team changed, recreate waiting player UI
             CreatePlayerUI(player);
             return;
         }
         waitingPlayers[player.UserId].SetData(this, player);
     }
     if (waitingTeamAPlayers.ContainsKey(player.UserId))
     {
         if (team != PunTeams.Team.red)
         {
             // If player team changed, recreate waiting player UI
             CreatePlayerUI(player);
             return;
         }
         waitingTeamAPlayers[player.UserId].SetData(this, player);
     }
     if (waitingTeamBPlayers.ContainsKey(player.UserId))
     {
         if (team != PunTeams.Team.blue)
         {
             // If player team changed, recreate waiting player UI
             CreatePlayerUI(player);
             return;
         }
         waitingTeamBPlayers[player.UserId].SetData(this, player);
     }
 }
Exemple #20
0
    public bool PerformTurn(IntVector2 coordinates, PunTeams.Team team)
    {
        bool result = tiles[coordinates.x, coordinates.y].Occupy(team == PunTeams.Team.X ? TileState.X : TileState.O);

        if (result)
        {
            turns += 1;
        }

        if (team == PhotonNetwork.player.GetTeam())
        {
            if (Victory())
            {
                if (OnGameOver != null)
                {
                    OnGameOver(PhotonNetwork.player.GetTeam());
                }
                result = false;
            }
            else if (turns == 9)
            {
                if (OnGameOver != null)
                {
                    OnGameOver(PunTeams.Team.none);
                }
                result = false;
            }
        }

        return(result);
    }
 protected virtual void OnShowSkill(SkillType skillID, Vector3 pos)
 {
     if (skillID == SkillType.BianShen)
     {
         Skill      skill        = GetSkill((int)skillID);
         GameObject skill_effect = GameObject.Instantiate(skill.effect, transform);
         SetVisual(false);
         int           lastSpeed = (gameObject.PropertyComponent() as HeroProperty).speed;
         AttackBase    atkb      = GetComponent <AttackBase> ();
         PunTeams.Team lastTeam  = atkb.team;
         if (lastTeam == PunTeams.Team.red)
         {
             atkb.OnTeamChanged(PunTeams.Team.blue);
         }
         else
         {
             atkb.OnTeamChanged(PunTeams.Team.red);
         }
         SetSpeed(lastSpeed + 4);
         DayNightController.instance.onDayNightChanged.AddListener(delegate(bool arg0) {
             if (!arg0)
             {
                 Destroy(skill_effect);
                 SetVisual(true);
                 SetSpeed(lastSpeed);
                 atkb.OnTeamChanged(lastTeam);
             }
         });
     }
 }
Exemple #22
0
    void OnGameOver(PunTeams.Team victory)
    {
        DayNightController.instance.enabled = false;
        foreach (var item in GameObject.FindObjectsOfType <Property>())
        {
            item.enabled = false;
        }

        bool spy = (localHero.PropertyComponent() as HeroProperty).isSpy;
        bool vic = false;

        PunTeams.Team myTeam = PhotonNetwork.player.GetTeam();
        if (spy)
        {
            vic = myTeam != victory;
        }
        else
        {
            vic = myTeam == victory;
        }
        if (vic)
        {
            gameImage.sprite = Resources.Load <Sprite> ("victory");
        }
        else
        {
            gameImage.sprite = Resources.Load <Sprite> ("defeat");
        }
        gameImage.transform.parent.gameObject.SetActive(true);
        DOTween.To(() => gameImage.transform.localScale, (x) => gameImage.transform.localScale = x, new Vector3(1.2f, 1.2f, 1.2f), 1.5f);
    }
Exemple #23
0
    void Shoot(float speed, PunTeams.Team team, float damage, Vector3 position, int photonId, int shooter)
    {
        transform.LookAt(new Vector3(position.x, transform.position.y, position.z));
        GameObject bullet = Instantiate(bulletPrefab, (transform.position + transform.forward), transform.rotation);
        Bullet     b      = bullet.GetComponent <Bullet>();

        b.Setup(damage, team, transform.position, photonId, shooter);
    }
    protected void DrawLeaderboards()
    {
        if (GamemodeManager.CurrentGamemode.IsRoundFinished() == true)
        {
            m_LeaderboardsFadeIn = 1;
        }

        if (m_LeaderboardsFadeIn == 0)
        {
            return;
        }

        // width of all labels, plus 20 padding
        float width  = 665;
        float height = 500;

        GUILayout.BeginArea(new Rect((Screen.width - width) * 0.5f + (1 - m_LeaderboardsFadeIn) * -Screen.width, (Screen.height - height) * 0.5f, width, height), LeaderboardsBackgroundStyle);
        {
            GUILayout.BeginHorizontal();
            {
                GUILayout.Label("Name", HeaderStyle, GUILayout.Width(200));
                GUILayout.Label("Kills", HeaderStyleCentered, GUILayout.Width(90));
                GUILayout.Label("Deaths", HeaderStyleCentered, GUILayout.Width(135));
                GUILayout.Label("K/D", HeaderStyleCentered, GUILayout.Width(80));
                GUILayout.Label("Points", HeaderStyleCentered, GUILayout.Width(140));
            }
            GUILayout.EndHorizontal();

            //Draw the list of all players and their kill counts
            List <PlayerController> sortedPlayers = GetSortedPlayers();
            for (int i = 0; i < sortedPlayers.Count; ++i)
            {
                string playerName = sortedPlayers[i].name;

                if (PhotonNetwork.connected == true)
                {
                    playerName = sortedPlayers[i].GetComponent <PhotonView>().owner.NickName;
                }

                GUILayout.BeginHorizontal();
                {
                    PunTeams.Team team = sortedPlayers [i].GetComponent <PhotonView> ().owner.GetTeam();
                    GUI.color = GetTeamColor(team);
                    string kdrString = GetKDRatio(sortedPlayers [i]);

                    GUILayout.Label(playerName, LabelStyle, GUILayout.Width(200));
                    GUILayout.Label(sortedPlayers[i].killCount.ToString(), LabelStyleCentered, GUILayout.Width(90));
                    GUILayout.Label(sortedPlayers[i].deathCount.ToString(), LabelStyleCentered, GUILayout.Width(135));
                    GUILayout.Label(kdrString, LabelStyleCentered, GUILayout.Width(80));
                    GUILayout.Label(sortedPlayers[i].flagCaptureCount.ToString(), LabelStyleCentered, GUILayout.Width(140));
                }
                GUILayout.EndHorizontal();
            }
        }
        GUILayout.EndArea();

        GUI.color = Color.white;
    }
Exemple #25
0
 /// <summary>
 /// Set up the bullet on the network to travel a limited distance in a straight direction.
 /// </summary>
 /// <param name="_damage">The damage dealt by the bullet</param>
 /// <param name="_team">The team the bullet is assigned to</param>
 /// <param name="_startingPos">The 3D position in the world the bullet spawns from</param>
 /// <param name="_range">The range of travel for the bullet before it is destroyed</param>
 /// <param name="_shooterId">The viewID of the attacker</param>
 public void Setup(float _damage, PunTeams.Team _team, Vector3 _startingPos, float _range, int _shooterId)
 {
     ValidateSetup();
     shooterId   = _shooterId;
     team        = _team;
     damage      = _damage;
     startingPos = _startingPos;
     range       = _range;
 }
Exemple #26
0
 void SpawnMinion(int packIndex, PunTeams.Team team)
 {
     if (PhotonNetwork.isMasterClient)
     {
         GameObject minion = PhotonNetwork.Instantiate(minionPrefab.name, Vector3.zero, Quaternion.identity, 0);
         minion.GetComponent <Entity>().Init(477);
         minion.GetComponent <Minion>().Init(packIndex, team);
     }
 }
Exemple #27
0
    public DamageInfo(float dmg, PunTeams.Team team, int owner)
    {
        Damage = dmg;

        Team = team;

        Owner = owner;

        //OwnerObj = ownObj;
    }
Exemple #28
0
 public void ResetFlag(PunTeams.Team team)
 {
     if (team == PunTeams.Team.red)
     {
         GameObject.Find("Torch_Red").transform.position = Util.defaultRedFlag;
     }
     else
     {
         GameObject.Find("Torch_Blue").transform.position = Util.defaultBlueFlag;
     }
 }
Exemple #29
0
 public void RPC_TakeHeal(int playerSending, PunTeams.Team playerTeam)
 {
     if (playerTeam == PunTeams.Team.red)
     {
         redImages[playerSending].takeDamage();
     }
     else
     {
         blueImages[playerSending].takeDamage();
     }
 }
Exemple #30
0
 /// <summary>
 /// Set up the bullet on the network to guarantee a hit on a target.
 /// </summary>
 /// <param name="_damage">The damage dealt by the bullet</param>
 /// <param name="_team">The team the bullet is assigned to</param>
 /// <param name="_startingPos">The 3D position in the world the bullet spawns from</param>
 /// <param name="photonId">The viewID of the target</param>
 /// <param name="_shooterId">The viewID of the attacker</param>
 public void Setup(float _damage, PunTeams.Team _team, Vector3 _startingPos, int photonId, int _shooterId)
 {
     ValidateSetup();
     shooterId               = _shooterId;
     team                    = _team;
     damage                  = _damage;
     startingPos             = _startingPos;
     target                  = PhotonView.Find(photonId).gameObject;
     capsuleCollider.enabled = false;
     hadTarget               = true;
 }
Exemple #31
0
 //######SYNC#####
 public void OnPhotonSerializeView( PhotonStream stream, PhotonMessageInfo info )
 {
     if ( stream.isWriting )
     {
         //Send
         stream.SendNext( IsReady );
         stream.SendNext( PlayerName );
         stream.SendNext( PlayerSlot );
         stream.SendNext( PlayerTeam );
     }
     else
     {
         //Receive
         this.IsReady = ( bool )stream.ReceiveNext( );
         this.PlayerName = ( string )stream.ReceiveNext( );
         this.PlayerSlot = ( int )stream.ReceiveNext( );
         this.PlayerTeam = ( PunTeams.Team )stream.ReceiveNext( );
     }
 }