Basic implementation for acquiring affinity sigil from Sarco

This commit is contained in:
2026-06-04 12:24:58 -07:00
parent 189497458d
commit 150a21aabc
16 changed files with 242 additions and 15 deletions
@@ -1,5 +1,6 @@
using DialogueManagerRuntime;
using Godot;
using Godot.Collections;
namespace Zennysoft.Game.Ma;
@@ -13,18 +14,18 @@ public partial class DialogueController : Node
public override void _Ready()
{
DialogueBalloon = GD.Load<PackedScene>("res://src/ui/dialogue/DialogueBalloon.tscn");
DialogueBalloon = GD.Load<PackedScene>("res://src/ui/dialogue/DialogueBalloon.tscn");
}
public static void ShowDialogue(Resource dialogueResource, string dialogueTitle)
public static void ShowDialogue(Resource dialogueResource, string dialogueTitle, Array<Variant> extraGameStates = null)
{
Interrupt();
_currentlyActiveDialogue = DialogueManager.ShowDialogueBalloonScene(DialogueBalloon, dialogueResource, dialogueTitle);
Interrupt();
_currentlyActiveDialogue = DialogueManager.ShowDialogueBalloonScene(DialogueBalloon, dialogueResource, dialogueTitle, extraGameStates);
}
public static void Interrupt()
{
if (IsInstanceValid(_currentlyActiveDialogue))
_currentlyActiveDialogue.QueueFree();
if (IsInstanceValid(_currentlyActiveDialogue))
_currentlyActiveDialogue.QueueFree();
}
}
+8
View File
@@ -70,6 +70,8 @@ public partial class Game : Node3D, IGame
public QuestData QuestData { get; private set; }
public SarcoData SarcoData { get; private set; }
public ItemRescueMenu ItemRescueMenu { get => InGameUI.ItemRescueMenu; }
private EffectService _effectService;
@@ -97,6 +99,7 @@ public partial class Game : Node3D, IGame
QuestData = new QuestData();
RescuedItems = new RescuedItemDatabase(20);
SarcoData = new SarcoData();
ItemDatabase = ItemDatabase.Instance;
GameChunk = new SaveChunk<GameData>(
@@ -109,6 +112,10 @@ public partial class Game : Node3D, IGame
{
DeathCount = QuestData.DeathCount,
QuestMarker1 = QuestData.QuestMarker1
},
SarcoData = new SarcoData()
{
IgneousSarcoAcquired = SarcoData.IgneousSarcoAcquired,
}
};
return gameData;
@@ -118,6 +125,7 @@ public partial class Game : Node3D, IGame
{
RescuedItems = data.RescuedItems;
QuestData = data.QuestData;
SarcoData = data.SarcoData;
}
);
+3
View File
@@ -11,5 +11,8 @@ public partial record GameData
[Save("quest_data")]
public required QuestData QuestData { get; init; }
[Save("sarco_data")]
public required SarcoData SarcoData { get; init; }
}
+2
View File
@@ -46,6 +46,8 @@ public interface IGame : IProvide<IGame>, IProvide<IGameRepo>, IProvide<IPlayer>
public QuestData QuestData { get; }
public SarcoData SarcoData { get; }
public event Action GameExitRequested;
public event Action GameLoaded;