public override void Action() { base.Action(); RPGCharacter target = Target(); if (target == null) { return; } EquipWeapon(target.Logic); var side = PositionMath.GetSidewayTilePos(target.GetTileCoord()); var avSidePos = PositionMath.MoveableAreaPoints.Intersect(side).ToList(); if (avSidePos.Count == 0) { return; } Vector2Int bestPos = PositionMath.GetBestTilePos(avSidePos); List <Vector2Int> routines = PositionMath.GetMoveRoutine(bestPos); var move = AddSequenceEvent <MoveCharacter>(); move.CameraFollow = true; move.Routine = routines; move.CharacterID = -1; move.WaitUntilFinished = true; move.Speed = EModeSpeed.Normal; BattlePlayer.AssembleAttackSequenceEvent(AddSequenceEvent <AttackAnimation>, logic, target.Logic); }