Example #1
0
 public ControlButton(string name, ControllerState state, Action callback, TriggerCondition condition)
 {
     this.name      = name;
     this.state     = state;
     this.callback  = callback;
     this.condition = condition;
 }
Example #2
0
    static public string Parse(TriggerCondition t)
    {
        switch (t)
        {
        case TriggerCondition.ON_SELF_ENTER:
            return("Arrival");

        case TriggerCondition.ON_CREATURE_ENTER:
            return("Creature Arrives");

        case TriggerCondition.ON_SELF_DAMAGE_DEALT_TO_PLAYER:
            return("Breach");

        case TriggerCondition.ON_SELF_DAMAGE_TAKEN:
            return("Endure");

        case TriggerCondition.ON_SELF_DIES:
            return("Departure");

        case TriggerCondition.ON_CREATURE_DIES:
            return("Creature Departs");

        case TriggerCondition.ON_STACK_UPDATED:
            return("Response");

        case TriggerCondition.IS_ALIVE:
            return("Static");
        }
        return(PARSE_ERROR);
    }
Example #3
0
 private void CreateCompositeTrigger()
 {
     if (trigger == null)
     {
         // A CompositeMagicTrigger handles player passing through portals
         trigger = gameObject.GetOrAddComponent <CompositeMagicTrigger>();
         TriggerCondition positionCondition = new TriggerCondition {
             triggerCondition    = TriggerConditionType.PlayerInDirectionFromPoint,
             useLocalCoordinates = true,
             targetDirection     = Vector3.forward,
             targetPosition      = Vector3.zero,
             triggerThreshold    = 0.01f
         };
         TriggerCondition movementCondition = new TriggerCondition {
             triggerCondition    = TriggerConditionType.PlayerMovingDirection,
             useLocalCoordinates = true,
             targetDirection     = Vector3.forward,
             triggerThreshold    = 0.01f
         };
         trigger.triggerConditions = new List <TriggerCondition>()
         {
             positionCondition,
             movementCondition
         };
     }
 }
        protected override void ProcessRecordInternal()
        {
            TriggerCondition triggerCondition = new TriggerCondition(thresholdOperator: ThresholdOperator, threshold: Threshold, metricTrigger: MetricTrigger);

            triggerCondition.Validate();
            WriteObject(new PSScheduledQueryRuleTriggerCondition(triggerCondition));
        }
Example #5
0
 private static void TriggerAddCondition(VTrigger trigger, TriggerCondition tc)
 {
     if (trigger != null && tc != null && !trigger.func_conditions.Contains(tc))
     {
         trigger.func_conditions.Add(tc);
     }
 }
Example #6
0
 public ControlKey(string name, List <Keys> keys, Action callback, TriggerCondition condition)
 {
     this.name       = name;
     this.keys       = keys;
     this.callback   = callback;
     this.condition  = condition;
     this.wasPressed = false;
 }
Example #7
0
 private TriggerRecord(TriggerType type, TState newState, TInput trigger, TriggerCondition <TState, TInput> condition, StateEvaluator <TState, TInput> evaluator, TriggeringAction <TState, TInput> triggeringAction)
 {
     Type             = type;
     NewState         = newState;
     Trigger          = trigger;
     Condition        = condition;
     Evaluator        = evaluator;
     TriggeringAction = triggeringAction;
 }
Example #8
0
    public TriggerCondition Clone()
    {
        TriggerCondition ret = this._Clone();

        ret.name         = this.name;
        ret.TriggerLimit = this.TriggerLimit;
        ret.IsClone      = true;
        return(ret);
    }
Example #9
0
    public static VTrigger CreateUnitEventTrigger(UnitEvent e, TriggerCondition condition, TriggerAction action, int u_id)
    {
        UnitTrigger unitTrigger = (UnitTrigger)TriggerManager.CreateTrigger(TriggerType.UnitTrigger);

        TriggerManager.TriggerRegisterUnitEvent(unitTrigger, e, u_id);
        TriggerManager.TriggerAddCondition(unitTrigger, condition);
        TriggerManager.TriggerAddAction(unitTrigger, action);
        return(unitTrigger);
    }
Example #10
0
    public static VTrigger CreateGameEventTrigger(GameEvent e, TriggerCondition condition, TriggerAction action)
    {
        GameTrigger gameTrigger = (GameTrigger)TriggerManager.CreateTrigger(TriggerType.GameTrigger);

        TriggerManager.TriggerRegisterGameEvent(gameTrigger, e);
        TriggerManager.TriggerAddCondition(gameTrigger, condition);
        TriggerManager.TriggerAddAction(gameTrigger, action);
        return(gameTrigger);
    }
Example #11
0
    public static VTrigger CreateElapsedTimerTrigger(float time, TriggerCondition condition, TriggerAction action)
    {
        TimerTrigger timerTrigger = (TimerTrigger)TriggerManager.CreateTrigger(TriggerType.TimerTrigger);

        TriggerManager.TriggerRegisterElapsedTimer(timerTrigger, time);
        TriggerManager.TriggerAddCondition(timerTrigger, condition);
        TriggerManager.TriggerAddAction(timerTrigger, action);
        return(timerTrigger);
    }
        public virtual SqlBuilder GetTriggerConditionSql <TTriggerEntity>(TriggerCondition <TTriggerEntity> triggerCondition)
            where TTriggerEntity : class
        {
            var conditionBody = triggerCondition.Condition.Body;

            return(conditionBody switch
            {
                MemberExpression memberExpression => GetUnaryExpressionSql(Expression.IsTrue(memberExpression), triggerCondition.ConditionPrefixes),
                _ => GetExpressionSql(conditionBody, triggerCondition.ConditionPrefixes),
            });
 private void DrawCondition(Rect pos, TriggerCondition condition, GUIContent label)
 {
     EditorGUI.LabelField(InLine.GetRect(pos, 0, 0, 2), "Trigger");
     condition.referenceTrigger = (Trigger)EditorGUI.ObjectField(InLine.GetRect(pos, 0, 100, 1), condition.referenceTrigger, typeof(Trigger), true);
     InLine.SetRect(pos, 1, 0, 6);
     {
         EditorGUI.LabelField(InLine.NextRect(), "IsTrue");
         condition.isTrue = EditorGUI.Toggle(InLine.NextRect(true), condition.isTrue);
     }
 }
        /// <summary>
        /// 获取指定计划的附加条件
        /// </summary>
        /// <param name="triggerId">计划编号</param>
        /// <param name="conditionType">条件类型</param>
        /// <returns></returns>
        public static TriggerCondition GetTriggerConditionByTrigger(string triggerId, TaskTriggerConditionType conditionType)
        {
            if (triggerId.IsNullOrEmpty())
            {
                return(null);
            }
            var trigger = Trigger.CreateTrigger(triggerId);

            trigger.SetCondition(TriggerCondition.CreateTriggerCondition(conditionType, triggerId));
            return(GetTriggerConditionList(trigger)?.FirstOrDefault());
        }
Example #15
0
 public bool HasEffectsOnTrigger(TriggerCondition trigger)
 {
     foreach (CardEffectDescription effect in cardEffects)
     {
         if (effect.triggerCondition == trigger)
         {
             return(true);
         }
     }
     return(false);
 }
        public override string Persist()
        {
            XElement elem = new XElement("changePositionStrategySetting");

            elem.Add(new XAttribute("closeLeg", CloseLeg));
            elem.Add(new XAttribute("side", CloseLegSide.ToString()));
            elem.Add(new XAttribute("triggerCondition", TriggerCondition.ToString()));
            elem.Add(new XAttribute("threshold", Threshold));

            return(elem.ToString());
        }
Example #17
0
        void commentOutItem_Click(object sender, EventArgs e)
        {
            MenuItem         mi   = sender as MenuItem;
            FunctorEditor    fe   = mi.Tag as FunctorEditor;
            TriggerCondition comp = fe.Tag as TriggerCondition;

            if (comp == null)
            {
                return;
            }

            comp.CommentOut = !comp.CommentOut;
            UpdateComponentVisuals(comp, fe);
        }
Example #18
0
        void upgradeItem_Click(object sender, EventArgs e)
        {
            MenuItem         mi   = sender as MenuItem;
            FunctorEditor    fe   = mi.Tag as FunctorEditor;
            TriggerCondition comp = fe.Tag as TriggerCondition;

            if (comp == null)
            {
                return;
            }

            comp.CommentOut = true;
            //UpdateComponentVisuals(comp, fe);

            TriggerCondition condition;
            Dictionary <int, TriggerValue> values;

            TriggerSystemMain.mTriggerDefinitions.GetTriggerCondition(comp.Type, out condition, out values);
            int newID;

            mParentTriggerNamespace.InsertCondition(this.Trigger.ID, condition, values, out newID, comp);

            //copy over old values
            Dictionary <int, int> oldIDsBySigID = new Dictionary <int, int>();

            for (int i = 0; i < comp.Parameter.Count; i++)
            {
                oldIDsBySigID[comp.Parameter[i].SigID] = comp.Parameter[i].ID;
            }
            List <TriggerVariable> oldParams = comp.Parameter;

            for (int i = 0; i < condition.Parameter.Count; i++)
            {
                int oldVarID;
                if (oldIDsBySigID.TryGetValue(condition.Parameter[i].SigID, out oldVarID))
                {
                    condition.Parameter[i].ID = oldVarID;

                    values[oldVarID] = mParentTriggerNamespace.GetValues()[oldVarID];
                }
            }


            condition.Invert       = comp.Invert;
            condition.JustUpgraded = true;
            //Control c = BuildUIFromCondition(condition, values);
            //this.AddRow(c);

            ReloadUI();
        }
Example #19
0
    public List <CardEffectDescription> GetEffectsOnTrigger(TriggerCondition trigger)
    {
        List <CardEffectDescription> effects = new List <CardEffectDescription>();

        foreach (CardEffectDescription effect in cardEffects)
        {
            if (cardType == CardType.CREATURE && trigger != effect.triggerCondition)
            {
                continue;
            }

            effects.Add(effect);
        }
        return(effects);
    }
Example #20
0
        public async Task <IActionResult> SetCondition(int id)
        {
            var data = await ApiClientFactory.Instance.GetTrigger(id);

            if (data == null)
            {
                return(NotFound());
            }
            var conditions = await ApiClientFactory.Instance.GetConditions();

            var model = new TriggerCondition {
                Trigger = data, Conditions = conditions
            };

            return(View(model));
        }
Example #21
0
    public bool Can(out TriggerCondition triggerCondition)
    {
        bool can = true;

        triggerCondition = null;
        foreach (var e in triggers)
        {
            triggerCondition = e.Key;
            if (!triggerCondition.isFinish)
            {
                can = false;
                break;
            }
        }
        return(can);
    }
Example #22
0
    /// <summary>
    /// This function sets up a rising edge trigger on a specified channel. Expecting 2Vpp signal.
    /// </summary>
    public static StandardDriverStatusCode SetTrigger(short handle, Channel channel, int autoTriggerDelay = 0)
    {
        //3% of signal range
        ushort hysteresis = (ushort)((UInt16.MaxValue / 100.0) * 3.0);

        var triggerChannelProperty   = new TriggerChannelProperties(0, hysteresis, 0, hysteresis, channel);
        var triggerChannelProperties = new List <TriggerChannelProperties>()
        {
            triggerChannelProperty
        };
        var status = DriverImports.PS6000a.SetTriggerChannelProperties(handle, triggerChannelProperties.ToArray(),
                                                                       (short)triggerChannelProperties.Count, 0, autoTriggerDelay);

        if (status != StandardDriverStatusCode.Ok)
        {
            return(status);
        }

        var triggerCondition  = new TriggerCondition(channel, TriggerState.True);
        var triggerConditions = new List <TriggerCondition>()
        {
            triggerCondition
        };

        status = DriverImports.PS6000a.SetTriggerChannelConditions(handle, triggerConditions.ToArray(), (short)triggerConditions.Count,
                                                                   DriverImports.Action.PICO_CLEAR_ALL | DriverImports.Action.PICO_ADD);

        if (status != StandardDriverStatusCode.Ok)
        {
            return(status);
        }

        var thresholdDirection  = new ThresholdDirection(channel, TriggerDirection.Rising, ThresholdMode.Level);
        var thresholdDirections = new List <ThresholdDirection>()
        {
            thresholdDirection
        };

        status = DriverImports.PS6000a.SetTriggerChannelDirections(handle, thresholdDirections.ToArray(), (short)thresholdDirections.Count);

        if (status == StandardDriverStatusCode.Ok)
        {
            Console.WriteLine("Trigger has been setup successfully. Please input a 2Vpp signal onto channel: " + channel);
        }

        return(status);
    }
Example #23
0
        void UpdateComponentVisuals(TriggerCondition condition, FunctorEditor fe)
        {
            fe.FunctionName = ((condition.Invert == true) ? "! " : "") + condition.Type;

            if (condition.CommentOut == true)
            {
                if (mLastBackColor != Color.DarkGray)
                {
                    mLastBackColor = fe.BackColor;
                }
                fe.BackColor = Color.DarkGray;
            }
            else if (mLastBackColor != Color.Empty)
            {
                fe.BackColor = Color.Empty;//mLastBackColor;
            }
        }
Example #24
0
    /// <summary>
    /// This function sets up a digital rising edge trigger on DIGITAL_CHANNEL5 on a specified port.
    /// </summary>
    public static StandardDriverStatusCode SetDigitalTrigger(short handle, Channel port)
    {
        var channel = DigitalChannel.DIGITAL_CHANNEL5;

        var digitalChannelDirection  = new DigitalChannelDirections(channel, DigitalDirection.DIGITAL_DIRECTION_RISING);
        var digitalChannelDirections = new List <DigitalChannelDirections>()
        {
            digitalChannelDirection
        };
        var status = DriverImports.PS6000a.SetTriggerDigitalPortProperties(handle, port, digitalChannelDirections.ToArray(), 1);

        if (status != StandardDriverStatusCode.Ok)
        {
            return(status);
        }

        var triggerCondition  = new TriggerCondition(port, TriggerState.True);
        var triggerConditions = new List <TriggerCondition>()
        {
            triggerCondition
        };

        status = DriverImports.PS6000a.SetTriggerChannelConditions(handle, triggerConditions.ToArray(), (short)triggerConditions.Count,
                                                                   DriverImports.Action.PICO_CLEAR_ALL | DriverImports.Action.PICO_ADD);

        if (status != StandardDriverStatusCode.Ok)
        {
            return(status);
        }

        var thresholdDirection  = new ThresholdDirection(port, TriggerDirection.Rising, ThresholdMode.Level);
        var thresholdDirections = new List <ThresholdDirection>()
        {
            thresholdDirection
        };

        status = DriverImports.PS6000a.SetTriggerChannelDirections(handle, thresholdDirections.ToArray(), (short)thresholdDirections.Count);

        if (status == StandardDriverStatusCode.Ok)
        {
            Console.WriteLine("Trigger has been setup successfully. Please input a signal signal onto port: " + port + " channel: " + channel);
        }

        return(status);
    }
Example #25
0
        //...ugh, this will be a tree in the future...
        override protected void OnReordered()
        {
            List <TriggerCondition> conditions = new List <TriggerCondition>();

            foreach (Control c in mControls)
            {
                FunctorEditor f = c as FunctorEditor;
                if (f != null)
                {
                    TriggerCondition cond = f.Tag as TriggerCondition;
                    if (cond != null)
                    {
                        conditions.Add(cond);
                    }
                }
            }
            ParentTriggerNamespace.ReOrderConditions(Trigger, conditions);
        }
Example #26
0
        public virtual SqlBuilder GetTriggerConditionSql <TTriggerEntity>(TriggerCondition <TTriggerEntity> triggerCondition)
            where TTriggerEntity : class
        {
            var conditionBody = triggerCondition.Condition.Body;

            if (conditionBody is BinaryExpression binaryExpression)
            {
                return(GetBinaryExpressionSql(binaryExpression, triggerCondition.ConditionPrefixes));
            }
            else if (conditionBody is MemberExpression memberExpression)
            {
                return(GetUnaryExpressionSql(Expression.IsTrue(memberExpression), triggerCondition.ConditionPrefixes));
            }
            else if (conditionBody is UnaryExpression unaryExpression)
            {
                return(GetUnaryExpressionSql(unaryExpression, triggerCondition.ConditionPrefixes));
            }
            throw new NotImplementedException($"Trigger condition of type {conditionBody.GetType()} is not supported.");
        }
        public List <TriggerCondition> parseConditions(ExecutionCountManager executionCountManager)
        {
            List <TriggerCondition> limitations = new List <TriggerCondition>();

            if (campaignLimitsConfig.ContainsKey("showConditions"))
            {
                JSONObject[] showConditions = (campaignLimitsConfig["showConditions"] as List <object>).Select(e => e as JSONObject).ToArray();
                foreach (var showCondition in showConditions)
                {
                    TriggerCondition limitation = parseCondition(showCondition, executionCountManager);
                    if (limitation != null)
                    {
                        limitations.Add(limitation);
                    }
                }
            }

            return(limitations);
        }
Example #28
0
    public List <ITargettingDescription> GetSelectableTargets(TriggerCondition trigger)
    {
        List <ITargettingDescription> targetList = new List <ITargettingDescription>();

        foreach (CardEffectDescription effect in cardEffects)
        {
            if (effect.targettingType != null && effect.targettingType.RequiresSelection())
            {
                // For creature cards they have effects that trigger at different times
                // make sure the trigger condition matches with the effect

                if (cardType == CardType.CREATURE && trigger != effect.triggerCondition)
                {
                    continue;
                }

                targetList.Add(effect.targettingType);
            }
        }
        return(targetList);
    }
Example #29
0
    public void SetData(Targettable entity, Card c, TriggerCondition trigger, Targettable[][] targets = null)
    {
        source.cardData   = c.cardData.Clone();
        source.controller = c.controller;
        sourceEntity      = entity;

        if (c.cardData.GetImage() && icon)
        {
            Sprite[] sprites = Resources.LoadAll <Sprite>(GameConstants.PATHS.CARD_IMAGES + c.cardData.GetImage().name);
            icon.sprite = sprites[1];
        }

        if (textPrompt != null)
        {
            string effectMessage = "";
            int    targetsIndex  = 0;
            foreach (CardEffectDescription desc in source.cardData.GetEffectsOnTrigger(trigger))
            {
                if (desc.targettingType.RequiresSelection())
                {
                    effectMessage += "<sprite=" + targetsIndex + "> ";
                    targetsIndex++;
                }
                effectMessage += desc.CardText() + '\n';
            }
            textPrompt.SetText(effectMessage);
        }

        triggerCondition = trigger;
        targetList       = targets;

        if (source.controller.isLocalPlayer)
        {
            border.color = allyColor;
        }
        else
        {
            border.color = enemyColor;
        }
    }
 private static bool ResolveCondition(TriggerCondition c, CountryIdeaQuery query)
 {
     if (c.Name == "always")
     {
         return(c.Value == "yes");
     }
     if (c.Name == "tag")
     {
         return(c.Value == query.Tag);
     }
     if (c.Name == "primary_culture")
     {
         return(c.Value == query.PrimaryCulture);
     }
     if (c.Name == "culture_group")
     {
         return(c.Value == query.CultureGroup);
     }
     if (c.Name == "religion")
     {
         return(c.Value == query.Religion);
     }
     if (c.Name == "religion_group")
     {
         return(c.Value == query.ReligionGroup);
     }
     if (c.Name == "region")
     {
         return(c.Value == query.CapitalScopeRegion);
     }
     if (c.Name == "technology_group")
     {
         return(query.TechnologyGroup?.Contains(c.Value) ?? false);
     }
     if (c.Name == "government_reform")
     {
         return(query.Reforms?.Contains(c.Value) ?? false);
     }
     return(false);
 }
Example #31
0
 public RelayTrigger(TriggerAction action, TriggerCondition condition)
 {
     CanExecute = (p, a, e) => { return true; };
     Execute = action;
     Condition = condition;
 }
Example #32
0
 public RelayTrigger(TriggerPredicate predicate, TriggerAction action, TriggerCondition condition)
 {
     CanExecute = predicate;
     Execute = action;
     Condition = condition;
 }
Example #33
0
 private bool CheckCondition(TriggerCondition checkAgainst)
 {
     return (Condition & checkAgainst) == checkAgainst;
 }
Example #34
0
 public AutoNotifyUsagePassiveSkillTrigger(TriggerSkill skill, TriggerActionWithCardsAndPlayers execute, TriggerCondition condition, ICardUsageVerifier verifier)
     : this(skill, new RelayTrigger(null, condition), execute, verifier)
 {
 }
Example #35
0
 public AutoNotifyPassiveSkillTrigger(TriggerSkill skill, TriggerAction execute, TriggerCondition condition)
     : this(skill, new RelayTrigger(execute, condition))
 {
 }
 public AutoNotifyUsagePassiveSkillTrigger(UsageTriggerSkill skill, TriggerPredicate canExecute, TriggerAction execute, TriggerCondition condition)
     : this(skill, new RelayTrigger(canExecute, execute, condition))
 {
 }
Example #37
0
 internal bool TypeSpecificEquals(TriggerCondition value)
 {
     if (this.Property == value.Property && this.Binding == value.Binding && this.LogicalOp == value.LogicalOp && this.Value == value.Value && this.SourceName == value.SourceName)
     {
         return true;
     }
     return false;
 }
            public void OnLoad(ConfigNode configNode)
            {
                condition = ConfigNodeUtil.ParseValue<TriggerCondition>(configNode, "condition");
                position = ConfigNodeUtil.ParseValue<Position>(configNode, "position");
                width = ConfigNodeUtil.ParseValue<float>(configNode, "width");
                height = ConfigNodeUtil.ParseValue<float>(configNode, "height");
                title = ConfigNodeUtil.ParseValue<string>(configNode, "title", "");
                titleColor = ConfigNodeUtil.ParseValue<Color>(configNode, "titleColor");
                parameter = ConfigNodeUtil.ParseValue<string>(configNode, "parameter", "");

                IEnumerable<Type> sectionTypes = ContractConfigurator.GetAllTypes<Section>();
                foreach (ConfigNode sectionNode in configNode.GetNodes())
                {
                    Type type = sectionTypes.Where(t => t.Name == sectionNode.name).FirstOrDefault();
                    if (type == null)
                    {
                        throw new ArgumentException("Couldn't find dialog box section of type " + sectionNode.name);
                    }
                    Section section = (Section)Activator.CreateInstance(type);
                    section.OnLoad(sectionNode);
                    sections.Add(section);
                }
            }