예제 #1
0
파일: KCT_Events.cs 프로젝트: ts826848/KCT
 public KCT_UpgradingBuilding(Upgradeables.UpgradeableFacility facility, int newLevel, int oldLevel, string name)
 {
     id           = facility.id;
     upgradeLevel = newLevel;
     currentLevel = oldLevel;
     commonName   = name;
 }
예제 #2
0
        public void FacilityUpgradedEvent(Upgradeables.UpgradeableFacility facility, int lvl)
        {
            if (KCT_GUI.PrimarilyDisabled)
            {
                return;
            }


            if (!(allowedToUpgrade || KCT_GameStates.settings.InstantKSCUpgrades))
            {
                KCT_UpgradingBuilding upgrading = new KCT_UpgradingBuilding(facility, lvl, lvl - 1, facility.id.Split('/').Last());

                if (!upgrading.AlreadyInProgress())
                {
                    upgrading.Downgrade();
                    double cost = facility.GetUpgradeCost();
                    upgrading.SetBP(cost);
                    upgrading.cost = cost;
                    KCT_GameStates.ActiveKSC.KSCTech.Add(upgrading);
                    ScreenMessages.PostScreenMessage("Facility upgrade requested!", 4.0f, ScreenMessageStyle.UPPER_CENTER);
                    KCTDebug.Log("Facility " + facility.id + " upgrade requested to lvl " + lvl + " for " + cost + " funds, resulting in a BP of " + upgrading.BP);
                }
                else if (lvl != upgrading.currentLevel)
                {
                    //
                    KCT_UpgradingBuilding listBuilding = upgrading.KSC.KSCTech.Find(b => b.id == upgrading.id);
                    listBuilding.Downgrade();
                    KCT_Utilities.AddFunds(listBuilding.cost, TransactionReasons.None);
                    ScreenMessages.PostScreenMessage("Facility is already being upgraded!", 4.0f, ScreenMessageStyle.UPPER_CENTER);
                    KCTDebug.Log("Facility " + facility.id + " tried to upgrade to lvl " + lvl + " but already in list!");
                }
            }
            else
            {
                KCTDebug.Log("Facility " + facility.id + " upgraded to lvl " + lvl);
                allowedToUpgrade = false;
                foreach (KCT_KSC ksc in KCT_GameStates.KSCs)
                {
                    ksc.RecalculateBuildRates();
                    ksc.RecalculateUpgradedBuildRates();
                }
                foreach (KCT_TechItem tech in KCT_GameStates.TechList)
                {
                    tech.UpdateBuildRate();
                }
            }

            /* if (lvl <= lastLvl)
             * {
             *   lastLvl = -1;
             *   return;
             * }
             * facility.SetLevel(lvl - 1);
             * lastLvl = lvl;
             * double cost = facility.GetUpgradeCost();
             * double BP = Math.Sqrt(cost) * 2000 * KCT_GameStates.timeSettings.OverallMultiplier;*/

            // KCTDebug.Log(facility.GetNormLevel());
        }
예제 #3
0
        private void onFacilityUpgraded(Upgradeables.UpgradeableFacility fac, int lvl)
        {
            if (fac.id == "SpaceCenter/TrackingStation")
            {
                this.Log("Caught onFacilityUpgraded for {0} at level {1}", fac.id, lvl);
                this.SetKerbinRelayRange();

                this.updateModuleInfos();
            }
        }
예제 #4
0
        public void FacilityUpgradedEvent(Upgradeables.UpgradeableFacility facility, int lvl)
        {
            if (KCT_GUI.IsPrimarilyDisabled)
            {
                return;
            }

            KCTDebug.Log($"Facility {facility.id} upgraded to lvl {lvl}");
            AllowedToUpgrade = false;
            foreach (KSCItem ksc in KCTGameStates.KSCs)
            {
                ksc.RecalculateBuildRates();
                ksc.RecalculateUpgradedBuildRates();
            }
            for (int i = KCTGameStates.TechList.Count - 1; i >= 0; i--)
            {
                TechItem tech = KCTGameStates.TechList[i];
                tech.UpdateBuildRate(KCTGameStates.TechList.IndexOf(tech));
            }
        }
예제 #5
0
        public void FacilityUpgradedEvent(Upgradeables.UpgradeableFacility facility, int lvl)
        {
            if (KCT_GUI.PrimarilyDisabled)
            {
                bool isLaunchpad = facility.id.ToLower().Contains("launchpad");
                if (!isLaunchpad)
                {
                    return;
                }

                //is a launch pad
                KCT_GameStates.ActiveKSC.ActiveLPInstance.Upgrade(lvl);
            }

            KCTDebug.Log("Facility " + facility.id + " upgraded to lvl " + lvl);
            if (facility.id.ToLower().Contains("launchpad"))
            {
                if (!allowedToUpgrade)
                {
                    KCT_GameStates.ActiveKSC.ActiveLPInstance.Upgrade(lvl); //also repairs the launchpad
                }
                else
                {
                    KCT_GameStates.ActiveKSC.ActiveLPInstance.level = lvl;
                }
            }
            allowedToUpgrade = false;
            foreach (KCT_KSC ksc in KCT_GameStates.KSCs)
            {
                ksc.RecalculateBuildRates();
                ksc.RecalculateUpgradedBuildRates();
            }
            for (int i = KCT_GameStates.TechList.Count - 1; i >= 0; i--)
            {
                KCT_TechItem tech = KCT_GameStates.TechList[i];

                //foreach (KCT_TechItem tech in KCT_GameStates.TechList)
                //{
                tech.UpdateBuildRate(KCT_GameStates.TechList.IndexOf(tech));
            }
        }
예제 #6
0
파일: KCTEvents.cs 프로젝트: ntwest/KCT
        public void FacilityUpgradedEvent(Upgradeables.UpgradeableFacility facility, int lvl)
        {
            const string logBlockName = nameof(KCTEvents) + "." + nameof(FacilityUpgradedEvent);

            using (EntryExitLogger.EntryExitLog(logBlockName, EntryExitLoggerOptions.All))
            {
                if (KCT_GUI.PrimarilyDisabled)
                {
                    bool isLaunchpad = facility.id.ToLower().Contains("launchpad");
                    if (!isLaunchpad)
                    {
                        return;
                    }

                    //is a launch pad
                    GameStates.ActiveKSC.ActiveLPInstance.Upgrade(lvl);
                }


                //if (!(allowedToUpgrade || !KCT_PresetManager.Instance.ActivePreset.generalSettings.KSCUpgradeTimes))
                //{
                //    KCT_UpgradingBuilding upgrading = new KCT_UpgradingBuilding(facility.id, lvl, lvl - 1, facility.id.Split('/').Last());

                //    upgrading.isLaunchpad = facility.id.ToLower().Contains("launchpad");
                //    if (upgrading.isLaunchpad)
                //    {
                //        upgrading.launchpadID = KCT_GameStates.ActiveKSC.ActiveLaunchPadID;
                //        if (upgrading.launchpadID > 0)
                //            upgrading.commonName += KCT_GameStates.ActiveKSC.ActiveLPInstance.name;//" " + (upgrading.launchpadID+1);
                //    }

                //    if (!upgrading.AlreadyInProgress())
                //    {
                //        KCT_GameStates.ActiveKSC.KSCTech.Add(upgrading);
                //        upgrading.Downgrade();
                //        double cost = facility.GetUpgradeCost();
                //        upgrading.SetBP(cost);
                //        upgrading.cost = cost;

                //        ScreenMessages.PostScreenMessage("Facility upgrade requested!", 4.0f, ScreenMessageStyle.UPPER_CENTER);
                //        Log.Trace("Facility " + facility.id + " upgrade requested to lvl " + lvl + " for " + cost + " funds, resulting in a BP of " + upgrading.BP);
                //    }
                //    else if (lvl != upgrading.currentLevel)
                //    {
                //        //
                //        KCT_UpgradingBuilding listBuilding = upgrading.KSC.KSCTech.Find(b => b.id == upgrading.id);
                //        if (upgrading.isLaunchpad)
                //            listBuilding = upgrading.KSC.KSCTech.Find(b => b.isLaunchpad && b.launchpadID == upgrading.launchpadID);
                //        listBuilding.Downgrade();
                //        KCT_Utilities.AddFunds(listBuilding.cost, TransactionReasons.None);
                //        ScreenMessages.PostScreenMessage("Facility is already being upgraded!", 4.0f, ScreenMessageStyle.UPPER_CENTER);
                //        Log.Trace("Facility " + facility.id + " tried to upgrade to lvl " + lvl + " but already in list!");
                //    }
                //}
                //else
                //{
                Log.Trace("Facility " + facility.id + " upgraded to lvl " + lvl);
                if (facility.id.ToLower().Contains("launchpad"))
                {
                    if (!allowedToUpgrade)
                    {
                        GameStates.ActiveKSC.ActiveLPInstance.Upgrade(lvl);   //also repairs the launchpad
                    }
                    else
                    {
                        GameStates.ActiveKSC.ActiveLPInstance.level = lvl;
                    }
                }
                allowedToUpgrade = false;
                foreach (SpaceCenterConstruction ksc in GameStates.KSCs)
                {
                    ksc.RecalculateBuildRates();
                    ksc.RecalculateUpgradedBuildRates();
                }
                foreach (KCT_TechItem tech in GameStates.TechList)
                {
                    tech.UpdateBuildRate(GameStates.TechList.IndexOf(tech));
                }
                //}

                /* if (lvl <= lastLvl)
                 * {
                 *   lastLvl = -1;
                 *   return;
                 * }
                 * facility.SetLevel(lvl - 1);
                 * lastLvl = lvl;
                 * double cost = facility.GetUpgradeCost();
                 * double BP = Math.Sqrt(cost) * 2000 * KCT_GameStates.timeSettings.OverallMultiplier;*/

                // Log.Trace(facility.GetNormLevel());
            }
        }
예제 #7
0
파일: KEI.cs 프로젝트: jorgeafs/KSP-KEI
 private void OnKSCFacilityUpgraded(Upgradeables.UpgradeableFacility facility, int level)
 {
     appLauncherButton.SetFalse();
 }
예제 #8
0
 private void FixFlags(Upgradeables.UpgradeableFacility data0, int data1)
 {
     FixFlags();
 }
예제 #9
0
        private void FacilityUpgrade(Upgradeables.UpgradeableFacility Data, int V)
        {
//				_logger.Trace( "Callback: KSP Facility Upgraded" );
            ScheduleExperimentUpdate(true, 5);                       // 5 seconds.  Trying to avoid an exception.  The colliders list gets updated while we are looking at it.
        }
예제 #10
0
 private void OnKSCFacilityUpgraded(Upgradeables.UpgradeableFacility facility, int level)
 {
     Log.Info("OnKSCFacilityUpgraded");
     toolbarControl.SetFalse();
     //appLauncherButton.SetFalse();
 }
        private void FacilityUpgrade(Upgradeables.UpgradeableFacility Data, int V)
        {
//			_logger.Trace( "Callback: KSP Facility Upgraded" );
            ScheduleExperimentUpdate(true);
        }