Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 49 additions & 3 deletions Classes/Events/EventDatabase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
/// <summary>
/// Holds all game events and their associated logic.
/// </summary>

public class EventDatabase
{
public const int EventDatabaseSize = 3;
Expand All @@ -22,19 +23,41 @@ public class EventDatabase
0,
StageProducer.PlayerStats.CurNotes.Length - 1
);
var note = StageProducer.PlayerStats.CurNotes[randIndex];
string name = note.Name.ToUpper().Replace(" ", "");
string localizedName = TranslationServer.Translate("NOTE_" + name + "_NAME");
StageProducer.PlayerStats.RemoveNote(randIndex);

self.OutcomeDescriptions[0] = string.Format(
TranslationServer.Translate("EVENT_EVENT1_OUTCOME1"),
localizedName
);
},
(self, node) =>
{
int randIndex = StageProducer.GlobalRng.RandiRange(
0,
StageProducer.PlayerStats.CurRelics.Length - 1
);
var relic = StageProducer.PlayerStats.CurRelics[randIndex];
string name = relic.Name.ToUpper().Replace(" ", "");
string localizedName = TranslationServer.Translate("RELIC_" + name + "_NAME");
StageProducer.PlayerStats.RemoveRelic(randIndex);

self.OutcomeDescriptions[1] = string.Format(
TranslationServer.Translate("EVENT_EVENT1_OUTCOME2"),
localizedName
);
},
(self, node) =>
{
string stolenMoney = (StageProducer.PlayerStats.Money / 2).ToString();
StageProducer.PlayerStats.Money /= 2;

self.OutcomeDescriptions[2] = self.OutcomeDescriptions[0] = string.Format(
TranslationServer.Translate("EVENT_EVENT1_OUTCOME3"),
stolenMoney
);
},
],
GD.Load<Texture2D>("res://Classes/Events/Assets/Bandit_Event.png"),
Expand Down Expand Up @@ -68,14 +91,19 @@ public class EventDatabase
.SetEase(Tween.EaseType.Out);

// Defer execution of the outcome until the tween finishes
string eventEffect = "";
tween.TweenCallback(
Callable.From(() =>
{
switch (spinOutcome)
{
case 0:
eventEffect = (StageProducer.PlayerStats.Money / 2).ToString();
StageProducer.PlayerStats.Money /= 2;
self.OutcomeDescriptions[0] = "EVENT_EVENT2_OUTCOME2";
self.OutcomeDescriptions[0] = string.Format(
TranslationServer.Translate("EVENT_EVENT2_OUTCOME2"),
eventEffect
);
break;
case 1:
self.OutcomeDescriptions[0] = "EVENT_EVENT2_OUTCOME3";
Expand All @@ -89,22 +117,40 @@ public class EventDatabase
StageProducer.PlayerStats.Money += 50;
break;
case 3:
self.OutcomeDescriptions[0] = "EVENT_EVENT2_OUTCOME5";
StageProducer.PlayerStats.AddNote(
Scribe.GetRandomRewardNotes(1, StageProducer.CurRoom + 10)[
0
]
);
var note = StageProducer.PlayerStats.CurNotes[^1];
string name = note.Name.ToUpper().Replace(" ", "");
eventEffect = TranslationServer.Translate(
"NOTE_" + name + "_NAME"
);

self.OutcomeDescriptions[0] = string.Format(
TranslationServer.Translate("EVENT_EVENT2_OUTCOME5"),
eventEffect
);
break;
case 4:
self.OutcomeDescriptions[0] = "EVENT_EVENT2_OUTCOME6";
StageProducer.PlayerStats.AddRelic(
Scribe.GetRandomRelics(
1,
StageProducer.CurRoom + 10,
StageProducer.PlayerStats.RarityOdds
)[0]
);

var relic = StageProducer.PlayerStats.CurRelics[^1];
string name1 = relic.Name.ToUpper().Replace(" ", "");
eventEffect = TranslationServer.Translate(
"NOTE_" + name1 + "_NAME"
);
self.OutcomeDescriptions[0] = string.Format(
TranslationServer.Translate("EVENT_EVENT2_OUTCOME6"),
eventEffect
);
break;
case 5:
self.OutcomeDescriptions[0] = "EVENT_EVENT2_OUTCOME7";
Expand Down
18 changes: 9 additions & 9 deletions Globals/Translations/Translations.csv
Original file line number Diff line number Diff line change
Expand Up @@ -143,19 +143,19 @@ EVENT_EVENT1_DESC,A bandit approaches you.,一个强盗拦住了你。
EVENT_EVENT1_OPTION1,Give them a random note,给他一个随机音符
EVENT_EVENT1_OPTION2,Give them a random relic,给他一件随机遗物
EVENT_EVENT1_OPTION3,Give them half your gold,给他你一半的金币
EVENT_EVENT1_OUTCOME1,You got robbed of a random note.,你被抢走了一个随机音符
EVENT_EVENT1_OUTCOME2,You got robbed of a random relic.,你被抢走了一件随机遗物
EVENT_EVENT1_OUTCOME3,You got robbed of half your gold.,你被抢走了一半金币
EVENT_EVENT1_OUTCOME1,You got robbed of a random note. ({0}),你被抢走了一个随机音符 ({0})
EVENT_EVENT1_OUTCOME2,You got robbed of a random relic.({0}),你被抢走了一件随机遗物 ({0})
EVENT_EVENT1_OUTCOME3,You got robbed of half your gold. ({0}),你被抢走了一半金币 ({0})
EVENT_EVENT2_DESC,There is a wheel with different outcomes.,这里有一个转盘,结果各不相同。
EVENT_EVENT2_OPTION1,Spin the wheel,转动转盘
EVENT_EVENT2_OPTION2,Ignore the cool wheel,忽略这个酷炫的转盘
EVENT_EVENT2_OUTCOME1,You decided not to spin the wheel.,你决定不转动转盘。
EVENT_EVENT2_OUTCOME2,You lost half your money.,你损失了一半的金币。
EVENT_EVENT2_OUTCOME3,You took some damage.,你受到了一些伤害。
EVENT_EVENT2_OUTCOME4,You won a lot of money!,你赢得了很多金币!
EVENT_EVENT2_OUTCOME5,You gained a random note!,你获得了一个随机音符!
EVENT_EVENT2_OUTCOME6,You gained a random relic!,你获得了一件随机遗物!
EVENT_EVENT2_OUTCOME7,You gained some health!,你恢复了一些生命值!
EVENT_EVENT2_OUTCOME2,You lost half your money. ({0}),你损失了一半的金币。({0})
EVENT_EVENT2_OUTCOME3,You took some damage. (10),你受到了一些伤害。(10)
EVENT_EVENT2_OUTCOME4,You won a lot of money! (50),你赢得了很多金币!(50)
EVENT_EVENT2_OUTCOME5,You gained a random note! ({0}),你获得了一个随机音符!({0})
EVENT_EVENT2_OUTCOME6,You gained a random relic ({0})!,你获得了一件随机遗物!({0})
EVENT_EVENT2_OUTCOME7,You gained some health! (20),你恢复了一些生命值!(20)
EVENT_EVENT3_DESC,There is a field medic on the side of the road.,路边有一名战地医生。
EVENT_EVENT3_OPTION1,Receive a bit of healing,接受一些治疗
EVENT_EVENT3_OPTION2,Increase bar charge rate.,提高能量条充能速度
Expand Down
Loading