using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using _1869_Remake; using _1869_Remake.Entities; using Otter; namespace _1869_Remake.ToolKlassen { public class TextBuilder : Entity { //Textbuilder Klasse wird in Scenen eingebunden und Verwaltet alle Texte in dieser Szene und gibt indikatoren nach außen auf abfrage // geladene Texte und Textbäume/Listen werden über das preset und den Modus definiert string preset; public const float TIMER_GRENZE = 200f; public float textTimer = 0f; public bool resetTextTimer = false; public bool textSprachAktiv = false; public bool textAktiv = false; public bool textBaumAktiv = false; public bool tafelTextAktiv = false; public bool textAnzeigeAktiv = false; public bool anzeigeTextAktiv = false; //TextBaustein identifiziert durch ID-String -> Texte können über ihre Liste und über die Text ID abgerufen werden //User implementiert Textbuilder und kann einen Text über IDs erstellen lassen Dictionary MöglicheTexte = new Dictionary(); //Hier werden alle Textlisten gespeichert und über einen Zweckstring gespeichert und abgerufen. // es wird eine Liste statt texte direkt gespeichert damit wir immer die möglichkeit auf Sequenzen haben(Text folgen) //Textpool speichert immer nur Texte der jeweiligen Szene (nicht alle vorhandenen) -> Es kann sein dass gewisse Texte in mehreren Szenen vorkommen Dictionary> TextPool = new Dictionary>(); //Hier werden alle Textverzweigungen für die einzelnen Ebenen gespeichert (nur für Auswahltexte) //Speichert hierarchische Abfolge von Texten -> Wenn Text A geklickt, dann Liste B an Texten anzeigen etc) Dictionary> TextBaum = new Dictionary>(); //Tafeltexte werden als gemeinsame Liste gespeichert -> In jedem text steht seine genaue Position selbstständig drin //Bei Listen verändernden Ereignissen (Einkauf/Verkauf) wird Funktion zum update der Listen aufgerufen public List TafelTextListe = new List(); //AnzeigeText Liste public List AnzeigeTextListe = new List(); //Mappen der zugehörigkeit einzelner Textstrings zu verschiedenen Modi: // wenn string hier nicht vorhanden dann kein Sonderhandling // Mode "Slider" -> Bei Linksklick wird Param erhöht um einen Betrag; Bei Rechtsklick vermindert // Mode "LocationMapper" -> Bei Linksklick wird Herkunftsort gewechselt (Paramwechsler) public Dictionary ModeMapping = new Dictionary(); //AuswahlText Variablen #region AuswahlVars public List AuswahlTextListe = new List(); public List AuswahlParamter = new List(); //Position der Darstellung der Liste auf dem Bildschirm public int AuswahlXPos; public int AuswahlYPos; // Indikator, ob AuswahlText-Darstellung erneut gebaut werden muss public bool auswahlAnzeigeFertig = true; // Inhalt der 3 darzustellenden Texte private Text aktuellerAuswahlTextOben; private Text aktuellerAuswahlTextMitte; private Text aktuellerAuswahlTextUnten; // Indikator, ob einer der darzustellenden Texte farbgewechselt ist private bool farbeObenGewechselt = false; private bool farbeMitteGewechselt = false; private bool farbeUntenGewechselt = false; // Gibt an welches Element, der Liste an möglichen Auswahlen gewählt wurde public int clickedAuswahl = 0; // Gibt an welcher Button für die Auswahl betätigt wurde (Linke Maus oder Rechte Maus) public string clickedButton = ""; // aktuelle Ebene im TextBaum dieser Szene public string aktuelleEbene; // Indikator des ersten darzustellenden Elementes aus der Liste möglicher Auswahlen private int aktuellerTextIndex = 0; // Indikator, ob darzustellnde Liste variabler Länge ist -> Wird bei der Anzeige aus der mitgegebenen Paramterliste zusammengebaut und mit einem abbruch text abgeschlossen private bool VariableListe; // PfeileIcons um darzustellenden Index zu verändern public Image PfeilRunter = new Image(Assets.PFEILRUNTER); public Image PfeilHoch = new Image(Assets.PFEILHOCH); public Image PfeilRunterRot = new Image(Assets.PFEILRUNTERMARKIERT); public Image PfeilHochRot = new Image(Assets.PFEILHOCHMARKIERT); public bool PfeileAktiv = false; public bool farbePfeilObenGewechselt = false; public bool farbePfeilUntenGewechselt = false; #endregion //TafelText variablen #region TafelVars // Position der Tafel public int TafelXPos; public int TafelYPos; // Indikator, ob Tafel neu zu zeichnen public bool tafelAnzeigeFertig = true; #endregion //AnzeigeText Vars #region AnzeigeTextVars public bool textAnzeigeFertig = true; #endregion //SprachText Variablen #region SprachVars private Text aktuellerSprachText; private bool ersterSprachFade = true; public Queue SprachText = new Queue(); public Queue SprachParameter = new Queue(); public bool sprachTextZwangsEnde = false; public bool endeEingeleitet = false; // Indikator, ob eine Sequenz läuft private bool sequenzEingeleitet = false; // Geben an wie viele weitere Sprachtexte noch erzeugt werden private int aktuellerSequenzCounter = 0; private int anstehenderSequenzCounter = 0; private int aktuellerParamSequenzCounter = 0; private int anstehenderParamSequenzCounter = 0; #endregion private bool paramLeer = false; public Image FadeInBlackScreen = new Image(Assets.BLACKSCREEN); public Image FadeOutBlackScreen = new Image(Assets.BLACKSCREEN); // Nur beim ersten FadeIn sollen die Texte gefadet werden private bool ersterFade = true; private bool ersterTafelFade = true; private bool ersterAnzeigeFade = true; public TextBuilder(string Preset) { this.preset = Preset; //Setzen der Texte für jedes Preset -> Hier wird die gesamte Baumstruktur des Presets geladen SetzeTexte(); // Pfeil Images vorab hinzufügen PfeilHoch.Alpha = 0f; PfeilRunter.Alpha = 0f; PfeilHochRot.Alpha = 0f; PfeilRunterRot.Alpha = 0f; AddGraphic(PfeilHoch); AddGraphic(PfeilRunter); AddGraphic(PfeilHochRot); AddGraphic(PfeilRunterRot); //Vorbereiten des Blackscreens -> Entitäten brauchen auch Blackscreen Tween sonst bleibeb diese Sichtbar FadeInBlackScreen.Alpha = 1f; FadeInBlackScreen.X = 0; FadeInBlackScreen.Y = 0; FadeOutBlackScreen.Alpha = 0f; FadeOutBlackScreen.X = 0; FadeOutBlackScreen.Y = 0; Tween(FadeInBlackScreen, new { Alpha = 0f }, 64f, 0f).Ease(Ease.BackInOut); AddGraphics(FadeInBlackScreen); } public override void Update() { base.Update(); //Sprachtext Handling #region SprachTextLogik if (textSprachAktiv) { //Sprachtext Handling // Überprüfen, ob aktuell ein Text aktiv ist, wenn nein wird auch ein getriggertes zwangsende gelöscht if (textAktiv) { textTimer++; } else { //Wenn kein Sprachtext mehr aktiv und trotzdem auswahl getätigt wurde muss Zwangsende gelöscht werden -> Sonst Buffer gefahr if (sprachTextZwangsEnde) sprachTextZwangsEnde = false; } // Überprüfen, ob die Liste an gebufferten Sprachtexten noch gefüllt ist und aktuell kein Text aktiv-> Wenn wahr: neuer Text aus den gebufferten Texten wird geladen // Wenn zwangsende verlangt werden keine weiteren texte geladen und die Liste wird vorgespult if (SprachText.IsNotEmpty() && !textAktiv && !sprachTextZwangsEnde) { //Neuer Text wird geladen -> Timer neu starten und überprüfen ob zu ladender Text Parameter beherbergt und diese ersetzen durch nächsten Parameter //(Achtung Paramter müssen immer in der richtigen Reihenfolge und vollständig sein!!!) Text tempText = SprachText.Dequeue(); // Wenn vorher noch keine Sequenz aktiv war ist jetzt eine neue aktiv if (!sequenzEingeleitet) { sequenzEingeleitet = true; aktuellerSequenzCounter = anstehenderSequenzCounter; aktuellerParamSequenzCounter = anstehenderParamSequenzCounter; anstehenderSequenzCounter = 0; anstehenderParamSequenzCounter = 0; } aktuellerSequenzCounter--; //Resetten des gelieferten Textes aktuellerSprachText = new Text("", Assets.FONT_AMIGA4EVER2, 12); //Übernahme des anzeigeTextes Zeichen für Zeichen -> Paramterzeichen werden ersetzt durch die Texte in der Paramterqueue for (int index = 0; index < tempText.String.Length; index++) { char zeichen = tempText.String[index]; if (zeichen == '#') { aktuellerSprachText.String += SprachParameter.Dequeue(); aktuellerParamSequenzCounter--; } else { aktuellerSprachText.String += zeichen; } } //Eigenschaften des Textes übernehmen aktuellerSprachText.Color = tempText.Color; aktuellerSprachText.CenterTextOriginX(); aktuellerSprachText.X = tempText.X; aktuellerSprachText.Y = tempText.Y; aktuellerSprachText.OutlineColor = tempText.OutlineColor; aktuellerSprachText.OutlineThickness = tempText.OutlineThickness; if (ersterSprachFade) { ersterSprachFade = false; //Erster Fade etwas länger da sonst früher da als der Scenen Fader -> sieht blöd aus Tween(aktuellerSprachText, new { Alpha = 1f }, 160f, 0f).Ease(Ease.BackInOut); } else { Tween(aktuellerSprachText, new { Alpha = 1f }, 64f, 0f).Ease(Ease.BackInOut); } AddGraphic(aktuellerSprachText); textAktiv = true; //Timer nur resettet wenn neuer text vorhanden ist textTimer = 0; } else { //Überprüfen, ob Ende des Sprachtextes erzwungen wurde, Wenn erzwungen wurde wird Timer nicht mehr gewertet if (sprachTextZwangsEnde) { if (!endeEingeleitet) { if (aktuellerSprachText != null) Tween(aktuellerSprachText, new { Alpha = 0f }, 16, 0).Ease(Ease.BackInOut); endeEingeleitet = true; } if (aktuellerSprachText.Alpha <= 0.001f) { sequenzEingeleitet = false; sprachTextZwangsEnde = false; endeEingeleitet = false; Graphics.Remove(aktuellerSprachText); aktuellerSprachText = null; textAktiv = false; resetTextTimer = true; } // Wenn ende eingeleitet ist muss die aktuell begonnene Sequenz durchgespult werden ( Alle einträge dieser Sequenz werden aus der Liste geworfen) while (aktuellerSequenzCounter > 0) { SprachText.Dequeue(); aktuellerSequenzCounter--; } while (aktuellerParamSequenzCounter > 0) { SprachParameter.Dequeue(); aktuellerParamSequenzCounter--; } } else { if (textTimer >= TIMER_GRENZE) {// Text wird hier wenn die Zeitabgelaufen ist aus der Liste genommen und der nächste Text wird geladen if (!endeEingeleitet) { if (aktuellerSprachText != null) Tween(aktuellerSprachText, new { Alpha = 0f }, 32, 0).Ease(Ease.BackInOut); endeEingeleitet = true; //Absicherung für zu schnell durch geklickte Sprachtexte if (aktuellerSprachText == null) { endeEingeleitet = false; textAktiv = false; textTimer = 0; } } if (aktuellerSprachText != null && aktuellerSprachText.Alpha <= 0.001f) { endeEingeleitet = false; Graphics.Remove(aktuellerSprachText); aktuellerSprachText = null; textAktiv = false; //Timer resettet textTimer = 0; // Wenn das der letzte text der sequenzwar dann auch sequenz deaktiv schalten if (aktuellerSequenzCounter == 0) { sequenzEingeleitet = false; } } } } } } #endregion //Auswahltext Handling #region AuswahlTextLogik //Nur Auswahltextlogik verwenden wenn Auswahltext aktiv ist if (textBaumAktiv) { //Hier wird der aktuelle Baumzweig gelesen ab dem aktuellen index (scrollbarkeit)-> wenn mehr als 3 Einträge in der Liste sind werden Scrollpfeile eingeblendet mit denen der index verändert wird // Bei jeder veränderung im Baum wird die aktuelle liste an angezeigten Auswahltexten entfernt und durch eine neue Anzeige ab dem richtigen Baumzweig im richtigen index gezeigt if (!auswahlAnzeigeFertig) { //Egal welche art von AuswahlText bei neu zeichnen wird aktueller Inhalt gelöscht Graphics.Remove(aktuellerAuswahlTextOben); aktuellerAuswahlTextOben = null; Graphics.Remove(aktuellerAuswahlTextMitte); aktuellerAuswahlTextMitte = null; Graphics.Remove(aktuellerAuswahlTextUnten); aktuellerAuswahlTextUnten = null; PfeileAktiv = false; AuswahlTextListe.Clear(); // Indikator, ob es weniger als 3 Texte oder mehr als 3 gibt (Beides hat andere effekte auf die Anzeige und Komposition der Texte) int TextZähler = 0; List tempAuswahlListe = new List(TextBaum[aktuelleEbene]); //Unterscheidung von regulärem Auswahlzweig oder variabler Auswahlliste if (VariableListe) { //Füllen einer temporären Liste zum Bauen der finalen Auswahlliste //Zusammenbauen der AuswahlListe //Bei variabler Liste immer zuerst die Paramter foreach (string item in AuswahlParamter) { Text TempText = new Text(item, Assets.FONT_AMIGA4EVER2, 12); AuswahlTextListe.Add(TempText); TextZähler++; } //gefolgt von Abbruchtext bauen (bei diesem Typ gibt es immer nur noch den Abbruchtext in der regulären Baumstruktur) AuswahlTextListe.Add(new Text(tempAuswahlListe.Last().String, Assets.FONT_AMIGA4EVER2, 12)); TextZähler++; //Wenn Paramleer gesetzt wird muss ein Abschlusstext erfolgen (Ende der Liste wurde vor unterer Position erreicht) paramLeer = false; //Indexer welcher Text als letztes gefüllt wurde // 1 = Oben // 2 = Mitte // 3 = unten int TexteEingebaut; //Füllen der darzustellenden 3 Elemente mit den Texten aus der AuswahlListe for (TexteEingebaut = 1; TexteEingebaut < 4 && TexteEingebaut + aktuellerTextIndex < TextZähler; TexteEingebaut++) { switch (TexteEingebaut) { case 1: aktuellerAuswahlTextOben = new Text(AuswahlTextListe[aktuellerTextIndex].String, Assets.FONT_AMIGA4EVER2, 12); aktuellerAuswahlTextOben.X = AuswahlXPos + 35; aktuellerAuswahlTextOben.Y = AuswahlYPos + 0; aktuellerAuswahlTextOben.Color = Globals.StdGrün; break; case 2: aktuellerAuswahlTextMitte = new Text(AuswahlTextListe[aktuellerTextIndex + 1].String, Assets.FONT_AMIGA4EVER2, 12); aktuellerAuswahlTextMitte.X = AuswahlXPos + 35; aktuellerAuswahlTextMitte.Y = AuswahlYPos + 24; aktuellerAuswahlTextMitte.Color = Globals.StdGrün; break; case 3: aktuellerAuswahlTextUnten = new Text(AuswahlTextListe[aktuellerTextIndex + 2].String, Assets.FONT_AMIGA4EVER2, 12); aktuellerAuswahlTextUnten.X = AuswahlXPos + 35; aktuellerAuswahlTextUnten.Y = AuswahlYPos + 48; aktuellerAuswahlTextUnten.Color = Globals.StdGrün; break; } // Überprüfen ob Ende der Paramterliste erreicht ist, Wenn ja dann muss an die aktuelle TextEingebaut position der Schlusstext angehängt werden if (TexteEingebaut + aktuellerTextIndex == TextZähler - 1) { paramLeer = true; } } //Wenn frühzeitiges ListenEnde -> TextEingebaut sagt uns welcher Text den Abschlusstext erhält if (paramLeer) { switch (TexteEingebaut) { case 2: aktuellerAuswahlTextMitte = new Text(AuswahlTextListe[AuswahlTextListe.Count() - 1].String, Assets.FONT_AMIGA4EVER2, 12); aktuellerAuswahlTextMitte.X = AuswahlXPos + 35; aktuellerAuswahlTextMitte.Y = AuswahlYPos + 24; aktuellerAuswahlTextMitte.Color = Globals.StdGrün; break; case 3: aktuellerAuswahlTextUnten = new Text(AuswahlTextListe[AuswahlTextListe.Count() - 1].String, Assets.FONT_AMIGA4EVER2, 12); aktuellerAuswahlTextUnten.X = AuswahlXPos + 35; aktuellerAuswahlTextUnten.Y = AuswahlYPos + 48; aktuellerAuswahlTextUnten.Color = Globals.StdGrün; break; } paramLeer = false; } //Überprüfen: Wenn mehr als 3 Auswahlmöglichkeiten vorhanden ist müssen Pfeile angezeigt werden if (AuswahlTextListe.Count() > 3) { PfeileAktiv = true; if (aktuellerTextIndex == 0) { PfeilHoch.Alpha = 0f; } else { PfeilHoch.Alpha = 1f; } PfeilHoch.X = AuswahlXPos - 20; PfeilHoch.Y = AuswahlYPos; if (aktuellerTextIndex + 3 == AuswahlTextListe.Count()) { PfeilRunter.Alpha = 0f; } else { PfeilRunter.Alpha = 1f; } PfeilRunter.X = AuswahlXPos - 20; PfeilRunter.Y = AuswahlYPos + 35; PfeilHochRot.Alpha = 0f; PfeilHochRot.X = AuswahlXPos - 20; PfeilHochRot.Y = AuswahlYPos; PfeilRunterRot.Alpha = 0f; PfeilRunterRot.X = AuswahlXPos - 20; PfeilRunterRot.Y = AuswahlYPos + 35; } else { PfeilHoch.Alpha = 0f; PfeilRunter.Alpha = 0f; PfeilHochRot.Alpha = 0f; PfeilRunterRot.Alpha = 0f; } if (ersterFade) { aktuellerAuswahlTextOben.Alpha = 0f; Tween(aktuellerAuswahlTextOben, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); aktuellerAuswahlTextMitte.Alpha = 0f; Tween(aktuellerAuswahlTextMitte, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); if (aktuellerAuswahlTextUnten != null) { aktuellerAuswahlTextUnten.Alpha = 0f; Tween(aktuellerAuswahlTextUnten, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); } if (PfeileAktiv) { if (aktuellerTextIndex != 0) { PfeilHoch.Alpha = 0f; Tween(PfeilHoch, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); } if (aktuellerTextIndex + 3 != AuswahlTextListe.Count()) { PfeilRunter.Alpha = 0f; Tween(PfeilRunter, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); } } ersterFade = false; } AddGraphic(aktuellerAuswahlTextOben); AddGraphic(aktuellerAuswahlTextMitte); if (aktuellerAuswahlTextUnten != null) { AddGraphic(aktuellerAuswahlTextUnten); } auswahlAnzeigeFertig = true; } else { int ParamCounter = 0; Text tempText; //Zusammenbauen der AuswahlListe //Hier wird jeder Text bereits so eingetragen, dass die Textersetzung durch Parameter abgeschlossen wurde //Durchlauf aller Texte für diesen Baumstrang foreach (Text ListenText in tempAuswahlListe) { string tempString = ""; //Ersetzen der paramter "#" des aktuellen Text tempText = new Text(ListenText.String, Assets.FONT_AMIGA4EVER2, 12); for (int index = 0; index < tempText.String.Length; index++) { char zeichen = tempText.String[index]; if (zeichen == '#') { try { tempString += AuswahlParamter[ParamCounter++]; } catch { //Wenn ersetzen fehlschlägt weil zu wenige Paramter übergeben wurden -> Ersetzen es Paramter mit einem "?" tempString += "?"; } } else { tempString += zeichen; } } AuswahlTextListe.Add(new Text(tempString, Assets.FONT_AMIGA4EVER2, 12)); TextZähler++; } //Indexer welcher Text als letztes gefüllt wurde // 1 = Oben // 2 = Mitte // 3 = unten int TexteEingebaut; //Füllen der darzustellenden 3 Elemente mit den Texten aus der AuswahlListe for (TexteEingebaut = 1; TexteEingebaut < 4 && TexteEingebaut + aktuellerTextIndex <= TextZähler; TexteEingebaut++) { switch (TexteEingebaut) { case 1: aktuellerAuswahlTextOben = new Text(AuswahlTextListe[aktuellerTextIndex].String, Assets.FONT_AMIGA4EVER2, 12); aktuellerAuswahlTextOben.X = AuswahlXPos + 35; aktuellerAuswahlTextOben.Y = AuswahlYPos + 0; aktuellerAuswahlTextOben.Color = Globals.StdGrün; break; case 2: aktuellerAuswahlTextMitte = new Text(AuswahlTextListe[aktuellerTextIndex + 1].String, Assets.FONT_AMIGA4EVER2, 12); aktuellerAuswahlTextMitte.X = AuswahlXPos + 35; aktuellerAuswahlTextMitte.Y = AuswahlYPos + 24; aktuellerAuswahlTextMitte.Color = Globals.StdGrün; break; case 3: aktuellerAuswahlTextUnten = new Text(AuswahlTextListe[aktuellerTextIndex + 2].String, Assets.FONT_AMIGA4EVER2, 12); aktuellerAuswahlTextUnten.X = AuswahlXPos + 35; aktuellerAuswahlTextUnten.Y = AuswahlYPos + 48; aktuellerAuswahlTextUnten.Color = Globals.StdGrün; break; } } if (AuswahlTextListe.Count() > 3) { PfeileAktiv = true; if (aktuellerTextIndex == 0) { PfeilHoch.Alpha = 0f; } else { PfeilHoch.Alpha = 1f; } PfeilHoch.X = AuswahlXPos - 20; PfeilHoch.Y = AuswahlYPos; if (aktuellerTextIndex + 3 == AuswahlTextListe.Count()) { PfeilRunter.Alpha = 0f; } else { PfeilRunter.Alpha = 1f; } PfeilRunter.X = AuswahlXPos - 20; PfeilRunter.Y = AuswahlYPos + 35; PfeilHochRot.Alpha = 0f; PfeilHochRot.X = AuswahlXPos - 20; PfeilHochRot.Y = AuswahlYPos; PfeilRunterRot.Alpha = 0f; PfeilRunterRot.X = AuswahlXPos - 20; PfeilRunterRot.Y = AuswahlYPos + 35; } else { PfeilHoch.Alpha = 0f; PfeilRunter.Alpha = 0f; PfeilHochRot.Alpha = 0f; PfeilRunterRot.Alpha = 0f; } if (ersterFade) { aktuellerAuswahlTextOben.Alpha = 0f; Tween(aktuellerAuswahlTextOben, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); aktuellerAuswahlTextMitte.Alpha = 0f; Tween(aktuellerAuswahlTextMitte, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); if (aktuellerAuswahlTextUnten != null) { aktuellerAuswahlTextUnten.Alpha = 0f; Tween(aktuellerAuswahlTextUnten, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); } if (PfeileAktiv) { if (aktuellerTextIndex != 0) { PfeilHoch.Alpha = 0f; Tween(PfeilHoch, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); } if (aktuellerTextIndex + 3 != AuswahlTextListe.Count()) { PfeilRunter.Alpha = 0f; Tween(PfeilRunter, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); } } ersterFade = false; } AddGraphic(aktuellerAuswahlTextOben); AddGraphic(aktuellerAuswahlTextMitte); if (aktuellerAuswahlTextUnten != null) { AddGraphic(aktuellerAuswahlTextUnten); } auswahlAnzeigeFertig = true; } } //Auswahl Hover und ClickLogik //Oberer Text if (Util.InRect(this.Scene.MouseX, this.Scene.MouseY, 35, 410, 600, 14) && aktuellerAuswahlTextOben != null) { if (Globals.PlayerSession.Controller.Button("MausLinks").Down || Globals.PlayerSession.Controller.Button("MausRechts").Down) { if (!farbeObenGewechselt) { aktuellerAuswahlTextOben.Color = Globals.HighLightMagenta; farbeObenGewechselt = true; } } // Absicherung, falls user beide Mausbuttons gleichzeitig drückt -> Links hat priorität if (Globals.PlayerSession.Controller.Button("MausLinks").Released) { int tempPos = 1 + aktuellerTextIndex; Console.WriteLine("Auswahl " + tempPos + " ist gedrückt!"); clickedAuswahl = 1 + aktuellerTextIndex; clickedButton = "MausLinks"; sprachTextZwangsEnde = true; //zurückwechseln der Farbe zu Grün if (farbeObenGewechselt) { aktuellerAuswahlTextOben.Color = Globals.StdGrün; farbeObenGewechselt = false; } } else { if (Globals.PlayerSession.Controller.Button("MausRechts").Released) { int tempPos = 1 + aktuellerTextIndex; Console.WriteLine("Auswahl " + tempPos + " ist gedrückt!"); clickedAuswahl = 1 + aktuellerTextIndex; clickedButton = "MausRechts"; sprachTextZwangsEnde = true; //zurückwechseln der Farbe zu Grün if (farbeObenGewechselt) { aktuellerAuswahlTextOben.Color = Globals.StdGrün; farbeObenGewechselt = false; } } } } else { //zurückwechseln der Farbe zu Grün wenn Taste Released oder Textfeld verlassen if (farbeObenGewechselt) { aktuellerAuswahlTextOben.Color = Globals.StdGrün; farbeObenGewechselt = false; } } //Mittlerer Text if (Util.InRect(this.Scene.MouseX, this.Scene.MouseY, 35, 434, 600, 14) && aktuellerAuswahlTextMitte != null) { if (Globals.PlayerSession.Controller.Button("MausLinks").Down || Globals.PlayerSession.Controller.Button("MausRechts").Down) { if (!farbeMitteGewechselt) { aktuellerAuswahlTextMitte.Color = Globals.HighLightMagenta; farbeMitteGewechselt = true; } } if (Globals.PlayerSession.Controller.Button("MausLinks").Released) { int tempPos = 2 + aktuellerTextIndex; Console.WriteLine("Auswahl " + tempPos + " ist gedrückt!"); clickedAuswahl = 2 + aktuellerTextIndex; clickedButton = "MausLinks"; sprachTextZwangsEnde = true; //zurückwechseln der Farbe zu Grün if (farbeMitteGewechselt) { aktuellerAuswahlTextMitte.Color = Globals.StdGrün; farbeMitteGewechselt = false; } } else { if (Globals.PlayerSession.Controller.Button("MausRechts").Released) { int tempPos = 2 + aktuellerTextIndex; Console.WriteLine("Auswahl " + tempPos + " ist gedrückt!"); clickedAuswahl = 2 + aktuellerTextIndex; clickedButton = "MausRechts"; sprachTextZwangsEnde = true; //zurückwechseln der Farbe zu Grün if (farbeMitteGewechselt) { aktuellerAuswahlTextMitte.Color = Globals.StdGrün; farbeMitteGewechselt = false; } } } } else { //zurückwechseln der Farbe zu Grün wenn Taste Released oder Textfeld verlassen if (farbeMitteGewechselt) { aktuellerAuswahlTextMitte.Color = Globals.StdGrün; farbeMitteGewechselt = false; } } //unterer Text if (Util.InRect(this.Scene.MouseX, this.Scene.MouseY, 35, 458, 600, 14) && aktuellerAuswahlTextUnten != null) { if (Globals.PlayerSession.Controller.Button("MausLinks").Down || Globals.PlayerSession.Controller.Button("MausRechts").Down) { if (!farbeUntenGewechselt) { aktuellerAuswahlTextUnten.Color = Globals.HighLightMagenta; farbeUntenGewechselt = true; } } if (Globals.PlayerSession.Controller.Button("MausLinks").Released) { int tempPos = 3 + aktuellerTextIndex; Console.WriteLine("Auswahl " + tempPos + " ist gedrückt!"); clickedAuswahl = 3 + aktuellerTextIndex; clickedButton = "MausLinks"; sprachTextZwangsEnde = true; //zurückwechseln der Farbe zu Grün if (farbeUntenGewechselt) { aktuellerAuswahlTextUnten.Color = Globals.StdGrün; farbeUntenGewechselt = false; } } else { if (Globals.PlayerSession.Controller.Button("MausRechts").Released) { int tempPos = 3 + aktuellerTextIndex; Console.WriteLine("Auswahl " + tempPos + " ist gedrückt!"); clickedAuswahl = 3 + aktuellerTextIndex; clickedButton = "MausRechts"; sprachTextZwangsEnde = true; //zurückwechseln der Farbe zu Grün if (farbeUntenGewechselt) { aktuellerAuswahlTextUnten.Color = Globals.StdGrün; farbeUntenGewechselt = false; } } } } else { //zurückwechseln der Farbe zu Grün wenn Taste Released oder Textfeld verlassen if (farbeUntenGewechselt) { aktuellerAuswahlTextUnten.Color = Globals.StdGrün; farbeUntenGewechselt = false; } } } // Pfeil Oben if (Util.InRect(this.Scene.MouseX, this.Scene.MouseY, 5, 410, 30, 30) && PfeileAktiv && aktuellerTextIndex != 0) { if (Globals.PlayerSession.Controller.Button("MausLinks").Down) { if (!farbePfeilObenGewechselt) { //Pfeil gewechselt Icon (Rot) PfeilHoch.Alpha = 0f; PfeilHochRot.Alpha = 1f; farbePfeilObenGewechselt = true; } } if (Globals.PlayerSession.Controller.Button("MausLinks").Released) { // wenn Index bereits am Anfang der Liste kein Pfeil nach oben möglich if (aktuellerTextIndex != 0) { aktuellerTextIndex--; auswahlAnzeigeFertig = false; } Console.WriteLine("Pfeil Oben ist gedrückt!"); //zurückwechseln der Farbe zu Grün if (farbePfeilObenGewechselt) { PfeilHoch.Alpha = 1f; PfeilHochRot.Alpha = 0f; farbePfeilObenGewechselt = false; } } } else { //zurückwechseln der Farbe zu Grün wenn Taste Released oder Textfeld verlassen if (farbePfeilObenGewechselt) { PfeilHoch.Alpha = 1f; PfeilHochRot.Alpha = 0f; farbePfeilObenGewechselt = false; } } // Pfeil Unten if (Util.InRect(this.Scene.MouseX, this.Scene.MouseY, 5, 445, 30, 30) && PfeileAktiv && aktuellerTextIndex + 3 != AuswahlTextListe.Count()) { if (Globals.PlayerSession.Controller.Button("MausLinks").Down) { if (!farbePfeilUntenGewechselt) { //Pfeil gewechselt Icon (Rot) PfeilRunter.Alpha = 0f; PfeilRunterRot.Alpha = 1f; farbePfeilUntenGewechselt = true; } } if (Globals.PlayerSession.Controller.Button("MausLinks").Released) { // wenn Index bereits am Anfang der Liste kein Pfeil nach oben möglich if (aktuellerTextIndex + 2 < AuswahlTextListe.Count() - 1) { aktuellerTextIndex++; auswahlAnzeigeFertig = false; } Console.WriteLine("Pfeil Unten ist gedrückt!"); //zurückwechseln der Farbe zu Grün if (farbePfeilUntenGewechselt) { PfeilRunter.Alpha = 1f; PfeilRunterRot.Alpha = 0f; farbePfeilUntenGewechselt = false; } } } else { //zurückwechseln der Farbe zu Grün wenn Taste Released oder Textfeld verlassen if (farbePfeilUntenGewechselt) { PfeilRunter.Alpha = 1f; PfeilRunterRot.Alpha = 0f; farbePfeilUntenGewechselt = false; } } #endregion //Tafeltext Handling #region TafelTextLogik if (tafelTextAktiv) { //Wenn tafelAnzeige false ist muss die Tafel neu gezeichnet werden if (!tafelAnzeigeFertig) { foreach (Text ListenText in TafelTextListe) { if (ersterTafelFade) { ListenText.Alpha = 0f; Tween(ListenText, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut); } else { ListenText.Alpha = 1f; } AddGraphics(ListenText); } ersterTafelFade = false; tafelAnzeigeFertig = true; } } #endregion #region AnzeigeText Logik // Wenn AnzeigeTexte aktiv ist müssen alle Zeilen mit ihren eigenen Positionen neu gezeichnet werden if (anzeigeTextAktiv) { if (!textAnzeigeFertig) { foreach (Text ListenText in AnzeigeTextListe) { ListenText.Alpha = 1f; AddGraphics(ListenText); } textAnzeigeFertig = true; } } #endregion } private void SetzeTexte() { //Je nach Preset werden andere Texte geladen Text TempText; // Hinzufügen der Texte zum Pool sowie einer Liste bei Auswahltexten oder Sequenziellen Texten List TempListe = new List(); switch (preset) { //Hier werden alle Texte geladen und vorbereitet //Notiz # im Text ist ein Hinweis dass hier ein Paramter hingehört //ToDo Baumäste komplettieren case "Handel": //Alle Texte eines TextTyps sammeln #region Handel-Sprachtexte //Sprachtexte TempText = new Text(Globals.HANDEL_BEGRÜßUNG_LIVERPOOL.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_BEGRÜßUNG_LIVERPOOL.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Begrüßung LIVERPOOL", TempText); TempText = new Text(Globals.HANDEL_BEGRÜßUNG_LONDON.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_BEGRÜßUNG_LONDON.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Begrüßung LONDON", TempText); TempText = new Text(Globals.HANDEL_WÄHLEN.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_WÄHLEN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Wählen_EINKAUF", TempText); TempText = new Text(Globals.HANDEL_WÄHLEN_ZIEL.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_WÄHLEN_ZIEL.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Wählen_ZIEL", TempText); TempText = new Text(Globals.HANDEL_HELFEN.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_HELFEN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Helfen", TempText); TempText = new Text(Globals.HANDEL_AUSVERKAUFT.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_AUSVERKAUFT.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Ausverkauft", TempText); TempText = new Text(Globals.HANDEL_WARENLOS.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_WARENLOS.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Warenlos", TempText); TempText = new Text(Globals.HANDEL_GELDLOS.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_GELDLOS.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Geldlos", TempText); TempText = new Text(Globals.HANDEL_GELDLOS2.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_GELDLOS2.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Geldlos2", TempText); TempText = new Text(Globals.HANDEL_GELDLOS3.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_GELDLOS3.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Geldlos3", TempText); TempText = new Text(Globals.HANDEL_VERKAUFSQUELLE.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_VERKAUFSQUELLE.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("HANDEL_VERKAUFSQUELLE", TempText); TempText = new Text(Globals.BUDGETREICHTNICHT.String, Assets.FONT_AMIGA4EVER2, Globals.BUDGETREICHTNICHT.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("BudgetReichtNicht", TempText); TempText = new Text(Globals.KOSTEN.String, Assets.FONT_AMIGA4EVER2, Globals.KOSTEN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Kosten", TempText); TempText = new Text(Globals.HANDEL_ERLÄUTERUNG1.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_ERLÄUTERUNG1.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Erläuterung1", TempText); TempText = new Text(Globals.HANDEL_ERLÄUTERUNG2.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_ERLÄUTERUNG2.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Erläuterung2", TempText); TempText = new Text(Globals.KEINEKOSTEN.String, Assets.FONT_AMIGA4EVER2, Globals.KEINEKOSTEN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("KeineKosten", TempText); TempText = new Text(Globals.HANDEL_RESTPOSTEN.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_RESTPOSTEN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Restposten1", TempText); TempText = new Text(Globals.HANDEL_RESTPOSTEN2.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_RESTPOSTEN2.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Restposten2", TempText); TempText = new Text(Globals.HANDEL_WARENWAHL.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_WARENWAHL.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Warenwahl_QuellLager", TempText); //Nach Sammeln als Überbegriff speichern sodass wir nach z.B. Begrüßungstext 1 in Sprachtexten suchen und ausgeben können TextPool.Add("SprachTexte", new Dictionary(MöglicheTexte)); MöglicheTexte.Clear(); #endregion #region Handel-Tafeltexte //TafelTexte TempText = new Text(Globals.HANDEL_ANGEBOT.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_ANGEBOT.FontSize); TempText.Color = Globals.TafelGrau; MöglicheTexte.Add("AngebotTafel", TempText); TempText = new Text(Globals.HANDEL_NACHFRAGE.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_NACHFRAGE.FontSize); TempText.Color = Globals.TafelGrau; MöglicheTexte.Add("NachfrageTafel", TempText); TextPool.Add("TafelTexte", new Dictionary(MöglicheTexte)); MöglicheTexte.Clear(); #endregion #region Handel-Auswahltexte //Auswahltexte //Seite 1 TempText = new Text(Globals.HANDEL_KAUFEN.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_KAUFEN.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Kaufen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.HANDEL_VERKAUFEN.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_VERKAUFEN.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Verkaufen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.TEXT_ABSCHIED.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABSCHIED.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Abschied", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1", new List(TempListe)); TempListe.Clear(); //Seite 1.1A (Vorauswahl Bäume -> A = Auswahl Exportware) TempText = new Text(Globals.TEXT_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Abbruch_Ware", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.1A", new List(TempListe)); TempListe.Clear(); //Seite 1.1B (Vorauswahl Bäume -> B = Auswahl ZielLagerort) TempText = new Text(Globals.TEXT_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Abbruch_Ziel", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.1B", new List(TempListe)); TempListe.Clear(); //Seite 1.1.1 (Auswahl von Menge & Bezahlung -> B = Auswahl ZielLagerort) TempText = new Text(Globals.HANDEL_PREIS_PRO_MENGE_EINKAUF.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_PREIS_PRO_MENGE_EINKAUF.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("PreisProMenge_EINKAUF", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.HANDEL_ABSCHLUSS_EINKAUF.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_ABSCHLUSS_EINKAUF.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Abschluss_EINKAUF", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BUDGETTEXT.String, Assets.FONT_AMIGA4EVER2, Globals.BUDGETTEXT.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Budget_EINKAUF", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.TEXT_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Abbruch_Handel_EINKAUF", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.1.1", new List(TempListe)); TempListe.Clear(); //Seite 1.2A (Auswahl von Quellagerort Bezahlung -> A = Auswahl QuellLagerort) TempText = new Text(Globals.TEXT_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Abbruch_QuellLager", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.2A", new List(TempListe)); TempListe.Clear(); //Seite 1.2B (Vorauswahl Bäume -> B = Auswahl Ware aus dem QuellLagerort) TempText = new Text(Globals.HANDEL_WARENQUELLE_WECHSEL.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_WARENQUELLE_WECHSEL.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Wechsel WarenQuelle", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.2B", new List(TempListe)); TempListe.Clear(); //Seite 1.2.1 (Auswahl von Menge & Bezahlung) TempText = new Text(Globals.HANDEL_PREIS_PRO_MENGE_VERKAUF.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_PREIS_PRO_MENGE_VERKAUF.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("PreisProMenge_VERKAUF", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.HANDEL_ABSCHLUSS_VERKAUF.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_ABSCHLUSS_VERKAUF.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Abschluss_VERKAUF", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BUDGETTEXT.String, Assets.FONT_AMIGA4EVER2, Globals.BUDGETTEXT.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Budget_VERKAUF", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.TEXT_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Abbruch_Handel_VERKAUF", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.2.1", new List(TempListe)); TempListe.Clear(); TextPool.Add("AuswahlTexte", new Dictionary(MöglicheTexte)); MöglicheTexte.Clear(); #endregion break; case "Bank": #region Bank-Sprachtexte //Sprachtexte TempText = new Text(Globals.BEGRÜßUNG_DECOY.String, Assets.FONT_AMIGA4EVER2, Globals.BEGRÜßUNG_DECOY.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Begrüßung_Decoy", TempText); TempText = new Text(Globals.HANDEL_HELFEN.String, Assets.FONT_AMIGA4EVER2, Globals.HANDEL_HELFEN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Helfen", TempText); TextPool.Add("SprachTexte", new Dictionary(MöglicheTexte)); MöglicheTexte.Clear(); #endregion #region Bank-Auswahltexte //Auswahltexte //Seite 1 TempText = new Text(Globals.BANKTEXT1_A.String, Assets.FONT_AMIGA4EVER2, Globals.BANKTEXT1_A.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("KreditKaufen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BANKTEXT1_B.String, Assets.FONT_AMIGA4EVER2, Globals.BANKTEXT1_B.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("KreditBezahlen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.TEXT_ABSCHIED.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABSCHIED.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Abschied", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1", new List(TempListe)); TempListe.Clear(); //Seite 1.1 -> Wenn Kaufen aktiviert wurde TempText = new Text(Globals.BANKTEXT11_A.String, Assets.FONT_AMIGA4EVER2, Globals.BANKTEXT11_A.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("KreditBenötigt", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); ModeMapping.Add("KreditBenötigt", "Slider"); TempText = new Text(Globals.BANKTEXT11_B.String, Assets.FONT_AMIGA4EVER2, Globals.BANKTEXT11_B.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("KreditKaufenAnnehmen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BUDGETTEXT.String, Assets.FONT_AMIGA4EVER2, Globals.BUDGETTEXT.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("KreditKaufenBudget", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); ModeMapping.Add("KreditKaufenBudget", "LocationMapper"); TempText = new Text(Globals.BANKTEXT11_D.String, Assets.FONT_AMIGA4EVER2, Globals.BANKTEXT11_D.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("KreditKaufenAbbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.1", new List(TempListe)); TempListe.Clear(); //Seite 1.2 -> Wenn zurück Zahlen aktiviert wurde TempText = new Text(Globals.BANKTEXT12_A.String, Assets.FONT_AMIGA4EVER2, Globals.BANKTEXT12_A.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("KreditRückzahlen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); ModeMapping.Add("KreditRückzahlen", "Slider"); TempText = new Text(Globals.BANKTEXT12_B.String, Assets.FONT_AMIGA4EVER2, Globals.BANKTEXT12_B.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("KreditBezahlenAnnehmen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BUDGETTEXT.String, Assets.FONT_AMIGA4EVER2, Globals.BUDGETTEXT.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("KreditBezahlenBudget", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); ModeMapping.Add("KreditBezahlenudget", "LocationMapper"); TempText = new Text(Globals.BANKTEXT12_D.String, Assets.FONT_AMIGA4EVER2, Globals.BANKTEXT12_D.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("KreditBezahlenAbbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.2", new List(TempListe)); TempListe.Clear(); TextPool.Add("AuswahlTexte", new Dictionary(MöglicheTexte)); MöglicheTexte.Clear(); #endregion break; case "Werft": #region Werft-Sprachtexte //Sprachtexte TempText = new Text(Globals.BEGRÜßUNG_DECOY.String, Assets.FONT_AMIGA4EVER2, Globals.BEGRÜßUNG_DECOY.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Begrüßung_Decoy", TempText); TempText = new Text(Globals.WERFT_HELFEN.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_HELFEN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Helfen", TempText); TempText = new Text(Globals.DEMOTEXT_KEINEREPARATUR.String, Assets.FONT_AMIGA4EVER2, Globals.DEMOTEXT_KEINEREPARATUR.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Demo_KeineReparatur", TempText); TempText = new Text(Globals.WELCHESSCHIFF.String, Assets.FONT_AMIGA4EVER2, Globals.WELCHESSCHIFF.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_Welches", TempText); TempText = new Text(Globals.WERFT_BAUEN_ABSCHLUSS1.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_ABSCHLUSS1.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_Abschluss1", TempText); TempText = new Text(Globals.WERFT_BAUEN_ABSCHLUSS2.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_ABSCHLUSS2.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_Abschluss2", TempText); TempText = new Text(Globals.WERFT_BAUEN_GELDMANGEL.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_GELDMANGEL.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_KEINGELD", TempText); TempText = new Text(Globals.WERFT_BAUEN_ANZAHLUNG1.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_ANZAHLUNG1.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_ANZAHLUNG1", TempText); TempText = new Text(Globals.WERFT_BAUEN_ANZAHLUNG2.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_ANZAHLUNG2.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_ANZAHLUNG2", TempText); TempText = new Text(Globals.WERFT_BEZAHLEN_KEINESCHULDEN.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BEZAHLEN_KEINESCHULDEN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_KEINESCHULDEN", TempText); TempText = new Text(Globals.WERFT_GEBRAUCHT_KEINESCHIFFE.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_GEBRAUCHT_KEINESCHIFFE.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Gebraucht_KEINESCHIFFE", TempText); TempText = new Text(Globals.WERFT_BAU_KEINPLATZ1.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAU_KEINPLATZ1.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("BAU_KEINPLATZ1", TempText); TempText = new Text(Globals.WERFT_BAU_KEINPLATZ2.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAU_KEINPLATZ2.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("BAU_KEINPLATZ2", TempText); TempText = new Text(Globals.WERFT_VERKAUF_WELCHESSCHIFF.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_VERKAUF_WELCHESSCHIFF.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Verkauf_WelchesSchiff", TempText); TempText = new Text(Globals.WERFT_VERKAUF_KEINESCHIFF1.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_VERKAUF_KEINESCHIFF1.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Verkauf_KeinSchiff1", TempText); TempText = new Text(Globals.WERFT_VERKAUF_KEINESCHIFF2.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_VERKAUF_KEINESCHIFF2.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Verkauf_KeinSchiff2", TempText); TempText = new Text(Globals.WERFT_VERKAUF_ANGEBOT.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_VERKAUF_ANGEBOT.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Verkauf_Angebot", TempText); TempText = new Text(Globals.WERFT_VERKAUF_ABSCHLUSS.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_VERKAUF_ABSCHLUSS.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Verkauf_Abschluss", TempText); TempText = new Text(Globals.RESTBETRAG.String, Assets.FONT_AMIGA4EVER2, Globals.RESTBETRAG.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_Restbetrag", TempText); TempText = new Text(Globals.KEINRESTBETRAG.String, Assets.FONT_AMIGA4EVER2, Globals.KEINRESTBETRAG.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_KeinRestbetrag", TempText); TempText = new Text(Globals.KEINZAHLBETRAG.String, Assets.FONT_AMIGA4EVER2, Globals.KEINZAHLBETRAG.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_KeinZahlbetrag", TempText); TempText = new Text(Globals.DANKEZUFRIEDEN.String, Assets.FONT_AMIGA4EVER2, Globals.DANKEZUFRIEDEN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_Zufrieden", TempText); TempText = new Text(Globals.BESTENDANK.String, Assets.FONT_AMIGA4EVER2, Globals.BESTENDANK.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_BestenDank", TempText); TempText = new Text(Globals.WERFT_BEZAHLEN_ALLEBEZAHLT.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BEZAHLEN_ALLEBEZAHLT.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_AlleBezahlt", TempText); TempText = new Text(Globals.WERFT_BEZAHLEN_XBEZAHLT.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BEZAHLEN_XBEZAHLT.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_XBezahlt", TempText); TempText = new Text(Globals.WERFT_BEZAHLEN_KEINESCHIFFE.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BEZAHLEN_KEINESCHIFFE.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bezahlen_KeineSchiffe", TempText); TextPool.Add("SprachTexte", new Dictionary(MöglicheTexte)); MöglicheTexte.Clear(); #endregion #region Werft-Auswahltexte //Auswahltexte //Seite 1 - Root TempText = new Text(Globals.WERFT_REPERATUR.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_REPERATUR.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("WerftReparatur", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_SCHIFFBAUEN.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_SCHIFFBAUEN.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("WerftBauen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.TEXT_ABSCHIED.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABSCHIED.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Abschied", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_SCHIFFGEBRAUCHT.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_SCHIFFGEBRAUCHT.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("WerftGebraucht", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_SCHIFFVERKAUFEN.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_SCHIFFVERKAUFEN.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("WerftVerkaufen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_SCHIFFBEZAHLEN.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_SCHIFFBEZAHLEN.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("WerftBezahlen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1", new List(TempListe)); TempListe.Clear(); //Seite 1.1 Reparaturauswahl (In der Demo inaktiv jedoch sind die Auswahl möglichkeiten schon sichtbar) TempText = new Text(Globals.WERFT_REPARATUR_MUSCHELN.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_REPARATUR_MUSCHELN.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Rep_Muscheln", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_REPARATUR_RUMPF.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_REPARATUR_RUMPF.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Rep_Rumpf", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_REPARATUR_ABSCHIED.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_REPARATUR_ABSCHIED.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Rep_Abschied", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_REPARATUR_ANTRIEB.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_REPARATUR_ANTRIEB.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Rep_Antrieb", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_REPARATUR_ALLES.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_REPARATUR_ALLES.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Rep_Alles", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.1", new List(TempListe)); TempListe.Clear(); //Seite 1.2 Schiff Bauen TempText = new Text(Globals.WERFT_BAUEN_NÄCHSTES_SCHIFF.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_NÄCHSTES_SCHIFF.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_NächstesSchiff", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_BAUEN_LETZTES_SCHIFF.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_LETZTES_SCHIFF.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_LetztesSchiff", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_BAUEN_BESTÄTIGEN.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_BESTÄTIGEN.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_SchiffBauen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_BAUEN_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_BauenAbbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.2", new List(TempListe)); TempListe.Clear(); //Seite 1.2.3A Schiffbau Namenseingabe TempText = new Text(Globals.WERFT_BAUEN_NAME_HINWEIS1.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_NAME_HINWEIS1.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Name_Hinweis1", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_BAUEN_NAME_HINWEIS2.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_NAME_HINWEIS2.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Name_Hinweis2", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_BAUEN_NAME_HINWEIS3.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_NAME_HINWEIS3.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Name_Hinweis3", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.2.3A", new List(TempListe)); TempListe.Clear(); //Seite 1.2.3B Schiffbau bestätigen TempText = new Text(Globals.WERFT_BAUEN_BESTÄTIGUNG_PREIS.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_BESTÄTIGUNG_PREIS.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Bestätigung_Preis", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_BAUEN_BESTÄTIGUNG_BESTELLUNG.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_BESTÄTIGUNG_BESTELLUNG.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_BauBestätigen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_BAUEN_BESTÄTIGUNG_GELDQUELLE.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_BESTÄTIGUNG_GELDQUELLE.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Bau_Geldquelle", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_BAUEN_BESTÄTIGUNG_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_BESTÄTIGUNG_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Bestätigen_Abbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.2.3B", new List(TempListe)); TempListe.Clear(); //Seite 1.4 Anzeige gebrauchter Schiffe TempText = new Text(Globals.WERFT_GEBRAUCHT_NÄCHSTES_SCHIFF.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_GEBRAUCHT_NÄCHSTES_SCHIFF.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Gebraucht_NächstesSchiff", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_BAUEN_LETZTES_SCHIFF.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_LETZTES_SCHIFF.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Gebraucht_LetztesSchiff", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BUDGETTEXT.String, Assets.FONT_AMIGA4EVER2, Globals.BUDGETTEXT.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Gebraucht_Budget", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_GEBRAUCHT_BESTÄTIGEN.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_GEBRAUCHT_BESTÄTIGEN.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Gebraucht_Bestätigen", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_BAUEN_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_BAUEN_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Gebraucht_Abbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.4", new List(TempListe)); TempListe.Clear(); //Seite 1.5A Verkauf eines Schiffs -Schiffswahl TempText = new Text(Globals.TEXT_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Verkauf_Abbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.5A", new List(TempListe)); TempListe.Clear(); //Seite 1.5B Verkauf eines Schiffs - Bestätigung TempText = new Text(Globals.WERFT_VERKAUF_PREIS.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_VERKAUF_PREIS.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Verkauf_Preis", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.WERFT_VERKAUF_BESTÄTIGUNG.String, Assets.FONT_AMIGA4EVER2, Globals.WERFT_VERKAUF_BESTÄTIGUNG.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Verkauf_Bestätigung", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.TEXT_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Verkauf_Abbruch2", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.5B", new List(TempListe)); TempListe.Clear(); //Seite 1.6A Abbezahlen eines Schiffs -Schiffswahl TempText = new Text(Globals.TEXT_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Schiffwahl_Abbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.6A", new List(TempListe)); TempListe.Clear(); //Seite 1.6B Abbezahlen eines Schiffs - Bezahlvorgang TempText = new Text(Globals.BUDGETTEXT.String, Assets.FONT_AMIGA4EVER2, Globals.BUDGETTEXT.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Bezahlen_Geldquelle", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.ZAHLMENGE.String, Assets.FONT_AMIGA4EVER2, Globals.ZAHLMENGE.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Bezahlen_Geldbetrag", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.ZAHLENFÜR.String, Assets.FONT_AMIGA4EVER2, Globals.ZAHLENFÜR.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Bezahlen_Bestätigung", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.TEXT_ABBRUCH2.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH2.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Werft_Bezahlen_Abbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.6B", new List(TempListe)); TempListe.Clear(); TextPool.Add("AuswahlTexte", new Dictionary(MöglicheTexte)); MöglicheTexte.Clear(); #endregion break; case "Bar": #region Bar-Sprachtexte //Sprachtexte TempText = new Text(Globals.BAR_FILIALEVORHANDEN.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_FILIALEVORHANDEN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_FilialeVorhanden", TempText); TempText = new Text(Globals.BAR_KEINE2SCHIFFE.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_KEINE2SCHIFFE.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_Keine2Schiffe", TempText); TempText = new Text(Globals.BAR_KEINESCHIFFE.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_KEINESCHIFFE.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_KeineSchiffe", TempText); TempText = new Text(Globals.BAR_WELCHESSCHIFF.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_WELCHESSCHIFF.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_WelchesSchiff", TempText); TempText = new Text(Globals.BAR_GUTESSCHIFF.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_GUTESSCHIFF.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_GutesSchiff", TempText); TempText = new Text(Globals.BAR_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_ABBRUCH.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_Abbruch", TempText); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_PREIS.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_PREIS.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_Mannschaftswahl_Preis", TempText); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_WELCHELEUTE.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_WELCHELEUTE.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_Mannschaftswahl_WelcheLeute", TempText); TempText = new Text(Globals.BAR_MANNSCHAFTWAHL_ANHEUERN.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTWAHL_ANHEUERN.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_Mannschaftswahl_Anheuern", TempText); TempText = new Text(Globals.BAR_MANNSCHAFTWAHL_GENUGLEUTE.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTWAHL_GENUGLEUTE.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_Mannschaftswahl_GenugLeute", TempText); TempText = new Text(Globals.BAR_HINWEIS_KEIN1.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_HINWEIS_KEIN1.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_Hinweis_KeineHinweise1", TempText); TempText = new Text(Globals.BAR_HINWEIS_KEIN2.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_HINWEIS_KEIN2.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_Hinweis_KeineHinweise2", TempText); TempText = new Text(Globals.BAR_HINWEIS_KEINGELD1.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_HINWEIS_KEINGELD1.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_Hinweis_KeineGeld1", TempText); TempText = new Text(Globals.BAR_HINWEIS_KEINGELD2.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_HINWEIS_KEINGELD2.FontSize); TempText.Color = Globals.SprachRot; MöglicheTexte.Add("Bar_Hinweis_KeineGeld2", TempText); TextPool.Add("SprachTexte", new Dictionary(MöglicheTexte)); MöglicheTexte.Clear(); #endregion #region Bar-Auswahltexte //Auswahltexte //Seite 1 - Root TempText = new Text(Globals.BAR_SUCHEMANNSCHAFT.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_SUCHEMANNSCHAFT.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("BarSucheMannschaft", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_KOSTENFILIALE.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_KOSTENFILIALE.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("BarKostenFiliale", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_ABSCHIED.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_ABSCHIED.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("BarAbschied", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_GELDTRANSFER.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_GELDTRANSFER.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("BarGeldtransfer", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_HINWEISE.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_HINWEISE.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("BarHinweis", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BUDGETTEXT.String, Assets.FONT_AMIGA4EVER2, Globals.BUDGETTEXT.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("BarBudget", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1", new List(TempListe)); TempListe.Clear(); //Seite 1.1A - Auswahl Schiffe (variable Liste) TempText = new Text(Globals.TEXT_ABBRUCH.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Schiffswahl_Abbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.1A", new List(TempListe)); TempListe.Clear(); //Seite 1.1B - Auswahl Mannschaftsdetails TempText = new Text(Globals.TEXT_ABBRUCH2.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH2.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Abbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESTÄTIGUNG.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESTÄTIGUNG.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Bestätigung", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG1.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG1.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Beschreibung1", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG2.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG2.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Beschreibung2", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG3.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG3.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Beschreibung3", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG4.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG4.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Beschreibung4", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG5.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG5.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Beschreibung5", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG6.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG6.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Beschreibung6", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG7.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG7.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Beschreibung7", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG8.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG8.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Beschreibung8", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG9.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG9.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Beschreibung9", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG10.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_MANNSCHAFTSWAHL_BESCHREIBUNG10.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Manschafftswahl_Beschreibung10", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.1B", new List(TempListe)); TempListe.Clear(); //Seite 1.2 - Auswahl Filialerstellung //Seite 1.4 - Auswahl Geldtransfer TempText = new Text(Globals.BUDGETTEXT.String, Assets.FONT_AMIGA4EVER2, Globals.BUDGETTEXT.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Geldtransfer_Quelle", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_GELDTRANSFER_ZIEL.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_GELDTRANSFER_ZIEL.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Geldtransfer_Ziel", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_GELDTRANSFER_BETRAG.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_GELDTRANSFER_BETRAG.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Geldtransfer_Betrag", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.BAR_GELDTRANSFER_BESTÄTIGUNG.String, Assets.FONT_AMIGA4EVER2, Globals.BAR_GELDTRANSFER_BESTÄTIGUNG.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Geldtransfer_Bestätigung", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TempText = new Text(Globals.TEXT_ABBRUCH2.String, Assets.FONT_AMIGA4EVER2, Globals.TEXT_ABBRUCH2.FontSize); TempText.Color = Globals.StdGrün; MöglicheTexte.Add("Bar_Geldtransfer_Abbruch", TempText); TempListe.Add(new Text(TempText.String, Assets.FONT_AMIGA4EVER2, TempText.FontSize)); TextBaum.Add("1.4", new List(TempListe)); TempListe.Clear(); #endregion break; } } //Methoden zur Erzeugung und hinzufügung zu den Grafiken der Szene -> Verwaltet werden diese in der Update Methode(ein/ausblenden; AuswahlHandling etc) public void erzeugeSprachText(Queue textIDs, Queue SprachParam, int xPos, int yPos) {//Methode zum erzeugen einer Sprachtextsequenz -> sequenz timmer bestimmt die anzeige dauer für jeden Text MöglicheTexte = TextPool["SprachTexte"]; //Alle einträge der Queue in die Ladequeue übernehmen und nach ein ander in der Updatemethode anzeigen while (textIDs.IsNotEmpty()) { String TempString = textIDs.Dequeue(); Text TempText = new Text(MöglicheTexte[TempString].String, Assets.FONT_AMIGA4EVER2, MöglicheTexte[TempString].FontSize + 10); TempText.Color = Globals.SprachRot; TempText.OutlineColor = Color.Black; TempText.OutlineThickness = 2; TempText.X = xPos; TempText.Y = yPos; TempText.Alpha = 0; SprachText.Enqueue(TempText); textSprachAktiv = true; anstehenderSequenzCounter++; } //Wenn es Parameter gibt müssen diese in die Paramterqueue übernommen werden while (SprachParam.IsNotEmpty()) { SprachParameter.Enqueue(SprachParam.Dequeue()); anstehenderParamSequenzCounter++; } } public void erzeugeAuswahlText(Queue AuswahlParams, int xPos, int yPos) {//Methode zum erzeugen einer Auswahlliste an Texten in grün -> Positionen geben Ankerpunkt für die Auswahlbox an. Standardmäßig sind immer 3 Texte mit definierten Abständen zu sehen //Nur Auswahltexte einmalig aktivieren!!! if (!textBaumAktiv) { textBaumAktiv = true; //Textbaum aktivierung startet immer bei Ebene 1 (Root Menü) aktuelleEbene = "1"; aktuellerTextIndex = 0; //gewünschte Position übernehmen AuswahlXPos = xPos; AuswahlYPos = yPos; auswahlAnzeigeFertig = false; AuswahlParamter.Clear(); //Wenn es Parameter gibt müssen diese in die Paramterdictionary übernommen werden while (AuswahlParams.IsNotEmpty()) { AuswahlParamter.Add(AuswahlParams.Dequeue()); } } } public void wechsleAuswahlText(string ebene, Queue AuswahlParams, bool variableListe = false, bool erneuereTextIndex = true) { aktuelleEbene = ebene; // Wenn Erneuerung des Textindex gewünscht ist muss hier initialisiert werden ansonsten bleibt der alte bestehen if (erneuereTextIndex) aktuellerTextIndex = 0; auswahlAnzeigeFertig = false; //Wenn VariableList mitgegeben wurde handelt es sich um eine AuswahlEbene des Baumes, der variable Länge und Inhalt vorweist VariableListe = variableListe; AuswahlParamter.Clear(); //Wenn es Parameter gibt müssen diese in die Paramterdictionary übernommen werden while (AuswahlParams.IsNotEmpty()) { AuswahlParamter.Add(AuswahlParams.Dequeue()); } } public void erzeugeTafelText(List ExportWarenListe, List ImportWarenListe) {//Methode zum erzeugen eines TafelTextes in weiß //Info Tafeltexte werden erzeugt aus dem vorhandenen Bestand des Hafens der den Textbuilder implementiert d.h. Pro TafelTextListe haben wir immer Startpunkt und von da an //Immer "doppel Einträge" Einer Links bündig Name der Ware einer Rechtsbündig Preis der Ware MöglicheTexte = TextPool["TafelTexte"]; Text HeaderText; Text TempTextLinks; Text TempTextRechts; //Obere Linke ecke der Tafel -> Von hier aus werden alle Texte relativ zu platziert TafelXPos = 475; TafelYPos = 85; //Wenn mindestens ein Tafeltext aktiv ist -> Nur dan TafelLogik ausführen tafelTextAktiv = true; //Wenn vorher schon eine Tafelliste vorhanden war wird diese zuerst gelöscht (so kann eine Tafelliste neu geschrieben werden) if (TafelTextListe.IsNotEmpty()) { foreach (Text item in TafelTextListe) { RemoveGraphics(item); } TafelTextListe.Clear(); } //Füllen der TafelTextListe //Zuerst der "Wir bieten an:" Text HeaderText = new Text(MöglicheTexte["AngebotTafel"].String, Assets.FONT_AMIGA4EVER2, 8); HeaderText.CenterTextOriginX(); HeaderText.Color = Globals.TafelGrau; HeaderText.X = TafelXPos + 75; HeaderText.Y = TafelYPos; TafelTextListe.Add(HeaderText); //Danach alle Export Texte (Maximal 2) int startYIndex = 0; // YPos des obersten Exportes TafelYPos += 25; foreach (Ware item in ExportWarenListe) { TempTextLinks = new Text(item.BEZEICHNUNG, Assets.FONT_AMIGA4EVER2, 8); TempTextLinks.Color = Globals.TafelGrau; TempTextLinks.X = TafelXPos; TempTextLinks.Y = TafelYPos + startYIndex * 20; TafelTextListe.Add(TempTextLinks); TempTextRechts = new Text((item.LAGERPREIS / 100).ToString() + "," + (item.LAGERPREIS % 100).ToString() + " $", Assets.FONT_AMIGA4EVER2, 8); TempTextRechts.OriginX = TempTextRechts.Right; TempTextRechts.Color = Globals.TafelGrau; TempTextRechts.X = TafelXPos + 140; TempTextRechts.Y = TafelYPos + startYIndex * 20; TafelTextListe.Add(TempTextRechts); startYIndex++; } HeaderText = new Text(MöglicheTexte["NachfrageTafel"].String, Assets.FONT_AMIGA4EVER2, 8); HeaderText.CenterTextOriginX(); HeaderText.Color = Globals.TafelGrau; HeaderText.X = TafelXPos + 75; HeaderText.Y = TafelYPos + 65; TafelTextListe.Add(HeaderText); //Danach alle Import Texte startYIndex = 0; // YPos des obersten Imports TafelYPos += 100; foreach (Ware item in ImportWarenListe) { TempTextLinks = new Text(item.BEZEICHNUNG, Assets.FONT_AMIGA4EVER2, 8); TempTextLinks.Color = Globals.TafelGrau; TempTextLinks.X = TafelXPos; TempTextLinks.Y = TafelYPos + startYIndex * 20; TafelTextListe.Add(TempTextLinks); TempTextRechts = new Text((item.LAGERPREIS / 100).ToString() + "," + (item.LAGERPREIS % 100).ToString() + " $", Assets.FONT_AMIGA4EVER2, 8); TempTextRechts.OriginX = TempTextRechts.Right; TempTextRechts.Color = Globals.TafelGrau; TempTextRechts.X = TafelXPos + 140; TempTextRechts.Y = TafelYPos + startYIndex * 20; TafelTextListe.Add(TempTextRechts); startYIndex++; } tafelAnzeigeFertig = false; } public void erzeugeAnzeigeTexte(List TextListe) {//Methode zum erzeugen von AnzeigeTexte //Wenn mindestens ein Tafeltext aktiv ist -> Nur dan TafelLogik ausführen anzeigeTextAktiv = true; //Wenn vorher schon eine Tafelliste vorhanden war wird diese zuerst gelöscht (so kann eine Tafelliste neu geschrieben werden) if (AnzeigeTextListe.IsNotEmpty()) { foreach (Text Zeile in AnzeigeTextListe) { RemoveGraphics(Zeile); } } AnzeigeTextListe.Clear(); foreach (Text Zeile in TextListe) { AnzeigeTextListe.Add(Zeile); } TextListe.Clear(); textAnzeigeFertig = false; } public bool checkEbeneExistiert(string Ebene) { if (TextBaum.ContainsKey(Ebene)) return true; else return false; } public string zeigeAktuelleEbene() { return aktuelleEbene; } public void setzeFadeOut() { Tween(FadeOutBlackScreen, new { Alpha = 1f }, 100f, 0f).Ease(Ease.BackInOut); AddGraphics(FadeOutBlackScreen); } private void wechselFarbe(Text QuellText) { if (QuellText.Color.ColorString == Globals.StdGrün.ColorString) QuellText.Color = Globals.HighLightMagenta; else QuellText.Color = Globals.StdGrün; } public int checkAuswahl() { // Checkauswahl gibt den Index des Auswahlliste des aktuellen Baumes an in relation mit dem aktuellen Anzeige Index // Abfragen des Clicked Status ( wenn diese Abfrage erfolgt wird der Wert immer direkt zurück gesetzt) int TempCheckwert; if (VariableListe) { // Bei variabler listen länge wird bei 99 vom Abbruch ausgegangen if (AuswahlTextListe.Count() == clickedAuswahl) TempCheckwert = 999; else TempCheckwert = clickedAuswahl; } else { TempCheckwert = clickedAuswahl; } clickedAuswahl = 0; return TempCheckwert; } public string checkButtonAuswahl() { string TempButton = clickedButton; clickedButton = ""; return TempButton; } public void setAuswahl(int Auswahl) { // Setzen der aktuellen Auswahl auf einen vorbestimmten Wert( wird für Shortcut-Funktionalität verwendet) clickedAuswahl = Auswahl; } } }