public void AssignSettlement(SettlementCmdModel settlementCmd) { D.Assert(gameObject.GetComponentInChildren<SettlementCmdModel>() == null, "{0} already has a Settlement.".Inject(FullName)); Transform settlementUnit = settlementCmd.transform.parent; Data.SettlementOrbitSlot.AssumeOrbit(settlementUnit, "Settlement Orbiter"); // IMPROVE the only remaining OrbitSlot held in Data // enabling (or not) the system orbiter is handled by the SettlementCreator once isRunning InitializeSettlement(settlementCmd); }
private void InitializeSettlement(SettlementCmdModel settlementCmd) { D.Log("{0} is being deployed to {1}.", settlementCmd.Data.ParentName, FullName); Data.SettlementData = settlementCmd.Data; var systemIntelCoverage = gameObject.GetSafeInterface<IViewable>().PlayerIntel.CurrentCoverage; if (systemIntelCoverage == IntelCoverage.None) { D.Log("{0}.IntelCoverage set to None by its assigned System {1}.", settlementCmd.FullName, FullName); } // UNCLEAR should a new settlement being attached to a System take on the PlayerIntel state of the System?? See SystemPresenter.OnPlayerIntelCoverageChanged() settlementCmd.gameObject.GetSafeInterface<ICommandViewable>().PlayerIntel.CurrentCoverage = systemIntelCoverage; }