//切换目标 private IEnumerator PlayChangeTargetAction(BattleUnitChangeTargetAction action) { if (action == null) { UtilityHelper.LogError("Error BattleHeroChangeTargetAction"); yield break; } UpdateRenderState(BattleUnitRenderState.Action); action.newTargetUnit.battleUnitRenderer.UpdateRenderState(BattleUnitRenderState.Selected); yield return(EGameConstL.WaitForHalfSecond); UpdateRenderState(BattleUnitRenderState.Normal); action.newTargetUnit.battleUnitRenderer.UpdateRenderState(BattleUnitRenderState.Normal); }
//自动 private HeroActionState AutoAction() { BattleBehaviourSystem.BattleDecision decision = battleBehaviourSystem.Think(); if (decision == null) { BattleUnitAttributeUpdate action = BattleUnitActionEvent.CreateEvent <BattleUnitAttributeUpdate>(BattleUnitActionType.AttributeUpdate, this); action.attribute = new BattleUnitSyncAttribute(); action.attribute.hpChanged = 0; action.attribute.currentHP = battleUnitAttribute.hp; action.attribute.energyChanged = 0; action.attribute.currentEnergy = battleUnitAttribute.energy; action.attribute.currentBP = battleUnitAttribute.BP; battleField.AppendBattleAction(action); return(HeroActionState.Normal); } //判断是否切换目标 if (decision.targetBattleUnit != null && !decision.targetBattleUnit.Equals(targetBattleUnit)) { BattleUnitChangeTargetAction action = BattleUnitActionEvent.CreateEvent <BattleUnitChangeTargetAction>(BattleUnitActionType.ChangeTarget, this); action.lastTargetUnit = targetBattleUnit; action.newTargetUnit = decision.targetBattleUnit; battleField.AppendBattleAction(action); targetBattleUnit = decision.targetBattleUnit; } //需要移动 if (decision.movePath != null && decision.movePath.Length > 0) { MoveToTargetGrid(targetBattleUnit, decision.movePath[decision.movePath.Length - 1], decision.movePath); } //自动搓招儿 AutoUseSkill(decision); return(HeroActionState.Normal); }