/// <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); }
/// <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); }
/// <summary> /// 设置评审桌子 /// </summary> /// <param name="auditTableCpt"></param> public void SetAuditTable(MiniGameCookingAuditTableCpt auditTableCpt) { this.auditTableCpt = auditTableCpt; }