void ExcuteHeroAction() { var ActiveHero = BattleHeroManager.Instance.GetHeroControl(ActiveTurnHeroNo); if (ActiveHero != null) { Debug.Log("ActiveHero Action : " + ActiveHero.ActionType); } var TargetHero = BattleHeroManager.Instance.GetHeroControl(ActiveTargetHeroNo); if (TargetHero != null) { Debug.Log("TargetHero Action : " + TargetHero.ActionType); } bool isWinner = false; EHeroBattleAction ActiveAction = ResultBattleAction(ActiveHero, TargetHero, ref isWinner); Vector3 vPos = Battleground.GetTeamPos(ActiveAction, ActiveHero.IsMyTeam); ActiveHero.ExcuteAction(ActiveAction, vPos, TargetHero, isWinner); EHeroBattleAction TargetHeroAction = ResultBattleAction(TargetHero, ActiveHero, ref isWinner); vPos = Battleground.GetTeamPos(TargetHeroAction, TargetHero.IsMyTeam); TargetHero.ExcuteAction(TargetHeroAction, vPos, ActiveHero, isWinner); }
public void ChangeState(EHeroBattleAction eAction, byte[] data = null, bool bRefresh = false) { if (mActionManager != null) { mActionManager.ChangeAction(eAction, data, bRefresh); } }
// 실제 전투 행동 public void ExcuteAction(EHeroBattleAction heroAction, Vector3 vPos, BattleHero targetHero, bool isWinner) { this.BattleTargetHero = targetHero; int sortingOrder = isWinner ? Define.BATTLE_WINNER_SORTINGORDER : Define.BATTLE_LOSER_SORTINGORDER; SetSortingOrder(sortingOrder); SetPosition(vPos); SetScale(new Vector3(Define.ACTION_START_SCALE, Define.ACTION_START_SCALE, Define.ACTION_START_SCALE)); ChangeState(heroAction); }
public virtual void ChangeAction(EHeroBattleAction eAction, byte[] data = null, bool bRefresh = false) { if (m_eCurrentAction != eAction || bRefresh == true) { m_ePreviousAction = m_eCurrentAction; m_Actions[(int)m_ePreviousAction].DoEnd(eAction); m_eCurrentAction = eAction; m_Actions[(int)m_eCurrentAction].DoStart(data); } }
public virtual void Initialize(BattleHero owner) { m_ePreviousAction = m_eCurrentAction = EHeroBattleAction.HeroAction_Idle; m_Owner = owner; for (int i = (int)EHeroBattleAction.HeroAction_Idle; i < (int)EHeroBattleAction.HeroAction_Max; i++) { m_Actions[i].Initialize(m_Owner, this); } m_Actions[(int)m_eCurrentAction].DoStart(); }
public Vector3 GetTeamPos(EHeroBattleAction stateAction, bool myTeam) { if (stateAction == EHeroBattleAction.HeroAction_CntWin || stateAction == EHeroBattleAction.HeroAction_AtkDefeat) { if (myTeam) { return(BattleActionPosMyTeam[(int)BattlePosType.BPT_ATK_FAKE].position); } else { return(BattleActionPosEnemy[(int)BattlePosType.BPT_ATK_FAKE].position); } } else if (stateAction == EHeroBattleAction.HeroAction_FakeWin || stateAction == EHeroBattleAction.HeroAction_CntDefeat) { if (myTeam) { return(BattleActionPosMyTeam[(int)BattlePosType.BPT_CNT_ATK].position); } else { return(BattleActionPosEnemy[(int)BattlePosType.BPT_CNT_ATK].position); } } else if (stateAction == EHeroBattleAction.HeroAction_AtkWin || stateAction == EHeroBattleAction.HeroAction_FakeDefeat) { if (myTeam) { return(BattleActionPosMyTeam[(int)BattlePosType.BPT_FAKE_CNT].position); } else { return(BattleActionPosEnemy[(int)BattlePosType.BPT_FAKE_CNT].position); } } else { if (myTeam) { return(BattleActionPosMyTeam[(int)BattlePosType.BPT_DRAW].position); } else { return(BattleActionPosEnemy[(int)BattlePosType.BPT_DRAW].position); } } }
protected bool IsMovingAction(EHeroBattleAction action) { if (action == EHeroBattleAction.HeroAction_AtkWin || action == EHeroBattleAction.HeroAction_CntWin || action == EHeroBattleAction.HeroAction_FakeWin || action == EHeroBattleAction.HeroAction_AtkDefeat || action == EHeroBattleAction.HeroAction_CntDefeat || action == EHeroBattleAction.HeroAction_FakeDefeat || action == EHeroBattleAction.HeroAction_DrawAtkDefeat || action == EHeroBattleAction.HeroAction_DrawDefeatAtk) { return(true); } return(false); }
public virtual void DoEnd(EHeroBattleAction eNextAction) { if (IsMovingAction(m_ActionManager.GetCurrentAction()) && eNextAction != EHeroBattleAction.HeroAction_BattleDie) { m_Owner.IsAction = false; } // idle Action을 제외하고 모든 행동 끝에는 targetHero를 초기화 시킨다. if (m_ActionManager.GetCurrentAction() != EHeroBattleAction.HeroAction_Idle) { m_Owner.BattleTargetHero = null; // 전투시 공격 승리자를 더 높게 설정했던 SortingOrder를 원래대로 초기화. m_Owner.SetDefaultSortingOrder(); } }
public override void DoEnd(EHeroBattleAction eNextAction) { base.DoEnd(eNextAction); m_Owner.StopCoroutine(ActionProc()); }
public override void DoEnd(EHeroBattleAction eNextAction) { base.DoEnd(eNextAction); }
public virtual void ActionRemind(EHeroBattleAction eAction, HeroBattleAction action) { m_Actions[(int)eAction] = action; }
public virtual HeroBattleAction GetAction(EHeroBattleAction eAction) { return(m_Actions[(int)eAction]); }