83 lines
3.1 KiB
C#
83 lines
3.1 KiB
C#
using UnityEngine.Scripting;
|
|
|
|
#nullable disable
|
|
namespace GameEvent.SequenceRequirements
|
|
{
|
|
[Preserve]
|
|
public class RequirementIsOptionValid : BaseRequirement
|
|
{
|
|
[PublicizedFrom(EAccessModifier.Protected)]
|
|
public string optionType = "";
|
|
[PublicizedFrom(EAccessModifier.Protected)]
|
|
public string optionName;
|
|
[PublicizedFrom(EAccessModifier.Protected)]
|
|
public string optionValue;
|
|
|
|
public static string PropOptionType = "option_type";
|
|
public static string PropOptionName = "option_name";
|
|
public static string PropOptionValue = "option_value";
|
|
|
|
[PublicizedFrom(EAccessModifier.Protected)]
|
|
public override void OnInit()
|
|
{
|
|
//Log.Out("RequirementIsOptionValid-OnInit START");
|
|
}
|
|
|
|
public override bool CanPerform(Entity target)
|
|
{
|
|
//Log.Out("RequirementIsOptionValid-CanPerform optionType: " + this.optionType);
|
|
//Log.Out("RequirementIsOptionValid-CanPerform optionName: " + this.optionName);
|
|
//Log.Out("RequirementIsOptionValid-CanPerform optionValue: " + this.optionValue);
|
|
|
|
bool result = RebirthUtilities.IsOptionAvailable(this.optionType, this.optionName, this.optionValue);
|
|
|
|
if (this.Invert)
|
|
{
|
|
result = !result;
|
|
}
|
|
|
|
//Log.Out("RequirementIsOptionValid-CanPerform result: " + result);
|
|
|
|
return result;
|
|
}
|
|
|
|
public override void ParseProperties(DynamicProperties properties)
|
|
{
|
|
//Log.Out("RequirementIsOptionValid-ParseProperties START");
|
|
base.ParseProperties(properties);
|
|
if (properties.Values.ContainsKey(RequirementIsOptionValid.PropOptionType))
|
|
{
|
|
//Log.Out("RequirementIsOptionValid-ParseProperties 1");
|
|
this.optionType = properties.Values[RequirementIsOptionValid.PropOptionType];
|
|
}
|
|
if (properties.Values.ContainsKey(RequirementIsOptionValid.PropOptionName))
|
|
{
|
|
//Log.Out("RequirementIsOptionValid-ParseProperties 2");
|
|
this.optionName = properties.Values[RequirementIsOptionValid.PropOptionName];
|
|
}
|
|
if (properties.Values.ContainsKey(RequirementIsOptionValid.PropOptionValue))
|
|
{
|
|
//Log.Out("RequirementIsOptionValid-ParseProperties 3");
|
|
this.optionValue = properties.Values[RequirementIsOptionValid.PropOptionValue];
|
|
}
|
|
}
|
|
|
|
[PublicizedFrom(EAccessModifier.Protected)]
|
|
public override BaseRequirement CloneChildSettings()
|
|
{
|
|
RequirementIsOptionValid RequirementIsOptionValid = new RequirementIsOptionValid();
|
|
RequirementIsOptionValid.optionType = this.optionType;
|
|
RequirementIsOptionValid.optionName = this.optionName;
|
|
RequirementIsOptionValid.optionValue = this.optionValue;
|
|
RequirementIsOptionValid.Invert = this.Invert;
|
|
|
|
return (BaseRequirement)RequirementIsOptionValid;
|
|
}
|
|
|
|
[PublicizedFrom(EAccessModifier.Private)]
|
|
static RequirementIsOptionValid()
|
|
{
|
|
}
|
|
}
|
|
}
|