using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Otter; using _1869_Remake; using _1869_Remake.ToolKlassen; using _1869_Remake.Entities; namespace _1869_Remake.Scenes { public class ConfigScreen : Scene { // Imageobjekte mit dem Config Bildschirm public Image ConfigImage = new Image(Assets.CONFIGSCREEN); public Image FadeInBlackScreen = new Image(Assets.BLACKSCREEN); public Image FadeOutBlackScreen = new Image(Assets.BLACKSCREEN); // Welche Einstellungsseite gerade gezeigt wird // 0 = Moduswahl // 1 = Ladebildschirm // 2 = Anzahl Spieler // 3 = Name der Spieler // 4 = Geschlechterwahl // 5 = Firma der Spieler // 6 = Starthafen wählen // 7 = Bestätigung der Daten // 8 = Spieldauer public int configSeite = 0; //Nur wenn wahl abgeschlossen wird nächster Text angezeigt public bool wahlFertig = true; public bool anzeigeFertig = false; //Anzahl Spieler : 1-4 möglich public int aktuellerSpieler = 0; public int spielerIndex = 1; public Hafen startFiliale; public Text[] anzeigeTexte = new Text[10]; //Textbox zum Eingeben der Texte public TextBox textFeld; //Geschlecht: M = Männlich, W = Weiblich public String geschlecht; //Name der Firma und des Spielers string spielerName; public string nameFirma; public int ersteFiliale; public int spielDauer; public bool bestätigt = false; private bool beginner = false; private Hafen tempHafen; public const float TIMER_GRENZE = 45f; //AnzeigeTimer muss hoch starten damit sofort erstes bild angezeigt wird public float szenenTimer = 0f; public int counter = 0; public ConfigScreen() { Globals.aktuelleSzene = "Config"; //Initialisieren des Hauptbildschirms und einblenden ConfigImage.CenterOrigin(); ConfigImage.X = Globals.Remake.HalfWidth; ConfigImage.Y = Globals.Remake.HalfHeight; ConfigImage.Alpha = 1f; AddGraphic(ConfigImage); Tween(ConfigImage, new { Alpha = 1f }, 120f, 0f).Ease(Ease.BackInOut); //Vorbereiten des Blackscreens FadeInBlackScreen.CenterOrigin(); FadeInBlackScreen.X = Globals.Remake.HalfWidth; FadeInBlackScreen.Y = Globals.Remake.HalfHeight; FadeInBlackScreen.Alpha = 1f; AddGraphic(FadeInBlackScreen); Tween(FadeInBlackScreen, new { Alpha = 0f }, 180f, 0f).Ease(Ease.BackInOut); FadeOutBlackScreen.CenterOrigin(); FadeOutBlackScreen.X = Globals.Remake.HalfWidth; FadeOutBlackScreen.Y = Globals.Remake.HalfHeight; FadeOutBlackScreen.Alpha = 0f; } public override void Update() { base.Update(); //hochzählendes Zeitelement um Aktionen in der Szene zu Takten szenenTimer++; //Erst nach Timer sind aktionen möglich if (szenenTimer >= TIMER_GRENZE) { // Nach dem timer alle unsichtbaren Texte einblenden um Zeit zwischen Texten zu simulieren => Kein flackern durch schnell eingeblendete Texte // Nur neu erstellen wenn notwendig für bessere Performance if (!anzeigeFertig) { foreach (Text t in anzeigeTexte) { if (t != null) { t.Alpha = 1f; t.Color = Globals.ConfigGrau; } } if (configSeite == 3 || configSeite == 5) { textFeld.Focus(); } anzeigeFertig = true; } if (wahlFertig) { //Initialisieren der Grafiken erst ab 2. Durchgang (Nurentfernen der Texte nicht des Hintergrundbildes) if (configSeite != 0) { foreach (Text t in anzeigeTexte) { RemoveGraphic(t); } if (configSeite == 4 || configSeite == 6) Remove(textFeld); } //Initialisieren des Arrays counter = 0; foreach (var t in anzeigeTexte) { if (t != null) { counter++; } } for (int i = 0; i < counter; i++) { anzeigeTexte[i] = null; } //Anzeige des aktuellen Textes switch (configSeite) { //Versionsscreen case 0: anzeigeTexte[0] = Globals.CONFIGTEXT0; anzeigeTexte[1] = Globals.CONFIGTEXT0_1; anzeigeTexte[2] = Globals.CONFIGTEXT0_2; break; //Spiel laden oder Neu case 1: anzeigeTexte[0] = Globals.CONFIGTEXT1; break; //Anzahl Spieler case 2: anzeigeTexte[0] = Globals.CONFIGTEXT2; break; // Name Spieler case 3: switch (aktuellerSpieler) { case 1: anzeigeTexte[0] = Globals.CONFIGTEXT3_A; break; case 2: anzeigeTexte[0] = Globals.CONFIGTEXT3_B; break; case 3: anzeigeTexte[0] = Globals.CONFIGTEXT3_C; break; case 4: anzeigeTexte[0] = Globals.CONFIGTEXT3_D; break; } //Eingabefeld für Texteingabe textFeld = new TextBox(Globals.Remake.HalfWidth - 50, Globals.Remake.HalfHeight, 100, 20, 15, true); this.Add(textFeld); break; // Geschlecht case 4: anzeigeTexte[0] = Globals.CONFIGTEXT4; break; // Name Firma case 5: switch (aktuellerSpieler) { case 1: anzeigeTexte[0] = Globals.CONFIGTEXT5_A; break; case 2: anzeigeTexte[0] = Globals.CONFIGTEXT5_B; break; case 3: anzeigeTexte[0] = Globals.CONFIGTEXT5_C; break; case 4: anzeigeTexte[0] = Globals.CONFIGTEXT5_D; break; } //Eingabefeld für Texteingabe textFeld = new TextBox(Globals.Remake.HalfWidth - 50, Globals.Remake.HalfHeight, 100, 20, 15, true); this.Add(textFeld); break; //Starthafen case 6: anzeigeTexte[0] = Globals.CONFIGTEXT6_A; anzeigeTexte[1] = Globals.CONFIGTEXT6_B; anzeigeTexte[2] = Globals.CONFIGTEXT6_C; anzeigeTexte[3] = Globals.CONFIGTEXT6_D; anzeigeTexte[4] = Globals.CONFIGTEXT6_E; anzeigeTexte[5] = Globals.CONFIGTEXT6_F; break; // Zusammenfassung der Daten case 7: anzeigeTexte[0] = new Text("SPIELERNAME: " + spielerName, Assets.FONT_AMIGA4EVER2, 10); anzeigeTexte[1] = new Text("GESCHLECHT : " + geschlecht, Assets.FONT_AMIGA4EVER2, 10); anzeigeTexte[2] = new Text("FIRMENNAME : " + nameFirma, Assets.FONT_AMIGA4EVER2, 10); anzeigeTexte[3] = new Text("STARTHAFEN : " + startFiliale.NAME, Assets.FONT_AMIGA4EVER2, 10); anzeigeTexte[4] = new Text("", Assets.FONT_AMIGA4EVER2, 10); anzeigeTexte[5] = Globals.CONFIGTEXT7; //Hier Kopieren der Spieler in die Globalen Daten einfügen Wenn daten struktur bestimmt ist break; // Spieldauer wählen 5-26 Jahre case 8: anzeigeTexte[0] = Globals.CONFIGTEXT8_A; anzeigeTexte[1] = Globals.CONFIGTEXT8_B; anzeigeTexte[2] = Globals.CONFIGTEXT8_C; anzeigeTexte[3] = Globals.CONFIGTEXT8_D; anzeigeTexte[4] = Globals.CONFIGTEXT8_E; anzeigeTexte[5] = Globals.CONFIGTEXT8_F; anzeigeTexte[6] = Globals.CONFIGTEXT8_G; anzeigeTexte[7] = Globals.CONFIGTEXT8_H; break; } //Aufbau der Texte in der mitte des Bildschirms (transparent) int indexer = 0; foreach (Text t in anzeigeTexte) { if (t != null) { if (configSeite == 6) { //ohne Center origin damit linksbündigkeit bleibt t.X = 150; t.Y = Globals.Remake.HalfHeight - 60 + (indexer * 15); t.Alpha = 0f; AddGraphic(t); } else if (configSeite == 7 && indexer != 5) { //ohne Center origin damit linksbündigkeit bleibt t.X = 200; t.Y = Globals.Remake.HalfHeight - 60 + (indexer * 15); t.Alpha = 0f; AddGraphic(t); } else { t.CenterOrigin(); t.X = Globals.Remake.HalfWidth + 50 - (t.ToString().Length * 5); t.Y = Globals.Remake.HalfHeight - 30 + (indexer * 15); t.Alpha = 0f; AddGraphic(t); } indexer++; } } //Wechsel des Textes fertig und timer neu reseten; Nach wechsel muss erst Eingabe des Users erfolgen für nächsten Wechsel wahlFertig = false; anzeigeFertig = false; szenenTimer = 0f; } switch (configSeite) { //Versionsscreen case 0: if (Globals.PlayerSession.Controller.Button("O").Pressed) { Globals.SpielModus = 1; configSeite++; wahlFertig = true; setzeHäfen(Globals.SpielModus); setzenWare(Globals.SpielModus); setzeSchiffsTypen(Globals.SpielModus); setzenWarenAufstockung(Globals.SpielModus); setzenMeeresKnoten(Globals.SpielModus); setzenMeeresStraßen(Globals.SpielModus); setzePreisListeUnerwünscht(Globals.SpielModus); } if (Globals.PlayerSession.Controller.Button("R").Pressed) { //Solange keine erweiterung der Häfen/WAREN geplant weiterhin die reguläre Palette setzen Globals.SpielModus = 1; configSeite++; wahlFertig = true; setzeHäfen(Globals.SpielModus); setzeSchiffsTypen(Globals.SpielModus); setzenWare(Globals.SpielModus); setzenMeeresKnoten(Globals.SpielModus); setzenMeeresStraßen(Globals.SpielModus); setzenWarenAufstockung(Globals.SpielModus); setzePreisListeUnerwünscht(Globals.SpielModus); } break; //Spiel laden oder Neu case 1: if (Globals.PlayerSession.Controller.Button("Leer").Pressed) { configSeite++; wahlFertig = true; } else if (Globals.PlayerSession.Controller.Button("J").Pressed) { configSeite++; wahlFertig = true; } break; //Anzahl Spieler case 2: if (Globals.PlayerSession.Controller.Button("1").Pressed) { Globals.AnzahlSpieler = 1; wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("2").Pressed) { Globals.AnzahlSpieler = 2; wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("3").Pressed) { Globals.AnzahlSpieler = 3; wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("4").Pressed) { Globals.AnzahlSpieler = 4; wahlFertig = true; } if (wahlFertig) { configSeite++; //Setzen des ersten Spielers aktuellerSpieler = 1; } break; // Name Spieler case 3: if (Globals.PlayerSession.Controller.Button("Enter").Pressed) { spielerName = textFeld.getInput(); configSeite++; wahlFertig = true; } break; // Geschlecht case 4: if (Globals.PlayerSession.Controller.Button("M").Pressed) { geschlecht = "MÄNNLICH"; configSeite++; wahlFertig = true; } else if (Globals.PlayerSession.Controller.Button("W").Pressed) { geschlecht = "WEIBLICH"; configSeite++; wahlFertig = true; } break; // Name Firma case 5: if (Globals.PlayerSession.Controller.Button("Enter").Pressed) { nameFirma = textFeld.getInput(); configSeite++; wahlFertig = true; } break; //Starthafen case 6: if (Globals.PlayerSession.Controller.Button("1").Pressed) { Globals.AlleHäfen.TryGetValue("LIVERPOOL", out tempHafen); wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("2").Pressed) { Globals.AlleHäfen.TryGetValue("LONDON", out tempHafen); wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("3").Pressed) { Globals.AlleHäfen.TryGetValue("LES HAVRES", out tempHafen); wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("4").Pressed) { Globals.AlleHäfen.TryGetValue("NEW YORK", out tempHafen); wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("5").Pressed) { Globals.AlleHäfen.TryGetValue("SAVANNAH", out tempHafen); wahlFertig = true; } if (wahlFertig) { startFiliale = tempHafen; configSeite++; } break; // Zusammenfassung der Daten (Bestätigung J/N) -> wenn J dann nächster Spieler oder Spieldauerwahl/ Wenn N dann zu case 3 mit selbem Spieler case 7: if (Globals.PlayerSession.Controller.Button("J").Pressed) { wahlFertig = true; bestätigt = true; Spieler tempSpieler = new Spieler(spielerName, nameFirma, geschlecht,spielerIndex++); tempSpieler.gründetFiliale(startFiliale,0); // Testschiffe hinzufügen (Zu testzwecken) -> Alle starten am Starthafen /* tempSpieler.erhalteSchiff(startFiliale.NAME,1); tempSpieler.erhalteSchiff(startFiliale.NAME, 2); tempSpieler.erhalteSchiff(startFiliale.NAME, 3); tempSpieler.erhalteSchiff(startFiliale.NAME, 4); tempSpieler.erhalteSchiff(startFiliale.NAME, 5); */ } if (Globals.PlayerSession.Controller.Button("N").Pressed) { wahlFertig = true; } if (wahlFertig) { if (bestätigt) { bestätigt = false; if (aktuellerSpieler == Globals.AnzahlSpieler) { configSeite++; } else { aktuellerSpieler++; configSeite = 3; } } else { configSeite = 3; } } break; // Spieldauer wählen 5-26 Jahre case 8: if (Globals.PlayerSession.Controller.Button("A").Pressed) { Globals.Spieldauer = 5; wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("B").Pressed) { Globals.Spieldauer = 10; wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("C").Pressed) { Globals.Spieldauer = 15; wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("D").Pressed) { Globals.Spieldauer = 20; wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("E").Pressed) { Globals.Spieldauer = 26; wahlFertig = true; } if (Globals.PlayerSession.Controller.Button("F").Pressed) { Globals.Spieldauer = 5; //Bei beginnerspiel wird mehr startkapital festgelegt beginner = true; wahlFertig = true; } if (wahlFertig) { foreach (Spieler aktuellerSpieler in Globals.SpielerListe) { //Wenn Spieldauer bestimmt wurde, erhöhe das Budget der Startfiliale(erste und einzige Filiale bisher) um 7000 [da ohne floats gearbeitet werden soll geben wir 70000 ein] if (beginner) aktuellerSpieler.FILIALEN.First().erhöheBudget(1200000); else aktuellerSpieler.FILIALEN.First().erhöheBudget(700000); } Tween(FadeOutBlackScreen, new { Alpha = 1f }, 64f, 0f).Ease(Ease.BackInOut); AddGraphic(FadeOutBlackScreen); } if (FadeOutBlackScreen.Alpha >= 0.999f) { //Setzen des Startdatums (StartDatum ist immer 01.01.1854 //Einfügen der festen WeltEvents in die Queue (Original Version) setzenBasisEvents(1); switch (Globals.SpielerListe[0].FILIALEN[0].HEIMATHAFEN.NAME) { case "LIVERPOOL": case "LONDON": case "LES HAVRES": Globals.weltKarte = "EUROPA"; break; case "SAVANNAH": case "NEW YORK": Globals.weltKarte = "AMERIKA"; break; } //Szenenwechsel Globals.LetzteSzene = "Config"; this.RemoveAll(); this.ClearGraphics(); Globals.Remake.SwitchScene(new worldMap()); } break; } } } public void setzeHäfen(int Version) { // Original Version if (Version == 1) { //Anlegen aller Originalhäfen (39 Stück) //Amerika new Hafen("SAN FRANZISKO", "VEREINIGTE STAATEN", 0, 0, false); new Hafen("NEW ORLEANS", "VEREINIGTE STAATEN", 0, 0, false); new Hafen("SAVANNAH", "VEREINIGTE STAATEN", 0, 0, false); new Hafen("NEW YORK", "KUBA", 0, 0, false); new Hafen("LOS ANGELES", "VEREINIGTE STAATEN", 0, 0, false); new Hafen("PUERTO BELLO", "PANAMA", 0, 0, false); new Hafen("CEYENNE", "GUAYANA", 0, 0, false); new Hafen("CALLAO", "PERU", 0, 0, false); new Hafen("ARICA", "CHILE", 0, 0, false); new Hafen("RIO DE JANEIRO", "KÖNIGREICH BRASILIEN", 0, 0, false); //Afrika new Hafen("AKKRA", "NIGERIA", 0, 0, false); new Hafen("LAGOS", "GOLDKÜSTE", 0, 0, false); new Hafen("LUANDA", "ANGOLA", 0, 0, false); new Hafen("KAPSTADT", "KAPLAND", 0, 0, false); new Hafen("MOCAMBIQUE", "MOCAMBIQUE", 0, 0, false); new Hafen("TANGA", "DEUTSCH-OSTAFRIKA", 0, 0, false); //Europa Punkt new Hafen("PORT SAID", "ÄGYPTEN", 555, 350, false); new Hafen("ADEN", "ARABIEN", 0, 0, false); //Europa Punkt new Hafen("TUNIS", "TUNESIEN", 355, 285, false); //Europa new Hafen("ODESSA", "KAISERREICH RUSSLAND", 500, 185, false); new Hafen("TRIEST", "KAISERREICH ÖSTERREICH / KOLONIE DER MAX-GRUPPE", 385, 185, false); new Hafen("BARCELONA", "KÖNIGREICH SPANIEN", 290, 235, false); new Hafen("LISSABON", "KÖNIGREICH PORTUGAL", 225, 245, false); new Hafen("LE HAVRE", "KAISERREICH FRANKREICH", 290, 145, true); new Hafen("AMSTERDAM", "KÖNIGREICH NIEDERLANDE", 315, 125, false); new Hafen("HAMBURG", "KÖNIGREICH HANNOVER", 335, 110, false); new Hafen("LONDON", "KÖNIGREICH ENGLAND", 285, 115, true); new Hafen("LIVERPOOL", "KÖNIGREICH ENGLAND", 260, 100, true); //Asien/Australien new Hafen("DIU", "INDIEN/ENGLISCHE KOLONIE", 0, 0, false); new Hafen("BOMBAY", "INDIEN/ENGLISCHE KOLONIE", 0, 0, false); new Hafen("COLOMBO", "CEYLON/ENGLISCHE KOLONIE", 0, 0, false); new Hafen("RANGOON", "BURMA/ENGLISCHE KOLONIE", 0, 0, false); new Hafen("MACAO", "CHINA/ENGLISCHER VERTRAGSHAFEN", 0, 0, false); new Hafen("SHANGHAI", "CHINA/ENGLISCHER VERTRAGSHAFEN", 0, 0, false); new Hafen("SINGAPORE", "MALAISIEN/ENGLISCHE KOLONIE", 0, 0, false); new Hafen("MANDAO", "CELEBES/NIEDERLÄNDISCHE KOLONIE", 0, 0, false); new Hafen("PERTH", "AUSTRALIEN/ENGLISCHE KOLONIE", 0, 0, false); new Hafen("MELBOURNE", "AUSTRALIEN/ENGLISCHE KOLONIE", 0, 0, false); new Hafen("SIDNEY", "AUSTRALIEN/ENGLISCHE KOLONIE", 0, 0, false); } } public void setzenMeeresKnoten(int Version) { // Original Version if (Version == 1) { new MeeresKnotenpunkt("Test GB"); new MeeresKnotenpunkt("Test Spanien"); } } public void setzenMeeresStraßen(int Version) { // Original Version if (Version == 1) { // To Do: System einführen bei dem alle Straßen zu allen Jahreszeiten bekannt sind und je nach dem ob user diese bereits befahren ist, // zeigen sie mittels farbe an ob man günstige Strömungsverhältnisse hat (schneller am Ziel) new SeeStraße("GB - Spanien",50,50,150,150,2); new SeeStraße("Spanien - GB",150,150,50,50,1); } } public void setzenBasisEvents(int Version) { // Da zu Begin des Spiels die Liste leer ist können wir die aktuellen Basis Events beretis eins nach dem anderen hier einfügen // es muss nur sicher gestellt werden, dass in jeder eventabhängigen Instanz eine EventHandler aktiv ist // Original Version if (Version == 1) { //Setzen des Startdatums Globals.AktuellerTag_E = 1; Globals.AktuellerTag_Z = 0; Globals.AktuellerMonat = 1; Globals.AktuellesJahr_E = 4; Globals.AktuellesJahr_Z = 5; Globals.AktuellesJahr_H = 8; Globals.AktuellesJahr_T = 1; Globals.AktuellesDatum = new DateTime(1854, 01, 01); // Hinweis: Bei Laden des Startevents müssen die Häfen ihr "Initial Lager" erstellen, Beispiel -> Tunis hat zu beginn nur früchte geladen, Kein Pflanzen öl!! (das wird erst gegen März) verfügbar Globals.EventAktion(new WeltEvent(new DateTime(1854, 1, 1), "START"),"EINFÜGEN"); //Für Jeden Spieler muss für den 1.1.1854 ein Spielerwechsel initiiert werden damit die Spieler alle am 1. Tag einmal dran kommen for (int spielerIndex = 0; spielerIndex < Globals.SpielerListe.Count(); spielerIndex++) { Globals.EventAktion(new WeltEvent(new DateTime(1854, 1, 1), "SPIELERWECHSEL", Globals.SpielerListe[spielerIndex]), "EINFÜGEN"); } //SpielEnde je nach gewählter Spieldauer switch (Globals.Spieldauer) { case 5: Globals.EventAktion(new WeltEvent(new DateTime(1859, 1, 1), "ENDE"),"EINFÜGEN"); break; case 10: Globals.EventAktion(new WeltEvent(new DateTime(1864, 1, 1), "ENDE"), "EINFÜGEN"); break; case 15: Globals.EventAktion(new WeltEvent(new DateTime(1869, 1, 1), "ENDE"), "EINFÜGEN"); break; case 20: Globals.EventAktion(new WeltEvent(new DateTime(1874, 1, 1), "ENDE"), "EINFÜGEN"); break; case 26: Globals.EventAktion( new WeltEvent(new DateTime(1880, 1, 1), "ENDE"), "EINFÜGEN"); break; } } } public void setzenWare(int Version) { // Original Version if (Version == 1) { //ToDo: Vervollständigen aller möglichen Waren Globals.AlleWarenTypen = new List(); //Anlegen aller Originalwaren (XX Stück) Globals.registriereWarenTyp("BAUMWOLLE"); Globals.registriereWarenTyp("EDELHOLZ"); Globals.registriereWarenTyp("ELFENBEIN"); Globals.registriereWarenTyp("FRÜCHTE"); Globals.registriereWarenTyp("GEWÜRZE"); Globals.registriereWarenTyp("KAFFEE"); Globals.registriereWarenTyp("KAKAO"); Globals.registriereWarenTyp("KAUTSCHUK"); Globals.registriereWarenTyp("KOHLE"); Globals.registriereWarenTyp("MASCHINEN"); Globals.registriereWarenTyp("PFLANZENÖL"); Globals.registriereWarenTyp("SALPETER"); Globals.registriereWarenTyp("SEIDE"); Globals.registriereWarenTyp("TABAK"); Globals.registriereWarenTyp("TEXTILIEN"); Globals.registriereWarenTyp("TEE"); Globals.registriereWarenTyp("WAFFEN"); Globals.registriereWarenTyp("WEIN"); Globals.registriereWarenTyp("WERKZEUG"); Globals.registriereWarenTyp("WOLLE"); Globals.registriereWarenTyp("ZUCKER"); } } public void setzeSchiffsTypen(int Version) { // Original Version if (Version == 1) { Globals.AlleSchiffsTypen = new List(); //Anlegen aller möglichenSchiffstypen als Refferenz Globals.registriereSchiffsTyp(new Schiff("SCHONERSCHABLONE","SCHONER",0)); Globals.registriereSchiffsTyp(new Schiff("BARKSCHABLONE", "BARK", 0)); Globals.registriereSchiffsTyp(new Schiff("HOLZDAMPFSCHIFFSCHABLONE", "HOLZDAMPFSCHIFF", 0)); Globals.registriereSchiffsTyp(new Schiff("EISENDAMPFSCHIFFSCHABLONE", "EISENDAMPFSCHIFF", 0)); Globals.registriereSchiffsTyp(new Schiff("BRIGGSCHABLONE", "BRIGG", 0)); Globals.registriereSchiffsTyp(new Schiff("FREGATTESCHABLONE", "FREGATTE", 0)); Globals.registriereSchiffsTyp(new Schiff("KLIPPERSCHABLONE", "KLIPPER", 0)); } } // To Do: Sonderpreis logik herausfinden (Wenn sehr Hoher Import von etwas ist) public void setzePreisListeSonder(int Version) { if (Version == 1) { // Wenn richtige Werte berechnet sind muss eingefügt werden; Bis dahin kostet alles pauschal 5 Dollar Globals.PreisListe_UnerwünschteWare.Add("BAUMWOLLE", 500); Globals.PreisListe_UnerwünschteWare.Add("EDELHOLZ", 500); Globals.PreisListe_UnerwünschteWare.Add("ELFENBEIN", 500); Globals.PreisListe_UnerwünschteWare.Add("FRÜCHTE", 500); Globals.PreisListe_UnerwünschteWare.Add("GEWÜRZE", 500); Globals.PreisListe_UnerwünschteWare.Add("KAFFEE", 500); Globals.PreisListe_UnerwünschteWare.Add("KAKAO", 500); Globals.PreisListe_UnerwünschteWare.Add("KAUTSCHUK", 500); Globals.PreisListe_UnerwünschteWare.Add("KOHLE", 500); Globals.PreisListe_UnerwünschteWare.Add("MASCHINEN", 500); Globals.PreisListe_UnerwünschteWare.Add("PFLANZENÖL", 500); Globals.PreisListe_UnerwünschteWare.Add("SALPETER", 500); Globals.PreisListe_UnerwünschteWare.Add("SEIDE", 500); Globals.PreisListe_UnerwünschteWare.Add("TABAK", 500); Globals.PreisListe_UnerwünschteWare.Add("TEXTILIEN", 1850); Globals.PreisListe_UnerwünschteWare.Add("TEE", 500); Globals.PreisListe_UnerwünschteWare.Add("WAFFEN", 500); Globals.PreisListe_UnerwünschteWare.Add("WEIN", 500); Globals.PreisListe_UnerwünschteWare.Add("WERKZEUG", 8480); Globals.PreisListe_UnerwünschteWare.Add("WOLLE", 500); Globals.PreisListe_UnerwünschteWare.Add("ZUCKER", 500); } } public void setzePreisListeUnerwünscht(int Version) { //Original Version //Anlegen aller PreiseOriginalwaren (XX Stück) //ToDo: Mit jeder Ware in einem Hafen verkaufen gehn in dem die Ware nich gewünscht ist if(Version == 1) { // Wenn richtige Werte berechnet sind muss eingefügt werden; Bis dahin kostet alles pauschal 5 Dollar Globals.PreisListe_UnerwünschteWare.Add("BAUMWOLLE", 500); Globals.PreisListe_UnerwünschteWare.Add("EDELHOLZ", 500); Globals.PreisListe_UnerwünschteWare.Add("ELFENBEIN", 500); Globals.PreisListe_UnerwünschteWare.Add("FRÜCHTE", 500); Globals.PreisListe_UnerwünschteWare.Add("GEWÜRZE", 500); Globals.PreisListe_UnerwünschteWare.Add("KAFFEE", 500); Globals.PreisListe_UnerwünschteWare.Add("KAKAO", 500); Globals.PreisListe_UnerwünschteWare.Add("KAUTSCHUK", 500); Globals.PreisListe_UnerwünschteWare.Add("KOHLE", 500); Globals.PreisListe_UnerwünschteWare.Add("MASCHINEN", 500); Globals.PreisListe_UnerwünschteWare.Add("PFLANZENÖL", 500); Globals.PreisListe_UnerwünschteWare.Add("SALPETER", 500); Globals.PreisListe_UnerwünschteWare.Add("SEIDE", 500); Globals.PreisListe_UnerwünschteWare.Add("TABAK", 500); Globals.PreisListe_UnerwünschteWare.Add("TEXTILIEN", 1140); Globals.PreisListe_UnerwünschteWare.Add("TEE", 500); Globals.PreisListe_UnerwünschteWare.Add("WAFFEN", 500); Globals.PreisListe_UnerwünschteWare.Add("WEIN", 500); Globals.PreisListe_UnerwünschteWare.Add("WERKZEUG", 500); Globals.PreisListe_UnerwünschteWare.Add("WOLLE", 500); Globals.PreisListe_UnerwünschteWare.Add("ZUCKER", 500); } } public void setzenWarenAufstockung(int Version) { // Original Version if (Version == 1) { //Hinzufügen der AufstockSchablonen für alle Häfen und deren jeweiligen Monaten siehe Restock-Recherchen //Amerika //Afrika //Europa Globals.AlleHäfen["LIVERPOOL"].setzeRestockListe("JANUAR",new Ware("MASCHINEN",14520, 100,0,"KISTE"),"EXPORT"); Globals.AlleHäfen["LIVERPOOL"].setzeRestockListe("JANUAR", new Ware("TEXTILIEN", 1320, 100, 0, "KISTE"), "EXPORT"); Globals.AlleHäfen["LIVERPOOL"].setzeRestockListe("JANUAR", new Ware("BAUMWOLLE", 540, 100, 0, "KISTE"), "IMPORT"); Globals.AlleHäfen["LIVERPOOL"].setzeRestockListe("JANUAR", new Ware("TEE", 2290, 100, 0, "KISTE"), "IMPORT"); Globals.AlleHäfen["LIVERPOOL"].setzeRestockListe("JANUAR", new Ware("ELFENBEIN", 6980, 100, 0, "KISTE"), "IMPORT"); Globals.AlleHäfen["LIVERPOOL"].setzeRestockListe("JANUAR", new Ware("EDELHOLZ", 1420, 100, 0, "KISTE"), "IMPORT"); Globals.AlleHäfen["LIVERPOOL"].setzeRestockListe("JANUAR", new Ware("WEIN", 1400, 100, 0, "KISTE"), "IMPORT"); //Für Testzwecke auch Textilien Importieren (zum testen von reduziertem Preis und vollem Import Preis) Globals.AlleHäfen["LIVERPOOL"].setzeRestockListe("JANUAR", new Ware("TEXTILIEN", 1000, 75, 0, "KISTE"), "IMPORT"); //Asien/Australien } } } }