Skip to content

Commit

Permalink
[Conditions] Added CONDITION_QUEST_OBJECTIVE_COMPLETE on TC master
Browse files Browse the repository at this point in the history
  • Loading branch information
BAndysc committed Nov 22, 2021
1 parent 23cc21b commit 3c26991
Show file tree
Hide file tree
Showing 9 changed files with 40 additions and 93 deletions.
54 changes: 0 additions & 54 deletions WDE.Conditions/Data/ConditionDataJsonProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,59 +18,5 @@ public ConditionDataJsonProvider(ICurrentCoreVersion currentCoreVersion)
public string GetConditionsJson() => File.ReadAllText(currentCoreVersion.Current.ConditionFeatures.ConditionsFile);
public string GetConditionSourcesJson() => File.ReadAllText(currentCoreVersion.Current.ConditionFeatures.ConditionSourcesFile);
public string GetConditionGroupsJson() => File.ReadAllText(currentCoreVersion.Current.ConditionFeatures.ConditionGroupsFile);

public void SaveConditions(string json)
{
if (!string.IsNullOrWhiteSpace(json))
{
using (StreamWriter writer = File.CreateText("SmartData/conditions.json"))
writer.Write(json);
}
}

public async Task SaveConditionsAsync(string json)
{
if (!string.IsNullOrWhiteSpace(json))
{
using (StreamWriter writer = File.CreateText("SmartData/conditions.json"))
await writer.WriteAsync(json);
}
}

public void SaveConditionSources(string json)
{
if (!string.IsNullOrWhiteSpace(json))
{
using (StreamWriter writer = File.CreateText("SmartData/condition_sources.json"))
writer.Write(json);
}
}

public async Task SaveConditionSourcesAsync(string json)
{
if (!string.IsNullOrWhiteSpace(json))
{
using (StreamWriter writer = File.CreateText("SmartData/condition_sources.json"))
await writer.WriteAsync(json);
}
}

public void SaveConditionGroups(string json)
{
if (!string.IsNullOrWhiteSpace(json))
{
using (StreamWriter writer = File.CreateText("SmartData/conditions_groups.json"))
writer.Write(json);
}
}

public async Task SaveConditionGroupsAsync(string json)
{
if (!string.IsNullOrWhiteSpace(json))
{
using (StreamWriter writer = File.CreateText("SmartData/conditions_groups.json"))
await writer.WriteAsync(json);
}
}
}
}
3 changes: 3 additions & 0 deletions WDE.Conditions/Data/ConditionDataJsonStructs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ public class ConditionJsonData
[JsonProperty(PropertyName = "name_readable")]
public string NameReadable { get; set; } = "Missing name";

[JsonProperty(PropertyName = "tags")]
public IList<string>? Tags { get; set; }

public override string ToString()
{
return $"{NameReadable} {Id}";
Expand Down
33 changes: 12 additions & 21 deletions WDE.Conditions/Data/ConditionDataProvider.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using WDE.Common.CoreVersion;
using WDE.Module.Attributes;

namespace WDE.Conditions.Data
Expand All @@ -14,36 +16,25 @@ public class ConditionDataProvider : IConditionDataProvider
private readonly IConditionDataJsonProvider provider;
private readonly IConditionDataSerializationProvider serializationProvider;

public ConditionDataProvider(IConditionDataJsonProvider provider, IConditionDataSerializationProvider serializationProvider)
public ConditionDataProvider(IConditionDataJsonProvider provider,
IConditionDataSerializationProvider serializationProvider,
ICurrentCoreVersion currentCoreVersion)
{
this.provider = provider;
this.serializationProvider = serializationProvider;

conditions = serializationProvider.DeserializeConditionData<ConditionJsonData>(provider.GetConditionsJson());

var currentTag = currentCoreVersion.Current.Tag;

conditions = serializationProvider
.DeserializeConditionData<ConditionJsonData>(provider.GetConditionsJson())
.Where(c => c.Tags == null || c.Tags.Contains(currentTag))
.ToList();
conditionSources = serializationProvider.DeserializeConditionData<ConditionSourcesJsonData>(provider.GetConditionSourcesJson());
conditionGroups = serializationProvider.DeserializeConditionData<ConditionGroupsJsonData>(provider.GetConditionGroupsJson());
}

public IEnumerable<ConditionJsonData> GetConditions() => conditions;
public IEnumerable<ConditionSourcesJsonData> GetConditionSources() => conditionSources;
public IEnumerable<ConditionGroupsJsonData> GetConditionGroups() => conditionGroups;

public async Task SaveConditions(List<ConditionJsonData> collection)
{
await provider.SaveConditionsAsync(serializationProvider.SerializeConditionData(collection));
conditions = collection;
}

public async Task SaveConditionSources(List<ConditionSourcesJsonData> collection)
{
await provider.SaveConditionSourcesAsync(serializationProvider.SerializeConditionData(collection));
conditionSources = collection;
}

public async Task SaveConditionGroups(List<ConditionGroupsJsonData> collection)
{
await provider.SaveConditionSourcesAsync(serializationProvider.SerializeConditionData(collection));
conditionGroups = collection;
}
}
}
11 changes: 0 additions & 11 deletions WDE.Conditions/Data/IConditionDataProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,12 @@ public interface IConditionDataJsonProvider
string GetConditionsJson();
string GetConditionSourcesJson();
string GetConditionGroupsJson();

void SaveConditions(string json);
Task SaveConditionsAsync(string json);
void SaveConditionSources(string json);
Task SaveConditionSourcesAsync(string json);
void SaveConditionGroups(string json);
Task SaveConditionGroupsAsync(string json);
}

public interface IConditionDataProvider
{
IEnumerable<ConditionJsonData> GetConditions();
IEnumerable<ConditionSourcesJsonData> GetConditionSources();
IEnumerable<ConditionGroupsJsonData> GetConditionGroups();

Task SaveConditions(List<ConditionJsonData> collection);
Task SaveConditionSources(List<ConditionSourcesJsonData> collection);
Task SaveConditionGroups(List<ConditionGroupsJsonData> collection);
}
}
23 changes: 20 additions & 3 deletions WDE.Conditions/SmartData/conditions.json
Original file line number Diff line number Diff line change
Expand Up @@ -771,6 +771,7 @@

{
"id": 48,
"tags": ["Azeroth", "TrinityWrath"],
"name": "CONDITION_QUEST_OBJECTIVE_PROGRESS",
"name_readable": "Has quest objective progress",
"parameters": [
Expand All @@ -790,7 +791,20 @@
"help": "Condition is met if target player has reached the specified objectiveCount quest progress for the objectiveIndex for the specified quest",
"description": "{target} {pram2} quest {pram1} objective {negate:==|!=} {pram3}"
},

{
"id": 48,
"tags": ["TrinityMaster"],
"name": "CONDITION_QUEST_OBJECTIVE_COMPLETE",
"name_readable": "Has quest objective completed",
"parameters": [
{
"type": "Parameter",
"name": "Objective ID"
}
],
"help": "Condition is met if target player has completed quest objective",
"description": "{target} {negate:has completed objective {pram1} (but hasn't rewarded quest yet)|hasn't completed objective {pram1} or has rewarded the quest}"
},
{
"id": 49,
"name": "CONDITION_DIFFICULTY_ID",
Expand All @@ -807,6 +821,7 @@

{
"id": 50,
"tags": ["TrinityWrath"],
"name": "CONDITION_GAMEMASTER",
"name_readable": "Is gamemaster",
"parameters": [
Expand All @@ -825,8 +840,9 @@

{
"id": 51,
"tags": ["TrinityMaster"],
"name": "CONDITION_OBJECT_ENTRY_GUID_MASTER",
"name_readable": "[TC 9.x] Is entry/guid/type",
"name_readable": "Is entry/guid/type",
"help": "[TC 9.x] Condition is met if target has given entry, given guid or is given type",
"parameters": [
{
Expand Down Expand Up @@ -859,8 +875,9 @@

{
"id": 52,
"tags": ["TrinityMaster"],
"name": "CONDITION_TYPE_MASK_MASTER",
"name_readable": "[TC 9.x] Has typemask",
"name_readable": "Has typemask",
"help": "[TC 9.x] Condition is met if target is in given typemask",
"parameters": [
{
Expand Down
3 changes: 2 additions & 1 deletion WDE.Conditions/SmartData/conditions_groups.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
"CONDITION_QUEST_NONE",
"CONDITION_DAILY_QUEST_DONE",
"CONDITION_QUESTSTATE",
"CONDITION_QUEST_OBJECTIVE_PROGRESS"
"CONDITION_QUEST_OBJECTIVE_PROGRESS",
"CONDITION_QUEST_OBJECTIVE_COMPLETE"
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ await messageBoxService.ShowDialog(new MessageBoxFactory<bool>().SetTitle("Error

private async Task SaveGroupsToFile()
{
await conditionDataProvider.SaveConditionGroups(SourceItems.Select(x => x.ToConditionGroupsJsonData()).ToList());
//await conditionDataProvider.SaveConditionGroups(SourceItems.Select(x => x.ToConditionGroupsJsonData()).ToList());
History.MarkAsSaved();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ private async Task OpenEditor(ConditionSourcesJsonData item, bool isCreating)

private async Task SaveSources()
{
await conditionDataProvider.SaveConditionSources(SourceItems.ToList());
//await conditionDataProvider.SaveConditionSources(SourceItems.ToList());
History.MarkAsSaved();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ private async Task OpenEditor(ConditionJsonData item, bool isCreating)

private async Task SaveConditions()
{
await conditionDataProvider.SaveConditions(SourceItems.ToList());
//await conditionDataProvider.SaveConditions(SourceItems.ToList());
History.MarkAsSaved();
}

Expand Down

0 comments on commit 3c26991

Please sign in to comment.