public override void DoWindowContents(Rect inRect) { this.InitialWindowContents(inRect); GameFont _Previous = Text.Font; Text.Font = GameFont.Tiny; IntVec2 _Size = new IntVec2(150, 40); if (Widgets.ButtonText(new Rect(inRect.xMax - _Size.x, inRect.yMax - _Size.z, _Size.x, _Size.z), "Request Aditional Relay, 300RU, 700P", true, false, true)) { Core.GameComponent_Prometheus.Instance.Comp_Quest.ResourceAddToReserves(EnumResourceType.ResourceUnits, -300); Core.GameComponent_Prometheus.Instance.Comp_Quest.ResourceAddToReserves(EnumResourceType.Power, -700); Building_QuantumPowerRelay _PowerBuilding = (Building_QuantumPowerRelay)ThingMaker.MakeThing(ThingDef.Named("QuantumPowerRelay"), null); List <Thing> _Things = new List <Thing>(); _Things.Add(_PowerBuilding); DropPodUtility.DropThingsNear(this.ContactSource.Position, this.ContactSource.Map, _Things); } Text.Font = _Previous; }
public void ContactPrometheus(Building contactSource = null) { Log.Message("Contacting Prometheus"); //Updating Quest Status //Dsiplaying Message switch (m_QuestStatus) { case 0: //Debug starting quest m_QuestStatus++; break; case 1: //Signal Detection m_QuestStatus++; Find.WindowStack.Add(new Dialog_0_Generic("EDE_Dialog_Title_1_SignalDetection".Translate(), "EDE_Dialog_1_SignalDetection".Translate())); break; case 2: //Decoded m_QuestStatus++; Find.WindowStack.Add(new Dialog_0_Generic("EDE_Dialog_Title_2_FirstContact".Translate(), "EDE_Dialog_2_FirstContact".Translate())); Building_QuantumPowerRelay _PowerBuilding = (Building_QuantumPowerRelay)ThingMaker.MakeThing(ThingDef.Named("QuantumPowerRelay"), null); List <Thing> _Things = new List <Thing>(); _Things.Add(_PowerBuilding); DropPodUtility.DropThingsNear(contactSource.Position, contactSource.Map, _Things); break; case 3: //Charging if (this.m_ResourcesStored[EnumResourceType.Power] >= Mod_EDPrometheus.Settings.Quest.InitialShipSetup_PowerRequired) { m_QuestStatus++; this.ResourceAddToReserves(EnumResourceType.Power, -Mod_EDPrometheus.Settings.Quest.InitialShipSetup_PowerRequired); this.ShipSystem_PowerDistribution.CurrentLevel += 1; this.ContactPrometheus(); } else { Find.WindowStack.Add(new Dialog_1_PowerRequest("EDE_Dialog_Title_3_InitialCharge".Translate(), String.Format("EDE_Dialog_3_InitialCharge".Translate(), this.m_ResourcesStored[EnumResourceType.Power].ToString(), Mod_EDPrometheus.Settings.Quest.InitialShipSetup_PowerRequired.ToString()), contactSource)); } break; case 4: if (this.ResourceGetReserveStatus(EnumResourceType.ResourceUnits) >= Mod_EDPrometheus.Settings.Quest.InitialShipSetup_ResourcesRequired) { m_QuestStatus++; this.ResourceAddToReserves(EnumResourceType.ResourceUnits, -Mod_EDPrometheus.Settings.Quest.InitialShipSetup_ResourcesRequired); this.ShipSystem_Fabrication.CurrentLevel += 1; this.ContactPrometheus(); } else { Find.WindowStack.Add(new Dialog_0_Generic("EDE_Dialog_Title_4_NeedResources".Translate(), String.Format("EDE_Dialog_4_NeedResources".Translate(), this.ResourceGetReserveStatus(EnumResourceType.ResourceUnits).ToString(), Mod_EDPrometheus.Settings.Quest.InitialShipSetup_ResourcesRequired.ToString()))); } break; case 5: m_QuestStatus++; Find.WindowStack.Add(new Dialog_0_Generic("EDE_Dialog_Title_5_ExecutingBurn".Translate(), "EDE_Dialog_5_ExecutingBurn".Translate())); break; case 6: m_QuestStatus++; Find.WindowStack.Add(new Dialog_0_Generic("EDE_Dialog_Title_6_ShipStabilised".Translate(), "EDE_Dialog_6_ShipStabilised".Translate())); break; case 7: //Long Term Contact Find.WindowStack.Add(new Dialog_Prometheus()); break; default: //Find.WindowStack.Add(new Dialog_Prometheus()); Find.WindowStack.Add(new Dialog_0_Generic("EDETestString", "EDETestString".Translate())); m_QuestStatus = 1; break; } this.UpdateAllResearch(); }