/// <summary> /// 通过游戏类型获取角色数据类型 /// </summary> /// <returns></returns> public MiniGameCharacterBean CreateMiniGameCharacterBeanByType() { MiniGameCharacterBean itemUserGameData = null; switch (gameType) { case MiniGameEnum.Barrage: itemUserGameData = new MiniGameCharacterForBarrageBean(); break; case MiniGameEnum.Combat: itemUserGameData = new MiniGameCharacterForCombatBean(); break; case MiniGameEnum.Cooking: itemUserGameData = new MiniGameCharacterForCookingBean(); break; case MiniGameEnum.Account: itemUserGameData = new MiniGameCharacterForAccountBean(); break; case MiniGameEnum.Debate: itemUserGameData = new MiniGameCharacterForDebateBean(); break; } return(itemUserGameData); }
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> /// <param name="miniGameCharacterData"></param> public NpcAIMiniGameCombatCpt CreateCharacter(Vector3 combatPosition, MiniGameCharacterBean miniGameCharacterData) { GameObject objPlayer = Instantiate(objPlayerContainer, objPlayerModel, combatPosition); NpcAIMiniGameCombatCpt npcCpt = objPlayer.GetComponent <NpcAIMiniGameCombatCpt>(); npcCpt.SetData((MiniGameCharacterForCombatBean)miniGameCharacterData); return(npcCpt); }
/// <summary> /// 创建一个NPC /// </summary> public NpcAIMiniGameBarrageCpt CreatePlayer(MiniGameCharacterBean characterData, Vector3 position) { GameObject objPlayer = Instantiate(objPlayerContainer, objPlayerModel, position); NpcAIMiniGameBarrageCpt npcCpt = objPlayer.GetComponent <NpcAIMiniGameBarrageCpt>(); npcCpt.SetData(characterData); listGamePlayer.Add(npcCpt); return(npcCpt); }
/// <summary> /// 设置NPC数据 /// </summary> /// <param name="characterMiniGameData"></param> public void SetData(MiniGameCharacterBean characterMiniGameData) { this.characterMiniGameData = characterMiniGameData; SetCharacterData(characterMiniGameData.characterData); //如果是敌人 则打开AI if (characterMiniGameData.characterType == 0) { OpenAI(); } }
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); }
/// <summary> /// 设置数据 /// </summary> /// <param name="gameCharacterData"></param> public void SetData(MiniGameCharacterBean gameCharacterData) { this.gameCharacterData = (MiniGameCharacterForCombatBean)gameCharacterData; characterPopupButton.SetData(gameCharacterData.characterData, this.gameCharacterData.listCombatEffect); SetCharacterUI(this.gameCharacterData.characterData); SetName(this.gameCharacterData.characterData.baseInfo.name); SetLife(this.gameCharacterData.characterCurrentLife, gameCharacterData.characterMaxLife); RefreshUI(); }
/// <summary> /// 创建敌方信息列表 /// </summary> /// <param name="listCharacterData"></param> public void CreateEnemyCharacterList(List <MiniGameCharacterBean> listCharacterData) { if (listCharacterData == null) { return; } for (int i = 0; i < listCharacterData.Count; i++) { MiniGameCharacterBean itemData = listCharacterData[i]; CreateCharacterItem(i, itemData, objEnemyCharacterContainer, objEnemyCharacterModel); } }
/// <summary> /// 移除角色回合行动 /// </summary> public void RemoveCharacterRound(MiniGameCharacterBean miniGameCharacter) { for (int i = 0; i < listCharacterRound.Count; i++) { ItemMiniGameCombatCharacterRoundCpt itemRound = listCharacterRound[i]; if (itemRound.gameCharacterData == miniGameCharacter) { listCharacterRound.Remove(itemRound); Destroy(itemRound.gameObject); return; } } }
/// <summary> /// 获取某一个角色 /// </summary> /// <param name="gameCharacterData"></param> public NpcAIMiniGameCombatCpt GetCharacter(MiniGameCharacterBean gameCharacterData) { List <NpcAIMiniGameCombatCpt> listCharacter = miniGameBuilder.GetAllCharacter(); for (int i = 0; i < listCharacter.Count; i++) { NpcAIMiniGameCombatCpt itemNpc = listCharacter[i]; if (itemNpc.characterMiniGameData == gameCharacterData) { return(itemNpc); } } return(null); }
/// <summary> /// 创建敌方角色 /// </summary> /// <param name="listCharacterData"></param> public void CreateEnemyCharacter(Vector3 combatPosition, List <MiniGameCharacterBean> listCharacterData) { listEnemyCharacter.Clear(); float characterPositionY = combatPosition.y + ((listCharacterData.Count - 1) / 2f) * 1.5f; for (int i = 0; i < listCharacterData.Count; i++) { Vector3 characterPosition = new Vector3(combatPosition.x + 3, characterPositionY); characterPositionY -= 1.5f; MiniGameCharacterBean itemData = listCharacterData[i]; NpcAIMiniGameCombatCpt npcCpt = CreateCharacter(characterPosition, itemData); listEnemyCharacter.Add(npcCpt); //设置角色朝向 npcCpt.SetCharacterFace(1); } }
/// <summary> /// 初始化角色回合 /// </summary> /// <param name="gameCharacterData"></param> public void InitCharacterRound(MiniGameCharacterBean gameCharacterData) { for (int i = 0; i < listCharacterRound.Count; i++) { ItemMiniGameCombatCharacterRoundCpt itemCpt = listCharacterRound[i]; if (gameCharacterData == itemCpt.gameCharacterData) { //恢复状态 itemCpt.SetStatus(false); //重新设置位置 RectTransform itemRTF = (RectTransform)itemCpt.transform; itemRTF.anchoredPosition = Vector2.zero; return; } } }
public void InitData( CharacterBean userData, List <CharacterBean> listEnemyData, List <CharacterBean> listAuditerData, List <CharacterBean> listCompereData) { List <CharacterBean> listUserData = new List <CharacterBean>(); if (userData != null) { listUserData.Add(userData); } base.InitData(listUserData, listEnemyData); //创建评审角色数据 if (!CheckUtil.ListIsNull(listAuditerData)) { foreach (CharacterBean itemData in listAuditerData) { //获取角色属性 itemData.GetAttributes( out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes); MiniGameCharacterBean itemUserGameData = CreateMiniGameCharacterBeanByType(); itemUserGameData.characterMaxLife = totalAttributes.life; itemUserGameData.characterCurrentLife = totalAttributes.life; itemUserGameData.characterData = itemData; listAuditerGameData.Add(itemUserGameData); } } //创建主持人角色数据 if (!CheckUtil.ListIsNull(listCompereData)) { foreach (CharacterBean itemData in listCompereData) { //获取角色属性 itemData.GetAttributes( out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes); MiniGameCharacterBean itemUserGameData = CreateMiniGameCharacterBeanByType(); itemUserGameData.characterMaxLife = totalAttributes.life; itemUserGameData.characterCurrentLife = totalAttributes.life; itemUserGameData.characterData = itemData; listCompereGameData.Add(itemUserGameData); } } }
/// <summary> /// 创建角色信息 /// </summary> /// <param name="position"></param> /// <param name="gameCharacterData"></param> /// <param name="objContainer"></param> /// <param name="objModel"></param> public void CreateCharacterItem(int position, MiniGameCharacterBean gameCharacterData, GameObject objContainer, GameObject objModel) { //创建角色信息 GameObject objItem = Instantiate(objContainer, objModel); ItemMiniGameCombatCharacterInfoCpt characterInfoCpt = objItem.GetComponent <ItemMiniGameCombatCharacterInfoCpt>(); characterInfoCpt.SetData(gameCharacterData); listCharacterInfo.Add(characterInfoCpt); //创建回合条信息 GameObject objRoundItem = Instantiate(objRoundCharacterContainer, objRoundCharacterModel); RectTransform rtfItemRound = objRoundItem.GetComponent <RectTransform>(); ItemMiniGameCombatCharacterRoundCpt characterRoundCpt = objRoundItem.GetComponent <ItemMiniGameCombatCharacterRoundCpt>(); characterRoundCpt.SetData((MiniGameCharacterForCombatBean)gameCharacterData); listCharacterRound.Add(characterRoundCpt); //添加动画 objItem.transform.DOScale(new Vector3(0.2f, 0.2f, 0.2f), 0.5f).From().SetDelay(0.1f * position).SetEase(Ease.OutBack); objRoundItem.transform.DOScale(new Vector3(0.2f, 0.2f, 0.2f), 0.5f).From().SetDelay(0.1f * position).SetEase(Ease.OutBack); }
/// <summary> /// 打开力度测试 /// </summary> public void OpenPowerTest(MiniGameCharacterBean gameCharacterData) { uiForCombatCommand.Close(); uiForSelectCharacter.Close(); GameConfigBean gameConfig = GameDataHandler.Instance.manager.GetGameConfig(); if (gameConfig.statusForCombatForPowerTest == 1) { //获取属性 gameCharacterData.characterData.GetAttributes(out CharacterAttributesBean characterAttributes); DialogBean dialogData = new DialogBean(); PowerTestDialogView powerTestDialog = DialogHandler.Instance.CreateDialog <PowerTestDialogView>(DialogEnum.PowerTest, this, dialogData); powerTestDialog.SetCallBack(this); powerTestDialog.SetData(1.5f, 1); } else { PowerTestEnd(0.8f); } }
/// <summary> /// 初始化数据 /// </summary> /// <param name="gameItemsManager"></param> /// <param name="userData"></param> /// <param name="listEnemyData"></param> public virtual void InitData(List <CharacterBean> listUserData, List <CharacterBean> listEnemyData) { //创建操作角色数据 if (!CheckUtil.ListIsNull(listUserData)) { foreach (CharacterBean itemData in listUserData) { //获取角色属性 itemData.GetAttributes( out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes); MiniGameCharacterBean itemUserGameData = CreateMiniGameCharacterBeanByType(); itemUserGameData.characterType = 1; itemUserGameData.characterMaxLife = totalAttributes.life; itemUserGameData.characterCurrentLife = totalAttributes.life; itemUserGameData.characterData = itemData; listUserGameData.Add(itemUserGameData); } } //创建敌人角色数据 if (!CheckUtil.ListIsNull(listEnemyData)) { foreach (CharacterBean itemData in listEnemyData) { //获取角色属性 itemData.GetAttributes( out CharacterAttributesBean totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes); MiniGameCharacterBean itemEnemyGameData = CreateMiniGameCharacterBeanByType(); itemEnemyGameData.characterType = 0; itemEnemyGameData.characterMaxLife = totalAttributes.life; itemEnemyGameData.characterCurrentLife = totalAttributes.life; itemEnemyGameData.characterData = itemData; listEnemyGameData.Add(itemEnemyGameData); } } InitForMiniGame(); }
/// <summary> /// 创建用户角色 /// </summary> /// <param name="userCharacter"></param> /// <param name="debatePosition"></param> public void CreateUserCharacter(MiniGameCharacterBean userCharacterData, Vector3 debatePosition) { aiUserCharacter = CreateCharacter(new Vector3(debatePosition.x - 2.5f, debatePosition.y), (MiniGameCharacterForDebateBean)userCharacterData); aiUserCharacter.SetCharacterFace(2); }
public void CreateUserCharacter(MiniGameCharacterBean userData, Vector3 startPosition) { userCharacter = CreateCharacter(userData, startPosition, NpcAIMiniGameCookingCpt.MiniGameCookingNpcTypeEnum.Player); userCharacter.characterMoveCpt.SetMoveSpeed(5); }
/// <summary> /// 创建敌人角色 /// </summary> /// <param name="enemyCharacter"></param> /// <param name="debatePosition"></param> public void CreateEnemyCharcater(MiniGameCharacterBean enemyCharacterData, Vector3 debatePosition) { aiEnemyCharacter = CreateCharacter(new Vector3(debatePosition.x + 2.5f, debatePosition.y), (MiniGameCharacterForDebateBean)enemyCharacterData); aiEnemyCharacter.SetCharacterFace(1); }