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() { } } }