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.
130 lines
5.1 KiB
C#
130 lines
5.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using Otter;
|
|
using _1869_Remake;
|
|
|
|
namespace _1869_Remake.Entities
|
|
{
|
|
public class WeltEvent
|
|
{
|
|
// EventID um event eindeutig zu Kennzeichnen (Damit nicht 2mal das selbe event in der Queue steht)
|
|
//public int EventId { get; set; }
|
|
|
|
//Zeitvariablen, wann erfolgt das Ereignis
|
|
|
|
public DateTime EventDate { get; set; }
|
|
|
|
//Parameter des Events
|
|
// Betroffener Spieler (In Check-Reihenfolge)
|
|
// - System
|
|
// - Spieler1
|
|
// - Spieler2
|
|
// - Spieler3
|
|
// - Spieler4
|
|
public string BetroffenerSpielerName { get; set; }
|
|
public Spieler BetroffenerSpieler { get; set; }
|
|
public string BetreffenderFilialName { get; set; }
|
|
public Filiale BetroffeneFiliale { get; set; }
|
|
public string BetreffenderSchiffsName { get; set; }
|
|
public Schiff BetroffenesSchiff { get; set; }
|
|
|
|
// Allgemeine Parameterlisten mit genaueren Infos zur Handlung
|
|
public List<int> ZahlenParams { get; set; }
|
|
public List<string> StringParams { get; set; }
|
|
|
|
//Hier wird gespeichert, was mit den betroffenen Daten gemacht wird (Beispiel: FILIALE_VERRINGERN_GELD oder SPIELER_KREDIT_ZAHLTAG oder SCHIFF_REPERATUR_ABGESCHLOSSEN, etc)
|
|
//Verarbeitung erfolg über ZeitRad
|
|
/* Folgende Typen existieren:
|
|
* START -> Spielstart
|
|
* ENDE -> Spielende
|
|
* SCHIFFSREISE-ENDE
|
|
* SCHIFFSREISE-ÜBERFALL -> Jede Art von "Zwischenfall mit dem Schiff" (Überfall, Kanonade, Sturm etc)
|
|
* SCHIFFSREPARATUR-ENDE -> Reparatur ist abgeschlossen
|
|
* SCHIFFSBAU-ENDE -> Schiffsbau ist abgeschlossen
|
|
* POLITIKWECHSEL -> Politischer Zustand wechselt sich
|
|
* MONATSBEGIN -> Monatsbegin (wird verwendet zum triggern von Nachfülllogiken
|
|
*/
|
|
public string EventHandlung { get; set; }
|
|
public int GeldBetrag { get; set; }
|
|
|
|
public WeltEvent()
|
|
{
|
|
|
|
}
|
|
|
|
~WeltEvent()
|
|
{
|
|
//Objekt Test
|
|
//Console.WriteLine("WeltEvent wurde gelöscht ID: " + this.EventId);
|
|
}
|
|
|
|
public WeltEvent(DateTime EventZeitpunkt, String Handlung, Spieler ZielSpieler = null, Filiale ZielFiliale = null, Schiff ZielSchiff = null, Hafen ZielHafen = null, int EventBetrag = 0, List<int> ZahlenParameter = null, List<string> TextParameter = null)
|
|
{
|
|
this.EventDate = new DateTime(EventZeitpunkt.Year, EventZeitpunkt.Month, EventZeitpunkt.Day);
|
|
|
|
// Temporärer Key der im Anschluss um hochgezählte ID erweitert wird
|
|
//this.EventId = Jahr * 1000000 + Monat * 10000 + Tag * 100;
|
|
|
|
//Testausgabe
|
|
//Console.WriteLine("Event wurde erstellt ID: "+ EventId);
|
|
|
|
this.EventHandlung = Handlung;
|
|
if (ZielSpieler != null)
|
|
{
|
|
for(int spielerIndex = 0;spielerIndex < Globals.SpielerListe.Count();spielerIndex++)
|
|
{
|
|
if(Globals.SpielerListe[spielerIndex].NAME == ZielSpieler.NAME)
|
|
{
|
|
this.BetroffenerSpielerName = "Spieler" + (spielerIndex + 1).ToString();
|
|
this.BetroffenerSpieler = ZielSpieler;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
this.BetroffenerSpielerName = "System";
|
|
}
|
|
if (ZielFiliale != null)
|
|
{
|
|
this.BetreffenderFilialName = ZielFiliale.HEIMATHAFEN.NAME;
|
|
this.BetroffeneFiliale = ZielFiliale;
|
|
}
|
|
|
|
if (ZielSchiff != null)
|
|
{
|
|
this.BetreffenderSchiffsName = ZielSchiff.NAME;
|
|
this.BetroffenesSchiff = ZielSchiff;
|
|
}
|
|
|
|
this.GeldBetrag = EventBetrag;
|
|
this.ZahlenParams = ZahlenParameter;
|
|
this.StringParams = TextParameter;
|
|
}
|
|
|
|
public WeltEvent(WeltEvent KopieEvent)
|
|
{
|
|
//this.EventId = KopieEvent.EventId;
|
|
this.EventDate = KopieEvent.EventDate;
|
|
this.EventHandlung = KopieEvent.EventHandlung;
|
|
this.BetroffenerSpielerName = KopieEvent.BetroffenerSpielerName;
|
|
this.BetroffenerSpieler = KopieEvent.BetroffenerSpieler;
|
|
this.BetreffenderFilialName = KopieEvent.BetreffenderFilialName;
|
|
this.BetroffeneFiliale = KopieEvent.BetroffeneFiliale;
|
|
this.BetreffenderSchiffsName = KopieEvent.BetreffenderSchiffsName;
|
|
this.BetroffenesSchiff = KopieEvent.BetroffenesSchiff;
|
|
this.GeldBetrag = KopieEvent.GeldBetrag;
|
|
this.ZahlenParams = KopieEvent.ZahlenParams;
|
|
this.StringParams = KopieEvent.StringParams;
|
|
|
|
//Testausgabe
|
|
//Console.WriteLine("Event Kopiert ID: "+EventId);
|
|
}
|
|
|
|
}
|
|
}
|