You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
44 lines
1.2 KiB
#nullable enable
|
|
using System;
|
|
using Babushka.scripts.CSharp.Common.Util;
|
|
using Godot;
|
|
namespace Babushka.scripts.CSharp.Common.Quest;
|
|
|
|
public partial class QuestListItemUi : Control
|
|
{
|
|
private Button TitleButton => GetNode<Button>("TitleButton");
|
|
private QuestResource? _questResource;
|
|
|
|
public void UpdateButton(QuestResource questResource)
|
|
{
|
|
_questResource = questResource;
|
|
var questStatus = QuestManager.Instance!.GetQuestStatus(_questResource);
|
|
var name = questResource.title;
|
|
|
|
name += questStatus.status switch
|
|
{
|
|
QuestStatus.Status.Done => " \u2713", // Check
|
|
QuestStatus.Status.Canceled => " \u2715", // X
|
|
_ => ""
|
|
};
|
|
|
|
ShowName(name);
|
|
TitleButton.Pressed += ClickedTitleButton;
|
|
}
|
|
|
|
private void ShowName(string questResourceTitle)
|
|
{
|
|
TitleButton.Text = questResourceTitle;
|
|
}
|
|
|
|
public void ClickedTitleButton()
|
|
{
|
|
var questLog = this.FindParentByType<QuestLog>();
|
|
if (_questResource == null)
|
|
{
|
|
throw new ArgumentNullException(nameof(_questResource), "QuestResource is null");
|
|
}
|
|
questLog.currentDetailQuest = _questResource;
|
|
}
|
|
}
|