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; namespace _1869_Remake.Scenes { public class BankScene : Scene { public Image BlackScreen = new Image(Assets.BLACKSCREEN); public Image BankScreen = new Image(Assets.BANKSCREEN); public Image BankScreen_Augen = new Image(Assets.BANKSCREEN_AUGEN); public Image PfeilRunter = new Image(Assets.PFEILRUNTER); public Image PfeilHoch = new Image(Assets.PFEILHOCH); private bool FadeOut = false; public bool farbeIstGewechselt_Auswahl_1 = false; public bool farbeIstGewechselt_Auswahl_2 = false; public bool farbeIstGewechselt_Auswahl_3 = false; //AnzeigeTimer aktuell nur für warten vor dem 1. Text (später direkt nach tween) public const float TIMER_GRENZE = 90f; public float szenenTimer = 0f; public bool wahlFertig = true; public bool anzeigeFertig = false; public bool pfeileAngezeigt = false; public Text[] anzeigeTexte = new Text[10]; public float BLINZEL_GRENZE = 320f; public float BLINZEL_DAUER = 40f; public float blinzelTimer = 0f; public bool blinzelt = false; //aktuelle Position im "KonversationsBaum" public int BankSeite = 0; public int AnfrageBetrag; public int AnfrageDollar; public int AnfrageCent; //Beträge, mit denen Leihbetrag und Zinsbetrag erhöht und verringert werden -> Als int gespeichert um nicht mit kommazahlen zu rechnen public int LeihBetrag_Staffelung = 26250; //262,50 public int ZinsBetrag_Staffelung = 6370; //63,70 -> entspricht ~ 24% Zinsen -> Schnäppchen!! xD //Startpunkt des Anzeigefensters -> Es werden immer nur 3 Optionen angezeigt; Wenn mehr verfügbar dann wird nur Ausschnitt //aller Optionen gezeigt, Variable zeigt auf den Startindex der 3 aufeinander folgenden Punkte public int AnzeigeRange = 0; TextBuilder TextLieferant; public BankScene() { //Todo: textbuilder Handling hier umbauen (gemäß vorlage in Handel) //Initialisieren des Hauptbildschirms und einblenden Globals.aktuelleSzene = "Bank"; BankScreen.CenterOrigin(); BankScreen.X = Globals.Remake.HalfWidth; BankScreen.Y = Globals.Remake.HalfHeight; BankScreen.Alpha = 0f; AddGraphic(BankScreen); Tween(BankScreen, new { Alpha = 1f }, 100f, 0f).Ease(Ease.BackInOut); //Animationen (Oldschool Umsetzung via Timer und Überblendung mittels Alpha) BankScreen_Augen.CenterOrigin(); BankScreen_Augen.X = Globals.Remake.HalfWidth; BankScreen_Augen.Y = 156; BankScreen_Augen.Alpha = 0f; AddGraphic(BankScreen_Augen); //Vorbereiten des Blackscreens BlackScreen.CenterOrigin(); BlackScreen.X = Globals.Remake.HalfWidth; BlackScreen.Y = Globals.Remake.HalfHeight; BlackScreen.Alpha = 0f; //Immer anfangs den maximal Betrag anbieten AnfrageBetrag = 4200; AnfrageDollar = 4200; AnfrageCent = 0; //TextBuilder einbinden TextLieferant = new TextBuilder(Globals.aktuelleSzene); Add(TextLieferant); Queue WillkommensText = new Queue(); WillkommensText.Enqueue("Begrüßung_Decoy"); // Willkommenstext erstellen (Mittig über dem Bankier) TextLieferant.erzeugeSprachText(WillkommensText, new Queue(), 350, 50); TextLieferant.erzeugeAuswahlText(new Queue(), 30, 410); } public override void Update() { base.Update(); //hochzählendes Zeitelement um Aktionen in der Szene zu Takten szenenTimer++; //BlackScreen Durchsichtigkeit 1 ist wurde die nächste Szene getriggert -> wechsel zum Hauptbildschirm if (BlackScreen.Alpha >= 0.999f) { Globals.LetzteSzene = "Bank"; this.RemoveAll(); Globals.Remake.SwitchScene(new worldMap()); } //Erst nach Timer sind aktionen möglich if (szenenTimer >= TIMER_GRENZE && !FadeOut) { /* // Auswahl 1 if (Util.InRect(this.MouseX, this.MouseY, 25, 410, 600, 20)) { if (Globals.PlayerSession.Controller.Button("MausLinks").Down) { /* if (!farbeIstGewechselt_Auswahl_1) { Auswahl.toggleHighlightFarbe(0); farbeIstGewechselt_Auswahl_1 = true; } } if (Globals.PlayerSession.Controller.Button("MausLinks").Released) { Console.WriteLine("Auswahl 1 ist gedrückt!"); //zurückwechseln der Farbe zu Grün /* if (farbeIstGewechselt_Auswahl_1) { Auswahl.toggleHighlightFarbe(0); farbeIstGewechselt_Auswahl_1 = false; } string TempEbene = Auswahl.zeigeAktuelleEbene() + ".1"; if (Auswahl.checkEbeneExistiert(TempEbene)) { Auswahl.LadeTexteAuswahl(TempEbene); } } } else { /* //zurückwechseln der Farbe zu Grün wenn Taste Released oder Textfeld verlassen if (farbeIstGewechselt_Auswahl_1) { Auswahl.toggleHighlightFarbe(0); farbeIstGewechselt_Auswahl_1 = false; } } // Auswahl 2 if (Util.InRect(this.MouseX, this.MouseY, 25, 434, 600, 20)) { if (Globals.PlayerSession.Controller.Button("MausLinks").Down) { if (!farbeIstGewechselt_Auswahl_2) { Auswahl.toggleHighlightFarbe(1); farbeIstGewechselt_Auswahl_2 = true; } } if (Globals.PlayerSession.Controller.Button("MausLinks").Released) { Console.WriteLine("Auswahl 2 ist gedrückt!"); //zurückwechseln der Farbe zu Grün if (farbeIstGewechselt_Auswahl_2) { Auswahl.toggleHighlightFarbe(1); farbeIstGewechselt_Auswahl_2 = false; string TempEbene = Auswahl.zeigeAktuelleEbene() + ".2"; if (Auswahl.checkEbeneExistiert(TempEbene)) { Auswahl.LadeTexteAuswahl(TempEbene); } } } } else { //zurückwechseln der Farbe zu Grün wenn Taste Released oder Textfeld verlassen if (farbeIstGewechselt_Auswahl_2) { Auswahl.toggleHighlightFarbe(1); farbeIstGewechselt_Auswahl_2 = false; } } // Auswahl 3 if (Util.InRect(this.MouseX, this.MouseY, 25, 458, 600, 20)) { if (Globals.PlayerSession.Controller.Button("MausLinks").Down) { if (!farbeIstGewechselt_Auswahl_3) { Auswahl.toggleHighlightFarbe(2); farbeIstGewechselt_Auswahl_3 = true; } } if (Globals.PlayerSession.Controller.Button("MausLinks").Released) { Console.WriteLine("Auswahl 3 ist gedrückt!"); //zurückwechseln der Farbe zu Grün if (farbeIstGewechselt_Auswahl_3) { Auswahl.toggleHighlightFarbe(2); farbeIstGewechselt_Auswahl_3 = false; if (Auswahl.zeigeAktuelleEbene() == "1") { //für die Texte ein FadeOut anstoßen Auswahl.setzeFadeOut(); Sprache.setzeFadeOut(); //FadeOut zu WorldMap Tween(BlackScreen, new { Alpha = 1f }, 64f, 0f).Ease(Ease.BackInOut); AddGraphic(BlackScreen); FadeOut = true; } else { string TempEbene = Auswahl.zeigeAktuelleEbene() + ".3"; if (Auswahl.checkEbeneExistiert(TempEbene)) { Auswahl.LadeTexteAuswahl(Auswahl.zeigeAktuelleEbene() + ".3"); } } } } } else { //zurückwechseln der Farbe zu Grün wenn Taste Released oder Textfeld verlassen if (farbeIstGewechselt_Auswahl_3) { Auswahl.toggleHighlightFarbe(2); farbeIstGewechselt_Auswahl_3 = false; } } */ } } } }