Example #1
0
    /// <summary>
    /// 检测是否游戏结束
    /// </summary>
    /// <param name="isWinGame"></param>
    /// <returns></returns>
    public bool CheckIsGameOver(out MiniGameResultEnum gameResult)
    {
        gameResult = MiniGameResultEnum.Lose;
        NpcAIMiniGameDebateCpt userCharacter  = miniGameBuilder.GetUserCharacter();
        NpcAIMiniGameDebateCpt enemyCharacter = miniGameBuilder.GetEnemyCharacter();

        if (userCharacter.characterMiniGameData.characterCurrentLife <= 0 || enemyCharacter.characterMiniGameData.characterCurrentLife <= 0)
        {
            if (userCharacter.characterMiniGameData.characterCurrentLife <= 0)
            {
                gameResult = MiniGameResultEnum.Lose;
            }
            else if (enemyCharacter.characterMiniGameData.characterCurrentLife <= 0)
            {
                gameResult = MiniGameResultEnum.Win;
            }
            return(true);
        }
        return(false);
    }
Example #2
0
    /// <summary>
    /// 检测是否游戏结束
    /// </summary>
    /// <returns></returns>
    public bool CheckIsGameOver(out MiniGameResultEnum gameResult)
    {
        gameResult = MiniGameResultEnum.Lose;
        List <NpcAIMiniGameCombatCpt> listUserNpc  = miniGameBuilder.GetUserCharacter();
        List <NpcAIMiniGameCombatCpt> listEnemyNpc = miniGameBuilder.GetEnemyCharacter();
        bool isOurNpcAllDead   = true;
        bool isEnemyNpcAllDead = true;

        foreach (NpcAIMiniGameCombatCpt itemNpc in listUserNpc)
        {
            if (itemNpc.characterMiniGameData.characterCurrentLife > 0)
            {
                isOurNpcAllDead = false;
            }
        }
        foreach (NpcAIMiniGameCombatCpt itemNpc in listEnemyNpc)
        {
            if (itemNpc.characterMiniGameData.characterCurrentLife > 0)
            {
                isEnemyNpcAllDead = false;
            }
        }
        if (isOurNpcAllDead)
        {
            gameResult = MiniGameResultEnum.Lose;
        }
        if (isEnemyNpcAllDead)
        {
            gameResult = MiniGameResultEnum.Win;
        }

        //如果双方都没有全部死亡则游戏没有结束
        if (!isOurNpcAllDead && !isEnemyNpcAllDead)
        {
            return(false);
        }
        else
        {
            return(true);
        }
    }
Example #3
0
    public override void EndGame(MiniGameResultEnum gameResult, bool isSlow)
    {
        //每日限制减少
        GameCommonInfo.DailyLimitData.numberForBirth--;
        listSperm.Clear();
        //检测是否达到生孩子标准
        GameDataBean   gameData   = GameDataHandler.Instance.manager.GetGameData();
        FamilyDataBean familyData = gameData.GetFamilyData();

        //如果可以生孩子
        if (familyData.birthPro >= 1)
        {
            familyData.birthPro = 0;
            if (familyData.listChildCharacter.Count >= 3)
            {
                ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(1351));
            }
            else
            {
                if (familyData.mateCharacter.body.GetSex() == gameData.userCharacter.body.GetSex())
                {
                    //同性
                    ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(7032), 10);
                }
                else
                {
                    //异性
                    ToastHandler.Instance.ToastHint(TextHandler.Instance.manager.GetTextById(7031), 10);
                }

                DialogBean dialogData = new DialogBean();
                dialogData.title = TextHandler.Instance.manager.GetTextById(8011);
                DialogHandler.Instance.CreateDialog <InputTextDialogView>(DialogEnum.InputText, this, dialogData);
                //设置游戏数据
                miniGameData.SetGameResult(MiniGameResultEnum.Win);
                return;
            }
        }
        base.EndGame(gameResult, isSlow);
    }
    public void AccountEjectorSettlement(MiniGameAccountEjectorCpt ejector, int moneyL, int moneyM, int moneyS)
    {
        miniGameData.currentMoneyL += moneyL;
        miniGameData.currentMoneyM += moneyM;
        miniGameData.currentMoneyS += moneyS;

        //展示特效
        MiniGameAccountEjectorCpt ejectorCpt        = miniGameBuilder.GetEjector();
        UIMiniGameAccount         uiMiniGameAccount = (UIMiniGameAccount)UIHandler.Instance.manager.GetOpenUI();

        uiMiniGameAccount.ShowMoneyGet(ejectorCpt.transform.position, moneyL, moneyM, moneyS);


        //如果分满了直接结束游戏
        MiniGameResultEnum gameResultEnum = CheckGameResults();

        if (gameResultEnum == MiniGameResultEnum.Win)
        {
            StopAllCoroutines();
            EndGame(MiniGameResultEnum.Win);
        }
    }
Example #5
0
 /// <summary>
 /// 设置游戏结果
 /// </summary>
 /// <param name="miniGameResult"></param>
 public void SetGameResult(MiniGameResultEnum miniGameResult)
 {
     this.gameResult = miniGameResult;
 }
 /// <summary>
 /// 结束游戏
 /// </summary>
 /// <param name="isWinGame">是否赢得游戏</param>
 public override void EndGame(MiniGameResultEnum miniGameResult)
 {
     base.EndGame(miniGameResult);
 }
Example #7
0
 public virtual void EndGame(MiniGameResultEnum gameResult)
 {
     EndGame(gameResult, true);
 }
Example #8
0
 /// <summary>
 /// 游戏结束
 /// </summary>
 /// <param name="isWinGame"></param>
 /// <param name="isSlow">是否开启慢镜头</param>
 public virtual void EndGame(MiniGameResultEnum gameResulte, bool isSlow)
 {
     if (GetMiniGameStatus() == MiniGameStatusEnum.Gameing)
     {
         SetMiniGameStatus(MiniGameStatusEnum.GameEnd);
         StopAllCoroutines();
         //拉近尽头
         BaseControl baseControl = GameControlHandler.Instance.manager.GetControl();
         if (baseControl)
         {
             baseControl.SetCameraOrthographicSize(6);
         }
         if (isSlow)
         {
             //开启慢镜头
             Time.timeScale = 0.1f;
         }
         transform.DOScale(new Vector3(1, 1, 1), 0.3f).OnComplete(delegate()
         {
             Time.timeScale = 1f;
             if (baseControl)
             {
                 baseControl.SetCameraOrthographicSize();
             }
             if (miniGameBuilder)
             {
                 miniGameBuilder.DestroyAll();
             }
             //设置游戏数据
             miniGameData.SetGameResult(gameResulte);
             GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData();
             //经验加成
             List <MiniGameCharacterBean> listUserData = miniGameData.GetListUserGameData();
             List <CharacterBean> listWorkerData       = gameData.GetAllCharacterData();
             foreach (MiniGameCharacterBean itemCharacterData in listUserData)
             {
                 foreach (CharacterBean itemWorkerData in listWorkerData)
                 {
                     if (itemWorkerData.baseInfo.characterId == null || itemCharacterData.characterData.baseInfo.characterId == null)
                     {
                         continue;
                     }
                     if (itemWorkerData.baseInfo.characterId.Equals(itemCharacterData.characterData.baseInfo.characterId))
                     {
                         WorkerEnum workerType = MiniGameEnumTools.GetWorkerTypeByMiniGameType(miniGameData.gameType);
                         CharacterWorkerBaseBean characterWorker = itemWorkerData.baseInfo.GetWorkerInfoByType(workerType);
                         if (miniGameData.GetGameResult() == MiniGameResultEnum.Win)
                         {
                             characterWorker.AddExp(10, out bool isLevelUp);
                         }
                         else
                         {
                             characterWorker.AddExp(5, out bool isLevelUp);
                         }
                     }
                 }
             }
             //打开游戏结束UI
             UIMiniGameEnd uiMiniGameEnd = UIHandler.Instance.manager.OpenUIAndCloseOther <UIMiniGameEnd>(UIEnum.MiniGameEnd);
             uiMiniGameEnd.SetData(miniGameData);
             uiMiniGameEnd.SetCallBack(this);
         });
         //通知 游戏结束
         notifyForMiniGameStatus?.Invoke(MiniGameStatusEnum.GameEnd, new object[] { miniGameData });
         AudioHandler.Instance.StopMusic();
     }
 }
Example #9
0
 /// <summary>
 /// 结束战斗
 /// </summary>
 /// <param name="isWinGame"></param>
 public override void EndGame(MiniGameResultEnum gameResulte)
 {
     base.EndGame(gameResulte, false);
 }