public override void Load(Stream fs) { currentStep = (FoundationScenarioStep)fs.ReadByte(); if (currentStep >= FoundationScenarioStep.AnchorBuilding) { AssignAnchor(colony.GetBuilding(Structure.ANCHOR_BASEMENT_ID) as AnchorBasement); } // if (fs.ReadByte() == 1) { if (hexBuilder == null) { SetHexBuilder(); } hexBuilder.Load(fs); } // int x = fs.ReadByte(); if (x != 0) { FoundationScenarioStep fss = (FoundationScenarioStep)fs.ReadByte(); subscenario = FDR_Subscenario.GetSubscenario(fss, this); if (subscenario != null) { subscenario.StartScenario(); subscenario.Load(fs); } } // if (fs.ReadByte() == 1) { PrepareSettling(); } }
public string[] GetQuestData(FoundationScenarioStep step) { switch (step) { case FoundationScenarioStep.AnchorBuilding: { return(new string[3] { routeName, lines[4] + ' ' + Localization.GetStructureName(Structure.ANCHOR_BASEMENT_ID) + ' ' + lines[5], Localization.GetStructureName(Structure.ANCHOR_BASEMENT_ID) }); } case FoundationScenarioStep.AnchorStart: { return(new string[3] { routeName, lines[8] + ' ' + ANCHOR_LAUNCH_ENERGYCOST.ToString() + lines[9] + Localization.GetWord(LocalizedWord.Anchor_verb) + lines[10], Localization.GetPhrase(LocalizedPhrase.EnergyStored) }); } case FoundationScenarioStep.InnerRingBuilding: { return(new string[3] { routeName, lines[13], lines[14] }); } case FoundationScenarioStep.OuterRingBuilding: { return(new string[3] { routeName, lines[20], lines[14] }); } case FoundationScenarioStep.Finish: { return(new string[5] { routeName, finishQuestText + '\n' + lines[62], colonistsLabel, islandStatsLabel, lowerlandStatsLabel }); } default: return(null); } }
public string GetAnnounceTitle(FoundationScenarioStep step, byte subIndex) { switch (step) { case FoundationScenarioStep.Begin: { switch (subIndex) { case WINDOW_INFO_0: return(lines[1]); case WINDOW_INFO_1: return(lines[2] + ' ' + Localization.GetStructureName(Structure.ANCHOR_BASEMENT_ID) + lines[3]); } break; } case FoundationScenarioStep.AnchorStart: { switch (subIndex) { case WINDOW_INFO_0: return(lines[6] + ' ' + lines[8] + ' ' + ANCHOR_LAUNCH_ENERGYCOST / 1000 + ' ' + lines[7]); case WINDOW_INFO_1: return(lines[15]); } break; } case FoundationScenarioStep.InnerRingBuilding: { switch (subIndex) { case WINDOW_INFO_0: return(lines[11]); case WINDOW_INFO_1: return(lines[16]); } break; } case FoundationScenarioStep.PierPreparing: { switch (subIndex) { case WINDOW_INFO_0: return(lines[17]); case WINDOW_INFO_1: return(lines[18]); } break; } case FoundationScenarioStep.OuterRingBuilding: { return(lines[19]); } case FoundationScenarioStep.Finish: return(finishQuestText); } return(null); }
public override void Load(FileStream fs) { currentStep = (FoundationScenarioStep)fs.ReadByte(); if (currentStep > FoundationScenarioStep.AnchorBuilding) { AssignAnchor(colony.GetBuilding(Structure.ANCHOR_BASEMENT_ID) as AnchorBasement); } int x = fs.ReadByte(); if (x != 0) { StartSubscenario(); subscenario.Load(fs); } }
public static FDR_Subscenario GetSubscenario(FoundationScenarioStep step, FoundationRouteScenario baseScenario) { switch (step) { case FoundationScenarioStep.Finish: return(new FDR_Finish(baseScenario)); case FoundationScenarioStep.OuterRingBuilding: return(new FDR_OuterRingBuilding(baseScenario)); case FoundationScenarioStep.PierPreparing: return(new FDR_PierPreparing(baseScenario)); case FoundationScenarioStep.InnerRingBuilding: return(new FDR_InnerRingBuilding(baseScenario)); case FoundationScenarioStep.AnchorStart: return(new FDR_AnchorStart(baseScenario)); case FoundationScenarioStep.AnchorBuilding: return(new FDR_AnchorBuilding(baseScenario)); case FoundationScenarioStep.Begin: return(new FDR_Begin(baseScenario)); default: return(null); } }
public void AnchorPoweredUp() { scenarioQuest?.MakeQuestCompleted(); currentStep = FoundationScenarioStep.InnerRingBuilding; StartSubscenario(); }
public override void StartScenario() { PrepareUI(); currentStep = FoundationScenarioStep.Begin; StartSubscenario(); }