You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1164 lines
59 KiB
C#
1164 lines
59 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using _1869_Remake;
|
|
using _1869_Remake.ToolKlassen;
|
|
using _1869_Remake.Entities;
|
|
using Otter;
|
|
|
|
|
|
namespace _1869_Remake.Scenes
|
|
{
|
|
|
|
public class BarScene : Scene
|
|
{
|
|
|
|
TextBuilder TextLieferant;
|
|
|
|
public Image BarScreen = new Image(Assets.BARSCREEN);
|
|
public Image FadeInBlackScreen = new Image(Assets.BLACKSCREEN);
|
|
public Image FadeOutBlackScreen = new Image(Assets.BLACKSCREEN);
|
|
|
|
//AnzeigeTimer
|
|
public const float TIMER_GRENZE = 90f;
|
|
public float szenenTimer = 0f;
|
|
public bool wahlFertig = true;
|
|
public bool anzeigeFertig = false;
|
|
//Standardzeit der Anheuerungsdauer (7 Tage)
|
|
private TimeSpan StandardAnheuerzeit = new TimeSpan(7, 0, 0, 0);
|
|
private int gewählterMannschaftsGrad = 0;
|
|
|
|
//TempTextVariablen
|
|
Queue<string> TempSprachText = new Queue<string>();
|
|
Queue<string> TempSprachParams = new Queue<string>();
|
|
Queue<string> TempQueue = new Queue<string>();
|
|
Schiff TempSchiff;
|
|
//Runde Bier kostet $5
|
|
private int StandardKostenRunde = 500;
|
|
|
|
//Letzte dem Textbuilder übergebene Liste an Paramtern (Wird nur für Shortcut funktionalität verwender)
|
|
private List<string> letzteÜbergebeneListe = new List<string>();
|
|
|
|
//Temporäre Liste der möglichen Geldquellen
|
|
public List<string> möglicheGeldQuellen = new List<string>();
|
|
public int geldQuellenIndex = 0;
|
|
public int geldZielIndex = 1;
|
|
public Filiale geldQuellenFiliale;
|
|
public Filiale geldZielFiliale;
|
|
public Schiff geldQuellenSchiff;
|
|
public Schiff geldZielSchiff;
|
|
int zielBetrag = 0;
|
|
string zielNamen = "";
|
|
|
|
public Hafen aktuellerHafen;
|
|
private Image aktuellerBG;
|
|
private int MannschafsKosten = 0;
|
|
|
|
|
|
public BarScene(string Preset)
|
|
{
|
|
//Initialisieren des Hauptbildschirms und einblenden
|
|
Globals.aktuelleSzene = "Bar";
|
|
|
|
//Informationen zum aktuellen Hafen wird geladen, Alle Handlungen beeinflussen den globalen Zustand des Hafens
|
|
aktuellerHafen = Globals.AlleHäfen[Preset];
|
|
//TestLogging
|
|
Console.WriteLine("Aktueller Hafen ist " + aktuellerHafen.NAME);
|
|
|
|
//TextBuilder einbinden (POS = Unterer RAND)
|
|
TextLieferant = new TextBuilder(Globals.aktuelleSzene);
|
|
Add(TextLieferant);
|
|
|
|
überprüfeGeldquellen();
|
|
geldQuellenIndex = 0;
|
|
//1. Zeile Quellen Name und Geldbetrag
|
|
if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenFiliale = f;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET % 100).ToString());
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT");
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.COMMANDEUR == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenSchiff = s;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET % 100).ToString());
|
|
|
|
}
|
|
|
|
//Auswahltexte
|
|
TextLieferant.erzeugeAuswahlText(TempQueue, 25, 410);
|
|
|
|
//Vorbeireiten des Hintergrundes Büro und der NebenScreens
|
|
//Büro
|
|
BarScreen.CenterOrigin();
|
|
BarScreen.X = Globals.Remake.HalfWidth;
|
|
BarScreen.Y = Globals.Remake.HalfHeight;
|
|
BarScreen.Alpha = 1f;
|
|
//bei Start der Szene wird der aktuelle BG weg gespeichert um diesen Später aus/einzublenden
|
|
aktuellerBG = BarScreen;
|
|
AddGraphic(aktuellerBG);
|
|
|
|
//Vorbereiten des Blackscreens
|
|
FadeInBlackScreen.CenterOrigin();
|
|
FadeInBlackScreen.X = Globals.Remake.HalfWidth;
|
|
FadeInBlackScreen.Y = Globals.Remake.HalfHeight;
|
|
FadeInBlackScreen.Alpha = 1f;
|
|
|
|
FadeOutBlackScreen.CenterOrigin();
|
|
FadeOutBlackScreen.X = Globals.Remake.HalfWidth;
|
|
FadeOutBlackScreen.Y = Globals.Remake.HalfHeight;
|
|
FadeOutBlackScreen.Alpha = 0f;
|
|
|
|
Tween(FadeInBlackScreen, new { Alpha = 0f }, 64f, 0f).Ease(Ease.BackInOut);
|
|
AddGraphics(FadeInBlackScreen);
|
|
AddGraphic(FadeOutBlackScreen);
|
|
}
|
|
|
|
|
|
public override void Update()
|
|
{
|
|
base.Update();
|
|
|
|
//hochzählendes Zeitelement um Aktionen in der Szene zu Takten
|
|
szenenTimer++;
|
|
|
|
if (FadeOutBlackScreen.Alpha >= 0.999f)
|
|
{
|
|
Globals.LetzteSzene = "Bar";
|
|
this.RemoveAll();
|
|
Globals.Remake.SwitchScene(new worldMap());
|
|
}
|
|
|
|
//Bei Tick überprüfen, ob etwas im Textbuilder geklickt wurde (1 = Obere Auswahl, 2 = Mitlere Auswahl, 3 = Untere Auswahl, 4 = Oberer Pfeil, 5 = unterer Pfeil)
|
|
//Zuerst überprüfen auf welcher Ebene wir uns aktuell befinden und danach was dort geklickt wurde
|
|
int tempAuswahl = TextLieferant.checkAuswahl();
|
|
List<Text> anzeigeTextListe = new List<Text>();
|
|
switch (TextLieferant.aktuelleEbene)
|
|
{
|
|
// Textbaum - Root (Demo ready)
|
|
case "1":
|
|
#region RootLogik
|
|
|
|
switch (tempAuswahl)
|
|
{
|
|
case 0:
|
|
//Noch keine Auswahl getroffen
|
|
break;
|
|
// Hier muss für jede Auswahl immer alle Möglichen Baumstränge abgedeckt werden, wenn neuer Baumzweig hinzukommt muss hier seine Auswahl verwaltet werden
|
|
case 1:
|
|
//Auswahl Mannschaft suchen
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
letzteÜbergebeneListe.Clear();
|
|
TempQueue.Clear();
|
|
bool schiffMitBesatzung = false;
|
|
//Überprüfung auf vorhandene Schiffe des Spielers (keine Mannschafswahl wenn keine Schiffe da sind)
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
//Alle Schiffe des Spielers, die fertig sind zählen
|
|
if (s.COMMANDEUR == Globals.AktuellerSpieler && !s.inBau)
|
|
{
|
|
if (s.MANNSCHAFT_VORHANDEN || s.MANNSCHAFT_UNTERWEGS)
|
|
{
|
|
schiffMitBesatzung = true;
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue(s.NAME);
|
|
letzteÜbergebeneListe.Add(s.NAME);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
TempSprachText.Clear();
|
|
if (TempQueue.Count > 0)
|
|
{
|
|
if (TempQueue.Count == 1)
|
|
{
|
|
TextLieferant.setAuswahl(1);
|
|
}
|
|
else
|
|
{
|
|
TempSprachText.Enqueue("Bar_WelchesSchiff");
|
|
TextLieferant.erzeugeSprachText(TempSprachText, new Queue<string>(), Globals.Remake.HalfWidth - 25, 150);
|
|
}
|
|
|
|
TextLieferant.wechsleAuswahlText("1.1A", TempQueue, true);
|
|
}
|
|
else
|
|
{
|
|
if (schiffMitBesatzung)
|
|
{
|
|
TempSprachText.Enqueue("Bar_Mannschaftswahl_GenugLeute");
|
|
}
|
|
else
|
|
{
|
|
TempSprachText.Enqueue("Bar_KeineSchiffe");
|
|
}
|
|
|
|
TextLieferant.erzeugeSprachText(TempSprachText, new Queue<string>(), Globals.Remake.HalfWidth - 25, 150);
|
|
}
|
|
|
|
break;
|
|
case 2:
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
//Auswahl Filiale
|
|
bool filialeBereitsvorhanden = false;
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
filialeBereitsvorhanden = true;
|
|
break;
|
|
}
|
|
}
|
|
TempSprachText.Clear();
|
|
if (filialeBereitsvorhanden)
|
|
{
|
|
TempSprachText.Enqueue("Bar_FilialeVorhanden");
|
|
TextLieferant.erzeugeSprachText(TempSprachText, new Queue<string>(), Globals.Remake.HalfWidth - 25, 150);
|
|
}
|
|
else
|
|
{
|
|
//TODO Filial erstellung weiterbauen
|
|
TextLieferant.wechsleAuswahlText("1.2", new Queue<string>());
|
|
}
|
|
|
|
break;
|
|
case 3:
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
//Auswahl Verlassen
|
|
//FadeOut zu WorldMap
|
|
Tween(FadeOutBlackScreen, new { Alpha = 1f }, 180f, 0f).Ease(Ease.BackInOut);
|
|
|
|
TextLieferant.setzeFadeOut();
|
|
break;
|
|
|
|
case 4:
|
|
//Auswahl Geldtransfer über Schiffe
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
|
|
letzteÜbergebeneListe.Clear();
|
|
TempSprachText.Clear();
|
|
|
|
//Sammeln der Geldquellen und möglichen Ziele (eine Liste)
|
|
überprüfeGeldquellen();
|
|
if (möglicheGeldQuellen.Count() < 2)
|
|
{
|
|
TempSprachText.Enqueue("Bar_Keine2Schiffe");
|
|
|
|
TextLieferant.erzeugeSprachText(TempSprachText, new Queue<string>(), Globals.Remake.HalfWidth - 25, 150);
|
|
}
|
|
else
|
|
{
|
|
geldQuellenFiliale = null;
|
|
geldQuellenSchiff = null;
|
|
TempQueue.Clear();
|
|
geldQuellenIndex = 0;
|
|
zielBetrag = 0;
|
|
zielNamen = "";
|
|
//1. Zeile Quellen Name und Geldbetrag
|
|
if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenFiliale = f;
|
|
zielBetrag = geldQuellenFiliale.BUDGET;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET % 100).ToString());
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT");
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.Name == möglicheGeldQuellen[geldQuellenIndex])
|
|
{
|
|
geldQuellenSchiff = s;
|
|
zielBetrag = geldQuellenSchiff.SCHIFFSBUDGET;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET % 100).ToString());
|
|
}
|
|
|
|
//2. Zeile Zielgeldquelle
|
|
if (möglicheGeldQuellen[geldZielIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldZielFiliale = f;
|
|
geldZielSchiff = null;
|
|
zielNamen = "INS LAGER";
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue("DAS LAGER");
|
|
}
|
|
else
|
|
{
|
|
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.NAME == möglicheGeldQuellen[geldZielIndex])
|
|
{
|
|
geldZielSchiff = s;
|
|
geldZielFiliale = null;
|
|
zielNamen = "AUF DIE " + geldZielSchiff.NAME;
|
|
break;
|
|
}
|
|
}
|
|
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldZielIndex]);
|
|
}
|
|
//3. Zeile möglicher Betrag (max der Geldquelle)
|
|
TempQueue.Enqueue((zielBetrag / 100).ToString());
|
|
TempQueue.Enqueue((zielBetrag % 100).ToString());
|
|
|
|
//4. Zeile Bestätigung + Zielnamen
|
|
TempQueue.Enqueue(zielNamen);
|
|
|
|
TextLieferant.wechsleAuswahlText("1.4", TempQueue, false);
|
|
}
|
|
break;
|
|
case 5:
|
|
//Auswahl HandelsHinweise
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
letzteÜbergebeneListe.Clear();
|
|
TempSprachText.Clear();
|
|
string Hinweis = "";
|
|
|
|
//Überprüfen der Geldquelle
|
|
if (geldQuellenFiliale != null)
|
|
{
|
|
|
|
if (geldQuellenFiliale.BUDGET < 500)
|
|
{//Wenn Geldquelle kein Geld hat dann speziellen Text ausgeben
|
|
TempSprachText.Enqueue("Bar_Hinweis_KeineGeld1");
|
|
TempSprachText.Enqueue("Bar_Hinweis_KeineGeld2");
|
|
}
|
|
else
|
|
{
|
|
//Abziehen des Geldes bei der Geldquelle
|
|
geldQuellenFiliale.verringereBudget(500);
|
|
überprüfeGeldquellen();
|
|
|
|
Hinweis = überprüfeHinweise();
|
|
if (Hinweis != "")
|
|
{
|
|
TempSprachText.Enqueue(Hinweis);
|
|
}
|
|
else
|
|
{
|
|
TempSprachText.Enqueue("Bar_Hinweis_KeineHinweise1");
|
|
TempSprachText.Enqueue("Bar_Hinweis_KeineHinweise2");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (geldQuellenSchiff.SCHIFFSBUDGET < 500)
|
|
{//Wenn Geldquelle kein Geld hat dann speziellen Text ausgeben
|
|
TempSprachText.Enqueue("Bar_Hinweis_KeineGeld1");
|
|
TempSprachText.Enqueue("Bar_Hinweis_KeineGeld2");
|
|
}
|
|
else
|
|
{
|
|
//Abziehen des Geldes bei der Geldquelle
|
|
geldQuellenSchiff.vermindernBudget(500);
|
|
überprüfeGeldquellen();
|
|
if (Hinweis != "")
|
|
{
|
|
TempSprachText.Enqueue(Hinweis);
|
|
}
|
|
else
|
|
{
|
|
TempSprachText.Enqueue("Bar_Hinweis_KeineHinweise1");
|
|
TempSprachText.Enqueue("Bar_Hinweis_KeineHinweise2");
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
TextLieferant.erzeugeSprachText(TempSprachText, new Queue<string>(), Globals.Remake.HalfWidth - 25, 150);
|
|
|
|
break;
|
|
case 6:
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
letzteÜbergebeneListe.Clear();
|
|
//Auswahl Wechseln Anzeige Geldstand(der angedockten Schiffe oder der Filiale wenn vorhanden)
|
|
|
|
//Wechsle die Geldquelle
|
|
geldQuellenIndex++;
|
|
TempQueue.Clear();
|
|
|
|
if (geldQuellenIndex >= möglicheGeldQuellen.Count())
|
|
{
|
|
geldQuellenIndex = 0;
|
|
}
|
|
// Paramter1: Quellort Geld
|
|
// Parameter2: Geldmenge der Quelle
|
|
if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenFiliale = f;
|
|
geldQuellenSchiff = null;
|
|
TempQueue.Enqueue((f.BUDGET / 100).ToString());
|
|
TempQueue.Enqueue((f.BUDGET % 100).ToString());
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT");
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.NAME == möglicheGeldQuellen[geldQuellenIndex])
|
|
{
|
|
geldQuellenSchiff = s;
|
|
geldZielFiliale = null;
|
|
TempQueue.Enqueue((s.SCHIFFSBUDGET / 100).ToString());
|
|
TempQueue.Enqueue((s.SCHIFFSBUDGET % 100).ToString());
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
TextLieferant.wechsleAuswahlText("1", TempQueue, false);
|
|
break;
|
|
}
|
|
#endregion
|
|
break;
|
|
case "1.1A":
|
|
#region Mannschaft Suchen - Welches Schiff? (Demoready)
|
|
switch (tempAuswahl)
|
|
{
|
|
case 0:
|
|
//Noch keine Auswahl getroffen
|
|
break;
|
|
case 999:
|
|
// Abbruch
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
TempSprachText.Clear();
|
|
TempSprachText.Enqueue("Bar_Abbruch");
|
|
TextLieferant.erzeugeSprachText(TempSprachText, new Queue<string>(), Globals.Remake.HalfWidth - 25, 150);
|
|
|
|
überprüfeGeldquellen();
|
|
geldQuellenIndex = 0;
|
|
//1. Zeile Quellen Name und Geldbetrag
|
|
if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenFiliale = f;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET % 100).ToString());
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT");
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.COMMANDEUR == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenSchiff = s;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET % 100).ToString());
|
|
|
|
}
|
|
TextLieferant.wechsleAuswahlText("1", TempQueue, false);
|
|
break;
|
|
default:
|
|
// Jeweilige Auswahl ist die Bootsauswahl
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
TempSchiff = null;
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.NAME == letzteÜbergebeneListe[tempAuswahl - 1])
|
|
{
|
|
TempSchiff = s;
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
gewählterMannschaftsGrad = 0;
|
|
TempSprachText.Clear();
|
|
TempSprachParams.Clear();
|
|
|
|
TempSprachText.Enqueue("Bar_GutesSchiff");
|
|
TempSprachParams.Enqueue(TempSchiff.NAME);
|
|
TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth - 25, 150);
|
|
|
|
//Beschreibungstexte
|
|
TempQueue.Clear();
|
|
string TempMaxMann = TempSchiff.MANNSCHAFT_MAXGRÖßE.ToString();
|
|
//Text 1
|
|
TempQueue.Enqueue(TempMaxMann);
|
|
TempQueue.Enqueue(TempSchiff.NAME);
|
|
//Text 2
|
|
TempQueue.Enqueue(TempMaxMann);
|
|
//Text 3
|
|
TempQueue.Enqueue(TempMaxMann);
|
|
//Text 4
|
|
TempQueue.Enqueue(TempMaxMann);
|
|
//Text 5
|
|
TempQueue.Enqueue(TempSchiff.NAME);
|
|
TempQueue.Enqueue(TempMaxMann);
|
|
//Text 6
|
|
TempQueue.Enqueue(TempMaxMann);
|
|
//Text 7
|
|
TempQueue.Enqueue(TempMaxMann);
|
|
TempQueue.Enqueue(TempSchiff.NAME);
|
|
//Text 8
|
|
TempQueue.Enqueue(TempMaxMann);
|
|
//Text 9
|
|
TempQueue.Enqueue(TempMaxMann);
|
|
//Text 10
|
|
TempQueue.Enqueue(TempMaxMann);
|
|
|
|
TextLieferant.wechsleAuswahlText("1.1B", TempQueue, false);
|
|
|
|
break;
|
|
}
|
|
#endregion
|
|
break;
|
|
case "1.1B":
|
|
#region Mannschaftswahl (Demoready)
|
|
switch (tempAuswahl)
|
|
{
|
|
case 0:
|
|
//Noch keine Auswahl getroffen
|
|
break;
|
|
// Hier muss für jede Auswahl immer alle Möglichen Baumstränge abgedeckt werden, wenn neuer Baumzweig hinzukommt muss hier seine Auswahl verwaltet werden
|
|
case 1:
|
|
//Abbruch
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
TempSprachText.Clear();
|
|
TempSprachText.Enqueue("Bar_Abbruch");
|
|
TextLieferant.erzeugeSprachText(TempSprachText, new Queue<string>(), Globals.Remake.HalfWidth - 25, 150);
|
|
|
|
überprüfeGeldquellen();
|
|
geldQuellenIndex = 0;
|
|
//1. Zeile Quellen Name und Geldbetrag
|
|
if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenFiliale = f;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET % 100).ToString());
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT");
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.COMMANDEUR == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenSchiff = s;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET % 100).ToString());
|
|
|
|
}
|
|
TextLieferant.wechsleAuswahlText("1", TempQueue, false);
|
|
break;
|
|
case 2:
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
//Bestätigung
|
|
//Erzeugen des Bemannungs-Events
|
|
DateTime TempDatum = Globals.AktuellesDatum + StandardAnheuerzeit;
|
|
List<string> TempList = new List<string>();
|
|
bool GradGewählt = true;
|
|
switch (gewählterMannschaftsGrad)
|
|
{
|
|
case 0:
|
|
GradGewählt = false;
|
|
break;
|
|
case 1:
|
|
TempList.Add("SPITZE");
|
|
break;
|
|
case 2:
|
|
TempList.Add("ERFAHREN");
|
|
break;
|
|
case 3:
|
|
TempList.Add("TÜCHTIG");
|
|
break;
|
|
case 4:
|
|
TempList.Add("ZUVERLÄSSIG");
|
|
break;
|
|
case 5:
|
|
TempList.Add("STANDARD");
|
|
break;
|
|
case 6:
|
|
TempList.Add("FÄHIG");
|
|
break;
|
|
case 7:
|
|
TempList.Add("BRAUCHBAR");
|
|
break;
|
|
case 8:
|
|
TempList.Add("BILLIG");
|
|
break;
|
|
case 9:
|
|
TempList.Add("GRÜNSCHNABEL");
|
|
break;
|
|
case 10:
|
|
TempList.Add("IDIOTEN");
|
|
break;
|
|
}
|
|
|
|
TempSprachText.Clear();
|
|
TempSprachParams.Clear();
|
|
|
|
if (GradGewählt)
|
|
{
|
|
Globals.EventAktion(new WeltEvent(TempDatum, "MANNSCHAFT_BEREITSTELLUNG", null, null, TempSchiff, aktuellerHafen, 0, null, TempList), "EINFÜGEN");
|
|
TempSchiff.besatzungBereitstellen();
|
|
TempSprachText.Enqueue("Bar_Mannschaftswahl_Anheuern");
|
|
//1. Sprachparam => Anzahl Tage bis Anheuerung Komplett
|
|
TempSprachParams.Enqueue(StandardAnheuerzeit.Days.ToString());
|
|
//2. Param => Name des Schiffs
|
|
TempSprachParams.Enqueue(TempSchiff.NAME);
|
|
TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth - 25, 150);
|
|
|
|
überprüfeGeldquellen();
|
|
geldQuellenIndex = 0;
|
|
//1. Zeile Quellen Name und Geldbetrag
|
|
if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenFiliale = f;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET % 100).ToString());
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT");
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.COMMANDEUR == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenSchiff = s;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET % 100).ToString());
|
|
|
|
}
|
|
TextLieferant.wechsleAuswahlText("1", TempQueue, false);
|
|
|
|
}
|
|
else
|
|
{
|
|
TempSprachText.Enqueue("Bar_Mannschaftswahl_WelcheLeute");
|
|
TextLieferant.erzeugeSprachText(TempSprachText, new Queue<string>(), Globals.Remake.HalfWidth - 25, 150);
|
|
|
|
}
|
|
break;
|
|
default:
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
//Wahl der Mannschaftserfahrung
|
|
//Je nach Auswahl andere spezifische Details setzen -> restliche Aktionen für alle gleich
|
|
int tempIndex = tempAuswahl - 3;
|
|
gewählterMannschaftsGrad = tempAuswahl - 2;
|
|
MannschafsKosten = (Globals.MannschaftskostenMin + Globals.ErfahrungsFaktor[tempIndex]) * TempSchiff.MANNSCHAFT_MAXGRÖßE;
|
|
TempSprachText.Clear();
|
|
TempSprachParams.Clear();
|
|
|
|
TempSprachText.Enqueue("Bar_Mannschaftswahl_Preis");
|
|
//SprachParams:
|
|
//1. Anzahl BesatzungsMaxGröße
|
|
//2.&3. Preis pro Monat
|
|
TempSprachParams.Enqueue(TempSchiff.MANNSCHAFT_MAXGRÖßE.ToString());
|
|
TempSprachParams.Enqueue((MannschafsKosten / 100).ToString());
|
|
TempSprachParams.Enqueue((MannschafsKosten % 100).ToString());
|
|
TextLieferant.erzeugeSprachText(TempSprachText, TempSprachParams, Globals.Remake.HalfWidth - 25, 150);
|
|
break;
|
|
}
|
|
#endregion
|
|
break;
|
|
case "1.2":
|
|
#region Filialerstellung
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
//Filiale erstellen
|
|
#endregion
|
|
break;
|
|
case "1.4":
|
|
#region Geldtransfer
|
|
//Geldtransfer Menü
|
|
switch (tempAuswahl)
|
|
{
|
|
case 0:
|
|
//Noch keine Auswahl getroffen
|
|
break;
|
|
// Hier muss für jede Auswahl immer alle Möglichen Baumstränge abgedeckt werden, wenn neuer Baumzweig hinzukommt muss hier seine Auswahl verwaltet werden
|
|
case 1:
|
|
//Geldquelle ändern
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
geldQuellenIndex++;
|
|
TempQueue.Clear();
|
|
|
|
if (geldQuellenIndex >= möglicheGeldQuellen.Count())
|
|
{
|
|
geldQuellenIndex = 0;
|
|
}
|
|
// Paramter1: Quellort Geld
|
|
// Parameter2: Geldmenge der Quelle
|
|
if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
TempQueue.Enqueue((f.BUDGET / 100).ToString());
|
|
TempQueue.Enqueue((f.BUDGET % 100).ToString());
|
|
zielBetrag = f.BUDGET;
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT");
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.NAME == möglicheGeldQuellen[geldQuellenIndex])
|
|
{
|
|
TempQueue.Enqueue((s.SCHIFFSBUDGET / 100).ToString());
|
|
TempQueue.Enqueue((s.SCHIFFSBUDGET % 100).ToString());
|
|
zielBetrag = s.SCHIFFSBUDGET;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
//Restlichen Params ebenfalls neu zeichnen
|
|
if (geldZielFiliale != null)
|
|
{
|
|
TempQueue.Enqueue("DAS LAGER");
|
|
zielNamen = "INS LAGER";
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + geldZielSchiff.NAME);
|
|
zielNamen = "AUF DIE " + geldZielSchiff.NAME;
|
|
}
|
|
|
|
//Zielbetrag
|
|
TempQueue.Enqueue((zielBetrag / 100).ToString());
|
|
TempQueue.Enqueue((zielBetrag % 100).ToString());
|
|
//Zielnamen
|
|
TempQueue.Enqueue(zielNamen);
|
|
//
|
|
TextLieferant.wechsleAuswahlText("1.4", TempQueue, false);
|
|
break;
|
|
case 2:
|
|
//Zielkasse ändern
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
geldZielIndex++;
|
|
if(geldZielIndex >= möglicheGeldQuellen.Count())
|
|
{
|
|
geldZielIndex = 0;
|
|
}
|
|
|
|
geldQuellenFiliale = null;
|
|
geldQuellenSchiff = null;
|
|
TempQueue.Clear();
|
|
//1. Zeile Quellen Name und Geldbetrag
|
|
if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenFiliale = f;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET % 100).ToString());
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT");
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.Name == möglicheGeldQuellen[geldQuellenIndex])
|
|
{
|
|
geldQuellenSchiff = s;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET % 100).ToString());
|
|
}
|
|
|
|
//2. Zeile Zielgeldquelle
|
|
if (möglicheGeldQuellen[geldZielIndex] == "LAGER")
|
|
{
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldZielFiliale = f;
|
|
geldZielSchiff = null;
|
|
zielNamen = "INS LAGER";
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue("DAS LAGER");
|
|
}
|
|
else
|
|
{
|
|
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.NAME == möglicheGeldQuellen[geldZielIndex])
|
|
{
|
|
geldZielSchiff = s;
|
|
geldZielFiliale = null;
|
|
zielNamen = "AUF DIE " + geldZielSchiff.NAME;
|
|
break;
|
|
}
|
|
}
|
|
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldZielIndex]);
|
|
}
|
|
//3. Zeile möglicher Betrag (max der Geldquelle)
|
|
TempQueue.Enqueue((zielBetrag / 100).ToString());
|
|
TempQueue.Enqueue((zielBetrag % 100).ToString());
|
|
|
|
//4. Zeile Bestätigung + Zielnamen
|
|
TempQueue.Enqueue(zielNamen);
|
|
|
|
TextLieferant.wechsleAuswahlText("1.4", TempQueue, false);
|
|
break;
|
|
case 3:
|
|
//Zielbetrag ändern
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
|
|
//Bei linksklick erhöhen, bei rechts klick vermindern
|
|
if (TextLieferant.checkButtonAuswahl() == "MausLinks")
|
|
{
|
|
//Bei Linksklick erhöhen um $100
|
|
zielBetrag += 10000;
|
|
int TempMax;
|
|
if(geldZielFiliale != null)
|
|
{
|
|
if (zielBetrag > geldQuellenFiliale.BUDGET)
|
|
TempMax = geldQuellenFiliale.BUDGET;
|
|
}
|
|
else
|
|
{
|
|
if (zielBetrag > geldQuellenSchiff.SCHIFFSBUDGET)
|
|
TempMax = geldQuellenSchiff.SCHIFFSBUDGET;
|
|
}
|
|
|
|
|
|
}
|
|
else
|
|
{
|
|
//bei rechtsklick vermindern um $100
|
|
zielBetrag -= 10000;
|
|
|
|
//Min kriterium
|
|
if (zielBetrag < 0)
|
|
{
|
|
zielBetrag = 0;
|
|
}
|
|
}
|
|
|
|
TempQueue.Clear();
|
|
//1. Zeile Quellen Name und Geldbetrag
|
|
if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenFiliale = f;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET % 100).ToString());
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT");
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.Name == möglicheGeldQuellen[geldQuellenIndex])
|
|
{
|
|
geldQuellenSchiff = s;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET % 100).ToString());
|
|
}
|
|
|
|
//2. Zeile Zielgeldquelle
|
|
if (möglicheGeldQuellen[geldZielIndex] == "LAGER")
|
|
{
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldZielFiliale = f;
|
|
geldZielSchiff = null;
|
|
zielNamen = "INS LAGER";
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue("DAS LAGER");
|
|
}
|
|
else
|
|
{
|
|
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.NAME == möglicheGeldQuellen[geldZielIndex])
|
|
{
|
|
geldZielSchiff = s;
|
|
geldZielFiliale = null;
|
|
zielNamen = "AUF DIE " + geldZielSchiff.NAME;
|
|
break;
|
|
}
|
|
}
|
|
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldZielIndex]);
|
|
}
|
|
//3. Zeile möglicher Betrag (max der Geldquelle)
|
|
TempQueue.Enqueue((zielBetrag / 100).ToString());
|
|
TempQueue.Enqueue((zielBetrag % 100).ToString());
|
|
|
|
//4. Zeile Bestätigung + Zielnamen
|
|
TempQueue.Enqueue(zielNamen);
|
|
|
|
TextLieferant.wechsleAuswahlText("1.4", TempQueue, false);
|
|
|
|
break;
|
|
case 4:
|
|
//Bestätigung
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
break;
|
|
case 5:
|
|
//Abbruch
|
|
Console.WriteLine("Auswahl " + tempAuswahl + " der Ebene " + TextLieferant.aktuelleEbene);
|
|
TempSprachText.Clear();
|
|
TempSprachText.Enqueue("Bar_Abbruch");
|
|
TextLieferant.erzeugeSprachText(TempSprachText, new Queue<string>(), Globals.Remake.HalfWidth - 25, 150);
|
|
|
|
überprüfeGeldquellen();
|
|
geldQuellenIndex = 0;
|
|
//1. Zeile Quellen Name und Geldbetrag
|
|
if (möglicheGeldQuellen[geldQuellenIndex] == "LAGER")
|
|
{
|
|
TempQueue.Enqueue("IM LAGER VERFÜGE ICH");
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenFiliale = f;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenFiliale.BUDGET % 100).ToString());
|
|
}
|
|
else
|
|
{
|
|
TempQueue.Enqueue("DIE " + möglicheGeldQuellen[geldQuellenIndex] + " VERFÜGT");
|
|
foreach (Schiff s in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (s.COMMANDEUR == Globals.AktuellerSpieler)
|
|
{
|
|
geldQuellenSchiff = s;
|
|
break;
|
|
}
|
|
}
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET / 100).ToString());
|
|
TempQueue.Enqueue((geldQuellenSchiff.SCHIFFSBUDGET % 100).ToString());
|
|
|
|
}
|
|
TextLieferant.wechsleAuswahlText("1", TempQueue, false);
|
|
break;
|
|
}
|
|
#endregion
|
|
break;
|
|
}
|
|
}
|
|
|
|
private string überprüfeHinweise()
|
|
{
|
|
string TempString = "";
|
|
switch (aktuellerHafen.NAME)
|
|
{
|
|
//Hier pflegen welche Häfen Hinweise Vergeben und wie diese lauten (sowie Rückgabe des Strings dazu)
|
|
case "LIVERPOOL":
|
|
break;
|
|
}
|
|
|
|
if (TempString == "")
|
|
{
|
|
return "";
|
|
}
|
|
else
|
|
{
|
|
return TempString;
|
|
}
|
|
}
|
|
|
|
private void überprüfeGeldquellen()
|
|
{
|
|
//Liste möglicher Geldquellen (Für einige Auswahlbäume notwendig)
|
|
// MöglicheGeldQuelle wird im Verkaufsstrang als ZielKasse benutzt
|
|
möglicheGeldQuellen.Clear();
|
|
geldQuellenIndex = 0;
|
|
aktuellerHafen.überprüfeAktuelleFilialeVorhanden(Globals.AktuellerSpieler);
|
|
|
|
if (aktuellerHafen.filialeVorhanden)
|
|
{
|
|
foreach (Filiale f in aktuellerHafen.vorhandeneFilialen)
|
|
{
|
|
if (f.BESITZER == Globals.AktuellerSpieler)
|
|
{
|
|
möglicheGeldQuellen.Add("LAGER");
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
//Wenn Schiffe vorhanden -> Schiff ist mögliche Quelle
|
|
foreach (Schiff Boot in aktuellerHafen.angedockteSchiffe)
|
|
{
|
|
if (Boot.COMMANDEUR == Globals.AktuellerSpieler)
|
|
{
|
|
//Mögliche Geldziele sind alle Schiffe des Spielers
|
|
möglicheGeldQuellen.Add(Boot.NAME);
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
private class EventSorter : IComparer<WeltEvent>
|
|
{
|
|
//Sortier Comparer -> Sortiert alle Events nach Datum (muss immer aufgerfen werden wenn datum abgefragt wird)
|
|
public int Compare(WeltEvent e1, WeltEvent e2)
|
|
{
|
|
if (e1.EventDate.CompareTo(e2.EventDate) == 0)
|
|
{
|
|
//Wenn beide Events gleich dann nach Spieler Sortieren
|
|
switch (e1.BetroffenerSpielerName)
|
|
{
|
|
case "System":
|
|
switch (e2.BetroffenerSpielerName)
|
|
{
|
|
case "System": return 0;
|
|
default: return -1;
|
|
}
|
|
case "Spieler1":
|
|
switch (e2.BetroffenerSpielerName)
|
|
{
|
|
case "System": return 1;
|
|
case "Spieler1": return 0;
|
|
default: return -1;
|
|
}
|
|
|
|
case "Spieler2":
|
|
switch (e2.BetroffenerSpielerName)
|
|
{
|
|
case "System": return 1;
|
|
case "Spieler1": return 1;
|
|
case "Spieler2": return 0;
|
|
default: return -1;
|
|
}
|
|
case "Spieler3":
|
|
switch (e2.BetroffenerSpielerName)
|
|
{
|
|
case "Spieler3": return 0;
|
|
case "Spieler4": return -1;
|
|
default: return 1;
|
|
}
|
|
case "Spieler4":
|
|
switch (e2.BetroffenerSpielerName)
|
|
{
|
|
case "Spieler4": return 0;
|
|
default: return 1;
|
|
}
|
|
default: return 0;
|
|
}
|
|
}
|
|
else
|
|
return e1.EventDate.CompareTo(e2.EventDate);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|