using Gameplay.Area; using Gameplay.Area.Skill; using LTGame; namespace Gameplay.PlayerSkill.State { public class PlayerSkillStateClickChoosePos : BasePlayerSkillState { private PlayerSkillAreaSelector _areaSelector; public PlayerSkillStateClickChoosePos(PlayerSkillManager owner) : base(owner, EPlayerSkillState.ClickChoosePos) { } protected override void _OnEnter(NBaseState exitState, object param) { base._OnEnter(exitState, param); _areaSelector = AreaManager.instance.playerSkillAreaSelector; _areaSelector.EnterPreview(owner.readySkillConfig.ID); } protected override void _OnRunning() { base._OnRunning(); if (_areaSelector.isFinished) { isFinished = true; if (_areaSelector.isReleased) { owner.selectedCellIndex = _areaSelector.releaseCellIndex; nextState = EPlayerSkillState.Release; } else { nextState = EPlayerSkillState.Idle; } } } protected override void _OnExit(NBaseState exitState, object param) { base._OnExit(exitState, param); _areaSelector.ExitPreview(); } } }