Beispiel #1
0
    public void endGame(GameEnding gameEnding)
    {
        Text _endText = endingPanel.transform.GetChild(0).GetComponent <Text>();

        endingPanel.SetActive(true);
        switch (gameEnding)
        {
        case GameEnding.ARRIVE:
            _endText.text = "항구에 도착하였습니다!\n 명성이 올라 " + GameManager.Instance.Reward + "의 돈을 얻습니다.";
            break;

        case GameEnding.SHIPWRECK:     // 난파엔딩
            _endText.text = "난파되었습니다";
            break;

        case GameEnding.PIRATE:
            _endText.text = "해적에게 전부 약탈당했습니다";
            break;

        case GameEnding.HUNGRY:
            _endText.text = "배고파서 죽었습니다";
            break;

        case GameEnding.DEAD:
            _endText.text = "선장이 죽었습니다";
            break;

        case GameEnding.ARRIVE_WORLD:
            _endText.text = "세계 일주하였습니다.";
            break;
        }
    }
Beispiel #2
0
 public void ShowEnding(GameEnding ending)
 {
     HideText();
     characterRenderer.gameObject.SetActive(false);
     endingRenderer.gameObject.SetActive(true);
     endingRenderer.sprite = ending.sprite;
 }
Beispiel #3
0
    private void StopGameFully()
    {
        IsGameStarted = false;
        //GameTime = 0f;
        Globals.CurrentStartTime = 0f;

        GameEnding?.Invoke(this, null);
    }
 public static void StartEndGame()
 {
     GameEnding?.Invoke();
     CurrentGameState = GameState.Ending;
     if (Instance.debug)
     {
         Debug.Log("Ending Game");
     }
 }
Beispiel #5
0
    private void checkEndGame()
    {
        if (shipBody.Durability == 0)
        {
            nowGameEnding = GameEnding.SHIPWRECK;
        }

        endGame(nowGameEnding);
    }
    // Start is called before the first frame update
    void Start()
    {
        _rigidbody = this.GetComponent <Rigidbody>();

        _animator = this.GetComponent <Animator>();

        _audioSource = this.GetComponent <AudioSource>();

        gameEnding = GameObject.FindWithTag("Game Ending").GetComponent <GameEnding>();
    }
Beispiel #7
0
        public void EndMatch(GameEnding ending, int player)
        {
            GameTimer.Stop();
            State = GameState.inactive;

            switch (ending)
            {
            case GameEnding.Normal:

                string winner = PlayerList[0].MatchesWon > PlayerList[1].MatchesWon ? PlayerList[0].P.Name : PlayerList[1].P.Name;
                string loser  = PlayerList[0].MatchesWon > PlayerList[1].MatchesWon ? PlayerList[1].P.Name : PlayerList[0].P.Name;

                TSPlayer.All.SendInfoMessage($"{winner} has defeated {loser} in a duel!");
                break;

            case GameEnding.TimeUp:
                Broadcast($"Time has ran out. The duel has been cancelled.");
                TSPlayer.All.SendInfoMessage($"The duel between {PlayerList[0].P.Name} and {PlayerList[1].P.Name} has ended.");
                break;

            case GameEnding.OutOfBounds:
                Broadcast($"{player} has left the duel arena. The duel has been cancelled.");
                TSPlayer.All.SendInfoMessage($"The duel between {PlayerList[0].P.Name} and {PlayerList[1].P.Name} has ended.");
                break;

            case GameEnding.Interference:
                Broadcast($"Time has ran out. The duel has been cancelled.");
                TSPlayer.All.SendInfoMessage($"The duel between {PlayerList[0].P.Name} and {PlayerList[1].P.Name} has ended.");
                break;

            case GameEnding.PlayerLeave:
                TSPlayer.All.SendInfoMessage($"The duel between {PlayerList[0].P.Name} and {PlayerList[1].P.Name} has ended.");
                break;

            case GameEnding.PlayerQuit:
                Broadcast($"{player} has quit the duel.");
                TSPlayer.All.SendInfoMessage($"The duel between {PlayerList[0].P.Name} and {PlayerList[1].P.Name} has ended.");
                break;

            case GameEnding.ForceEnd:
                Broadcast($"{player} has force-stopped this duel.");
                TSPlayer.All.SendInfoMessage($"The duel between {PlayerList[0].P.Name} and {PlayerList[1].P.Name} has ended.");
                break;
            }

            // cleanup
            PvPMain.onPlayerLeave -= onPlayerLeave;
            PvPMain.onPlayerDeath -= onPlayerDeath;
            PvPMain.onPvPToggle   -= onPvPToggle;
        }
Beispiel #8
0
    void Awake()
    {
        IPrefabPool asteroidPool = new PrefabPool(asteroidPoolSize, asteroidPrefab);

        asteroidCreator.Intialize(asteroidSpeedMin, asteroidSpeedMax, asteroidSpawnPointX, asteroidSpawnPointY, asteroidSpawnDelay, asteroidPool);

        for (int i = 0; i < ship.Count; i++)
        {
            IGameEnding gameEnding = new GameEnding(ship[i], this, gameEndingObject, gameEndingDelay);

            LifeManager lifeManager = gameObject.AddComponent <LifeManager>();
            lifeManager.Initialize(lifeBar, shipMaxLife, ship[i], gameEnding);
            ship[i].GetComponent <ShipCollisionDetector>().Initialize(lifeManager.DealDamage);

            ship[i].GetComponent <MovingComponent>().Initialize(shipSpeed, new InputAdapter());
        }
    }
Beispiel #9
0
    void Update()
    {
        if (m_IsPlayerInRange)
        {
            Vector3 direction = player.position - transform.position + Vector3.up;
            Ray     ray       = new Ray(transform.position, direction);

            RaycastHit raycastHit;

            if (Physics.Raycast(ray, out raycastHit))
            {
                if (raycastHit.collider.transform == player)
                {
                    GameEnding.CaughtPlayer();
                }
            }
        }
    }
Beispiel #10
0
    public void settingGameEnding(GameEnding gameEnding)
    {
        switch (gameEnding)
        {
        case GameEnding.THEFT:
            endingImage.sprite = endingSprite[0];
            StartCoroutine(theftSequence());
            break;

        case GameEnding.ARREST:
            endingImage.sprite = endingSprite[0];
            StartCoroutine(arrestSequence());
            break;

        case GameEnding.MEAT:
            endingImage.sprite = endingSprite[1];
            StartCoroutine(meatSequence());
            break;
        }
    }
Beispiel #11
0
    public void endGame(GameEnding gameEnding)
    {
        switch (gameEnding)
        {
        case GameEnding.ARRIVE:
            reward = rewardMoney();
            if (++arriveCount >= arriveEndingNeedCount)
            {
                UIManager.Instance.endGame(GameEnding.ARRIVE_WORLD);
            }
            else
            {
                UIManager.Instance.endGame(gameEnding);
            }
            break;

        case GameEnding.SHIPWRECK:     // 난파엔딩
            UIManager.Instance.endGame(gameEnding);
            break;

        case GameEnding.PIRATE:
            UIManager.Instance.endGame(gameEnding);
            break;

        case GameEnding.HUNGRY:
            UIManager.Instance.endGame(gameEnding);
            break;

        case GameEnding.DEAD:
            UIManager.Instance.endGame(gameEnding);
            break;
        }
        if (gameEnding != GameEnding.NONE)
        {
            isGameEnd      = true;
            isGameStart    = false;
            nowGameEnding  = GameEnding.NONE;
            Time.timeScale = 0; // recoveryTimeScale 함수에서 다시 1로 바꿔줌
        }
    }
Beispiel #12
0
        void HandleEnding()
        {
            if (GameData.mineLevel == 5 && GameData.villageLevel == 5 && GameData.churchLevel == 5 && GameData.fieldsLevel == 5 && GameData.forestLevel == 5)
            {
                transitionTimer.time = 7f;

                ToggleState(GameState.Menu, GameSubState.End);
                ending = GameEnding.churchWins;
                SoundManager.PlayEffect("win");

                gded.Reset();
            }
            if (GameData.daysUntilDoom == 0 && GameData.cultExists)
            {
                transitionTimer.time = 7f;

                ToggleState(GameState.Menu, GameSubState.End);
                ending = GameEnding.cult;
                SoundManager.PlayEffect("win");

                aendingAnim.Reset();
            }
            if (GameData.villageHealth == 0)
            {
                ToggleState(GameState.Menu, GameSubState.End);
                ending = GameEnding.starvation;
                SoundManager.PlayEffect("lose");
            }
            if (GameData.attacks == 5)
            {
                transitionTimer.time = 7f;

                ToggleState(GameState.Menu, GameSubState.End);
                ending = GameEnding.villageDestroyed;
                SoundManager.PlayEffect("win");

                aendingAnim.Reset();
            }
        }
Beispiel #13
0
 public void SetGameEnding(GameEnding value)
 {
     gameEnding = value;
 }
Beispiel #14
0
 public void ResetFinishedGame()
 {
     gameEnding = 0;
 }
Beispiel #15
0
 private void Start()
 {
     instance = this;
 }
Beispiel #16
0
 void EndGame()
 {
     GameEnding.KilledPlayer();
 }
    private void Start()
    {
        player = GameObject.FindWithTag("Player").transform;

        gameEnding = GameObject.FindWithTag("Game Ending").GetComponent <GameEnding>();
    }
Beispiel #18
0
 public void gameEndingUI(GameEnding gameEnding)
 {
     endingObject.SetActive(true);
     endingObject.GetComponent <EndingUI>().settingGameEnding(gameEnding);
 }
Beispiel #19
0
 private void Start()
 {
     player     = GameObject.FindGameObjectWithTag("Player").GetComponent <Transform>();
     gameEnding = GameObject.FindObjectOfType <GameEnding>();
 }
Beispiel #20
0
 public void EndGame(GameEnding ending)
 {
     IsGameOver = true;
     Debug.Log($"Game End : {ending.GetDescription()}");
 }