Example #1
0
    public void CreateCharacterList(List <MiniGameCharacterBean> listCharacterData, List <Vector3> listCharacterPosition, NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum npcType)
    {
        if (CheckUtil.ListIsNull(listCharacterData))
        {
            return;
        }
        for (int i = 0; i < listCharacterData.Count; i++)
        {
            MiniGameCharacterBean itemCharacterData = listCharacterData[i];

            NpcAIMiniGameCookingCpt npcCpt = CreateCharacter(itemCharacterData, listCharacterPosition[i], npcType);
            switch (npcType)
            {
            case NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Player:
                listEnemyCharacter.Add(npcCpt);
                npcCpt.characterMoveCpt.SetMoveSpeed(5);
                break;

            case NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Auditer:
                listAuditerCharacter.Add(npcCpt);
                break;

            case NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Compere:
                listCompereCharacter.Add(npcCpt);
                break;
            }
        }
    }
Example #2
0
    /// <summary>
    /// 开始游戏
    /// </summary>
    public override void StartGame()
    {
        base.StartGame();
        //显示主持人
        miniGameBuilder.SetCompereCharacterActive(true);
        //评审找位置
        List <NpcAIMiniGameCookingCpt> listAuditNpcAI = miniGameBuilder.GetCharacterByType(NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Auditer);

        for (int i = 0; i < listAuditNpcAI.Count; i++)
        {
            NpcAIMiniGameCookingCpt itemNpc = listAuditNpcAI[i];
            itemNpc.OpenAI();
            itemNpc.SetIntent(NpcAIMiniGameCookingCpt.MiniGameCookingIntentEnum.GoToAuditTable);
        }
        //选手找位置
        List <NpcAIMiniGameCookingCpt> listPlayerNpcAI = miniGameBuilder.GetCharacterByType(NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Player);

        for (int i = 0; i < listPlayerNpcAI.Count; i++)
        {
            NpcAIMiniGameCookingCpt itemNpc = listPlayerNpcAI[i];
            itemNpc.OpenAI();
            itemNpc.SetIntent(NpcAIMiniGameCookingCpt.MiniGameCookingIntentEnum.GoToStove);
        }
        //打开游戏控制器
        BaseControl baseControl = GameControlHandler.Instance.StartControl <ControlForMiniGameCookingCpt>(GameControlHandler.ControlEnum.MiniGameCooking);

        baseControl.SetCameraFollowObj(miniGameBuilder.GetUserCharacter().gameObject);
    }
Example #3
0
    /// <summary>
    /// 开始制作料理阶段游戏
    /// </summary>
    public void StartMakingCooking()
    {
        uiMiniGameCooking.StartCookingMaking();
        //角色就位
        NpcAIMiniGameCookingCpt npcAI = miniGameBuilder.GetUserCharacter();

        npcAI.SetIntent(NpcAIMiniGameCookingCpt.MiniGameCookingIntentEnum.CookingMaking);
    }
Example #4
0
    /// <summary>
    /// 开始摆盘料理阶段游戏
    /// </summary>
    public void StartEndCooking()
    {
        //打开UI
        uiMiniGameCooking.StartCookingEnd();
        //角色就位
        NpcAIMiniGameCookingCpt npcAI = miniGameBuilder.GetUserCharacter();

        npcAI.SetIntent(NpcAIMiniGameCookingCpt.MiniGameCookingIntentEnum.CookingEnd);
    }
Example #5
0
    /// <summary>
    /// 初始化游戏
    /// </summary>
    /// <param name="miniGameData"></param>
    public override void InitGame(MiniGameCookingBean miniGameData)
    {
        base.InitGame(miniGameData);
        miniGameBuilder.CreateAllCharacter(
            miniGameData.listUserGameData, miniGameData.userStartPosition,
            miniGameData.listEnemyGameData, miniGameData.listEnemyStartPosition,
            miniGameData.listAuditerGameData, miniGameData.listAuditerStartPosition,
            miniGameData.listCompereGameData, miniGameData.listCompereStartPosition);
        //设置主题
        if (miniGameData.cookingThemeLevel != 0)
        {
            miniGameData.SetCookingThemeByLevel(miniGameData.cookingThemeLevel);
        }
        if (miniGameData.cookingThemeId != 0)
        {
            miniGameData.SetCookingThemeById(miniGameData.cookingThemeId);
        }
        //初始化摄像头位置
        InitCameraPosition();
        //设置通告板内容
        List <MiniGameCookingCallBoardCpt> listCallBoard = miniGameBuilder.GetListCallBoard();

        foreach (MiniGameCookingCallBoardCpt itemCpt in listCallBoard)
        {
            itemCpt.SetCallBoardContent(miniGameData.GetCookingTheme().name);
        }
        //给评审人员分配桌子
        List <MiniGameCookingAuditTableCpt> listAuditTable = miniGameBuilder.GetListAuditTable();
        List <NpcAIMiniGameCookingCpt>      listAuditNpcAI = miniGameBuilder.GetCharacterByType(NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Auditer);

        for (int i = 0; i < listAuditNpcAI.Count; i++)
        {
            NpcAIMiniGameCookingCpt      itemNpc   = listAuditNpcAI[i];
            MiniGameCookingAuditTableCpt itemTable = listAuditTable[i];
            itemNpc.SetAuditTable(itemTable);
        }
        //参赛选手相关设定
        List <MiniGameCookingStoveCpt> listStove       = miniGameBuilder.GetListStove();
        List <NpcAIMiniGameCookingCpt> listPlayerNpcAI = miniGameBuilder.GetCharacterByType(NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Player);

        for (int i = 0; i < listPlayerNpcAI.Count; i++)
        {
            //如果没有给定敌方角色的菜品 那就随机给参赛的敌方角色设置菜品
            NpcAIMiniGameCookingCpt itemNpc = listPlayerNpcAI[i];
            if (itemNpc.characterMiniGameData.GetCookingMenuInfo() == null && itemNpc.characterMiniGameData.characterType == 0)
            {
                MenuInfoBean menuInfo = InnFoodHandler.Instance.manager.GetRandomFoodDataByCookingTheme(miniGameData.GetCookingTheme());
                itemNpc.characterMiniGameData.SetCookingMenuInfo(menuInfo);
            }
            //给参赛选手分配灶台
            MiniGameCookingStoveCpt itemTable = listStove[i];
            itemNpc.SetStove(itemTable);
        }
        //打开倒计时UI
        OpenCountDownUI(miniGameData, false);
    }
Example #6
0
    private NpcAIMiniGameCookingCpt CreateCharacter(MiniGameCharacterBean characterGameData, Vector3 startPosition, NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum npcType)
    {
        GameObject objCharacter        = Instantiate(objNpcContainer, objNpcModel, startPosition);
        NpcAIMiniGameCookingCpt npcCpt = objCharacter.GetComponent <NpcAIMiniGameCookingCpt>();

        npcCpt.startPosition = startPosition;
        npcCpt.SetNpcType(npcType);
        npcCpt.SetData((MiniGameCharacterForCookingBean)characterGameData);
        npcCpt.OpenAI();
        return(npcCpt);
    }
Example #7
0
    public void SetData(NpcAIMiniGameCookingCpt itemNpc, int rank)
    {
        MiniGameCharacterForCookingBean characterGameData = itemNpc.characterMiniGameData;

        SetCharacter(characterGameData.characterData);
        SetName(characterGameData.characterData.baseInfo.name);
        SetScore(characterGameData.scoreForTheme,
                 characterGameData.scoreForColor,
                 characterGameData.scoreForSweet,
                 characterGameData.scoreForTaste,
                 characterGameData.scoreForTotal);
        SetRank(rank);
        //SetLevel(characterGameData.characterData.baseInfo.chefInfo.workerLevel);
        SetBackground(characterGameData.characterType);
    }
 /// <summary>
 /// 创建结算数据
 /// </summary>
 /// <param name="listNpc">选手列表</param>
 public void CreateSettlementData(List <NpcAIMiniGameCookingCpt> listNpc)
 {
     CptUtil.RemoveChildsByActive(objItemSettlementContainer);
     if (listNpc == null)
     {
         return;
     }
     for (int i = 0; i < listNpc.Count; i++)
     {
         NpcAIMiniGameCookingCpt itemNpc = listNpc[i];
         GameObject objItem = Instantiate(objItemSettlementContainer, objItemSettlementModel);
         ItemMiniGameCookingSettlementCpt itemCpt = objItem.GetComponent <ItemMiniGameCookingSettlementCpt>();
         itemCpt.SetData(itemNpc, i + 1);
         objItem.transform.DOScale(new Vector3(0, 0, 0), 0.5f).From().SetEase(Ease.OutBack).SetDelay(i * 0.1f);
     }
 }
Example #9
0
    /// <summary>
    /// 呈上某人的作品
    /// </summary>
    /// <param name="miniGameCharacterData"></param>
    public void PresentFoodForAudit(NpcAIMiniGameCookingCpt npc)
    {
        //获取所有评审
        List <NpcAIMiniGameCookingCpt> listAuditer = miniGameBuilder.GetCharacterByType(NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Auditer);

        foreach (NpcAIMiniGameCookingCpt itemAuditer in listAuditer)
        {
            //复制食物给所有评审
            MiniGameCookingAuditTableCpt auditTableCpt = itemAuditer.auditTableCpt;
            GameObject objFoodForCover = Instantiate(auditTableCpt.objFoodPosition, npc.foodForCover.gameObject);
            objFoodForCover.transform.localPosition = Vector3.zero;
            objFoodForCover.transform.localScale    = new Vector3(1, 1, 1);
            itemAuditer.foodForCover   = objFoodForCover.GetComponent <FoodForCoverCpt>();
            itemAuditer.auditTargetNpc = npc;
        }
        //隐藏自己手上的食物
        npc.foodForCover.gameObject.SetActive(false);
    }
Example #10
0
    /// <summary>
    /// 开始准备阶段的料理游戏
    /// </summary>
    public void StartPreCooking(MenuInfoBean menuInfo)
    {
        //计算游戏时间
        float gameTiming = 10;

        miniGameBuilder.GetUserCharacter().characterData.GetAttributes(out CharacterAttributesBean attributes);
        gameTiming += (attributes.cook * 0.3f);
        //打开UI
        uiMiniGameCooking = UIHandler.Instance.manager.OpenUIAndCloseOther <UIMiniGameCooking>(UIEnum.MiniGameCooking);
        uiMiniGameCooking.SetData(miniGameData, gameTiming);
        uiMiniGameCooking.SetCallBack(this);
        uiMiniGameCooking.StartCookingPre();
        //角色就位
        NpcAIMiniGameCookingCpt npcAI = miniGameBuilder.GetUserCharacter();

        npcAI.characterMiniGameData.SetCookingMenuInfo(menuInfo);
        npcAI.SetIntent(NpcAIMiniGameCookingCpt.MiniGameCookingIntentEnum.CookingPre);
    }
Example #11
0
 public void CreateUserCharacter(MiniGameCharacterBean userData, Vector3 startPosition)
 {
     userCharacter = CreateCharacter(userData, startPosition, NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Player);
     userCharacter.characterMoveCpt.SetMoveSpeed(5);
 }