using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using _1869_Remake; using _1869_Remake.ToolKlassen; using _1869_Remake.Entities; using Otter; namespace _1869_Remake.Scenes { public class WerftScene : Scene { TextBuilder TextLieferant; public Image WerftScreen_Büro = new Image(Assets.WERFTBÜROSCREEN); public Image WerftScreen_Reparatur = new Image(Assets.WERFTREPERATURSCREEN); public Image WerftScreen_SchiffsAuswahl = new Image(Assets.WERFTSCHIFFSAUSWAHLSCREEN); public Image FadeInBlackScreen = new Image(Assets.BLACKSCREEN); public Image FadeOutBlackScreen = new Image(Assets.BLACKSCREEN); //Schiffsscreens public Image Schiffsauswahl_Schoner = new Image(Assets.WERFT_SCHIFF_SCHONER); public Image Schiffsauswahl_Bark = new Image(Assets.WERFT_SCHIFF_BARK); public Image Schiffsauswahl_Fregatte = new Image(Assets.WERFT_SCHIFF_FREGATTE); public Image Schiffsauswahl_Brigg = new Image(Assets.WERFT_SCHIFF_BRIGG); public Image Schiffsauswahl_Holzdampfschiff = new Image(Assets.WERFT_SCHIFF_HOLZDAMPFSCHIFF); public Image Schiffsauswahl_Eisendampfschiff = new Image(Assets.WERFT_SCHIFF_EISENDAMPFSCHIFF); public Image Schiffsauswahl_Klipper = new Image(Assets.WERFT_SCHIFF_KLIPPER); public Image Schiffsauswahl_Name = new Image(Assets.WERFT_SCHIFF_BAU_NAME); private List SchiffsSchemaListe = new List(); private List gebrauchteSchiffe = new List(); private int SchiffsIndex = 0; //AnzeigeTimer public const float TIMER_GRENZE = 90f; public float szenenTimer = 0f; public bool wahlFertig = true; public bool anzeigeFertig = false; //TempTextVariablen Queue TempSprachText = new Queue(); Queue TempSprachParams = new Queue(); Queue TempQueue = new Queue(); //Letzte dem Textbuilder übergebene Liste an Paramtern (Wird nur für Shortcut funktionalität verwender) private List letzteÜbergebeneListe = new List(); public Hafen aktuellerHafen; private Image aktuellerBG; private string aktuellGewählterSchiffstyp = "SCHONER"; //Standard Aufbereitungszeit für gebrauchte Schiffe ist 4 Tage private TimeSpan StandardLieferZeit = new TimeSpan(4, 0, 0, 0); //Temporäre Liste der möglichen Geldquellen public List möglicheGeldQuellen = new List(); public int geldQuellenIndex = 0; public int betragAbbezahlen = 0; private int GebrauchtWert; private int WunschRestBetrag; bool kannBezahlen; //Textbox zum Eingeben der Schiffsnamen public TextBox textFeld; public WerftScene(string Preset) { //Initialisieren des Hauptbildschirms und einblenden Globals.aktuelleSzene = "Werft"; //Informationen zum aktuellen Hafen wird geladen, Alle Handlungen beeinflussen den globalen Zustand des Hafens aktuellerHafen = Globals.AlleHäfen[Preset]; //TestLogging Console.WriteLine("Aktueller Hafen ist " + aktuellerHafen.NAME); //TextBuilder einbinden (POS = Unterer RAND) TextLieferant = new TextBuilder(Globals.aktuelleSzene); Add(TextLieferant); überprüfeGeldquellen(); //Einleitungssprachtexte Queue WillkommensText = new Queue(); WillkommensText.Enqueue("Helfen"); TextLieferant.erzeugeSprachText(WillkommensText, new Queue(), Globals.Remake.HalfWidth, 100); //Auswahltexte TextLieferant.erzeugeAuswahlText(new Queue(), 25, 410); //Vorbeireiten des Hintergrundes Büro und der NebenScreens //Büro WerftScreen_Büro.CenterOrigin(); WerftScreen_Büro.X = Globals.Remake.HalfWidth; WerftScreen_Büro.Y = Globals.Remake.HalfHeight; WerftScreen_Büro.Alpha = 1f; //bei Start der Szene wird der aktuelle BG weg gespeichert um diesen Später aus/einzublenden aktuellerBG = WerftScreen_Büro; AddGraphic(aktuellerBG); //Reperatur Screen WerftScreen_Reparatur.CenterOrigin(); WerftScreen_Reparatur.X = Globals.Remake.HalfWidth; WerftScreen_Reparatur.Y = Globals.Remake.HalfHeight; WerftScreen_Reparatur.Alpha = 0f; //Schiffsauswahl Screen WerftScreen_SchiffsAuswahl.CenterOrigin(); WerftScreen_SchiffsAuswahl.X = Globals.Remake.HalfWidth; WerftScreen_SchiffsAuswahl.Y = Globals.Remake.HalfHeight; WerftScreen_SchiffsAuswahl.Alpha = 0f; //SchiffsScreens Schiffsauswahl_Schoner.CenterOrigin(); Schiffsauswahl_Schoner.X = Globals.Remake.HalfWidth; Schiffsauswahl_Schoner.Y = Globals.Remake.HalfHeight; Schiffsauswahl_Schoner.Alpha = 0f; Schiffsauswahl_Bark.CenterOrigin(); Schiffsauswahl_Bark.X = Globals.Remake.HalfWidth; Schiffsauswahl_Bark.Y = Globals.Remake.HalfHeight; Schiffsauswahl_Bark.Alpha = 0f; Schiffsauswahl_Holzdampfschiff.CenterOrigin(); Schiffsauswahl_Holzdampfschiff.X = Globals.Remake.HalfWidth; Schiffsauswahl_Holzdampfschiff.Y = Globals.Remake.HalfHeight; Schiffsauswahl_Holzdampfschiff.Alpha = 0f; Schiffsauswahl_Eisendampfschiff.CenterOrigin(); Schiffsauswahl_Eisendampfschiff.X = Globals.Remake.HalfWidth; Schiffsauswahl_Eisendampfschiff.Y = Globals.Remake.HalfHeight; Schiffsauswahl_Eisendampfschiff.Alpha = 0f; Schiffsauswahl_Brigg.CenterOrigin(); Schiffsauswahl_Brigg.X = Globals.Remake.HalfWidth; Schiffsauswahl_Brigg.Y = Globals.Remake.HalfHeight; Schiffsauswahl_Brigg.Alpha = 0f; Schiffsauswahl_Fregatte.CenterOrigin(); Schiffsauswahl_Fregatte.X = Globals.Remake.HalfWidth; Schiffsauswahl_Fregatte.Y = Globals.Remake.HalfHeight; Schiffsauswahl_Fregatte.Alpha = 0f; Schiffsauswahl_Klipper.CenterOrigin(); Schiffsauswahl_Klipper.X = Globals.Remake.HalfWidth; Schiffsauswahl_Klipper.Y = Globals.Remake.HalfHeight; Schiffsauswahl_Klipper.Alpha = 0f; Schiffsauswahl_Name.CenterOrigin(); Schiffsauswahl_Name.X = Globals.Remake.HalfWidth; Schiffsauswahl_Name.Y = Globals.Remake.HalfHeight; Schiffsauswahl_Name.Alpha = 0f; //Vorbereiten des Blackscreens FadeInBlackScreen.CenterOrigin(); FadeInBlackScreen.X = Globals.Remake.HalfWidth; FadeInBlackScreen.Y = Globals.Remake.HalfHeight; FadeInBlackScreen.Alpha = 1f; FadeOutBlackScreen.CenterOrigin(); FadeOutBlackScreen.X = Globals.Remake.HalfWidth; FadeOutBlackScreen.Y = Globals.Remake.HalfHeight; FadeOutBlackScreen.Alpha = 0f; Tween(FadeInBlackScreen, new { Alpha = 0f }, 64f, 0f).Ease(Ease.BackInOut); AddGraphics(FadeInBlackScreen); AddGraphic(FadeOutBlackScreen); } public override void Update() { base.Update(); //hochzählendes Zeitelement um Aktionen in der Szene zu Takten szenenTimer++; if (FadeOutBlackScreen.Alpha >= 0.999f) { Globals.LetzteSzene = "Werft"; this.RemoveAll(); Globals.Remake.SwitchScene(new worldMap()); } //Bei Tick überprüfen, ob etwas im Textbuilder geklickt wurde (1 = Obere Auswahl, 2 = Mitlere Auswahl, 3 = Untere Auswahl, 4 = Oberer Pfeil, 5 = unterer Pfeil) //Zuerst überprüfen auf welcher Ebene wir uns aktuell befinden und danach was dort geklickt wurde int tempAuswahl = TextLieferant.checkAuswahl(); Text TempText; List anzeigeTextListe = new List(); Schiff SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); string gewählterSchiffsName = " "; switch (TextLieferant.aktuelleEbene) { // Textbaum - Root case "1": #region RootLogik (Demo Ready) switch (tempAuswahl) { case 0: //Noch keine Auswahl getroffen break; // Hier muss für jede Auswahl immer alle Möglichen Baumstränge abgedeckt werden, wenn neuer Baumzweig hinzukommt muss hier seine Auswahl verwaltet werdenkd case 1: Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); letzteÜbergebeneListe.Clear(); //Auswahl Reparatur WechsleBG("Reparatur"); TextLieferant.wechsleAuswahlText("1.1", new Queue()); break; case 2: Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); aktuellGewählterSchiffstyp = Globals.AlleSchiffsTypen[SchiffsIndex].SCHIFFSTYP; //Auswahl Schiff bauen int tempSchiffeInBau = 0; //Vorabüberprüfen ob bereits 2 zu bauende Schiffe im Hafen sind //Jede Werft baut maximal 2 Schiffe (spielerübergreifend) foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.inBau) { tempSchiffeInBau++; } } if (tempSchiffeInBau >= 2) { TempSprachText.Clear(); TempSprachText.Enqueue("BAU_KEINPLATZ1"); TempSprachText.Enqueue("BAU_KEINPLATZ2"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); break; } else { // Es könenn pro Werft maximal 2 Schiffe gebaut werden unabhängig von welchem Spieler switch (SchiffsIndex) { #region SchiffsParams //Erzeugen der jeweiligen Anzeigen Texte je nach Schiffstyp case 0: WechsleBG("Schiffsauswahl_Schoner"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 1: WechsleBG("Schiffsauswahl_Bark"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 2: WechsleBG("Schiffsauswahl_Holzdampfschiff"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(4), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 3: WechsleBG("Schiffsauswahl_Eisendampfschiff"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("KABINEN FÜR " + SchablonenSchiff.KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(5), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 4: WechsleBG("Schiffsauswahl_Brigg"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 280; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 300; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 5: WechsleBG("Schiffsauswahl_Fregatte"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("KABINEN FÜR " + SchablonenSchiff.KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 220; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 6: WechsleBG("Schiffsauswahl_Klipper"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("KABINEN FÜR " + SchablonenSchiff.KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 340; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; #endregion } TextLieferant.erzeugeAnzeigeTexte(anzeigeTextListe); TextLieferant.wechsleAuswahlText("1.2", new Queue()); break; } case 3: Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); //Auswahl Verlassen //FadeOut zu WorldMap Tween(FadeOutBlackScreen, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); TextLieferant.setzeFadeOut(); break; case 4: Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); letzteÜbergebeneListe.Clear(); //Auswahl Gebrauchtes Schiff //Zusammensuchen der Liste aller gebrauchten Schiffe // Gebrauchtes Schiff = Schiff ohne Commandeur angedockt im aktuellen Hafen foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.COMMANDEUR == null) { gebrauchteSchiffe.Add(s); } } if (gebrauchteSchiffe.IsEmpty()) { TempSprachText.Clear(); TempSprachText.Enqueue("Gebraucht_KEINESCHIFFE"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } else { SchiffsIndex = 0; aktuellGewählterSchiffstyp = gebrauchteSchiffe[SchiffsIndex].SCHIFFSTYP; GebrauchtWert = gebrauchteSchiffe[SchiffsIndex].NEUWERT; //Verlaufswert muss berechnet werden //-> Normalerweise wird prozentual zur Abnutzung die Differenz aus Neuwert-(Grad der Abnutzung in %) gerechnet //-> Da Reparatur noch nich einbaut ist wird Altersabhängig bestimmt ((1/2)* Alter in jahren) for (int Alter = 0; Alter < gebrauchteSchiffe[SchiffsIndex].ALTER; Alter++) {//halbiere den NeuWert pro jahr GebrauchtWert /= 2; } switch (aktuellGewählterSchiffstyp) { #region SchiffsParams //Erzeugen der jeweiligen Anzeigen Texte je nach Schiffstyp case "SCHONER": WechsleBG("Schiffsauswahl_Schoner"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "BARK": WechsleBG("Schiffsauswahl_Bark"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "HOLZDAMPFSCHIFF": WechsleBG("Schiffsauswahl_Holzdampfschiff"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(4), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "EISENDAMPFSCHIFF": WechsleBG("Schiffsauswahl_Eisendampfschiff"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("KABINEN FÜR " + gebrauchteSchiffe[SchiffsIndex].KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(5), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "BRIGG": WechsleBG("Schiffsauswahl_Brigg"); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 280; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 300; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 320; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "FREGATTE": WechsleBG("Schiffsauswahl_Fregatte"); TempText = new Text("KABINEN FÜR " + gebrauchteSchiffe[SchiffsIndex].KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 220; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 240; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "KLIPPER": WechsleBG("Schiffsauswahl_Klipper"); TempText = new Text("KABINEN FÜR " + gebrauchteSchiffe[SchiffsIndex].KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 340; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 190; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; #endregion } //Geldquellen paramter TempQueue.Clear(); geldQuellenIndex = 0; // Paramter1: Quellort Geld // Parameter2: Geldmenge der Quelle if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { TempQueue.Enqueue("IM LAGER VERFÜGE ICH"); foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (f.BESITZER == Globals.AktuellerSpieler) { TempQueue.Enqueue((f.BUDGET / 100).ToString()); TempQueue.Enqueue((f.BUDGET % 100).ToString()); } } } else { TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT"); foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.COMMANDEUR == Globals.AktuellerSpieler && s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { TempQueue.Enqueue((s.SCHIFFSBUDGET / 100).ToString()); TempQueue.Enqueue((s.SCHIFFSBUDGET % 100).ToString()); } } } TextLieferant.erzeugeAnzeigeTexte(anzeigeTextListe); TextLieferant.wechsleAuswahlText("1.4", TempQueue, false); } break; case 5: Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); letzteÜbergebeneListe.Clear(); //Auswahl Schiff verkaufen foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { //Alle Schiffe des aktuellen Spielers anbieten (außer die noch in Bau befindlichen oder präpariert werden) if (s.COMMANDEUR == Globals.AktuellerSpieler && s.inBau != true && s.inBereitstellung != true) { TempQueue.Enqueue(s.NAME); letzteÜbergebeneListe.Add(s.NAME); } } TempSprachText = new Queue(); if (TempQueue.Count() > 0) { if (TempQueue.Count() == 1) { //Shortcut zu Mengenbestimmungsscreen setzen TextLieferant.setAuswahl(1); } else { TempSprachText.Enqueue("Verkauf_WelchesSchiff"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } TextLieferant.wechsleAuswahlText("1.5A", TempQueue, true); } else { //Spieler hat keine angedockten Schiffe in diesem Hafen TempSprachText.Enqueue("Verkauf_KeinSchiff1"); TempSprachText.Enqueue("Verkauf_KeinSchiff2"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } break; case 6: Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); letzteÜbergebeneListe.Clear(); //Auswahl Schiff bezahlen wenn bestellt wurde bool hatSchiffeInBau = false; string bezahlterSchiffsName = ""; foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { //Alle Schiffe des aktuellen Spielers anbieten (außer die noch in Bau befindlichen) if (s.COMMANDEUR == Globals.AktuellerSpieler && s.inBau) { hatSchiffeInBau = true; //Spieler hat Schiff welches if (bezahlterSchiffsName == "") { bezahlterSchiffsName = s.NAME; } else { bezahlterSchiffsName = "ALLE"; } //Nur in die Liste nehmen wenn Schiff noch nicht bezahlt ist if(!s.bezahlt) { TempQueue.Enqueue(s.NAME); letzteÜbergebeneListe.Add(s.NAME); } } } TempSprachText = new Queue(); TempSprachParams = new Queue(); if (TempQueue.Count() > 0) { if (TempQueue.Count() == 1) { //Shortcut zu Mengenbestimmungsscreen setzen TextLieferant.setAuswahl(1); } else { TempSprachText.Enqueue("Verkauf_WelchesSchiff"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } TextLieferant.wechsleAuswahlText("1.6A", TempQueue, true); } else { if(hatSchiffeInBau) { if(bezahlterSchiffsName=="ALLE") { TempSprachText.Enqueue("Bezahlen_AlleBezahlt"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } else { TempSprachParams.Enqueue(bezahlterSchiffsName); TempSprachText.Enqueue("Bezahlen_XBezahlt"); TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth, 100); } } else { TempSprachText.Enqueue("Bezahlen_KeineSchiffe"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } } break; } #endregion break; case "1.1": #region Reparatur Logik (Demo ready) // In der Demo deaktiviert (überall die selbe Nachricht) switch (tempAuswahl) { case 0: //Noch keine Auswahl getroffen break; case 3: Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1", new Queue(), false); WechsleBG("Büro"); break; default: Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TempSprachText.Enqueue("Demo_KeineReparatur"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); break; } #endregion break; case "1.2": #region Bauen Logik (Demo ready) // Bauen eines neuen Schiffes - Typauswahl switch (tempAuswahl) { case 0: //Noch keine Auswahl getroffen break; case 1: // Nächstes Model zeigen Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); SchiffsIndex++; if (SchiffsIndex > 6) SchiffsIndex = 6; aktuellGewählterSchiffstyp = Globals.AlleSchiffsTypen[SchiffsIndex].SCHIFFSTYP; switch (SchiffsIndex) { #region Schiffsparams case 0: WechsleBG("Schiffsauswahl_Schoner"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 1: WechsleBG("Schiffsauswahl_Bark"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 2: WechsleBG("Schiffsauswahl_Holzdampfschiff"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(4), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 3: WechsleBG("Schiffsauswahl_Eisendampfschiff"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("KABINEN FÜR " + SchablonenSchiff.KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(5), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 4: WechsleBG("Schiffsauswahl_Brigg"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 280; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 300; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 5: WechsleBG("Schiffsauswahl_Fregatte"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("KABINEN FÜR " + SchablonenSchiff.KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 220; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 6: WechsleBG("Schiffsauswahl_Klipper"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("KABINEN FÜR " + SchablonenSchiff.KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 340; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; #endregion } TextLieferant.erzeugeAnzeigeTexte(anzeigeTextListe); break; case 2: // Letztes Model zeigen Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); SchiffsIndex--; if (SchiffsIndex < 0) SchiffsIndex = 0; aktuellGewählterSchiffstyp = Globals.AlleSchiffsTypen[SchiffsIndex].SCHIFFSTYP; switch (SchiffsIndex) { #region Schiffsparams case 0: WechsleBG("Schiffsauswahl_Schoner"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 1: WechsleBG("Schiffsauswahl_Bark"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 2: WechsleBG("Schiffsauswahl_Holzdampfschiff"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(4), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 3: WechsleBG("Schiffsauswahl_Eisendampfschiff"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("KABINEN FÜR " + SchablonenSchiff.KABINEN + " PASSAGIERE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(5), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 4: WechsleBG("Schiffsauswahl_Brigg"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 280; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 300; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 5: WechsleBG("Schiffsauswahl_Fregatte"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("KABINEN FÜR " + SchablonenSchiff.KABINEN + " PASSAGIERE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 220; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case 6: WechsleBG("Schiffsauswahl_Klipper"); SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempText = new Text("KABINEN FÜR " + SchablonenSchiff.KABINEN + " PASSAGIERE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + SchablonenSchiff.MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + SchablonenSchiff.LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + SchablonenSchiff.LIEFERZEIT + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + SchablonenSchiff.BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 340; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (SchablonenSchiff.NEUWERT / 100).ToString() + "," + (SchablonenSchiff.NEUWERT % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ANZAHLUNG: $" + (SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString() + "," + (SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; #endregion } TextLieferant.erzeugeAnzeigeTexte(anzeigeTextListe); break; case 3: // Bestätigung - Schiff bauen Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); //Anzeigetext muss gelöscht werden TextLieferant.erzeugeAnzeigeTexte(new List()); //Je nachdem welcher Index aktuell gewählt ist wird ein Bau-Event erzeugt mit dem jeweiligen Schiffstyp und Spieler switch (SchiffsIndex) { case 0: aktuellGewählterSchiffstyp = "SCHONER"; break; case 1: aktuellGewählterSchiffstyp = "BARK"; break; case 2: aktuellGewählterSchiffstyp = "HOLZDAMPFSCHIFF"; break; case 3: aktuellGewählterSchiffstyp = "EISENDAMPFSCHIFF"; break; case 4: aktuellGewählterSchiffstyp = "BRIGG"; break; case 5: aktuellGewählterSchiffstyp = "FREGATTE"; break; case 6: aktuellGewählterSchiffstyp = "KLIPPER"; break; } Console.WriteLine("Schiffstyp gewählt: " + aktuellGewählterSchiffstyp); //Eingabefeld für Texteingabe textFeld = new TextBox(Globals.Remake.HalfWidth - 65, Globals.Remake.HalfHeight - 60, 150, 20, 15, false); this.Add(textFeld); textFeld.Focus(); TextLieferant.wechsleAuswahlText("1.2.3A", TempQueue, false); WechsleBG("Schiffsauswahl_Name"); break; case 4: // Abbruch Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1", new Queue(), false); WechsleBG("Büro"); break; } #endregion break; case "1.2.3A": #region Bauen_Namenswahl (Demo ready) if (Globals.PlayerSession.Controller.Button("Enter").Pressed) { TempSprachText.Clear(); gewählterSchiffsName = textFeld.getInput(); //TODO namens einzigartigkeit einabauen if (textFeld.Text.ToString().IsEmpty()) { TempSprachText.Enqueue("Bau_KeinName"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } //Wenn Eingabe erfolgt, Textfeld nicht leer und Eingabe kein Duplikater Schiffsname ist -> zu Bestätigung Szene bool nameIstDuplikat = false; foreach (Schiff s in Globals.AktuellerSpieler.SCHIFFE) { if (s.NAME == textFeld.Text.ToString()) { nameIstDuplikat = true; } } if (!nameIstDuplikat) { letzteÜbergebeneListe.Clear(); letzteÜbergebeneListe.Add(gewählterSchiffsName); //Variable Texte füllen TempQueue = new Queue(); geldQuellenIndex = 0; // Paramter1: Quellort Geld // Parameter2: Geldmenge der Quelle if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { TempQueue.Enqueue("IM LAGER VERFÜGE ICH"); foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (f.BESITZER == Globals.AktuellerSpieler) { TempQueue.Enqueue((f.BUDGET / 100).ToString()); TempQueue.Enqueue((f.BUDGET % 100).ToString()); } } } else { TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT"); foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.COMMANDEUR == Globals.AktuellerSpieler && s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { TempQueue.Enqueue((s.SCHIFFSBUDGET / 100).ToString()); TempQueue.Enqueue((s.SCHIFFSBUDGET % 100).ToString()); } } } //Sprachtexte erzeugen TempSprachText.Clear(); TempSprachParams.Clear(); TempSprachText.Enqueue("Bezahlen_ANZAHLUNG1"); TempSprachText.Enqueue("Bezahlen_ANZAHLUNG2"); //Parameter 1 & 2: $ Betrag der Anzahlung SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempSprachParams.Enqueue((SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString()); TempSprachParams.Enqueue((SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString()); TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth, 100); //Texteingabe muss gelöscht werden sonst verbleibt die eingabe auf dem screen Remove(textFeld); TextLieferant.wechsleAuswahlText("1.2.3B", TempQueue, false); WechsleBG("Büro"); } else { if (TempSprachText.IsEmpty()) { TempSprachText.Enqueue("Bau_NameDuplikat"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } } } #endregion break; case "1.2.3B": #region Bauen_Bezahlen (Demo ready) switch (tempAuswahl) { case 0: break; case 1: //Wiederholung des Anzahlungsbetrages //Sprachtexte erzeugen TempSprachText.Clear(); TempSprachParams.Clear(); TempSprachText.Enqueue("Bezahlen_ANZAHLUNG1"); TempSprachText.Enqueue("Bezahlen_ANZAHLUNG2"); //Parameter 1 & 2: $ Betrag der Anzahlung SchablonenSchiff = suchenSchablone(aktuellGewählterSchiffstyp); TempSprachParams.Enqueue((SchablonenSchiff.ANZAHLUNGSPREIS / 100).ToString()); TempSprachParams.Enqueue((SchablonenSchiff.ANZAHLUNGSPREIS % 100).ToString()); TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth, 100); break; case 2: //Anzahlung muss vorab bezahlt werden //WEnn nicht genug geld -> Fehlermeldung Filiale GeldQuelleLager = null; Schiff GeldQuelleSchiff = null; kannBezahlen = true; if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (Globals.AktuellerSpieler == f.BESITZER) { GeldQuelleLager = f; } } } else { foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { GeldQuelleSchiff = s; } } } if (GeldQuelleLager != null) { //Geldquelle ist Lager -> Geld hier abziehen if (GeldQuelleLager.BUDGET < SchablonenSchiff.ANZAHLUNGSPREIS) { kannBezahlen = false; } } else { //Geldquelle ist Schiff -> geld hier abziehen if (GeldQuelleSchiff.SCHIFFSBUDGET < SchablonenSchiff.ANZAHLUNGSPREIS) { kannBezahlen = false; } } if (kannBezahlen) { //Vorraussichtliches Fertigstellungsdatum DateTime TempDatum = Globals.AktuellesDatum.Add(new TimeSpan(SchablonenSchiff.LIEFERZEIT, 0, 0)); //Erstellen des Schiffs als reales Objekt und anmelden im aktuellen Hafen Schiff TempSchiff = new Schiff(letzteÜbergebeneListe[0], aktuellGewählterSchiffstyp, 0, Globals.AktuellerSpieler); TempSchiff.initiereBau(TempDatum); TempSchiff.fahreInHafenEin(aktuellerHafen.NAME); aktuellerHafen.schiffsAktivität("Einfahren", TempSchiff); Globals.AktuellerSpieler.erhalteSchiff(TempSchiff); //Geld muss beigeldquelle abgezogen werden und mögliche Geldquellen müssen eventuell upgedated werden if (GeldQuelleLager != null) {//Geldquelle ist Filiale GeldQuelleLager.verringereBudget(TempSchiff.ANZAHLUNGSPREIS); } else {//Geldquelle ist Schiff GeldQuelleSchiff.vermindernBudget(TempSchiff.ANZAHLUNGSPREIS); } überprüfeGeldquellen(); //Hinzufügen des SchiffsAktivierungsEvent //Hinweis: Wenn dieses Event nicht mit dem bool bezahlt = true versehen ist wird es am gegebenen Datum dem Hafen übergeben Globals.EventListe.Add(new WeltEvent(TempDatum, "SCHIFFBAU-FERTIGSTELLUNG", Globals.AktuellerSpieler, null, TempSchiff, aktuellerHafen, 0, null, null)); Globals.EventListe.Sort(new EventSorter()); //Sprachtext erzeugen TempSprachText.Clear(); TempSprachParams.Clear(); //1. Text Param Anzahl Bau 2.Param Zeitfaktor(Monate/Tage) TempSprachParams.Enqueue((TempSchiff.LIEFERZEIT / 30).ToString()); TempSprachParams.Enqueue("MONATE"); TempSprachText.Enqueue("Bezahlen_Abschluss1"); TempSprachText.Enqueue("Bezahlen_Abschluss2"); TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth, 100); //Wechsel zu root Menü TextLieferant.wechsleAuswahlText("1", new Queue(), false); WechsleBG("Büro"); } else { //Wenn nicht genug geld dann kurze Warnmeldung TempSprachText.Enqueue("Bezahlen_KEINGELD"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } break; case 3: //Wechsle die Geldquelle geldQuellenIndex++; if (geldQuellenIndex >= möglicheGeldQuellen.Count()) { geldQuellenIndex = 0; } // Paramter1: Quellort Geld // Parameter2: Geldmenge der Quelle if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { TempQueue.Enqueue("IM LAGER VERFÜGE ICH"); foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (f.BESITZER == Globals.AktuellerSpieler) { TempQueue.Enqueue((f.BUDGET / 100).ToString()); TempQueue.Enqueue((f.BUDGET % 100).ToString()); } } } else { TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT"); foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.COMMANDEUR == Globals.AktuellerSpieler && s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { TempQueue.Enqueue((s.SCHIFFSBUDGET / 100).ToString()); TempQueue.Enqueue((s.SCHIFFSBUDGET % 100).ToString()); } } } TextLieferant.wechsleAuswahlText("1.2.3B", TempQueue, false); break; case 4: // Abbruch Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1", new Queue(), false); WechsleBG("Büro"); break; } #endregion break; case "1.4": #region Gebraucht kaufen Logik //TODO: Multi-Kauf des gleichen Schiffs ist möglich // Kaufen eines gebrauchten Schiffes - Typauswahl switch (tempAuswahl) { case 0: //Noch keine Auswahl getroffen break; case 1: // Nächstes Model zeigen Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); SchiffsIndex++; if (SchiffsIndex >= gebrauchteSchiffe.Count()) SchiffsIndex = gebrauchteSchiffe.Count() - 1; aktuellGewählterSchiffstyp = gebrauchteSchiffe[SchiffsIndex].SCHIFFSTYP; GebrauchtWert = gebrauchteSchiffe[SchiffsIndex].NEUWERT; //Verlaufswert muss berechnet werden //-> Normalerweise wird prozentual zur Abnutzung die Differenz aus Neuwert-(Grad der Abnutzung in %) gerechnet //-> Da Reparatur noch nich einbaut ist wird Altersabhängig bestimmt ((1/2)* Alter in jahren) for (int Alter = 0; Alter < gebrauchteSchiffe[SchiffsIndex].ALTER; Alter++) {//halbiere den NeuWert pro jahr GebrauchtWert /= 2; } switch (aktuellGewählterSchiffstyp) { #region SchiffsParams //Erzeugen der jeweiligen Anzeigen Texte je nach Schiffstyp case "SCHONER": WechsleBG("Schiffsauswahl_Schoner"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "BARK": WechsleBG("Schiffsauswahl_Bark"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "HOLZDAMPFSCHIFF": WechsleBG("Schiffsauswahl_Holzdampfschiff"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(4), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "EISENDAMPFSCHIFF": WechsleBG("Schiffsauswahl_Eisendampfschiff"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("KABINEN FÜR " + gebrauchteSchiffe[SchiffsIndex].KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(5), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "BRIGG": WechsleBG("Schiffsauswahl_Brigg"); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 280; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 300; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 320; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "FREGATTE": WechsleBG("Schiffsauswahl_Fregatte"); TempText = new Text("KABINEN FÜR " + gebrauchteSchiffe[SchiffsIndex].KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 220; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 240; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "KLIPPER": WechsleBG("Schiffsauswahl_Klipper"); TempText = new Text("KABINEN FÜR " + gebrauchteSchiffe[SchiffsIndex].KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 340; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 190; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; #endregion } TextLieferant.erzeugeAnzeigeTexte(anzeigeTextListe); break; case 2: // Letztes Model zeigen Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); SchiffsIndex--; if (SchiffsIndex < 0) SchiffsIndex = 0; aktuellGewählterSchiffstyp = gebrauchteSchiffe[SchiffsIndex].SCHIFFSTYP; GebrauchtWert = gebrauchteSchiffe[SchiffsIndex].NEUWERT; //Verlaufswert muss berechnet werden //-> Normalerweise wird prozentual zur Abnutzung die Differenz aus Neuwert-(Grad der Abnutzung in %) gerechnet //-> Da Reparatur noch nich einbaut ist wird Altersabhängig bestimmt ((1/2)* Alter in jahren) for (int Alter = 0; Alter < gebrauchteSchiffe[SchiffsIndex].ALTER; Alter++) {//halbiere den NeuWert pro jahr GebrauchtWert /= 2; } switch (aktuellGewählterSchiffstyp) { #region SchiffsParams //Erzeugen der jeweiligen Anzeigen Texte je nach Schiffstyp case "SCHONER": WechsleBG("Schiffsauswahl_Schoner"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "BARK": WechsleBG("Schiffsauswahl_Bark"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "HOLZDAMPFSCHIFF": WechsleBG("Schiffsauswahl_Holzdampfschiff"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(4), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 160; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 180; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "EISENDAMPFSCHIFF": WechsleBG("Schiffsauswahl_Eisendampfschiff"); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("KABINEN FÜR " + gebrauchteSchiffe[SchiffsIndex].KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 80; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp.Substring(5), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "BRIGG": WechsleBG("Schiffsauswahl_Brigg"); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 40; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 280; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 300; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 320; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "FREGATTE": WechsleBG("Schiffsauswahl_Fregatte"); TempText = new Text("KABINEN FÜR " + gebrauchteSchiffe[SchiffsIndex].KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 60; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 80; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 100; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 350; TempText.Y = 120; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 140; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 200; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 220; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 240; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; case "KLIPPER": WechsleBG("Schiffsauswahl_Klipper"); TempText = new Text("KABINEN FÜR " + gebrauchteSchiffe[SchiffsIndex].KABINEN + " PASSAGIERE.", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 300; TempText.Y = 30; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("BESATZUNG: " + gebrauchteSchiffe[SchiffsIndex].MANNSCHAFT_MAXGRÖßE + " MANN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 50; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LADERAUM: " + gebrauchteSchiffe[SchiffsIndex].LADERAUM + " TONNEN", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 70; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("LIEFERZEIT: " + StandardLieferZeit.TotalDays + " TAGE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 320; TempText.Y = 90; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("RUMPF: " + gebrauchteSchiffe[SchiffsIndex].BAUMATERIAL, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 340; TempText.Y = 110; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("PREIS: $" + (GebrauchtWert / 100).ToString() + "," + (GebrauchtWert % 100).ToString(), Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 130; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("ALTER: " + gebrauchteSchiffe[SchiffsIndex].ALTER.ToString() + " JAHRE", Assets.FONT_AMIGA4EVER2, 12); TempText.X = 360; TempText.Y = 150; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("TYPE: " + aktuellGewählterSchiffstyp, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 170; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); TempText = new Text("NAME: " + gebrauchteSchiffe[SchiffsIndex].NAME, Assets.FONT_AMIGA4EVER2, 12); TempText.X = 380; TempText.Y = 190; TempText.Color = Globals.AnzeigeBraun; anzeigeTextListe.Add(TempText); break; #endregion } TextLieferant.erzeugeAnzeigeTexte(anzeigeTextListe); break; case 3: // Nächste Geldquelle Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); //Wechsle die Geldquelle geldQuellenIndex++; TempQueue.Clear(); if (geldQuellenIndex >= möglicheGeldQuellen.Count()) { geldQuellenIndex = 0; } // Paramter1: Quellort Geld // Parameter2: Geldmenge der Quelle if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { TempQueue.Enqueue("IM LAGER VERFÜGE ICH"); foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (f.BESITZER == Globals.AktuellerSpieler) { TempQueue.Enqueue((f.BUDGET / 100).ToString()); TempQueue.Enqueue((f.BUDGET % 100).ToString()); } } } else { TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT"); foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.COMMANDEUR == Globals.AktuellerSpieler && s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { TempQueue.Enqueue((s.SCHIFFSBUDGET / 100).ToString()); TempQueue.Enqueue((s.SCHIFFSBUDGET % 100).ToString()); } } } TextLieferant.wechsleAuswahlText("1.4", TempQueue, false); break; case 4: // Bestätigung - Schiff kaufen Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); Filiale GeldQuelleLager = null; Schiff GeldQuelleSchiff = null; kannBezahlen = true; if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (Globals.AktuellerSpieler == f.BESITZER) { GeldQuelleLager = f; } } } else { foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { GeldQuelleSchiff = s; } } } if (GeldQuelleLager != null) { //Geldquelle ist Lager -> Geld hier abziehen if (GeldQuelleLager.BUDGET < GebrauchtWert) { kannBezahlen = false; } else { //Geld muss bei Geldquelle abgezogen werden GeldQuelleLager.verringereBudget(GebrauchtWert); überprüfeGeldquellen(); } } else { //Geldquelle ist Schiff -> geld hier abziehen if (GeldQuelleSchiff.SCHIFFSBUDGET < GebrauchtWert) { kannBezahlen = false; } else { //Geld muss bei Geldquelle abgezogen werden GeldQuelleSchiff.vermindernBudget(GebrauchtWert); überprüfeGeldquellen(); } } if (kannBezahlen) { //Vorraussichtliches Fertigstellungsdatum //Bereitstellungsevent ist immer direkt am nächsten tag (Wenn Schiff noch gebaut wird wird dessen Datum übernommen ansonsten standard 4 Tage) DateTime TempDatum = Globals.AktuellesDatum.Add(new TimeSpan(1, 0, 0, 0)); //Erstellen des Schiffs als reales Objekt und anmelden im aktuellen Hafen Schiff TempSchiff = gebrauchteSchiffe[SchiffsIndex]; //Hinzufügen des SchiffsAktivierungsEvent //Hinweis: Wenn dieses Event nicht mit dem bool bezahlt = true versehen ist wird es am gegebenen Datum dem Hafen übergeben TempSchiff.initiereBereitstellung(Globals.AktuellesDatum + StandardLieferZeit); TempSchiff.COMMANDEUR = Globals.AktuellerSpieler; gebrauchteSchiffe.Remove(TempSchiff); Globals.EventAktion(new WeltEvent(TempDatum, "SCHIFFBAU-BEREITSTELLUNG", null, null, TempSchiff, aktuellerHafen, 0, null, null), "EINFÜGEN"); Globals.EventAktion(new WeltEvent(TempDatum.AddDays(3), "SCHIFFBAU-FERTIGSTELLUNG", null, null, TempSchiff, aktuellerHafen, 0, null, null), "EINFÜGEN"); Globals.EventListe.Sort(new EventSorter()); //Kaufender Spieler erhält schiff Globals.AktuellerSpieler.erhalteSchiff(TempSchiff); //Sprachtext erzeugen TempSprachText.Clear(); TempSprachParams.Clear(); //1. Text Param Anzahl Bau 2.Param Zeitfaktor(Monate/Tage) TempSprachParams.Enqueue(StandardLieferZeit.TotalDays.ToString()); TempSprachParams.Enqueue("TAGE"); TempSprachText.Enqueue("Bezahlen_Abschluss1"); TempSprachText.Enqueue("Bezahlen_Abschluss2"); TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth, 100); //Anzeigetext muss gelöscht werden TextLieferant.erzeugeAnzeigeTexte(new List()); //Wechsel zu root Menü TextLieferant.wechsleAuswahlText("1", new Queue(), false); WechsleBG("Büro"); } else { //Wenn nicht genug geld dann kurze Warnmeldung TempSprachText.Enqueue("Bezahlen_KEINGELD"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } break; case 5: // Abbruch Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1", new Queue(), false); WechsleBG("Büro"); //Anzeigetext muss gelöscht werden TextLieferant.erzeugeAnzeigeTexte(new List()); break; } #endregion break; case "1.5A": #region Schiff verkaufen Logik - Schiffwahl (Demo ready) // Verkaufen eines Schiffes - Model switch (tempAuswahl) { case 0: //Noch keine Auswahl getroffen break; case 999: // Abbruch Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1", new Queue(), false); WechsleBG("Büro"); break; default: // Jeweilige Auswahl ist die Bootsauswahl //Zunächst muss der Preis für das angebotene Schiff berechnet werden //Im original wird prozentual berechnet -> aktuell jedoch noch ein 1/4. des Orignialpreises im bezug auf alter Schiff TempSchiff = null; GebrauchtWert = 0; foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.NAME == letzteÜbergebeneListe[tempAuswahl - 1]) { TempSchiff = s; GebrauchtWert = TempSchiff.NEUWERT; break; } } letzteÜbergebeneListe.Clear(); letzteÜbergebeneListe.Add(TempSchiff.NAME); // Runterrechnen des Gebrauchtwertes for (int Alter = 0; Alter <= TempSchiff.ALTER; Alter++) {//halbiere den NeuWert pro jahr (+ einmal mehr halbieren um zu vierteln) GebrauchtWert /= 2; } TempSprachText = new Queue(); TempSprachText.Enqueue("Verkauf_Angebot"); TempSprachParams = new Queue(); //1. Parameter Schiffsname TempSprachParams.Enqueue(TempSchiff.NAME); //2 & 3. Parameter Angebotspreis TempSprachParams.Enqueue((GebrauchtWert / 100).ToString()); TempSprachParams.Enqueue((GebrauchtWert % 100).ToString()); TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth, 100); TextLieferant.wechsleAuswahlText("1.5B", new Queue(), false); break; } #endregion break; case "1.5B": #region Schiff Verkaufen Bestätigung (Demo ready) // Auswahl, ob schiff verkauft wird zum Angebotenen Preis switch (tempAuswahl) { case 0: //Noch keine auswahl getroffen break; case 1: //Wiederholen Angebot TempSprachText = new Queue(); TempSprachText.Enqueue("Verkauf_Angebot"); TempSprachParams = new Queue(); //1. Parameter Schiffsname TempSprachParams.Enqueue(letzteÜbergebeneListe[0]); //2 & 3. Parameter Angebotspreis TempSprachParams.Enqueue((GebrauchtWert / 100).ToString()); TempSprachParams.Enqueue((GebrauchtWert % 100).ToString()); TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth, 100); break; case 2: //Bestätigen Verkauf TempSprachText = new Queue(); TempSprachText.Enqueue("Verkauf_Abschluss"); TempSprachParams = new Queue(); //1 & 2. Parameter Angebotspreis TempSprachParams.Enqueue((GebrauchtWert / 100).ToString()); TempSprachParams.Enqueue((GebrauchtWert % 100).ToString()); //3. Parameter Zielort der Einzahlung -> hier wird erster eintrag in der möglichen Geldquellenliste genommen(meist das Lager) if (möglicheGeldQuellen[0] == "LAGER") { TempSprachParams.Enqueue("LAGERKASSE"); foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { // Wenn Verkauf bestätigt wird der Betrag ins Lager gegeben if (f.BESITZER == Globals.AktuellerSpieler) { f.erhöheBudget(GebrauchtWert); break; } } } else { TempSprachParams.Enqueue("SCHIFFSKASSE DER " + möglicheGeldQuellen[0]); foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { //Wenn Verkauf bestätigt wird Betrag auf erstes angedocktes Schiff gegeben if (s.NAME == möglicheGeldQuellen[0]) { s.erhöhenBudget(GebrauchtWert); break; } } } // Schiff muss an Hafen übergehen foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.NAME == letzteÜbergebeneListe[0]) { Globals.AktuellerSpieler.schiffLoswerden(s, true); s.COMMANDEUR = null; break; } } TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth, 100); TextLieferant.wechsleAuswahlText("1", new Queue(), false); break; case 3: //Abbruch Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1", new Queue(), false); WechsleBG("Büro"); break; } #endregion break; case "1.6A": #region Schiff bezahlen Logik-Auswahl welches zu bauende Schiff bezahlt wird (Demo ready) // Auswahl welches Schiff noch abzubezahlen ist switch (tempAuswahl) { case 0: //Noch keine Auswahl getroffen break; case 999: // Abbruch Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1.6B", new Queue(), false); WechsleBG("Büro"); break; default: // Jeweilige Auswahl ist die Bootsauswahl Schiff TempSchiff = null; betragAbbezahlen = 0; foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.NAME == letzteÜbergebeneListe[tempAuswahl - 1]) { TempSchiff = s; betragAbbezahlen = TempSchiff.RESTBETRAGKAUFPREIS; break; } } if (betragAbbezahlen <= 0) { //Schiff ist bereits abbezahlt -> kein verzeigen in die nächste Seite TempSprachText = new Queue(); TempSprachText.Enqueue("Bezahlen_KeinRestbetrag"); TempSprachParams = new Queue(); //1 & 2. Parameter Angebotspreis TempSprachParams.Enqueue(letzteÜbergebeneListe[tempAuswahl - 1]); TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth, 100); } else { letzteÜbergebeneListe.Clear(); letzteÜbergebeneListe.Add(TempSchiff.NAME); TempSprachText = new Queue(); TempSprachText.Enqueue("Bezahlen_Restbetrag"); TempSprachParams = new Queue(); //1 & 2. Parameter Angebotspreis TempSprachParams.Enqueue((betragAbbezahlen / 100).ToString()); TempSprachParams.Enqueue((betragAbbezahlen % 100).ToString()); TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth, 100); //Variable Auswahl Texte füllen TempQueue = new Queue(); geldQuellenIndex = 0; // Paramter1: Quellort Geld // Parameter2: Geldmenge der Quelle if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { TempQueue.Enqueue("IM LAGER VERFÜGE ICH"); foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (f.BESITZER == Globals.AktuellerSpieler) { TempQueue.Enqueue((f.BUDGET / 100).ToString()); TempQueue.Enqueue((f.BUDGET % 100).ToString()); WunschRestBetrag = f.BUDGET; } } } else { TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT"); foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.COMMANDEUR == Globals.AktuellerSpieler && s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { TempQueue.Enqueue((s.SCHIFFSBUDGET / 100).ToString()); TempQueue.Enqueue((s.SCHIFFSBUDGET % 100).ToString()); WunschRestBetrag = s.SCHIFFSBUDGET; } } } //2. Paramtext -> gewünschter Zahlbetrag (Std immer voller Preis oder was 1. Geldquelle hergibt) if (betragAbbezahlen <= WunschRestBetrag) { //Wenn möglicher Betrag der geldquelle > abzubezahlender Betrag -> abzubezahlender Betrag = max WunschRestBetrag = betragAbbezahlen; } TempQueue.Enqueue((WunschRestBetrag / 100).ToString()); TempQueue.Enqueue((WunschRestBetrag % 100).ToString()); //3 Paramtertext -> Schiffsname TempQueue.Enqueue(TempSchiff.NAME); TextLieferant.wechsleAuswahlText("1.6B", TempQueue, false); } break; } #endregion break; case "1.6B": #region Schiff bezahlen Logik-Auswahl der finanziellen Aspekte des zu bezahlenden Schiff (Demo ready) // Bezahlen des Restbetrages eines beauftragten Schiffsbaus switch (tempAuswahl) { case 0: //Noch keine Auswahl getroffen break; case 1: //Geldquelle //Bei Linksklick erhöhen geldQuellenIndex++; if (geldQuellenIndex >= möglicheGeldQuellen.Count()) { geldQuellenIndex = 0; } // Paramter1: Quellort Geld // Parameter2: Geldmenge der Quelle if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { TempQueue.Enqueue("IM LAGER VERFÜGE ICH"); foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (f.BESITZER == Globals.AktuellerSpieler) { TempQueue.Enqueue((f.BUDGET / 100).ToString()); TempQueue.Enqueue((f.BUDGET % 100).ToString()); WunschRestBetrag = f.BUDGET; } } } else { TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT"); foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.COMMANDEUR == Globals.AktuellerSpieler && s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { TempQueue.Enqueue((s.SCHIFFSBUDGET / 100).ToString()); TempQueue.Enqueue((s.SCHIFFSBUDGET % 100).ToString()); WunschRestBetrag = s.SCHIFFSBUDGET; } } } //2. Paramtext -> gewünschter Zahlbetrag (Std immer voller Preis oder was 1. Geldquelle hergibt) if (betragAbbezahlen <= WunschRestBetrag) { //Wenn möglicher Betrag der geldquelle > abzubezahlender Betrag -> abzubezahlender Betrag = max WunschRestBetrag = betragAbbezahlen; } TempQueue.Enqueue((WunschRestBetrag / 100).ToString()); TempQueue.Enqueue((WunschRestBetrag % 100).ToString()); //3 Paramtertext -> Schiffsname TempQueue.Enqueue(letzteÜbergebeneListe[0]); Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1.6B", TempQueue, false); break; case 2: //gewünschter Bezahlbetrag if (TextLieferant.checkButtonAuswahl() == "MausLinks") { //Bei Linksklick erhöhen um $100 betragAbbezahlen += 10000; int TempMax; Filiale QuellenFiliale; Schiff QuellenSchiff = null; Schiff TempSchiff = null; foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.NAME == letzteÜbergebeneListe[0]) { TempSchiff = s; break; } } if (setzeGeldQuelle().GetType() == typeof(Filiale)) { //Geldquelle ist Lager QuellenFiliale = setzeGeldQuelle() as Filiale; TempMax = QuellenFiliale.BUDGET; if (betragAbbezahlen >= TempMax) { betragAbbezahlen = TempMax; } } else { //Geldquelle ist Schiff QuellenSchiff = setzeGeldQuelle() as Schiff; TempMax = QuellenSchiff.SCHIFFSBUDGET; if (betragAbbezahlen >= TempMax) { betragAbbezahlen = TempMax; } } //check ob gewählter Betrag maximaler abbezahl betrag überschreitet if (betragAbbezahlen >= TempSchiff.RESTBETRAGKAUFPREIS) { betragAbbezahlen = TempSchiff.RESTBETRAGKAUFPREIS; } } else { //bei rechtsklick vermindern um $100 betragAbbezahlen -= 10000; //Min kriterium if (betragAbbezahlen < 0) { betragAbbezahlen = 0; } } // Paramter1: Quellort Geld // Parameter2: Geldmenge der Quelle if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { TempQueue.Enqueue("IM LAGER VERFÜGE ICH"); foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (f.BESITZER == Globals.AktuellerSpieler) { TempQueue.Enqueue((f.BUDGET / 100).ToString()); TempQueue.Enqueue((f.BUDGET % 100).ToString()); } } } else { TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT"); foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.COMMANDEUR == Globals.AktuellerSpieler && s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { TempQueue.Enqueue((s.SCHIFFSBUDGET / 100).ToString()); TempQueue.Enqueue((s.SCHIFFSBUDGET % 100).ToString()); WunschRestBetrag = s.SCHIFFSBUDGET; } } } //2. Paramtext -> gewünschter Zahlbetrag (Std immer voller Preis oder was 1. Geldquelle hergibt) TempQueue.Enqueue((betragAbbezahlen / 100).ToString()); TempQueue.Enqueue((betragAbbezahlen % 100).ToString()); //3 Paramtertext -> Schiffsname TempQueue.Enqueue(letzteÜbergebeneListe[0]); Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1.6B", TempQueue, false); break; case 3: //Bestätigen //Absicherung, dass User nicht versucht 0 zu bezahlen if (betragAbbezahlen <= 0) { TempSprachText = new Queue(); TempSprachText.Enqueue("Bezahlen_KeinZahlbetrag"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); } else { //Abziehen des Geldbetrages Filiale GeldQuelleLager = null; Schiff GeldQuelleSchiff = null; kannBezahlen = true; if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (Globals.AktuellerSpieler == f.BESITZER) { GeldQuelleLager = f; } } } else { foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { GeldQuelleSchiff = s; } } } if (GeldQuelleLager != null) { //Geldquelle ist Lager -> Geld hier abziehen GeldQuelleLager.verringereBudget(GebrauchtWert); überprüfeGeldquellen(); } else { //Geldquelle ist Schiff -> geld hier abziehen GeldQuelleSchiff.vermindernBudget(GebrauchtWert); überprüfeGeldquellen(); } //Vorraussichtliches Fertigstellungsdatum //Bereitstellungsevent ist immer direkt am nächsten tag (Wenn Schiff noch gebaut wird wird dessen Datum übernommen ansonsten standard 4 Tage) DateTime TempDatum = Globals.AktuellesDatum.Add(new TimeSpan(1, 0, 0, 0)); Schiff TempSchiff = null; //Suchen des Schiffs im aktuellen Hafen foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.NAME == letzteÜbergebeneListe[0]) { TempSchiff = s; break; } } //Hinzufügen des SchiffsAktivierungsEvent //Hinweis: Wenn dieses Event nicht mit dem bool bezahlt = true versehen ist wird es am gegebenen Datum dem Hafen übergeben if (TempSchiff.schiffAbbezahlen(betragAbbezahlen) == "ERFOLG_BEZAHLT") { //Wenn schiff fertig abbezahlt dann wird bereitstellungsevent eingefügt Globals.EventAktion(new WeltEvent(TempDatum, "SCHIFFBAU-BEREITSTELLUNG", null, null, TempSchiff, aktuellerHafen, 0, null, null), "EINFÜGEN"); Globals.EventListe.Sort(new EventSorter()); } //Erzeugen Sprachtext TempSprachText = new Queue(); TempSprachText.Enqueue("Bezahlen_BestenDank"); TempSprachText.Enqueue("Bezahlen_Zufrieden"); TextLieferant.erzeugeSprachText(TempSprachText, new Queue(), Globals.Remake.HalfWidth, 100); Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1", new Queue(), false); } break; case 4: // Abbruch Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene); TextLieferant.wechsleAuswahlText("1", new Queue(), false); break; } #endregion break; } } public Schiff suchenSchablone(string SchiffsTyp) { foreach (Schiff s in Globals.AlleSchiffsTypen) { if (s.SCHIFFSTYP == SchiffsTyp) { return s; } } return null; } public void WechsleBG(string Ziel) { // Vor wechsel muss erstmal der aktuelle ausgeblendet werden aktuellerBG.Alpha = 0f; RemoveGraphic(aktuellerBG); // Wechseln des Background je nach Zielebene des Auswahlbaums (so muss nicht jeweils neue Szenen für einzelne Baum Strukturen gebaut werden) switch (Ziel) { case "Büro": WerftScreen_Büro.Alpha = 1f; aktuellerBG = WerftScreen_Büro; break; case "Reparatur": WerftScreen_Reparatur.Alpha = 1f; aktuellerBG = WerftScreen_Reparatur; break; case "Schiffsauswahl": WerftScreen_SchiffsAuswahl.Alpha = 1f; aktuellerBG = WerftScreen_SchiffsAuswahl; break; case "Schiffsauswahl_Schoner": Schiffsauswahl_Schoner.Alpha = 1f; aktuellerBG = Schiffsauswahl_Schoner; break; case "Schiffsauswahl_Bark": Schiffsauswahl_Bark.Alpha = 1f; aktuellerBG = Schiffsauswahl_Bark; break; case "Schiffsauswahl_Holzdampfschiff": Schiffsauswahl_Holzdampfschiff.Alpha = 1f; aktuellerBG = Schiffsauswahl_Holzdampfschiff; break; case "Schiffsauswahl_Eisendampfschiff": Schiffsauswahl_Eisendampfschiff.Alpha = 1f; aktuellerBG = Schiffsauswahl_Eisendampfschiff; break; case "Schiffsauswahl_Brigg": Schiffsauswahl_Brigg.Alpha = 1f; aktuellerBG = Schiffsauswahl_Brigg; break; case "Schiffsauswahl_Fregatte": Schiffsauswahl_Fregatte.Alpha = 1f; aktuellerBG = Schiffsauswahl_Fregatte; break; case "Schiffsauswahl_Klipper": Schiffsauswahl_Klipper.Alpha = 1f; aktuellerBG = Schiffsauswahl_Klipper; break; case "Schiffsauswahl_Name": Schiffsauswahl_Name.Alpha = 1f; aktuellerBG = Schiffsauswahl_Name; break; } // Wenn Änderung aktiv dann neues BG laden AddGraphic(aktuellerBG); } private void überprüfeGeldquellen() { //Liste möglicher Geldquellen (Für einige Auswahlbäume notwendig) // MöglicheGeldQuelle wird im Verkaufsstrang als ZielKasse benutzt möglicheGeldQuellen.Clear(); geldQuellenIndex = 0; aktuellerHafen.überprüfeAktuelleFilialeVorhanden(Globals.AktuellerSpieler); if (aktuellerHafen.filialeVorhanden) { foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (f.BESITZER == Globals.AktuellerSpieler) { möglicheGeldQuellen.Add("LAGER"); } } } //Wenn Schiffe vorhanden -> Schiff ist mögliche Quelle foreach (Schiff Boot in aktuellerHafen.angedockteSchiffe) { if (Boot.COMMANDEUR == Globals.AktuellerSpieler) { //Mögliche Geldziele sind alle Schiffe des Spielers möglicheGeldQuellen.Add(Boot.NAME); } } } private Entity setzeGeldQuelle() { if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER") { foreach (Filiale f in aktuellerHafen.vorhandeneFilialen) { if (f.BESITZER == Globals.AktuellerSpieler) { return f; } } } else { foreach (Schiff s in aktuellerHafen.angedockteSchiffe) { if (s.NAME == möglicheGeldQuellen[geldQuellenIndex]) { return s; } } } return null; } private class EventSorter : IComparer { //Sortier Comparer -> Sortiert alle Events nach Datum (muss immer aufgerfen werden wenn datum abgefragt wird) public int Compare(WeltEvent e1, WeltEvent e2) { if (e1.EventDate.CompareTo(e2.EventDate) == 0) { //Wenn beide Events gleich dann nach Spieler Sortieren switch (e1.BetroffenerSpielerName) { case "System": switch (e2.BetroffenerSpielerName) { case "System": return 0; default: return -1; } case "Spieler1": switch (e2.BetroffenerSpielerName) { case "System": return 1; case "Spieler1": return 0; default: return -1; } case "Spieler2": switch (e2.BetroffenerSpielerName) { case "System": return 1; case "Spieler1": return 1; case "Spieler2": return 0; default: return -1; } case "Spieler3": switch (e2.BetroffenerSpielerName) { case "Spieler3": return 0; case "Spieler4": return -1; default: return 1; } case "Spieler4": switch (e2.BetroffenerSpielerName) { case "Spieler4": return 0; default: return 1; } default: return 0; } } else return e1.EventDate.CompareTo(e2.EventDate); } } } }