Esempio n. 1
0
    public Game(
        List <BoardState> history,
        List <Promotion> promotions = null,
        Winner winner       = Winner.Pending,
        GameEndType endType = GameEndType.Pending,
        float timerDuration = 0,
        bool hasClock       = false
        )
    {
        turnHistory        = history;
        this.winner        = winner;
        this.promotions    = promotions == null ? new List <Promotion>() : promotions;
        this.endType       = endType;
        this.timerDuration = timerDuration;
        this.hasClock      = hasClock;
        turnsSincePawnMovedOrPieceTaken = 0;

        timeOffset = GetCurrentBoardState().executedAtTime;

        // When loading a game that has already ended, we do not need to start the time keepers
        StartTimekeeper();
        if (endType != GameEndType.Pending)
        {
            RecalculateTimekeepers();
            whiteTimekeeper.Pause();
            blackTimekeeper.Pause();
        }
    }
Esempio n. 2
0
    public void EndGame(GameEndType gameEndType)
    {
        if (gameStatus == GameStatus.PLAYING)
        {
            gameStatus = GameStatus.END_SCREEN;
            UIManager.instance.ShowEndScreen(gameEndType);

            /*
             * switch (gameEndType) {
             *  case (GameEndType.SHIP_ESCAPE):
             *      Debug.Log("GAME WIN: ship escape");
             *      break;
             *  case (GameEndType.MAGIC_MISSILE):
             *      Debug.Log("GAME WIN: magic missile");
             *      break;
             *  case (GameEndType.NO_HEALTH):
             *      Debug.Log("GAME OVER: you ran out of health");
             *      break;
             *  case (GameEndType.STARVATION):
             *      Debug.Log("GAME OVER: you ran out of food");
             *      break;
             *  case (GameEndType.DEBT):
             *      Debug.Log("GAME OVER: debt");
             *      break;
             *  default:
             *      Debug.LogWarning("Unhandled GameEndType");
             *      break;
             * }
             */
        }
    }
Esempio n. 3
0
        public void GameEnd(GameEndType endType, string message = "")
        {
            isPlaying = false;
            quizQue   = null;

            StopAllCoroutines();
            RemoveMouseTracker();

            List <PlayerItem> playerList = mainUI.GetPlayerListOrderByScore();

            string winnerName = playerList[0].nameText.text;
            int    score      = playerList[0].Score;

            if (endType == GameEndType.Interrupted)
            {
                ShowInterrupMessage(message);
            }
            else if (score == 0 || score == playerList[1].Score)
            {
                ShowResultDraw();
            }
            else
            {
                ShowResult(winnerName);
                RecordWinLose(PhotonNetwork.LocalPlayer, PhotonNetwork.NickName.Equals(winnerName));
            }

            mainUI.GameEnd();
            FindObjectOfType <Main.Drawing.DrawingToolUI>().ColorBtnAllDeSelected();
            PhotonNetwork.CurrentRoom.IsVisible = true;
        }
 public HighScoreRecord(Hashtable hash) : base(hash)
 {
     _name = (string)GetValueFromHash(hash, "_name");
     _score = (int)GetValueFromHash(hash, "_score");
     _type = (GameEndType)GetValueFromHash(hash, "_type");
     _days = (int)GetValueFromHash(hash, "_days");
     _worth = (int)GetValueFromHash(hash, "_worth");
     _difficulty = (Difficulty)GetValueFromHash(hash, "_difficulty");
 }
 public HighScoreRecord(string name, int score, GameEndType type, int days, int worth, Difficulty difficulty)
 {
     _name       = name;
     _score      = score;
     _type       = type;
     _days       = days;
     _worth      = worth;
     _difficulty = difficulty;
 }
 public HighScoreRecord(string name, int score, GameEndType type, int days, int worth, Difficulty difficulty)
 {
     _name = name;
     _score = score;
     _type = type;
     _days = days;
     _worth = worth;
     _difficulty = difficulty;
 }
 public HighScoreRecord(Hashtable hash) : base(hash)
 {
     _name       = (string)GetValueFromHash(hash, "_name");
     _score      = (int)GetValueFromHash(hash, "_score");
     _type       = (GameEndType)GetValueFromHash(hash, "_type");
     _days       = (int)GetValueFromHash(hash, "_days");
     _worth      = (int)GetValueFromHash(hash, "_worth");
     _difficulty = (Difficulty)GetValueFromHash(hash, "_difficulty");
 }
Esempio n. 8
0
 public void GameOver(GameEndType end)
 {
     if (isOver)
     {
         return;
     }
     if (end > GameEndType.None)
     {
         isOver = true;
     }
     PrettyLog.Log("Game Over: {0}", end);
     ending.Show(end);
 }
Esempio n. 9
0
    public void Show(GameEndType end)
    {
        Time.timeScale = 0;
        Clear();
        gameObject.SetActive(true);
        GameObject endingObj = null;

        if ((end.HasFlag(GameEndType.AllLeft)))
        {
            endingObj = allLeftEnding;
        }
        else if (end.HasFlag(GameEndType.MeetGoal))
        {
            endingObj = goodEnding;
            var txt = endingObj.GetComponentInChildren <Text>();
            if (end.HasFlag(GameEndType.Die))
            {
                txt.text += "\n\nBut your body is too severely damaged\nand become useless.\n\nSo your boss fires you.";
            }
            else if (end.HasFlag(GameEndType.Insane))
            {
                txt.text += "\n\n...And died for drunk driving.";
            }
            else
            {
                txt.text += "\n\nYour boss promotes you.\n\nCongratulations!";
            }
        }
        else if (end.HasFlag(GameEndType.Die) || end.HasFlag(GameEndType.Insane))
        {
            if (end.HasFlag(GameEndType.Die | GameEndType.Insane))
            {
                endingObj = zombieEnding;
            }
            else if (end.HasFlag(GameEndType.Die))
            {
                endingObj = dieEnding;
            }
            else if (end.HasFlag(GameEndType.Insane))
            {
                endingObj = insaneEnding;
            }
        }
        if (endingObj == null)
        {
            endingObj = emptyEnding;
        }
        endingObj.SetActive(true);
    }
Esempio n. 10
0
    public static void isGameEnd(GameEndType type)
    {
        gameIsEnd = true;
        switch (type)
        {
        case GameEndType.Win:
            gameEndText = "Mission Complete ~ ~ ~ ";
            Debug.Log("Win");
            break;

        case GameEndType.Lose:
            gameEndText = "Mission Fail ~ ~ ~ ";
            Debug.Log("Lose");
            break;
        }
    }
Esempio n. 11
0
    public void EndGame(GameEndType endType, Winner winner, float?timestamp = null)
    {
        whiteTimekeeper?.Pause();
        blackTimekeeper?.Pause();

        BoardState currentState = GetCurrentBoardState();

        this.endType                = endType;
        this.winner                 = winner;
        currentState.currentMove    = Team.None;
        currentState.executedAtTime = timestamp.HasValue ? timestamp.Value : CurrentTime;
        AddState(currentState);

        onGameOver?.Invoke();
        KillGame();
    }
Esempio n. 12
0
        public static void Update(GameEndType type)
        {
            var txtTitle = GameObject.Find("CanvasEnd/TxtTitle").GetComponent <Text>();

            txtTitle.text = GetEndTitle(type);

            int value = 0;

            string desc = "";

            desc  += type.ToString() + ": " + GetEndValue(type).ToString();
            value += GetEndValue(type);

            var text = GameObject.Find("CanvasEnd/Text").GetComponent <Text>();

            text.text = desc;
        }
Esempio n. 13
0
        public void ShowEndScreen(GameEndType endtype)
        {
            if (currentWindow)
            {
                currentWindow.Hide();
            }
            switch (endtype)
            {
            case GameEndType.Win:
                WinScreen.Show(null);
                break;

            case GameEndType.Lose:
                LoseScreen.Show(null);
                break;
            }
        }
Esempio n. 14
0
        /// <summary>
        /// 开始一场新的对局
        /// </summary>
        public static void NewGame()
        {
            CurrentScene       = SceneType.BattleMain;
            EndType            = GameEndType.None;
            ActivedProps       = new List <BaseProp>();
            GainedProps        = new List <PropName>();
            ActivedSkills      = new List <BaseSkill>();
            LearnedSkills      = new List <BaseSkill>();
            EventList          = new List <BaseEvent>();
            OccurredEvents     = new List <BaseEvent>();
            CurrentStageEvents = new List <BaseEvent>();

            HeroRoleList = new List <BaseHeroRole>();
            Day          = 0;
            Money        = 1200;

            //初始化照相机信息
            CameraSetter.Init();
            //初始化宝物信息
            PropIniter.Init();
            //初始化技能信息
            SkillIniter.Init(Role);
            //初始化事件信息
            EventIniter.Init();
            //初始化怪物列表
            MonsterIniter.Init();
            //初始化职业信息
            HeroRoleIniter.Init();
            //初始化英雄属性
            Hero.New(Role);

            Hero.Health = 40;
            Hero.Mana   = 1;
            //更新英雄属性面板
            PropertyPanelUpdater.Update();
            //更新关卡信息面板
            BattleUpdater.UpdateStageInfo();

            BattleUpdater.UpdateMessage("欢迎来到荒原之城!");

            BattleCanvasSetter.Scenes.Enqueue(BattleSceneType.ChooseEvent);
            BattleCanvasSetter.SwitchBattleScene();
            NewStage();
        }
Esempio n. 15
0
        public void ShowDialog(GameEndType gameEndType, Player?winner)
        {
            upperTextBox.Text = gameEndType switch
            {
                GameEndType.Checkmate => "Checkmate!",
                GameEndType.IllegalMove => "Illegal Move!",
                _ => throw new NotSupportedException()
            };

            lowerTextBox.Text = winner switch
            {
                Player.White => "White Wins!",
                Player.Black => "Black Wins!",
                null => "Draw!",
                _ => throw new NotSupportedException(),
            };

            ShowDialog();
        }
Esempio n. 16
0
 public void EndGame(GameEndType type)
 {
     //Time.timeScale = 0;
     if (isGame)
     {
         GameField.isGame = false;
         string text = "";
         if (type == GameEndType.LOSE)
         {
             text = "You Lose";
         }
         else
         {
             text = "You Win";
         }
         EndGameMenuSceneScript.Show(text);
         //Debug.Break();
     }
 }
Esempio n. 17
0
    public IEnumerator ShowEndScreen(GameEndType gameEndType)
    {
        yield return(StartCoroutine(FadeBackgroundIn()));

        yield return(new WaitForSeconds(0.5f));

        switch (gameEndType)
        {
        case (GameEndType.SHIP_ESCAPE):
            _evacuateEnding.SetActive(true);
            break;

        case (GameEndType.MAGIC_MISSILE):
            _missileEnding.SetActive(true);
            break;

        case (GameEndType.NO_HEALTH):
            _loseScreen.gameObject.SetActive(true);
            _loseScreen.SetDetails("you ran out of health");
            break;

        case (GameEndType.STARVATION):
            _loseScreen.gameObject.SetActive(true);
            _loseScreen.SetDetails("you ran out of food");
            break;

        case (GameEndType.DEBT):
            _loseScreen.gameObject.SetActive(true);
            _loseScreen.SetDetails("you ran afoul of the debt collectors");
            break;

        case (GameEndType.THEY_ARRIVE):
            _loseScreen.gameObject.SetActive(true);
            _loseScreen.SetDetails("the empire is upon you");
            break;

        default:
            Debug.LogWarning("Unhandled GameEndType");
            break;
        }
        _restartButton.SetActive(true);
    }
Esempio n. 18
0
        private void OnGameEndMessage(GameEndType type)
        {
            switch (type)
            {
            case GameEndType.Win:
                resultText.Text.Value = "Win!";
                break;

            case GameEndType.Loss:
                resultText.Text.Value = "Loss!";
                break;

            case GameEndType.Tie:
                resultText.Text.Value = "Tie!";
                break;

            default:
                resultText.Text.Value = "Error";
                break;
            }
        }
Esempio n. 19
0
    private void Start()
    {
        soundManager.FadeOutBGM();
        soundManager.PlayBGM(bgmName);
        //セーブ処理をしてプレイデータをアップロードしておく
        //セーブ後にはデータがリセットされるため、複数回呼んでもデータが破壊されることはない
        GameDataStore.Instance.SaveGameData();

        int         score       = GameDataStore.Instance.Score;
        var         datas       = GameDataStore.Instance.GetSavedRankingData().playerDatas;
        PlayMode    playedMode  = GameDataStore.Instance.PlayedMode;
        GameEndType gameEndType = GameDataStore.Instance.GameEndedType;

        //ランキングの取得
        int ranking = 0;

        for (int i = 0; i < datas.Length; i++)
        {
            if (datas[i].score == score)
            {
                ranking = i + 1;
                break;
            }
        }

        //ゲーム結果表示

        //休日の時はリザルト表示なし
        if (playedMode == PlayMode.Holiday)
        {
            goalImage.enabled     = false;
            gameOverImage.enabled = false;
        }
        else
        {
            if (gameEndType == GameEndType.Goal)
            {
                goalImage.enabled     = true;
                gameOverImage.enabled = false;
            }
            else
            {
                goalImage.enabled     = false;
                gameOverImage.enabled = true;
            }
        }

        //得点表示
        rankingBoard.Init();
        rankingBoard.HighlightRanking(ranking);
        rankingBoard.SetBoardVisibility(playedMode);

        scoreText.text = $"{score} 点";

        int index = -1;

        //感想表示
        if (playedMode == PlayMode.Weekday)
        {
            //平日
            if (gameEndType == GameEndType.Goal)
            {
                index = 0;
            }
            else
            {
                index = 1;
            }
        }
        else
        {
            if (score < 3000)
            {
                index = 2;
            }
            else if (score < 6000)
            {
                index = 3;
            }
            else
            {
                index = 4;
            }
        }

        comment.text = comments[index];
        anim.Play(animList[index].name);

        //もうこのプレイのデータは必要ないのでリセットする
        GameDataStore.Instance.ResetPlayDatas();
    }
Esempio n. 20
0
        static string GetEndTitle(GameEndType type)
        {
            var title = "";

            switch (type)
            {
            case GameEndType.死亡:
            {
                title = "你精疲力尽的倒在了荒原之城中...";
                break;
            }

            case GameEndType.商人女儿:
            {
                title = "你与商人女儿结婚后,一同在荒原之城经营生意~";
                break;
            }

            case GameEndType.商队:
            {
                title = "商队将你带出了荒原之城,开启了新的人生!";
                break;
            }

            case GameEndType.巫妖王:
            {
                title = "你成为了巫妖王的祭品,但你的灵魂永远驻留在荒原之城...";
                break;
            }

            case GameEndType.牛魔王:
            {
                title = "牛魔王将你带出了荒原之城,你也成为了世界上最后一个见过牛魔王的人...";
                break;
            }

            case GameEndType.神灯:
            {
                title = "灯神实现了你的愿望,醒来后你发现你睡在一个村庄的草垛中~";
                break;
            }

            case GameEndType.野蛮人部落:
            {
                title = "野蛮人把你抓了起来,你成为了他们的奴隶,永世不能翻身...";
                break;
            }

            case GameEndType.武馆:
            {
                title = "你的战斗技巧响彻整个荒原之城,并成立了荒原武馆培养了无数个勇士!";
                break;
            }

            case GameEndType.战胜守卫:
            {
                title = "你战胜了荒原守卫,走出荒原后与无数人分享了这段不同寻常的经历!";
                break;
            }

            case GameEndType.荒原之主:
            {
                title = "你的武力超凡绝伦,成为了新的荒原之主!!!";
                break;
            }
            }
            return(title);
        }
Esempio n. 21
0
 public void ShowEndScreen(GameEndType gameEndType)
 {
     _gameEndScreen.gameObject.SetActive(true);
     StartCoroutine(_gameEndScreen.ShowEndScreen(gameEndType));
 }
Esempio n. 22
0
        static int GetEndValue(GameEndType type)
        {
            int value = 0;

            switch (type)
            {
            case GameEndType.死亡:
            {
                value = -30;
                break;
            }

            case GameEndType.商人女儿:
            {
                value = 80;
                break;
            }

            case GameEndType.商队:
            {
                value = 50;
                break;
            }

            case GameEndType.巫妖王:
            {
                value = 50;
                break;
            }

            case GameEndType.牛魔王:
            {
                value = 80;
                break;
            }

            case GameEndType.神灯:
            {
                value = 30;
                break;
            }

            case GameEndType.野蛮人部落:
            {
                value = -10;
                break;
            }

            case GameEndType.武馆:
            {
                value = 100;
                break;
            }

            case GameEndType.战胜守卫:
            {
                value = 150;
                break;
            }

            case GameEndType.荒原之主:
            {
                value = 100;
                break;
            }
            }
            return(value);
        }
Esempio n. 23
0
		public Game(Hashtable hash, SpaceTrader parentWin) : base(hash)
		{
			_game = this;
			ParentWindow = parentWin;

			string version = (string)GetValueFromHash(hash, "_version");
			if (version.CompareTo(Consts.CurrentVersion) > 0)
				throw new FutureVersionException();

			_universe = (StarSystem[])ArrayListToArray((ArrayList)GetValueFromHash(hash, "_universe"), "StarSystem");
			_wormholes = (int[])GetValueFromHash(hash, "_wormholes", _wormholes);
			_mercenaries = (CrewMember[])ArrayListToArray((ArrayList)GetValueFromHash(hash, "_mercenaries"), "CrewMember");
			_commander = new Commander((Hashtable)GetValueFromHash(hash, "_commander"));
			_dragonfly = new Ship((Hashtable)GetValueFromHash(hash, "_dragonfly", _dragonfly.Serialize()));
			_scarab = new Ship((Hashtable)GetValueFromHash(hash, "_scarab", _scarab.Serialize()));
			_scorpion = new Ship((Hashtable)GetValueFromHash(hash, "_scorpion", _scorpion.Serialize()));
			_spaceMonster = new Ship((Hashtable)GetValueFromHash(hash, "_spaceMonster", _spaceMonster.Serialize()));
			_opponent = new Ship((Hashtable)GetValueFromHash(hash, "_opponent", _opponent.Serialize()));
			_chanceOfTradeInOrbit = (int)GetValueFromHash(hash, "_chanceOfTradeInOrbit", _chanceOfTradeInOrbit);
			_clicks = (int)GetValueFromHash(hash, "_clicks", _clicks);
			_raided = (bool)GetValueFromHash(hash, "_raided", _raided);
			_inspected = (bool)GetValueFromHash(hash, "_inspected", _inspected);
			_tribbleMessage = (bool)GetValueFromHash(hash, "_tribbleMessage", _tribbleMessage);
			_arrivedViaWormhole = (bool)GetValueFromHash(hash, "_arrivedViaWormhole", _arrivedViaWormhole);
			_paidForNewspaper = (bool)GetValueFromHash(hash, "_paidForNewspaper", _paidForNewspaper);
			_litterWarning = (bool)GetValueFromHash(hash, "_litterWarning", _litterWarning);
			_newsEvents = new ArrayList((int[])GetValueFromHash(hash, "_newsEvents", _newsEvents.ToArray(System.Type.GetType("System.Int32"))));
			_difficulty = (Difficulty)GetValueFromHash(hash, "_difficulty", _difficulty);
			_cheatEnabled = (bool)GetValueFromHash(hash, "_cheatEnabled", _cheatEnabled);
			_autoSave = (bool)GetValueFromHash(hash, "_autoSave", _autoSave);
			_easyEncounters = (bool)GetValueFromHash(hash, "_easyEncounters", _easyEncounters);
			_endStatus = (GameEndType)GetValueFromHash(hash, "_endStatus", _endStatus);
			_encounterType = (EncounterType)GetValueFromHash(hash, "_encounterType", _encounterType);
			_selectedSystemId = (StarSystemId)GetValueFromHash(hash, "_selectedSystemId", _selectedSystemId);
			_warpSystemId = (StarSystemId)GetValueFromHash(hash, "_warpSystemId", _warpSystemId);
			_trackedSystemId = (StarSystemId)GetValueFromHash(hash, "_trackedSystemId", _trackedSystemId);
			_targetWormhole = (bool)GetValueFromHash(hash, "_targetWormhole", _targetWormhole);
			_priceCargoBuy = (int[])GetValueFromHash(hash, "_priceCargoBuy", _priceCargoBuy);
			_priceCargoSell = (int[])GetValueFromHash(hash, "_priceCargoSell", _priceCargoSell);
			_questStatusArtifact = (int)GetValueFromHash(hash, "_questStatusArtifact", _questStatusArtifact);
			_questStatusDragonfly = (int)GetValueFromHash(hash, "_questStatusDragonfly", _questStatusDragonfly);
			_questStatusExperiment = (int)GetValueFromHash(hash, "_questStatusExperiment", _questStatusExperiment);
			_questStatusGemulon = (int)GetValueFromHash(hash, "_questStatusGemulon", _questStatusGemulon);
			_questStatusJapori = (int)GetValueFromHash(hash, "_questStatusJapori", _questStatusJapori);
			_questStatusJarek = (int)GetValueFromHash(hash, "_questStatusJarek", _questStatusJarek);
			_questStatusMoon = (int)GetValueFromHash(hash, "_questStatusMoon", _questStatusMoon);
			_questStatusPrincess = (int)GetValueFromHash(hash, "_questStatusPrincess", _questStatusPrincess);
			_questStatusReactor = (int)GetValueFromHash(hash, "_questStatusReactor", _questStatusReactor);
			_questStatusScarab = (int)GetValueFromHash(hash, "_questStatusScarab", _questStatusScarab);
			_questStatusSculpture = (int)GetValueFromHash(hash, "_questStatusSculpture", _questStatusSculpture);
			_questStatusSpaceMonster = (int)GetValueFromHash(hash, "_questStatusSpaceMonster", _questStatusSpaceMonster);
			_questStatusWild = (int)GetValueFromHash(hash, "_questStatusWild", _questStatusWild);
			_fabricRipProbability = (int)GetValueFromHash(hash, "_fabricRipProbability", _fabricRipProbability);
			_justLootedMarie = (bool)GetValueFromHash(hash, "_justLootedMarie", _justLootedMarie);
			_canSuperWarp = (bool)GetValueFromHash(hash, "_canSuperWarp", _canSuperWarp);
			_chanceOfVeryRareEncounter = (int)GetValueFromHash(hash, "_chanceOfVeryRareEncounter", _chanceOfVeryRareEncounter);
			_veryRareEncounters = new ArrayList((int[])GetValueFromHash(hash, "_veryRareEncounters", _veryRareEncounters.ToArray(System.Type.GetType("System.Int32"))));
			_options = new GameOptions((Hashtable)GetValueFromHash(hash, "_options", _options.Serialize()));
		}
Esempio n. 24
0
	public GameEndType IsGameEnd() {
		if(this.following.Size() <= 0) {
			this.gameEndType = GameEndType.NoFollowers;
		}
		else if(this.totalScore.totalTurns >= Difficulty.totalTurns) {
			this.gameEndType = GameEndType.TurnLimitReached;
		}
		else {
			this.gameEndType = GameEndType.NotYet;
		}
		
		return this.gameEndType;
	}
Esempio n. 25
0
 static void OnGameEnded(TicTacToe game, GameEndType end)
 {
     Console.WriteLine(end);
     waitHandle.Set();
     Console.Read();
 }
Esempio n. 26
0
 private void OnGameEnd(GameEndType type)
 {
     connHelper.SetGameInProgress(false);
 }
Esempio n. 27
0
 public GameEndException(GameEndType endType)
 {
     Game.CurrentGame.EndStatus = endType;
 }
Esempio n. 28
0
 public GameEndException(GameEndType endType)
 {
     Game.CurrentGame.EndStatus = endType;
 }
Esempio n. 29
0
 public void EndGame(GameEndType type)
 {
     UIManager._instance.ShowEndScreen(type);
 }
Esempio n. 30
0
 static void OnGameEnded(TicTacToe game, GameEndType end)
 {
     MessageBox.Show(end.ToString());
 }
Esempio n. 31
0
 public void FinishGame(GameEndType type)
 {
     State = GameState.Finished;
     if (Score > HighScore)
     {
         HighScore = score;
     }
     UI.ShowEndScreen(type);
 }