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#
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;
|
|
}
|
|
|
|
}
|
|
*/
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|