Пример #1
0
        //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));
        }
Пример #2
0
        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();
            }
        }
Пример #3
0
        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));
        }
Пример #5
0
        private void SetupFormValues(VariableIsCondition condition)
        {
            if (condition.VariableType == VariableTypes.PlayerVariable)
            {
                rdoPlayerVariable.Checked = true;
            }
            else
            {
                rdoGlobalVariable.Checked = true;
            }

            InitVariableElements(condition.VariableId);

            UpdateVariableElements();
        }
Пример #6
0
        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;
        }