protected override void Awake() { base.Awake(); Target = _transform; _shipCaptain = gameObject.GetSafeMonoBehaviour<ShipCaptain>(); maxAnimateDistance = Mathf.RoundToInt(GraphicsSettings.Instance.MaxShipAnimateDistanceFactor * _shipCaptain.Size); maxShowDistance = Mathf.RoundToInt(GraphicsSettings.Instance.MaxShipShowDistanceFactor * _shipCaptain.Size); _fleetMgr = gameObject.GetSafeFirstMonoBehaviourInParents<FleetUnitCreator>(); InitializeHighlighting(); }
public void PartTwo() { var input = Helpers.FileHelper.ParseFile(InputFile); var shipCapt = new ShipCaptain(input, ShipNavigationType.Waypoint); shipCapt.Navigate(); Assert.IsTrue(shipCapt.Distance == 101860); }
public void PartOne() { var input = Helpers.FileHelper.ParseFile(InputFile); var shipCapt = new ShipCaptain(input); shipCapt.Navigate(); Assert.IsTrue(shipCapt.Distance == 562); }
public void Test_KnownCommands_WithWaypoint() { var input = Helpers.FileHelper.ParseFile(TestFile); var shipCapt = new ShipCaptain(input, ShipNavigationType.Waypoint); shipCapt.Navigate(); Assert.IsTrue(shipCapt.Distance == 286); }
public void Test_KnownCommands() { var input = Helpers.FileHelper.ParseFile(TestFile); var shipCapt = new ShipCaptain(input); shipCapt.Navigate(); Assert.IsTrue(shipCapt.Distance == 25); }
public void ReportShipLost(ShipCaptain shipCaptain) { D.Log("{0} acknowledging {1} has been lost.", this.GetType().Name, shipCaptain.name); _fleetMgr.ProcessShipRemoval(shipCaptain); }
private void RemoveShip(ShipCaptain shipCaptain) { bool isRemoved = ShipCaptains.Remove(shipCaptain); isRemoved = isRemoved && _fleetCmd.Data.RemoveShip(shipCaptain.Data); D.Assert(isRemoved, "{0} not found.".Inject(shipCaptain.Data.Name)); }
public void ProcessShipRemoval(ShipCaptain shipCaptain) { RemoveShip(shipCaptain); if (ShipCaptains.Count > Constants.Zero) { if (shipCaptain == LeadShipCaptain) { // LeadShip has died LeadShipCaptain = SelectBestShip(); } if (_fleetGraphics.IsDetectable) { _fleetCmd.IsFocus = true; } return; } // FleetCommand knows when to die }
private void OnGameStateChanged() { if (_gameMgr.GameState == GameState.Running) { // IMPROVE select LeadShipCaptain here for now as Data must be initialized first LeadShipCaptain = RandomExtended<ShipCaptain>.Choice(ShipCaptains); enabled = true; // OK to update now _fleetCmd.__GetFleetUnderway(); } }