Basic implementation for acquiring affinity sigil from Sarco
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user