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();
        }