private IEnumerator RoundEnding()
    {
        // タンクを停止します
        DisableTankControl();

        // 前のラウンドの勝者を消去
        m_RoundWinner = null;

        // ラウンドが終了した時点で勝者がいるかを確認
        m_RoundWinner = GetRoundWinner();

        // 勝者がいる場合は、スコアを増加
        if (m_RoundWinner != null)
        {
            m_RoundWinner.m_Wins++;
        }

        // 勝者のスコアが増加された今、ゲームの勝者になったプレイヤーがいるかを確認
        m_GameWinner = GetGameWinner();

        // スコアに基づいてゲーム勝者がいるかとうかのメッセージを取得し、それを表示します。
        string message = EndMessage();

        m_MessageText.text = message;

        // ゲームのループに制御が戻るまで、指定した時間を待機します。
        yield return(m_EndWait);
    }
    private IEnumerator RoundEnding()
    {
        // Stop tanks from moving.
        DisableTankControl();

        // Clear the winner from the previous round.
        m_RoundWinner = null;

        // See if there is a winner now the round is over.
        m_RoundWinner = GetRoundWinner();

        // If there is a winner, increment their score.
        if (m_RoundWinner != null)
        {
            m_RoundWinner.m_Wins++;
        }

        // Now the winner's score has been incremented, see if someone has one the game.
        m_GameWinner = GetGameWinner();

        // Get a message based on the scores and whether or not there is a game winner and display it.
        string message = EndMessage();

        m_MessageText.text = message;

        // Wait for the specified length of time until yielding control back to the game loop.
        yield return(m_EndWait);
    }
Example #3
0
    public void OnPlayerDeath(TankManager tank, DamageData hit)
    {
        PlayerTankManager playerTank = (PlayerTankManager)tank;

        if (hit is TankProjectileDamageData)
        {
            TankProjectileDamageData tankHit = (TankProjectileDamageData)hit;
            TankManager killer = tankHit.projectileInstance.weaponData.ownerTank;
            if (killer)
            {
                int killerIndex = killer.tankID;
                Debug.Log(killerIndex);
                deathmatchPlayerData[killerIndex].currentKills++;
                Josh.EventSystem.EventResponder.TriggerEvent("DisplayText", playerTank.tankDisplayName.ToUpper() + " WAS KILLED BY " + killer.tankDisplayName.ToUpper());

                PlayerTankManager killerPlayerTank = (PlayerTankManager)killer;

                if (killerPlayerTank)
                {
                    ui.playerScoreUIDisplay.SetScore(killerIndex, deathmatchPlayerData[killerIndex].currentKills);
                    killerPlayerTank.quipSystem.SayQuip("Ha! Suck it, " + playerTank.tankDisplayName + "!");
                }
            }
        }
        int playerIndex = playerTank.tankID;

        deathmatchPlayerData[playerIndex].isDead          = true;
        deathmatchPlayerData[playerIndex].currentDeadTime = 0;
        deathmatchPlayerData[playerIndex].currentDeaths++;
    }
    public void initEffect(TankManager tankManager)
    {
        if (m_ParticalShield == null && m_PlayerNumber != 0)
        {

            m_ParticalShield = Instantiate(GameManager.m_Instancce.m_particalPlayerInit, this.transform.position, Quaternion.identity) as ParticleSystem;
            m_ParticalShield.transform.parent = this.transform;
            m_ParticalShield.transform.position = new Vector3(this.transform.position.x, this.transform.position.y + 2, this.transform.position.z);
            m_ParticalShield.gameObject.SetActive(false);

        }
        if (m_PlayerNumber != 0)
        {
            StartCoroutine(EffectInit(tankManager));
        }
        else
        {
            //int i = Random.Range(0, 7);
            if(GameManager.m_TankCount == 5 || GameManager.m_TankCount == 9 || GameManager.m_TankCount == 13||GameManager.m_TankCount == 1)
            //if (i ==0)
            {
                m_BonusType = (AwardBox.BONUS)Random.Range((int)AwardBox.BONUS.NONE+1,(int)AwardBox.BONUS.TIMER + 1);//AwardBox.BONUS.TIMER;// 
               // m_BonusType = AwardBox.BONUS.STAR;//here
                GameObject obj =  Instantiate(GameManager.m_Instancce.m_QuestionMark, this.transform.position, this.transform.rotation) as GameObject;
                obj.transform.Translate(0, 1.5f, 0);
                obj.SetActive(true);
                obj.transform.parent = this.transform;
               // Debug.Log(m_BonusType);
            }
        }
    }
        private void OnEnable()
        {
            if (!_runStartUpOnEnable)
            {
                return;
            }

            if (!IsInitialized)
            {
                Initialize();
            }

            if (_data == null)
            {
                ReadySaveData();
            }

            if (_fromSave)
            {
                TankManager.SetTankLevel(_data.TankLevel);
                ColorManager.SetColorFromSave(_data.BodyColor.Vector4ToColor());
                StorageManager.NumberOfBottles = _data.ContainerAmount;
                _isInSub = _data.IsInSub;
                QuickLogger.Info($"Loaded {Mod.FriendlyName}");
                _fromSave = false;
            }
        }
    private IEnumerator RoundEnding()
    {
        // Clear the winner from the previous round.
        m_RoundWinner = null;

        // See if there is a winner now the round is over.
        m_RoundWinner = GetRoundWinner();

        // If there is a winner, increment their score.
        if (m_RoundWinner != null)
        {
            m_RoundWinner.m_Wins++;
        }

        // Now the winner's score has been incremented, see if someone has one the game.
        m_GameWinner = GetGameWinner();

        RpcUpdateMessage(EndMessage(0));

        //notify client they should disable tank control
        RpcRoundEnding();

        // Wait for the specified length of time until yielding control back to the game loop.
        yield return(m_EndWait);
    }
    public IEnumerator EffectInit(TankManager tankManager)
    {

        m_ParticalShield.gameObject.SetActive(true);
        yield return new WaitForSeconds(2);
        m_ParticalShield.gameObject.SetActive(false);
    }
Example #8
0
 /// <summary>
 /// 被使用技能的结算结果
 /// </summary>
 /// <param name="targetTM">技能目标TankManager</param>
 /// <param name="suc">结算结果:0命中,1未命中</param>
 public void onSkillResult(TankManager targetTM, int type, int suc)
 {
     if (suc == 0)
     {
         m_propBehavior.onSkillResult(targetTM, (EPropType)type);
         // m_health.TakeDamage(10);
     }
 }
Example #9
0
    public void Init(TankManager manager, TankDisplay display)
    {
        m_Manager     = manager;
        m_TankDisplay = display;
        m_Collider    = m_TankDisplay.GetComponent <BoxCollider>();

        SetDefaults();
    }
Example #10
0
 /// <summary>
 /// Convenience function for showing the leaderboard
 /// </summary>
 /// <param name="tank">Tank</param>
 /// <param name="heading">Heading</param>
 public void ShowLeaderboard(TankManager tank, string heading)
 {
     if (tank != null && !tank.removedTank && tank.hasAuthority && !m_GameIsFinished)
     {
         LazyLoadLeaderboard();
         m_Leaderboard.Show(heading);
     }
 }
Example #11
0
 /// <summary>
 /// Convenience function for hiding the leaderboard
 /// </summary>
 /// <param name="tank">Tank</param>
 public void ClearLeaderboard(TankManager tank)
 {
     if (!tank.removedTank && tank.hasAuthority && !m_GameIsFinished)
     {
         LazyLoadLeaderboard();
         m_Leaderboard.Hide();
     }
 }
Example #12
0
 /// <summary>
 /// Add a tank from the lobby hook
 /// </summary>
 static public void AddTank(TankManager tank)
 {
     if (s_Tanks.IndexOf(tank) == -1)
     {
         s_Tanks.Add(tank);
         tank.MoveToSpawnLocation(SpawnManager.s_Instance.GetSpawnPointTransformByIndex(tank.playerNumber));
     }
 }
Example #13
0
 // Use this for initialization
 void Start()
 {
     tank    = gameObject.transform.parent.parent.gameObject.GetComponent <Tank>();
     manager = gameObject.transform.parent.parent.parent.gameObject.GetComponent <TankManager>();
     attack  = manager.TankAttack;
     turning = (10.0f - manager.TankRe) / 7;
     utuwait = (3.5f - (manager.TankRe * 0.5f));
 }
Example #14
0
 public override void OnPickup(TankManager tank)
 {
     if (weapons.Length > 0)
     {
         tank.GiveWeapon(currentWeapon);
         representationRenderer.enabled = false;
     }
 }
Example #15
0
    public override object Process(TankManager manager, object state = null)
    {
        PlayerTankControllerState convertedState = (state as PlayerTankControllerState);

        if (convertedState == null)
        {
            convertedState = new PlayerTankControllerState();
        }

        if (manager.isDead)
        {
            return(convertedState);
        }

        InputDevice inputDevice = GameInput.GetPlayerDevice(convertedState.player);

        if (inputDevice == null)
        {
            return(convertedState);
        }

        Vector2 leftStickInput  = inputDevice.LeftStick.Vector;
        Vector2 rightStickInput = inputDevice.RightStick.Vector;

        if (!manager.isDead)
        {
            manager.tankMovement.targetVector = leftStickInput;
            manager.tankMovement.targetSpeed  = leftStickInput.magnitude;
            manager.AimTurrets(rightStickInput);

            if (inputDevice.LeftBumper.IsPressed)
            {
                manager.armourPickupManager.EjectArmourPickups();
                manager.armourPickupManager.refusePickups = true;
            }
            else
            {
                manager.armourPickupManager.refusePickups = false;
            }

            if (inputDevice.RightTrigger.WasPressed)
            {
                manager.FireTurrets(TankManager.FiringInputType.Down);
            }
            else if (inputDevice.RightTrigger.WasReleased)
            {
                manager.FireTurrets(TankManager.FiringInputType.Up);
            }
            if (inputDevice.RightTrigger.IsPressed)
            {
                manager.FireTurrets(TankManager.FiringInputType.Held);
            }
        }



        return(convertedState);
    }
    private void RpcAddTankOnClient(TankManager newTankManager)
    {
        newTankManager.SetMovementScipt(newTankManager.m_Instance.GetComponent <TankMovement>());
        newTankManager.SetShootingScipt(newTankManager.m_Instance.GetComponent <TankShooting>());
        newTankManager.SetNetworkHelperScipt(newTankManager.m_Instance.GetComponent <NetworkHelper>());
        newTankManager.SetCanvasGameObject(newTankManager.m_Instance.GetComponentInChildren <Canvas>().gameObject);

        AddTankToArray(newTankManager);
    }
Example #17
0
    private void RpcAddTankOnClient(TankManager newTankManager)
    {
        newTankManager.SetMovementScipt(newTankManager.m_Instance.GetComponent<TankMovement>());
        newTankManager.SetShootingScipt(newTankManager.m_Instance.GetComponent<TankShooting>());
        newTankManager.SetNetworkHelperScipt(newTankManager.m_Instance.GetComponent<NetworkHelper>());
        newTankManager.SetCanvasGameObject(newTankManager.m_Instance.GetComponentInChildren<Canvas>().gameObject);

        AddTankToArray(newTankManager);
    }
Example #18
0
    public void AccountEnterWorld(int eid, KBEngine.Avatar account)
    {
        TankManager tm = new TankManager();

        tm.SetAvatar(account);
        g_tankDict.Add(account.id, tm);
        g_tankList.Add(tm);
        g_tankList.Sort((x, y) => x.m_roomNo.CompareTo(y.m_roomNo));
    }
Example #19
0
 private void InitHudAndLocalPlayer()
 {
     for (int i = 0; i < s_Tanks.Count; i++)
     {
         m_LocalPlayer = s_Tanks[i];
         HUDController.s_Instance.InitHudPlayer(s_Tanks[i]);
         m_LocalPlayerNumber = s_Tanks[i].playerNumber;
     }
 }
Example #20
0
        // Removes the tank.
        public void RemoveTank(TankManager tank)
        {
            int tankIndex = s_Tanks.IndexOf(tank);

            if (tankIndex >= 0)
            {
                s_Tanks.RemoveAt(tankIndex);
            }
        }
    public void CambiarColor()
    {
        Color color = picker.GetSelectedColor();

        if (jugadorLocal is null)
        {
            jugadorLocal = GameObject.Find("LocalPlayer").GetComponent <TankManager>();
        }
        jugadorLocal.CmdCambiarColorJugador(color);
    }
Example #22
0
        //This method is called during setup, and subscribes all the HUD's listener methods to the local player's tank
        public void InitHudPlayer(TankManager playerTank)
        {
            m_TankManager = playerTank;
            m_Movement    = m_TankManager.movement;

            m_TankManager.onPickupCollected += OnPickupTextChanged;
            m_TankManager.onCurrencyChanged += UpdatePickUpCurrency;

            SetHudEnabled(false);
        }
Example #23
0
        /// <summary>
        /// Handles the killer score - killer's score is increased for Deathmatch
        /// </summary>
        /// <param name="killer">Tank that did the killing</param>
        /// <param name="killed">Tank that was killed</param>
        public override void HandleKillerScore(TankManager killer, TankManager killed)
        {
            killer.IncrementScore();

            if (killer.score >= m_KillLimit)
            {
                m_Winner    = killer;
                m_MatchOver = true;
            }
        }
Example #24
0
        public void SetScreenSaverInterval(string interval)
        {
            Console.WriteLine("Settings: Setting screen saver effect inetrval {0}", interval);
            int i;

            if (int.TryParse(interval, out i))
            {
                TankManager.SetScreenSaverInterval(i);
            }
        }
Example #25
0
        public void SetManualTick(string manualtick)
        {
            Console.WriteLine("Settings: Setting manual tick {0}", manualtick);
            int i;

            if (int.TryParse(manualtick, out i))
            {
                TankManager.SetManualTick(i);
            }
        }
Example #26
0
    void OnTriggerEnter2D(Collider2D coll)
    {
        if (coll.transform.CompareTag("Enemy"))
        {
            TankManager enemy = coll.transform.GetComponent <TankManager>();
            enemy.hp -= damage;

            Destroy(gameObject);
        }
    }
Example #27
0
    void Awake()
    {
        if (Instance == null)
        {
            Instance = this;
            GameObject.DontDestroyOnLoad(gameObject);

            InitializeTank();
        }
    }
Example #28
0
        public static void Main()
        {
            IReader             reader             = new ConsoleReader();
            IWriter             writer             = new ConsoleWriter();
            IManager            manager            = new TankManager();
            ICommandInterpreter commandInterpreter = new CommandInterpreter(manager);
            IEngine             engine             = new Engine(reader, writer, commandInterpreter);

            engine.Run();
        }
Example #29
0
    void FindLocalTank()
    {
        if (ClientScene.localPlayer == null)
        {
            return;
        }

        LocalPlayer = ClientScene.localPlayer.gameObject.GetComponent <TankManager>();
        LocalPlayer.DisableControl();
    }
Example #30
0
        /// <summary>
        /// Gets the player position
        /// </summary>
        /// <returns>The player position</returns>
        /// <param name="tank">Tank</param>
        public int GetPlayerPosition(TankManager tank)
        {
            if (!isServer)
            {
                s_Tanks.Sort(TankSort);
            }

            int index = s_Tanks.IndexOf(tank);

            return(index + 1);
        }
Example #31
0
        public void RpcRespawnTank(int playerNumber, bool showLeaderboard, int spawnPointIndex)
        {
            TankManager tank = GetTankByPlayerNumber(playerNumber);

            if (tank == null)
            {
                return;
            }

            LocalRespawn(tank, showLeaderboard, SpawnManager.s_Instance.GetSpawnPointTransformByIndex(spawnPointIndex));
        }
Example #32
0
    private IEnumerator RoundEnding()
    {
        DisableTankControl();

        m_RoundWinner = GetRoundWinner();
        UpdateScoreBoard();
        m_GameWinner       = GetGameWinner();
        m_MessageText.text = EndMessage();

        yield return(m_EndWait);
    }
Example #33
0
    private IEnumerator RoundEnding()
    {
        DisableTankControl();
        m_RoundWinner = GetRoundWinner();
        m_GameWinner  = GetGameWinner();
        string message = EndMessage();

        m_MessageText.text = message;

        yield return(m_EndWait);
    }
Example #34
0
    /// <summary>
    /// Add a tank from the lobby hook
    /// </summary>
    /// <param name="tank">The actual GameObject instantiated by the lobby, which is a NetworkBehaviour</param>
    /// <param name="playerNum">The number of the player (based on their slot position in the lobby)</param>
    /// <param name="c">The color of the player, choosen in the lobby</param>
    /// <param name="name">The name of the Player, choosen in the lobby</param>
    /// <param name="localID">The localID. e.g. if 2 player are on the same machine this will be 1 & 2</param>
    static public void AddTank(GameObject tank, int playerNum, Color c, string name, int localID)
    {
        TankManager tmp = new TankManager();
        tmp.m_Instance = tank;
        tmp.m_PlayerNumber = playerNum;
        tmp.m_PlayerColor = c;
        tmp.m_PlayerName = name;
        tmp.m_LocalPlayerID = localID;
        tmp.Setup();

        m_Tanks.Add(tmp);
    }
Example #35
0
    private void RpcDeactivateTankOnClient(TankManager deactiveTankManager)
    {
        if (m_GameManager == null)
            m_GameManager = (GameManager) GameObject.FindWithTag("GameManager").GetComponent(typeof(GameManager));

        foreach(TankManager tm in m_GameManager.m_Tanks)
        {
            if(tm.m_PlayerNumber == deactiveTankManager.m_PlayerNumber)
            {
                tm.m_Instance.SetActive(false);
                break;//skip the rest
            }
        }
    }
Example #36
0
    public void DeactivateTankOnClients(TankManager tankManagerToRemove)
    {
        if (m_GameManager == null)
            m_GameManager = (GameManager) GameObject.FindWithTag("GameManager").GetComponent(typeof(GameManager));
        if (m_GameManager.m_IsOnlineMultiplayer)
        {
            foreach(TankManager tm in m_GameManager.m_Tanks)
            {
                if(tankManagerToRemove.m_PlayerNumber == tm.m_PlayerNumber)
                {
                    RpcDeactivateTankOnClient(tm);
                }
            }

        }
    }
Example #37
0
    //Helper function. Increases the TankManager size by one and adds the new tank manager
    private void AddTankToArray(TankManager newTankManager)
    {
        if (m_GameManager == null)
            m_GameManager = (GameManager) GameObject.FindWithTag("GameManager").GetComponent(typeof(GameManager));

        //Dont add existing tanks
        if(m_GameManager.m_Tanks.Count(lt=>lt.m_PlayerNumber == newTankManager.m_PlayerNumber) > 0)
        {
            return;
        }
        var m_TanksTmp = new TankManager[m_GameManager.m_Tanks.Length + 1];
        m_GameManager.m_Tanks.CopyTo(m_TanksTmp, 0);

        newTankManager.m_PlayerNumber = m_TanksTmp.Length; //Increase player number by one
        m_TanksTmp[m_TanksTmp.Length - 1] = newTankManager; //add new tank manager as the last item
        m_GameManager.m_Tanks = m_TanksTmp;
    }
Example #38
0
    private WaitForSeconds m_StartWait; // Used to have a delay whilst the round starts.

    #endregion Fields

    #region Methods

    //Create new random managers based on predefined max player count
    public TankManager AddTankManager()
    {
        Debug.Log("AddTankManager");

        GameObject[] spawnPoints = GameObject.FindGameObjectsWithTag("SpawnPoint");
        int spawnPointNumber = Random.Range(0, spawnPoints.Length - 1);
        TankManager newTankManager = new TankManager();
        newTankManager.m_SpawnPoint = spawnPoints[spawnPointNumber].transform;
        //newTankManager.m_PlayerNumber = m_Tanks.Length;

        //Generate a random color for each player
        newTankManager.m_PlayerColor = new Color(
            Random.Range(0, 101) / 100f,
            Random.Range(0, 101) / 100f,
            Random.Range(0, 101) / 100f);

        AddTankToArray(newTankManager);
        SpawnSingleTank(newTankManager);
        return newTankManager;
    }
Example #39
0
 public void SpawnSingleTank(TankManager tm)
 {
     tm.m_Instance =
         Instantiate(m_TankPrefab, tm.m_SpawnPoint.position, tm.m_SpawnPoint.rotation) as GameObject;
     tm.Setup();
 }
Example #40
0
 static TankManager()
 {
     Instance = new TankManager { NeedToTaunt = new List<WoWUnit>() };
 }
Example #41
0
    private IEnumerator RoundEnding()
    {
        // Clear the winner from the previous round.
        m_RoundWinner = null;

        // See if there is a winner now the round is over.
        m_RoundWinner = GetRoundWinner();

        // If there is a winner, increment their score.
        if (m_RoundWinner != null)
            m_RoundWinner.m_Wins++;

        // Now the winner's score has been incremented, see if someone has one the game.
        m_GameWinner = GetGameWinner();

        RpcUpdateMessage(EndMessage(0));

        //notify client they should disable tank control
        RpcRoundEnding();

        // Wait for the specified length of time until yielding control back to the game loop.
        yield return m_EndWait;
    }
Example #42
0
    private IEnumerator RoundEnding()
    {
        DisableTankControl();
        m_RoundWinner = null;       // We want to ensure that the previous round winner is nulled out
        m_RoundWinner = GetRoundWinner();

        if (m_RoundWinner != null)
            m_RoundWinner.m_Wins++;

        m_GameWinner = GetGameWinner();

        string message = EndMessage();
        m_MessageText.text = message;

        yield return m_EndWait;
    }
Example #43
0
 private IEnumerator RoundEnding()
 {
     DisableTankControl();
     m_RoundWinner = null;
     m_RoundWinner = GetRoundWinner();
     if (m_RoundWinner != null)
     {
         m_RoundWinner.m_Wins++;
     }
     m_Player1_Info.text = string.Empty;
     m_Player2_Info.text = string.Empty;
     m_Player1_SpeedBuff.enabled = false;
     m_Player2_SpeedBuff.enabled = false;
     m_GameWinner = GetGameWinner();
     string message = EndMessage();
     m_MessageText.text = message;
     yield return m_EndWait;
 }
Example #44
0
    private IEnumerator RoundEnding()
    {
        // Stop tanks from moving.
        DisableTankControl();

        // Clear the winner from the previous round.
        m_RoundWinner = null;

        // See if there is a winner now the round is over.
        m_RoundWinner = GetRoundWinner();

        // If there is a winner, increment their score.
        if (m_RoundWinner != null)
            m_RoundWinner.m_Wins++;

        // Now the winner's score has been incremented, see if someone has one the game.
        m_GameWinner = GetGameWinner();

        // Get a message based on the scores and whether or not there is a game winner and display it.
        string message = EndMessage();
        m_MessageText.text = message;

        // Wait for the specified length of time until yielding control back to the game loop.
        yield return m_EndWait;
    }
Example #45
0
 public void SpawnSingleTankOnClients(TankManager tm)
 {
     tm.SpawnTanksOnClients();
     tm.SpawnTanksOnClients();
 }
Example #46
0
    private IEnumerator RoundEnding()
    {
		DisableTankControl ();

		m_RoundWinner = GetRoundWinner();
		if (m_RoundWinner != null) {
			m_RoundWinner.m_Wins++;
		}

		m_GameWinner = GetGameWinner ();
		string message = EndMessage ();
		m_MessageText.text = message;

        yield return m_EndWait;
    }
Example #47
0
    //Update the server-side m_Tank
    private void AddTankToArray(TankManager newTankManager)
    {
        //Create a new TankManager array with the newly added Player
        var m_TanksTmp = new TankManager[m_Tanks.Length + 1];
        m_Tanks.CopyTo(m_TanksTmp, 0);

        newTankManager.m_PlayerNumber = m_TanksTmp.Length; //Increase player number by one
        m_TanksTmp[m_TanksTmp.Length - 1] = newTankManager; //add new tank manager as the last item
        m_Tanks = m_TanksTmp;
    }