public override bool EventCanFire() { if (Utilities.Instance.Randomise.NextDouble() > FacilityManager.Instance.FireChance) { return(false); } if (facilityToBurn.IsDestroyed()) { return(false); } return(facilityToBurn.CanBeDestroyed()); }
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); }