public override ActionLane Update(ActionLane blockedLanes) { var target = new ShipTarget(enemyTarget); ship.BlockGrid.Metadata.TurretList.SetTarget(target); return(ActionLane.AimTurrets); }
public override ActionLane Update(ActionLane blockedLanes) { if (Target == null) { return(ActionLane.None); } ship.Navigation.LookAt = Target; return(ActionLane.Rotation); }
public override ActionLane Update(ActionLane blockedLanes) { if (Target == null) { return(ActionLane.None); } ship.Navigation.MoveTo = Target; return(ActionLane.Movement); }
public void RunActions() { ActionLane mask = 0; foreach (var action in SortActions()) { var shouldRun = (mask & action.Lanes) == 0; if (shouldRun) { action.Blocking = action.Update(mask); mask |= action.Blocking; } else { action.Blocking = ActionLane.None; } } }
public override ActionLane Update(ActionLane blockedLanes) { var globalPos = ship.transform.position.ToVector2(); var currentVel = ship.Rigidbody2D.velocity; var headingVector = currentVel.normalized; foreach (var neighbour in neighbourCache) { var neighbourPos = neighbour.transform.position.ToVector2(); MofidyHeading(ref headingVector, neighbourPos - globalPos, neighbour); } headingVector = headingVector.normalized; var offset = Vector2.ClampMagnitude(headingVector * settings.headingCorrectionMultiplier, settings.detectionRadius); var target = new StaticPositionTarget(globalPos + offset); ship.Navigation.MoveTo = target; return(ActionLane.Movement); }
public abstract ActionLane Update(ActionLane blockedLanes);