//OLD //public class ServerSwitchCondition : Condition //{ // public override ConditionTypes Type { get; } = ConditionTypes.ServerSwitch; // public Guid SwitchId { get; set; } // public bool Value { get; set; } //} private static JObject ConvertGlobalSwitchCondition(JObject obj) { var cmd = new VariableIsCondition(); if (obj.ContainsKey("SwitchId")) { cmd.VariableId = Guid.Parse(obj["SwitchId"].ToString()); } cmd.VariableType = VariableTypes.ServerVariable; var comp = new BooleanVariableComparison(); cmd.Comparison = comp; comp.ComparingEqual = true; if (obj.ContainsKey("Value")) { comp.Value = bool.Parse(obj["Value"].ToString()); } var newJson = JsonConvert.SerializeObject( cmd, typeof(Condition), new JsonSerializerSettings() { Formatting = Formatting.None, TypeNameHandling = TypeNameHandling.Auto, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate, ObjectCreationHandling = ObjectCreationHandling.Replace } ); return(JObject.Parse(newJson)); }
private void SaveFormValues(VariableIsCondition condition) { if (rdoGlobalVariable.Checked) { condition.VariableType = VariableTypes.ServerVariable; condition.VariableId = ServerVariableBase.IdFromList(cmbVariable.SelectedIndex); } else { condition.VariableType = VariableTypes.PlayerVariable; condition.VariableId = PlayerVariableBase.IdFromList(cmbVariable.SelectedIndex); } if (grpBooleanVariable.Visible) { condition.Comparison = GetBooleanVariableComparison(); } else if (grpNumericVariable.Visible) { condition.Comparison = GetNumericVariableComparison(); } else if (grpStringVariable.Visible) { condition.Comparison = GetStringVariableComparison(); } else { condition.Comparison = new VariableCompaison(); } }
public static bool MeetsCondition( VariableIsCondition condition, Player player, Event eventInstance, QuestBase questBase ) { VariableValue value = null; if (condition.VariableType == VariableTypes.PlayerVariable) { value = player.GetVariableValue(condition.VariableId); } else if (condition.VariableType == VariableTypes.ServerVariable) { value = ServerVariableBase.Get(condition.VariableId)?.Value; } if (value == null) { value = new VariableValue(); } return(CheckVariableComparison(value, condition.Comparison, player, eventInstance)); }
//OLD //public class ServerVariableCondition : Condition //{ // public override ConditionTypes Type { get; } = ConditionTypes.ServerVariable; // public Guid VariableId { get; set; } // public VariableComparators Comparator { get; set; } = VariableComparators.Equal; // public VariableCompareTypes CompareType { get; set; } = VariableCompareTypes.StaticValue; // public long Value { get; set; } // public Guid CompareVariableId { get; set; } //} private static JObject ConvertGlobalVariableCondition(JObject obj) { var cmd = new VariableIsCondition(); if (obj.ContainsKey("VariableId")) { cmd.VariableId = Guid.Parse(obj["VariableId"].ToString()); } cmd.VariableType = VariableTypes.ServerVariable; var comp = new IntegerVariableComparison(); cmd.Comparison = comp; if (obj.ContainsKey("Value")) { comp.Value = long.Parse(obj["Value"].ToString()); } if (obj.ContainsKey("CompareVariableId")) { comp.CompareVariableId = Guid.Parse(obj["CompareVariableId"].ToString()); } if (obj.ContainsKey("Comparator")) { comp.Comparator = (VariableComparators)int.Parse(obj["Comparator"].ToString()); } if (!obj.ContainsKey("CompareType")) { comp.CompareVariableId = Guid.Empty; } else { if (int.Parse(obj["CompareType"].ToString()) == 1) { comp.CompareVariableType = VariableTypes.PlayerVariable; } else { comp.CompareVariableType = VariableTypes.ServerVariable; } } var newJson = JsonConvert.SerializeObject( cmd, typeof(Condition), new JsonSerializerSettings() { Formatting = Formatting.None, TypeNameHandling = TypeNameHandling.Auto, DefaultValueHandling = DefaultValueHandling.IgnoreAndPopulate, ObjectCreationHandling = ObjectCreationHandling.Replace } ); return(JObject.Parse(newJson)); }
private void SetupFormValues(VariableIsCondition condition) { if (condition.VariableType == VariableTypes.PlayerVariable) { rdoPlayerVariable.Checked = true; } else { rdoGlobalVariable.Checked = true; } InitVariableElements(condition.VariableId); UpdateVariableElements(); }
public EventCommandConditionalBranch( Condition refCommand, EventPage refPage, FrmEvent editor, ConditionalBranchCommand command ) { InitializeComponent(); mLoading = true; if (refCommand == null) { refCommand = new VariableIsCondition(); } Condition = refCommand; mEventEditor = editor; mEventCommand = command; mCurrentPage = refPage; UpdateFormElements(refCommand.Type); InitLocalization(); var typeIndex = 0; foreach (var itm in Strings.EventConditional.conditions) { if (itm.Key == (int)Condition.Type) { cmbConditionType.SelectedIndex = typeIndex; break; } typeIndex++; } nudVariableValue.Minimum = long.MinValue; nudVariableValue.Maximum = long.MaxValue; chkNegated.Checked = refCommand.Negated; chkHasElse.Checked = refCommand.ElseEnabled; SetupFormValues((dynamic)refCommand); mLoading = false; }