/// <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); }
/// <summary> /// 设置NPC数据 /// </summary> /// <param name="characterMiniGameData"></param> public void SetData(MiniGameCharacterForCombatBean characterMiniGameData) { this.characterMiniGameData = characterMiniGameData; SetCharacterData(characterMiniGameData.characterData); //更新血量显示 characterLifeCpt.SetData(characterMiniGameData.characterCurrentLife, characterMiniGameData.characterMaxLife); }
public void GetAttributes(MiniGameCharacterForCombatBean miniGameCharacterData, out CharacterAttributesBean totalAttributes) { GetAttributes(out totalAttributes, out CharacterAttributesBean selfAttributes, out CharacterAttributesBean equipAttributes); miniGameCharacterData.GetTotalAttributes(totalAttributes); if (totalAttributes.lucky < 0) { totalAttributes.lucky = 0; } if (totalAttributes.cook < 0) { totalAttributes.cook = 0; } if (totalAttributes.speed < 0) { totalAttributes.speed = 0; } if (totalAttributes.account < 0) { totalAttributes.account = 0; } if (totalAttributes.charm < 0) { totalAttributes.charm = 0; } if (totalAttributes.force < 0) { totalAttributes.force = 0; } }
/// <summary> /// 回合准备 /// </summary> public IEnumerator RoundForPre(MiniGameCharacterForCombatBean gameCharacterData) { //获取角色 NpcAIMiniGameCombatCpt npcCpt = GetCharacter(gameCharacterData); //设置当前回合行动的角色 miniGameData.SetRoundActionCharacter(npcCpt); //执行效果 yield return(StartCoroutine(npcCpt.CombatEffectExecute())); //如果角色死亡 if (gameCharacterData.characterCurrentLife <= 0) { StartNextRound(); } else { //如果是敌方 if (gameCharacterData.characterType == 0) { //电脑开始行动 miniGameData.SetCombatStatus(MiniGameCombatStatusEnum.EnemyRound); npcCpt.OpenAI(); } //如果是友方 else if (gameCharacterData.characterType == 1) { //友方行动 miniGameData.SetCombatStatus(MiniGameCombatStatusEnum.OurRound); uiMiniGameCombat.OpenCombatCommand(); } //开启选中特效 SelectCharacter(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(); }
public void CompleteEffect(MiniGameCharacterForCombatBean miniGameCharacter) { //回复生命处理 int addLife = EffectTypeEnumTools.GetTotalLife(targetCharacter.characterData, listEffectTypeData); if (addLife > 0) { //显示增加的血量 targetCharacter.ShowTextInfo("+" + addLife, Color.green); targetCharacter.characterMiniGameData.AddLife(addLife); //更新血量显示 targetCharacter.characterLifeCpt.SetData(miniGameCharacter.characterCurrentLife, miniGameCharacter.characterMaxLife); } //伤害处理 int addDamage = EffectTypeEnumTools.GetTotalDamage(actionCharacter, listEffectTypeData); if (addDamage > 0) { targetCharacter.UnderAttack(1, addDamage); } }
/// <summary> /// 角色的回合 /// </summary> /// <param name="gameCharacterData"></param> public void CharacterRound(MiniGameCharacterForCombatBean gameCharacterData) { StartCoroutine(RoundForPre(gameCharacterData)); uiMiniGameCombat.RefreshUI(); }
/// <summary> /// 设置数据 /// </summary> /// <param name="gameCharacterData"></param> public void SetData(MiniGameCharacterForCombatBean gameCharacterData) { this.gameCharacterData = gameCharacterData; SetCharacterUI(gameCharacterData.characterData); RefreshUI(); }