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.

281 lines
10 KiB
C#

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<string> WillkommensText = new Queue<string>();
WillkommensText.Enqueue("Begrüßung_Decoy");
// Willkommenstext erstellen (Mittig über dem Bankier)
TextLieferant.erzeugeSprachText(WillkommensText, new Queue<string>(), 350, 50);
TextLieferant.erzeugeAuswahlText(new Queue<string>(), 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;
}
}
*/
}
}
}
}