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; } } }
/// <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); }
/// <summary> /// 开始制作料理阶段游戏 /// </summary> public void StartMakingCooking() { uiMiniGameCooking.StartCookingMaking(); //角色就位 NpcAIMiniGameCookingCpt npcAI = miniGameBuilder.GetUserCharacter(); npcAI.SetIntent(NpcAIMiniGameCookingCpt.MiniGameCookingIntentEnum.CookingMaking); }
/// <summary> /// 开始摆盘料理阶段游戏 /// </summary> public void StartEndCooking() { //打开UI uiMiniGameCooking.StartCookingEnd(); //角色就位 NpcAIMiniGameCookingCpt npcAI = miniGameBuilder.GetUserCharacter(); npcAI.SetIntent(NpcAIMiniGameCookingCpt.MiniGameCookingIntentEnum.CookingEnd); }
/// <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); }
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); }
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); } }
/// <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> 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); }
public void CreateUserCharacter(MiniGameCharacterBean userData, Vector3 startPosition) { userCharacter = CreateCharacter(userData, startPosition, NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Player); userCharacter.characterMoveCpt.SetMoveSpeed(5); }