Exemple #1
0
 public override bool EventCanFire()
 {
     if (Utilities.Instance.Randomise.NextDouble() > FacilityManager.Instance.FireChance)
     {
         return(false);
     }
     if (facilityToBurn.IsDestroyed())
     {
         return(false);
     }
     return(facilityToBurn.CanBeDestroyed());
 }
Exemple #2
0
        public void StartUpgrade(UpgradeableFacility facility)
        {
            BureaucracyFacility facilityToUpgrade = UpgradeableToActualFacility(facility);

            if (facilityToUpgrade == null)
            {
                Debug.Log("[Bureaucracy]: Upgrade of " + facility.id + " requested but no facility found");
                UiController.Instance.errorWindow = UiController.Instance.GeneralError("Can't find facility " + facility.id + " - please report this (with your KSP.log) on the Bureaucracy forum thread");
                return;
            }

            Debug.Log("[Bureaucracy]: Upgrade of " + facility.id + " requested");
            if (facilityToUpgrade.IsDestroyed())
            {
                Debug.Log("[Bureaucracy]: " + facility.id + " is destroyed. Aborting upgrade");
                ScreenMessages.PostScreenMessage("[Bureaucracy]: Can't upgrade " + facilityToUpgrade.Name + " Building is destroyed");
                return;
            }

            if (facilityToUpgrade.Upgrading && facilityToUpgrade.Upgrade.UpgradeHeld)
            {
                facilityToUpgrade.Upgrade.OnEventCompleted();
                return;
            }
            if (facilityToUpgrade.Upgrading)
            {
                if (facilityToUpgrade.IsPriority)
                {
                    warningDialog = DrawWarningDialog(facilityToUpgrade);
                    return;
                }
                Debug.Log("[Bureaucracy]: " + facility.id + " is already being upgraded. Prioritising");
                SetPriority(facilityToUpgrade, true);
                ScreenMessages.PostScreenMessage("Upgrade of " + facilityToUpgrade.Name + " prioritised");
                return;
            }

            facilityToUpgrade.StartUpgrade(facility);
        }