예제 #1
0
 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);
 }
예제 #2
0
    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;
    }