Esempio n. 1
0
        private BoardGame.AIPlayer getRivalPlayer(int boardGamePlayerId, BoardGame.UserPlayer userPlayer)
        {
            if (null == userPlayer)
            {
                Log.Error("not found board game.user player");
                return(null);
            }

            int intellect = 0, tactic = 0, leadership = 0, grace = 0, morality = 0, goodness = 0;

            switch (_valuationBasis)
            {
            case BoardGame.EValuationBasis.Tricker:
                intellect  = getRivalStat(userPlayer.Intellect, Def.BOARDGAME_RIVAL_AI_STAT_MIN_RATIO, Def.BOARDGAME_RIVAL_AI_STAT_MAX_RATIO);
                tactic     = getRivalStat(userPlayer.Tactic, Def.BOARDGAME_RIVAL_AI_STAT_MIN_RATIO, Def.BOARDGAME_RIVAL_AI_STAT_MAX_RATIO);
                leadership = getRivalStat(userPlayer.Leadership, Def.BOARDGAME_RIVAL_AI_STAT_MIN_RATIO, Def.BOARDGAME_RIVAL_AI_STAT_MAX_RATIO);
                break;

            case BoardGame.EValuationBasis.Politician:
                grace    = getRivalStat(userPlayer.Grace, Def.BOARDGAME_RIVAL_AI_STAT_MIN_RATIO, Def.BOARDGAME_RIVAL_AI_STAT_MAX_RATIO);
                morality = getRivalStat(userPlayer.Morality, Def.BOARDGAME_RIVAL_AI_STAT_MIN_RATIO, Def.BOARDGAME_RIVAL_AI_STAT_MAX_RATIO);
                goodness = getRivalStat(userPlayer.Goodness, Def.BOARDGAME_RIVAL_AI_STAT_MIN_RATIO, Def.BOARDGAME_RIVAL_AI_STAT_MAX_RATIO);
                break;

            default:
                Log.Error("invalid BoardGame.EValuationBasis");
                break;
            }

            return(new BoardGame.AIPlayer(Manager.Instance.Object.BoardGameMode, boardGamePlayerId
                                          , intellect, tactic, leadership, grace, morality, goodness));
        }
Esempio n. 2
0
        protected override IEnumerator ExamRoutine()
        {
            DialogueEvent.Invoke(NPCId, _exam.NPCAlarm);
            yield return(null);

            if (IsFirst)
            {
                DialogueEvent.Invoke(NPCId, _exam.NPCProcessMethod);
                yield return(null);

                DialogueEvent.Invoke(NPCId, _exam.NPCEvaluateMethod);
                yield return(null);
            }

            string startMsg = string.Format(_exam.NPCStartPlayersName, _userName, _rivalName);

            DialogueEvent.Invoke(NPCId, startMsg);
            yield return(null);

            DialogueEvent.Invoke(Def.EXAM_USER_START);
            yield return(null);

            //
            BoardGame.UserPlayer userPlayer = new BoardGame.UserPlayer(Manager.Instance.Object.BoardGameMode);
            BoardGame.AIPlayer   aiPlayer   = getRivalPlayer(_rival.boardGamePlayerId, userPlayer);

            Manager.Instance.Object.BoardGameMode.Start(_valuationBasis, userPlayer, aiPlayer);
            yield return(null);

            Manager.Instance.Object.BoardGameMode.EndEvent.Detach(onEnd);

            if (IsFirst)
            {
                DialogueEvent.Invoke(_userFirstResultLines);
                yield return(null);

                Manager.Instance.Object.StoryMode.LoadScenario(_rival.firstMeetScenarioPath);
            }
            else
            {
                DialogueEvent.Invoke(_rival, _rivalResultLines);
                yield return(null);

                DialogueEvent.Invoke(_userResultLines);
                yield return(null);
            }
        }