Example #1
0
    public void BallGoalCollision(GameObject ball, ETeam team, int points)
    {
        if (gameMode == EMode.Soccer && GameRunning)
        {
            onGoal.Raise();
            if (lightsController != null)
            {
                ETeam t = team == ETeam.RedTeam ? ETeam.BlueTeam : ETeam.RedTeam;
                lightsController.HitTheTeamLights(t, 3);
            }

            if (!modeManager.UpdateScore(team, points))
            {
                Ball ballScpt = ball.GetComponent <Ball>();
                ballScpt.OnBallGoalCollision();
                ball.SetActive(false);
                RespawnBall(ball);
                NoWaitRespawnAllPlayers();

                StartCoroutine(ResetTeamScale(ETeam.RedTeam, 0.0f));
                StartCoroutine(ResetTeamScale(ETeam.BlueTeam, 0.0f));
            }
            else
            {
                StopCoroutine("StartGameTimer");
                gameData.SetGameWinner(GetOpposingTeam(team));
                DeactivatePlayersAndGoals();
                lightsController.HitAllTheLightsAsTeam(modeManager.GetMaxScore(), 10);
                StartCoroutine("DelayedWinScreen");
            }
        }
    }
Example #2
0
        public void SetSkillButtons(ETeam team)
        {
            if (enabledSkillButtons.Length != Constants.maxSkillNum)
            {
                Debug.LogError("Number of skill buttons must be same with the maximum number of usable skill in a game.");
                return;
            }

            SkillDataSet skillDataSet;

            if (team == ETeam.Thief)
            {
                skillDataSet = thiefSkillDataSet;
            }
            else
            {
                skillDataSet = detectiveSkillDataSet;
            }

            defaultSkillButton.Init(skillDataSet.DefaultSkill);
            for (int i = 0; i < enabledSkillButtons.Length; i++)
            {
                //Get saved skill code
                int       selectedSkillIdx  = PlayerPrefs.GetInt(MultiplayRoomManager.Instance.MyTeam + " Skill " + i);
                SkillData selectedSkillData = skillDataSet.Get(selectedSkillIdx);
                enabledSkillButtons[i].Init(selectedSkillData);
            }
        }
Example #3
0
    /////////////////////////////////////////////////////////////////////////////
    /// Function:               GetEnemyPlayers
    /////////////////////////////////////////////////////////////////////////////
    protected List <GameObject> GetEnemyPlayers(ETeam eMyTeam)
    {
        List <PlayerController> liControllers  = PlayerController.PlayerControllers;
        List <GameObject>       liEnemyPlayers = new List <GameObject>();

        foreach (PlayerController cPlayerController in liControllers)
        {
            switch (eMyTeam)
            {
            case ETeam.TEAM_BLUE:

                if (cPlayerController.gameObject.name == Names.NAME_PLAYER_RED_DRONE + "(Clone)")
                {
                    liEnemyPlayers.Add(cPlayerController.gameObject);
                }

                break;

            case ETeam.TEAM_RED:

                if (cPlayerController.gameObject.name == Names.NAME_PLAYER_BLUE_DRONE + "(Clone)")
                {
                    liEnemyPlayers.Add(cPlayerController.gameObject);
                }

                break;
            }
        }

        return(liEnemyPlayers);
    }
Example #4
0
    public bool HandleHit(ETeam ballTeam)
    {
        if (ballTeam == TeamUtils.GetOppositeTeam(team))
        {
            if (GameManager.Instance.rules.hitsToDestroyTiles > 0)
            {
                hit++;
                if (hit >= GameManager.Instance.rules.hitsToDestroyTiles)
                {
                    if (GameManager.Instance.rules.scoreIfDestroyTile)
                    {
                        GameManager.Instance.IncrementScore(ballTeam);
                    }
                    DisableTile();
                }
                else
                {
                    renderer.material = hitMaterial;
                }
            }
            else if (GameManager.Instance.rules.scoreIfDestroyTile)
            {
                GameManager.Instance.IncrementScore(ballTeam);
            }

            return(true);
        }
        else //Ball hit tile of same team
        {
            return(false);
            //Start glow effect
        }
    }
        private GUIButton ShowTeam(Vector2 offSet, ETeam team)
        {
            GameObject      go       = new GameObject();
            CSpriteRenderer sr       = new CSpriteRenderer("SlotNameBar");
            Texture2D       texture1 = SpriteContainer.Instance.Sprite["SlotNameBar"];
            Texture2D       texture2 = SpriteContainer.Instance.Sprite["SlotNameBar"];
            GUIButton       btn      = new GUIButton(sr, texture1, texture2, Color.White, Color.YellowGreen);

            go.AddComponent <CSpriteRenderer>(sr);
            go.AddComponent <GUIButton>(btn);

            float   newScale = SpriteContainer.Instance.NormalFont.MeasureString(team.ToString()).X / texture1.Width;
            Vector2 scale    = new Vector2(newScale, 0.6f);

            sr.LayerDepth = 0.03f;
            sr.SetOrigin(EOriginPosition.TopLeft);
            go.MyParent           = actionBarFactionAndTeam;
            go.Transform.Scale    = new Vector2(0.5f, 0.5f) * GraphicsSetting.Instance.ScreenScale * scale;
            go.Transform.Position = go.MyParent.Transform.Position + new Vector2(offSet.X * GraphicsSetting.Instance.ScreenScale.X, -go.MyParent.GetComponent <CSpriteRenderer>().Sprite.Height *go.MyParent.Transform.Scale.Y + (offSet.Y * GraphicsSetting.Instance.ScreenScale.Y));

            TextToSlotBar(team.ToString(), new Vector2(sr.Sprite.Width, sr.Sprite.Height) * go.Transform.Scale, go, EOriginPosition.Mid, new Vector2(0, 0));

            myScene.Instantiate(go);

            btn.OnClick += () => { placeTile.Team = team; placeTile.GameObjectTileMouse.IsActive = false; ResetColorOnTeam(btn); };

            return(btn);
        }
Example #6
0
    public void PlayerPowerUpCollision(GameObject player, PowerUp powerUp)
    {
        PlayerController playerController;

        // If player is not cached, cache them
        if (!playerDictionary.TryGetValue(player, out playerController))
        {
            playerController = player.GetComponent <PlayerController>();
            playerDictionary.Add(player, playerController);
        }
        if (playerController.GetCurrentPowerUp() != EPowerUp.None)
        {
            playerController.RemovePowerUp();
        }
        EPowerUp powerUpType        = powerUp.GetPowerUpType();
        Color    powerUpShieldColor = powerUpManager.GetPowerUpShieldColor(powerUpType);

        playerController.ReceivePowerUp(powerUpType, powerUpShieldColor);
        if (powerUpType == EPowerUp.CircleShield) //need to have a list of powerups that reference a secondary shield
        {
            playerController.EnableSecondaryShield(true);
        }
        else if (powerUpType == EPowerUp.Multiball)
        {
            multiBallInPlay = true;
        }
        else if (powerUpType == EPowerUp.Shrink)
        {
            ETeam team   = playerController.GetTeamNumber();
            ETeam opTeam = GetOpposingTeam(team);

            ShrinkTeam(opTeam);
            playerController.RemovePowerUp();
        }
    }
Example #7
0
    private void Awake()
    {
        if (playerNumberTag)
        {
            playerNumberTag.text = playerNumber.ToString();
        }
        //powerupParticle.Stop();
        isFrozen   = false;
        isShrunken = false;

        thrusterSpeed      = defaultThrusterSpeed;
        defaultMass        = rigid.mass;
        killList           = new List <PlayerController>();
        rigid.gravityScale = 0;
        rightStickHorz     = 1;
        rightStickVert     = 0;
        shield             = GetComponentInChildren <Shield>();
        animator           = transform.GetComponentInChildren <Animator>();
        team            = gameData.GetPlayerTeam(playerNumber - 1);
        chosenCharacter = gameData.GetPlayerCharacter(playerNumber - 1);
        shield.SetTeamColor(team);
        acceptingInput = true;

        dashController = GetComponent <PlayerDashController>();

        if (gameManagerInstance != null || GameManager.TryGetInstance(out gameManagerInstance))
        {
            gameManagerInstance.LoadPlayer(this, playerNumber);
        }
    }
Example #8
0
 public Player(int _id, string _username, ETeam _teamId)
 {
     id       = _id;
     username = _username;
     teamId   = _teamId;
     gameObj  = null;
 }
Example #9
0
        public override void OnPhotonCustomRoomPropertiesChanged(Hashtable propertiesThatChanged)
        {
            if (GameState == EGameState.None && propertiesThatChanged[teamSettingEndKey] != null)
            {
                GameState = EGameState.Team_Set;
                InitializeGame();
                return;
            }

            if (GameState == EGameState.Team_Set && propertiesThatChanged[initializedKey] != null)
            {
                GameState = EGameState.Initialized;
                GenLocalPlayerAndReady();
                return;
            }

            if (GameState == EGameState.Ready && propertiesThatChanged[startTimeKey] != null)
            {
                prepareStartTimestamp = (int)propertiesThatChanged[startTimeKey];

                if (PhotonNetwork.ServerTimestamp - prepareStartTimestamp < 0)
                {
                    GameState = EGameState.ReadyChecked;
                    PhotonExtends.SetLocalPlayerProp(playerReadyKey, true);
                }
            }

            //When Game set key is set by the master client, let the game be end.
            if (propertiesThatChanged[gameSetKey] != null)
            {
                PhotonNetwork.automaticallySyncScene = false;
                GameState = EGameState.Game_Set;

                ETeam winTeam = (ETeam)propertiesThatChanged[winTeamKey];
                if (winTeam == myTeam)
                {
                    uiManager.SetWinPanel();
                }
                else
                {
                    uiManager.SetLosePanel();
                }

                StartCoroutine("LoadRecordScene");

                foreach (PhotonPlayer player in PhotonNetwork.playerList)
                {
                    Debug.Log("Player " + player.NickName + "\'s Record");
                    if (player.CustomProperties[playerRecordsNumKey] != null)
                    {
                        int recordsNum = (int)player.CustomProperties[playerRecordsNumKey];
                        for (int i = 0; i < recordsNum; i++)
                        {
                            int record = (int)player.CustomProperties[playerRecordsKey + i];
                            Debug.Log(record);
                        }
                    }
                }
            }
        }
Example #10
0
 public Player(int _id, string _username, ETeam _teamId)
 {
     id        = _id;
     username  = _username;
     teamId    = _teamId;
     character = null;
 }
Example #11
0
    public void Touchdown(ETeam team)
    {
        if (m_scoredThisTurn)
        {
            return;
        }
        m_scoredThisTurn = true;

        if (team == ETeam.Green)
        {
            m_greenScore++;
        }
        else
        {
            m_redScore++;
        }

        if (m_greenScore >= m_scoreToWin || m_redScore >= m_scoreToWin)
        {
            EndGame();
        }
        else
        {
            m_bluePlayerScorePanel.GetComponent <Animator>().SetTrigger("ScoreLeft");
            m_redPlayerScorePanel.GetComponent <Animator>().SetTrigger("ScoreRight");

            StartCoroutine(UpdateScoreUI(team));
        }
    }
 public BuildingStateData(int _id, EBuildingType _type, ETeam _teamId, Vector2 _position, int _hp)
 {
     id       = _id;
     type     = _type;
     teamId   = _teamId;
     position = _position;
     hp       = _hp;
 }
Example #13
0
        public int CountInTeamPlaying(ETeam team)
        {
            var res = from plr in _players.Values
                      where plr.Team == team && (plr.State == EPlayerState.Alive || plr.State == EPlayerState.Dead || plr.State == EPlayerState.Waiting)
                      select plr;

            return(res.Count());
        }
 public BuildingStateData(Packet _packet)
 {
     id       = _packet.ReadInt();
     type     = (EBuildingType)_packet.ReadInt();
     position = _packet.ReadVector2();
     teamId   = (ETeam)_packet.ReadInt();
     hp       = _packet.ReadInt();
 }
Example #15
0
 public Tank GetTank(ETeam t)
 {
     if (m_Tanks.Count <= (int)t)
     {
         return(null);
     }
     return(m_Tanks[(int)t]);
 }
Example #16
0
        public int CountInTeamReady(ETeam team)
        {
            var res = from plr in _players.Values
                      where plr.Team == team && (plr.IsReady || MasterID == plr.AccountID) && plr.GameMode != EPlayerGameMode.Spectate
                      select plr;

            return(res.Count());
        }
Example #17
0
        public Team Create(int createdBy, Team team)
        {
            ETeam eTeam = ETeam(team);

            eTeam.CreatedDate = DateTime.Now;
            eTeam.CreatedBy   = createdBy;
            eTeam             = _iDTeam.Create(eTeam);
            return(Team(eTeam));
        }
Example #18
0
        private void InitializeGame()
        {
            //Initilaize team information and instantiate the local player.
            myTeam = (ETeam)PhotonNetwork.player.CustomProperties[TeamKey];

            //Set UI Informations and deactive the interactive UI before game start).
            uiManager.SetTeamLabel(myTeam);
            uiManager.SetSkillButtons(myTeam);
            uiManager.RenewThievesNum(thievesNum);
            uiManager.DeactivateUIGroup();

            detectivePlayers = new List <PhotonPlayer>();
            thiefPlayers     = new List <PhotonPlayer>();
            foreach (PhotonPlayer player in PhotonNetwork.playerList)
            {
                ETeam teamOfPlayer = (ETeam)player.CustomProperties[TeamKey];
                if (teamOfPlayer == ETeam.Detective)
                {
                    detectivePlayers.Add(player);
                }
                else if (teamOfPlayer == ETeam.Thief)
                {
                    thiefPlayers.Add(player);
                }
            }

            // Set master client priority
            masterPriority = new List <int>();
            foreach (PhotonPlayer thiefPlayer in thiefPlayers)
            {
                masterPriority.Add(thiefPlayer.ID);
            }
            masterPriority.Sort();

            List <int> detectivePriority = new List <int>();

            foreach (PhotonPlayer detectivePlayer in thiefPlayers)
            {
                detectivePriority.Add(detectivePlayer.ID);
            }
            detectivePriority.Sort();

            masterPriority.AddRange(detectivePriority);

            // Initilize other local conditions
            ItemController.ResetItemList();
            PutItemPoint.ResetActivatedPointList();
            DetectiveController.ResetPlayerInstances();

            // Game initiation by the master client.
            if (PhotonNetwork.isMasterClient)
            {
                // Set generation points of players and generate scene objects.
                SetGenPointAndGenSceneObj();
            }
        }
Example #19
0
        public Tank GetOppositeTank(ETeam myTeam)
        {
            ETeam oppTeam = myTeam == ETeam.A ? ETeam.B : ETeam.A;

            if (m_Tanks.Count <= (int)oppTeam)
            {
                return(null);
            }
            return(m_Tanks[(int)oppTeam]);
        }
Example #20
0
        public Dictionary <int, Missile> GetOppositeMissiles(ETeam myTeam)
        {
            ETeam oppTeam = myTeam == ETeam.A ? ETeam.B : ETeam.A;

            if (m_Missiles.Count <= (int)oppTeam)
            {
                return(null);
            }
            return(m_Missiles[(int)oppTeam]);
        }
Example #21
0
    public void onPlayerJoin(int _id, string _username, ETeam _teamId)
    {
        if (!players.ContainsKey(_id))
        {
            Debug.Log("Player " + _username + " (" + _id + ") joined the game.");
            Debug.Log("Player " + _username + "(" + _id + ") joined team " + TeamManager.getTeam(_teamId).getTeamName() + ".");

            players.Add(_id, new Player(_id, _username, _teamId));
        }
    }
Example #22
0
 public void Initialize(MobaEntity attacker, MobaEntity target, Ability ability, OnProjectileExpended expendedCallback = null)
 {
     m_expended           = false;
     m_attacker           = attacker;
     m_target             = target;
     m_targetTransform    = target.GetTransformPosition(EEntityTransform.Center);
     m_ability            = ability;
     onProjectileExpended = expendedCallback;
     m_targetTeam         = m_attacker.GetAbilityTargetTeam(m_ability.AbilityBase.Allegiance);
     OnStart();
 }
Example #23
0
    public void Initialize(MobaEntity attacker, Vector3 targetPos, Ability ability, OnProjectileExpended expendedCallback = null)
    {
        m_expended           = false;
        m_attacker           = attacker;
        m_targetPos          = targetPos;
        m_ability            = ability;
        onProjectileExpended = expendedCallback;
        m_targetTeam         = m_attacker.GetAbilityTargetTeam(m_ability.AbilityBase.Allegiance);

        OnStart();
    }
Example #24
0
 public CharacterStateData(int _id, int _playerId, ECharacterType _type, ETeam _teamId, Vector2 _position, EObjectDirection _direction, int _hp, int _speed)
 {
     id        = _id;
     playerId  = _playerId;
     type      = _type;
     teamId    = _teamId;
     position  = _position;
     direction = _direction;
     hp        = _hp;
     speed     = _speed;
 }
Example #25
0
 public CharacterStateData(Packet _packet)
 {
     id        = _packet.ReadInt();
     playerId  = _packet.ReadInt();
     type      = (ECharacterType)_packet.ReadInt();
     position  = _packet.ReadVector2();
     direction = (EObjectDirection)_packet.ReadInt();
     teamId    = (ETeam)_packet.ReadInt();
     hp        = _packet.ReadInt();
     speed     = _packet.ReadInt();
 }
Example #26
0
        public static Missile GetLatestMissile(Dictionary <int, Missile> missiles, ETeam team)
        {
            int missileId = int.MaxValue;

            foreach (var missile in missiles)
            {
                if (missile.Key < missileId)
                {
                    missileId = missile.Key;
                }
            }
            return(Match.instance.GetOppositeMissiles(team)[missileId]);
        }
Example #27
0
 private IEnumerator HitTheTeamLightsCoroutine(ETeam t, int repeats)
 {
     while (repeats > 0)
     {
         List <Neon> teamLights = t == ETeam.RedTeam ? redLights : blueLights;
         foreach (Neon light in teamLights)
         {
             light.Flash();
         }
         repeats--;
         yield return(new WaitForSeconds(0.25f));
     }
 }
Example #28
0
 public static Color getColor(int playerNum, ETeam team)
 {
     /* switch (team)
      * {
      *   case ETeam.RedTeam:
      *       return playerNum % 2 == 0 ? redTeamPlayer1 : redTeamPlayer2;
      *   case ETeam.BlueTeam:
      *       return playerNum % 2 == 0 ? blueTeamPlayer1 : blueTeamPlayer2;
      *   default:
      *       return Color.white;
      * }*/
     return(Color.white);
 }
Example #29
0
        private void FindStar(ETeam et)
        {
            superStar = false;
            bool    hasStar        = false;
            float   nearestDist    = float.MaxValue;
            Vector3 nearestStarPos = Vector3.zero;

            foreach (var pair in Match.instance.GetStars())
            {
                Star s = pair.Value;
                if (s.IsSuperStar)
                {
                    superStar      = true;
                    hasStar        = true;
                    nearestStarPos = s.Position;
                    break;
                }
                else
                {
                    float dist = (s.Position - Position).sqrMagnitude;
                    if (dist < nearestDist)
                    {
                        hasStar        = true;
                        nearestDist    = dist;
                        nearestStarPos = s.Position;
                    }
                }
            }
            if (hasStar == true)
            {
                if (!superStar && home && nearestDist > (transform.position - Match.instance.GetRebornPos(Team)).sqrMagnitude)
                {
                    Move(Match.instance.GetRebornPos(Team));
                }
                else
                {
                    Move(nearestStarPos);
                }
            }
            else
            {
                Move(Match.instance.GetRebornPos(et));
                if (Time.time > m_LastTime)
                {
                    if (ApproachNextDestination())
                    {
                        m_LastTime = Time.time + Random.Range(3, 8);
                    }
                }
            }
        }
Example #30
0
    private ETeam GetOpposingTeam(ETeam team)
    {
        ETeam opTeam;

        if (team == ETeam.BlueTeam)
        {
            opTeam = ETeam.RedTeam;
        }
        else
        {
            opTeam = ETeam.BlueTeam;
        }
        return(opTeam);
    }
Example #31
0
 public int CountInTeamPlaying(ETeam team)
 {
     var res = from plr in _players.Values
               where plr.Team == team && (plr.State == EPlayerState.Alive || plr.State == EPlayerState.Dead || plr.State == EPlayerState.Waiting)
               select plr;
     return res.Count();
 }
Example #32
0
 public int CountInTeamReady(ETeam team)
 {
     var res = from plr in _players.Values
               where plr.Team == team && (plr.IsReady || MasterID == plr.AccountID) && plr.GameMode != EPlayerGameMode.Spectate
               select plr;
     return res.Count();
 }
Example #33
0
 public int CountInTeam(ETeam team, EPlayerGameMode gameMode = EPlayerGameMode.Normal)
 {
     var res = _players.Values.Where(plr => plr.Team == team && plr.GameMode == gameMode);
     return res.Count();
 }