private void Shift(Entity hitEntity) { Vector3 fleeHitEntityDirection = Quaternion.Euler(0, -90, 0) * -Lortedo.Utilities.Math.Direction(Entity.transform.position, hitEntity.transform.position); ActionMoveToPosition action = new ActionMoveToPosition(Entity, transform.position + fleeHitEntityDirection * _shiftData.ShiftLength); Entity.SetAction(action, false); }
public static void OrderMoveToPosition(Vector3 destination) { bool addToActionQueue = Input.GetKey(additiveKeycode); bool hasEntityMove = false; bool hasEntitySetAnchorPosition = false; foreach (SelectionManager.SelectionGroup group in SelectionManager.Instance.SpartanGroups) { foreach (var entity in group.unitsSelected) { if (entity.Data.CanMove) { var actionMove = new ActionMoveToPosition(entity, destination); entity.SetAction(actionMove, addToActionQueue); hasEntityMove = true; } else { entity.GetCharacterComponent <EntityUnitSpawner>().SetAnchorPosition(destination); hasEntitySetAnchorPosition = true; } } } if (hasEntityMove) { OnOrder_MoveToPosition?.Invoke(destination); } if (hasEntitySetAnchorPosition) { OnOrder_SetAnchorPosition?.Invoke(destination); } OnOrderGiven?.Invoke(); }
private void MoveEntityToAnchor(Entity entity) { Action moveToAnchorAction = new ActionMoveToPosition(entity, _anchorPosition); entity.SetAction(moveToAnchorAction); }