public void AddQuest(Quest quest) { QuestStatus qs = new QuestStatus(quest); statuses.Add(qs); OnQuestListUpdated?.Invoke(); }
private bool HasObjective(QuestStatus status) { foreach (var objective in status.GetQuest().GetObjectives()) { if (objective.reference == objectiveName) { return(true); } } return(false); }
public void AddQuest(Quest quest) { if (HasQuest(quest)) { return; } QuestStatus newStatus = new QuestStatus(quest); statuses.Add(newStatus); onQuestListUpdated?.Invoke(); }
public void AddQuest(Quest quest) { if (!HasQuest(quest)) { QuestStatus newStatus = new QuestStatus(quest); statuses.Add(newStatus); CheckIfSomeObjectiveIsComplete(quest); if (onUpdate != null) { onUpdate(); } } }
public void CompleteObjective(Quest quest, string objective) { QuestStatus status = GetQuestStatus(quest); status.CompleteObjective(objective); if (status.IsComplete()) { GiveReward(quest); } if (onUpdate != null) { onUpdate(); } }
public void AddQuest(Quest quest) { if (HasQuest(quest)) { return; } QuestStatus newStatus = new QuestStatus(quest); statuses.Add(newStatus); if (onUpdate != null) { onUpdate(); } }
public void CompleteObjective(Quest quest, string objective) { QuestStatus status = GetQuestStatus(quest); if (status != null) { status.CompleteObjective(objective); if (status.IsComplete()) { GiveReward(quest); } onQuestListUpdated?.Invoke(); } }
public void ClearQuest(Quest quest, string objectiveRef) { QuestStatus status = FindQuest(quest); if (status != null) { status.ClearObjective(objectiveRef); if (status.IsComplete()) { GiveReward(quest); } _onQuestUpdate?.Invoke(); } }
public void RestoreState(object state) { List <object> stateList = state as List <object>; if (stateList == null) { return; } statuses.Clear(); foreach (object objectState in stateList) { QuestStatus status = new QuestStatus(objectState); statuses.Add(status); } }