Beispiel #1
0
        ///This was left blank intentionally
        /// Callbacks: all the public functions and methods
        /// Logic: all Combat logic is there, Equip, Unequip, Aim Mode...
        /// Variables: All Variables and Properties


        #region RESET COMBAT VALUES WHEN THE SCRIPT IS CREATED ON THE EDITOR

#if UNITY_EDITOR
        private void Reset()
        {
            var m_Aim = GetComponent <Aim>();

            if (m_Aim == null)
            {
                m_Aim = gameObject.AddComponent <Aim>();
            }

            BoolVar RiderCombatMode = MTools.GetInstance <BoolVar>("RC Combat Mode");

            //MEvent RCCombatMode = MTools.GetInstance<MEvent>("RC Combat Mode");
            MEvent RCEquipedWeapon   = MTools.GetInstance <MEvent>("RC Equiped Weapon");
            MEvent SetCameraSettings = MTools.GetInstance <MEvent>("Set Camera Settings");

            if (RiderCombatMode != null)
            {
                UnityEditor.Events.UnityEventTools.AddPersistentListener(OnCombatMode, RiderCombatMode.SetValue);
            }
            //  if (RCCombatMode != null) UnityEditor.Events.UnityEventTools.AddPersistentListener(OnCombatMode, RCCombatMode.Invoke);
            if (RCEquipedWeapon != null)
            {
                UnityEditor.Events.UnityEventTools.AddPersistentListener(OnEquipWeapon, RCEquipedWeapon.Invoke);
            }

            if (SetCameraSettings != null)
            {
                UnityEditor.Events.UnityEventTools.AddPersistentListener(m_Aim.OnAimSide, SetCameraSettings.Invoke);
            }
        }
Beispiel #2
0
        public void NegativeSquareVar()
        {
            CpModel model        = new CpModel();
            BoolVar boolvar      = model.NewBoolVar("boolvar");
            IntVar  x            = model.NewIntVar(0, 10, "x");
            IntVar  delta        = model.NewIntVar(-5, 5, "delta");
            IntVar  squaredDelta = model.NewIntVar(0, 25, "squaredDelta");

            model.Add(x == 4).OnlyEnforceIf(boolvar);
            model.Add(x == 0).OnlyEnforceIf(boolvar.Not());
            model.Add(delta == x - 5);
            long[,] tuples = { { -5, 25 }, { -4, 16 }, { -3, 9 }, { -2,  4 }, { -1,  1 }, { 0, 0 },
                               {  1,  1 }, {  2,  4 }, {  3, 9 }, {  4, 16 }, {  5, 25 } };
            model.AddAllowedAssignments(new IntVar[] { delta, squaredDelta }).AddTuples(tuples);
            model.Minimize(squaredDelta);

            CpSolver       solver = new CpSolver();
            CpSolverStatus status = solver.Solve(model);

            CpSolverResponse response = solver.Response;

            Assert.Equal(1, solver.Value(boolvar));
            Assert.Equal(4, solver.Value(x));
            Assert.Equal(-1, solver.Value(delta));
            Assert.Equal(1, solver.Value(squaredDelta));
            Assert.Equal(new long[] { 1, 4, -1, 1 }, response.Solution);
            Assert.Equal(1.0, response.ObjectiveValue, 6);
        }
Beispiel #3
0
 public override void FinishDecision(MAnimalBrain brain, int Index)
 {
     //Reset all variables
     Bool  = null;
     Int   = null;
     Float = null;
 }
Beispiel #4
0
    static void Main()
    {
        CpModel model   = new CpModel();
        int     horizon = 100;

        // C# code supports constant of affine expressions.
        IntVar      start_var    = model.NewIntVar(0, horizon, "start");
        IntVar      end_var      = model.NewIntVar(0, horizon, "end");
        BoolVar     presence_var = model.NewBoolVar("presence");
        IntervalVar interval     = model.NewOptionalIntervalVar(start_var, 10, end_var + 2, presence_var, "interval");

        Console.WriteLine(interval);

        // If the size is fixed, a simpler version uses the start expression, the size and the
        // literal.
        IntervalVar fixedSizeIntervalVar =
            model.NewOptionalFixedSizeIntervalVar(start_var, 10, presence_var, "fixed_size_interval_var");

        Console.WriteLine(fixedSizeIntervalVar);

        // A fixed interval can be created using the same API.
        IntervalVar fixedInterval = model.NewOptionalFixedSizeIntervalVar(5, 10, presence_var, "fixed_interval");

        Console.WriteLine(fixedInterval);
    }
Beispiel #5
0
            public static Term generateTerm(Random rng, BoolVar[] arr)
            {
                List <BoolVar> list = new List <BoolVar>(arr);
                BoolVar        var1 = list.ElementAt(rng.Next(0, list.Count));

                list.Remove(var1);
                BoolVar var2 = list.ElementAt(rng.Next(0, list.Count));

                int    generateOperation = rng.Next(0, 10); // 0-3 = addition, 4-7 = multiplication, 8-9 = exclusive or
                string newStackString;
                char   operation;

                if (generateOperation >= 0 && generateOperation <= 3)
                {
                    operation = '+';
                }
                else if (generateOperation >= 4 && generateOperation <= 7)
                {
                    operation = '×';
                }
                else
                {
                    operation = '^';
                }
                newStackString = '(' + var1.var.ToString() + operation + var2.var.ToString() + ')';
                Console.WriteLine(newStackString);

                return(new Term(arr, operation, newStackString));
            }
Beispiel #6
0
            public static Term generateTerm(Random rng, BoolVar[] arr, Term aTerm)
            {
                BoolVar var1 = arr[rng.Next(0, arr.Length)];

                int    generateOperation = rng.Next(0, 10); // 0-3 = addition, 4-7 = multiplication, 8-9 = exclusive or
                string newStackString;
                char   operation;

                if (generateOperation >= 0 && generateOperation <= 3)
                {
                    operation = '+';
                }
                else if (generateOperation >= 4 && generateOperation <= 7)
                {
                    operation = '×';
                }
                else
                {
                    operation = '^';
                }
                newStackString = '(' + aTerm.StackString + operation + var1.var.ToString() + ')';
                Console.WriteLine(newStackString);

                return(new Term(arr, operation, newStackString));
            }
Beispiel #7
0
    private void OnEnable()
    {
        rb = GetComponent <Rigidbody>();
        bb = GetComponent <Blackboard>();

        visionRangeObject = bb.GetGameObjectVar("visionRange").Value;
        healRangeObject   = bb.GetGameObjectVar("healRange").Value;

        iWasJustPanicking = bb.GetBoolVar("wasIPanicking");

        inMotion       = bb.GetBoolVar("inMotion");
        inMotion.Value = false;

        turnSpeed = bb.GetFloatVar("turnSpeed");
        moveSpeed = bb.GetFloatVar("moveSpeed");

        healTimeInSeconds = bb.GetFloatVar("healSpeedInSeconds");

        targettedFriend = bb.GetGameObjectVar("healTarget");

        if (targettedFriend.Value != null)
        {
            lowestHPRatio = targettedFriend.Value.GetComponent <HPValueHandler>().myHP / targettedFriend.Value.GetComponent <HPValueHandler>().maxHP;
        }
    }
Beispiel #8
0
        public virtual void Invoke(BoolVar value)
        {
            for (int i = eventListeners.Count - 1; i >= 0; i--)
            {
                eventListeners[i].OnEventInvoked(value.Value);
            }

            DebugEvent(value.Value);
        }
Beispiel #9
0
    static void Main()
    {
        CpModel model = new CpModel();

        BoolVar x = model.NewBoolVar("x");
        BoolVar y = model.NewBoolVar("y");

        model.AddBoolOr(new ILiteral[] { x, y.Not() });
    }
Beispiel #10
0
        public void LinearExprBuilderCompileTest()
        {
            Console.WriteLine("LinearExprBuilderCompileTest");
            CpModel model = new CpModel();
            IntVar  v1    = model.NewIntVar(-10, 10, "v1");
            IntVar  v2    = model.NewIntVar(-10, 10, "v2");
            BoolVar b1    = model.NewBoolVar("b1");
            BoolVar b2    = model.NewBoolVar("b2");

            long[]     c1 = new long[] { 2L, 4L };
            int[]      c2 = new int[] { 2, 4 };
            LinearExpr e1 = LinearExpr.NewBuilder().AddSum(new IntVar[] { v1, v2 });

            Console.WriteLine(e1.ToString());
            LinearExpr e2 = LinearExpr.NewBuilder().AddSum(new ILiteral[] { b1, b2 });

            Console.WriteLine(e2.ToString());
            LinearExpr e3 = LinearExpr.NewBuilder().AddSum(new BoolVar[] { b1, b2 });

            Console.WriteLine(e3.ToString());
            LinearExpr e4 = LinearExpr.NewBuilder().AddWeightedSum(new IntVar[] { v1, v2 }, c1);

            Console.WriteLine(e4.ToString());
            LinearExpr e5 = LinearExpr.NewBuilder().AddWeightedSum(new ILiteral[] { b1, b2 }, c1);

            Console.WriteLine(e5.ToString());
            LinearExpr e6 = LinearExpr.NewBuilder().AddWeightedSum(new BoolVar[] { b1, b2 }, c1);

            Console.WriteLine(e6.ToString());
            LinearExpr e7 = LinearExpr.NewBuilder().AddWeightedSum(new IntVar[] { v1, v2 }, c2);

            Console.WriteLine(e7.ToString());
            LinearExpr e8 = LinearExpr.NewBuilder().AddWeightedSum(new ILiteral[] { b1, b2 }, c2);

            Console.WriteLine(e8.ToString());
            LinearExpr e9 = LinearExpr.NewBuilder().AddWeightedSum(new BoolVar[] { b1, b2 }, c2);

            Console.WriteLine(e9.ToString());
            LinearExpr e10 = LinearExpr.NewBuilder().Add(v1);

            Console.WriteLine(e10.ToString());
            LinearExpr e11 = LinearExpr.NewBuilder().Add(b1);

            Console.WriteLine(e11.ToString());
            LinearExpr e12 = LinearExpr.NewBuilder().Add(b1.Not());

            Console.WriteLine(e12.ToString());
            LinearExpr e13 = LinearExpr.NewBuilder().AddTerm(v1, -1);

            Console.WriteLine(e13.ToString());
            LinearExpr e14 = LinearExpr.NewBuilder().AddTerm(b1, -1);

            Console.WriteLine(e14.ToString());
            LinearExpr e15 = LinearExpr.NewBuilder().AddTerm(b1.Not(), -2);

            Console.WriteLine(e15.ToString());
        }
Beispiel #11
0
    static void Main()
    {
        InitTaskList();
        int taskCount = GetTaskCount();

        CpModel model = new CpModel();

        IntervalVar[] tasks       = new IntervalVar[taskCount];
        BoolVar[]     taskChoosed = new BoolVar[taskCount];
        IntVar[]      allEnds     = new IntVar[GetEndTaskCount()];

        int endJobCounter = 0;

        foreach (Job j in myJobList)
        {
            BoolVar[] tmp = new BoolVar[j.AlternativeTasks.Count];
            int       i   = 0;
            foreach (Task t in j.AlternativeTasks)
            {
                long ti = taskIndexes[t.Name];
                taskChoosed[ti] = model.NewBoolVar(t.Name + "_choose");
                tmp[i++]        = taskChoosed[ti];
                IntVar start = model.NewIntVar(0, 10000, t.Name + "_start");
                IntVar end   = model.NewIntVar(0, 10000, t.Name + "_end");
                tasks[ti] = model.NewIntervalVar(start, t.Duration, end, t.Name + "_interval");
                if (j.Successor == null)
                {
                    allEnds[endJobCounter++] = end;
                }
                if (!tasksToEquipment.ContainsKey(t.Equipment))
                {
                    tasksToEquipment[t.Equipment] = new List <IntervalVar>();
                }
                tasksToEquipment[t.Equipment].Add(tasks[ti]);
            }
            model.AddExactlyOne(tmp);
        }

        foreach (KeyValuePair <long, List <IntervalVar> > pair in tasksToEquipment)
        {
            model.AddNoOverlap(pair.Value);
        }

        IntVar makespan = model.NewIntVar(0, 100000, "makespan");

        model.AddMaxEquality(makespan, allEnds);
        model.Minimize(makespan);

        // Create the solver.
        CpSolver solver = new CpSolver();

        // Solve the problem.
        solver.Solve(model);
        Console.WriteLine(solver.ResponseStats());
    }
Beispiel #12
0
        void Reset()
        {
            MalbersTools.SetLayer(transform, 20);     //Set all the Childrens to Animal Layer   .
            gameObject.tag = "Animal";                //Set the Animal to Tag Animal
            AnimatorSpeed  = 1;

            Anim = GetComponentInParent <Animator>();           //Cache the Animator
            RB   = GetComponentInParent <Rigidbody>();          //Catche the Rigid Body

            if (RB == null)
            {
                RB                        = gameObject.AddComponent <Rigidbody>();
                RB.useGravity             = false;
                RB.constraints            = RigidbodyConstraints.FreezeRotation;
                RB.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
            }

            speedSets = new List <MSpeedSet>(1)
            {
                new MSpeedSet()
                {
                    name = "Ground",
                    StartVerticalIndex = new Scriptables.IntReference(1),
                    TopIndex           = new Scriptables.IntReference(2),
                    states             = new  List <StateID>(2)
                    {
                        MalbersTools.GetInstance <StateID>("Idle"), MalbersTools.GetInstance <StateID>("Locomotion")
                    },
                    Speeds = new  List <MSpeed>(3)
                    {
                        new MSpeed("Walk", 1, 4, 4), new MSpeed("Trot", 2, 4, 4), new MSpeed("Run", 3, 4, 4)
                    }
                }
            };

            BoolVar  useCameraInp = MalbersTools.GetInstance <BoolVar>("Global Camera Input");
            BoolVar  globalSmooth = MalbersTools.GetInstance <BoolVar>("Global Smooth Vertical");
            FloatVar globalTurn   = MalbersTools.GetInstance <FloatVar>("Global Turn Multiplier");

            if (useCameraInp != null)
            {
                useCameraInput.Variable = useCameraInp;
            }
            if (globalSmooth != null)
            {
                SmoothVertical.Variable = globalSmooth;
            }
            if (globalTurn != null)
            {
                TurnMultiplier.Variable = globalTurn;
            }

            CalculateHeight();
        }
Beispiel #13
0
    // Called when the state is enabled
    void OnEnable()
    {
        rb = GetComponent <Rigidbody>();
        bb = GetComponent <Blackboard>();

        turnSpeed   = bb.GetFloatVar("turnSpeed");
        attackSpeed = bb.GetFloatVar("attackSpeedInSeconds");

        attackRangeObject = bb.GetGameObjectVar("attackRange").Value.GetComponent <ScanSightArea>();

        inMotion       = bb.GetBoolVar("inMotion");
        amIAtObjective = bb.GetBoolVar("atObjective");
    }
        static public Equation generateBooleanString()    // We've limited the number of terms to 4
        {
            Random rng = new Random();

            BoolVar[] arr = BoolVar.getRandomArray(rng);

            int termsLeft       = 4;
            int firstLevelTerms = rng.Next(2, 4);     // First Level Terms are the outermost in terms of parenthesis

            termsLeft -= firstLevelTerms;


            int chosen;

            Term[] terms;
            string final;
            bool   b = Convert.ToBoolean(rng.Next(0, 2));

            if (termsLeft == 2)
            {
                terms    = new Term[2];
                terms[0] = Term.generateTerm(rng, arr);
                terms[1] = Term.generateTerm(rng, arr);
                terms[0] = Term.generateTerm(rng, arr, terms[0]);
                terms[1] = Term.generateTerm(rng, arr, terms[1]);
                b        = Convert.ToBoolean(rng.Next(0, 2));
                chosen   = b == true ? 0 : 1;
                final    = terms[Convert.ToInt16(b)].combineTerms(rng, arr, terms[chosen]).StackString;
                Console.WriteLine(true);
            }
            else    // termsLeft == 1
            {
                terms                   = new Term[3];
                terms[0]                = Term.generateTerm(rng, arr);
                terms[1]                = Term.generateTerm(rng, arr);
                terms[2]                = Term.generateTerm(rng, arr);
                chosen                  = rng.Next(0, 3);
                terms[chosen]           = Term.generateTerm(rng, arr, terms[(chosen + 1) % 2]);
                chosen                  = rng.Next(0, 2);
                terms[chosen]           = terms[chosen].combineTerms(rng, arr, terms[2]);
                terms[(chosen + 1) % 2] = terms[(chosen + 1) % 2].combineTerms(rng, arr, terms[chosen]);
                final                   = terms[(chosen + 1) % 2].StackString;
                Console.WriteLine(false);
            }
            Equation eq = new Equation(arr, final);

            Console.WriteLine(eq.StackString);

            return(eq);
        }
Beispiel #15
0
    private void OnEnable()
    {
        rb = GetComponent <Rigidbody>();
        bb = GetComponent <Blackboard>();

        turnSpeed = bb.GetFloatVar("turnSpeed");
        moveSpeed = bb.GetFloatVar("moveSpeed");

        visionRangeObject = bb.GetGameObjectVar("visionRange").Value.GetComponent <ScanSightArea>();

        inMotion = bb.GetBoolVar("inMotion");

        Invoke("GetAPositionToMoveTo", Time.maximumDeltaTime);
    }
Beispiel #16
0
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            EditorGUILayout.Space();

            BoolVar var = EditorGUILayout.ObjectField("Toggle Variable", toggleTarget.ToggleVar, typeof(BoolVar), false) as BoolVar;

            if (var != toggleTarget.ToggleVar)
            {
                toggleTarget.ToggleVar = var;
                EditorUtility.SetDirty(toggleTarget);
            }
        }
Beispiel #17
0
            public override object DeepCopy()
            {
                BoolVar newVar = new BoolVar(_parent, _trueValue, _falseValue);

                copyAttributes(this, newVar);
                newVar._tag    = _tag;
                newVar._parent = _parent;
                if (newVar.Values != null)
                {
                    for (int i = 0; i < newVar.Values.Count; i++)
                    {
                        newVar.Values[i] = (BoolVar)Values[i].DeepCopy();
                    }
                }
                return(newVar);
            }
Beispiel #18
0
    public override void OnEnter()
    {
        base.OnEnter();

        if (variable == null)
        {
            return;
        }
        if (!isInit)
        {
            variable = Fsm.FindVar <BoolVar>(variable.Name);
            isInit   = true;
        }

        variable.Value = value;
    }
Beispiel #19
0
        public override void Reset()
        {
            whenXIsPst = new ConcreteBoolVar();
            newValueXP = new ConcreteBoolVar();
            whenXIsNgt = new ConcreteBoolVar();
            newValueXN = new ConcreteBoolVar();

            whenYIsPst = new ConcreteBoolVar();
            newValueYP = new ConcreteBoolVar();
            whenYIsNgt = new ConcreteBoolVar();
            newValueYN = new ConcreteBoolVar();

            whenZIsPst = new ConcreteBoolVar();
            newValueZP = new ConcreteBoolVar();
            whenZIsNgt = new ConcreteBoolVar();
            newValueZN = new ConcreteBoolVar();
        }
Beispiel #20
0
    private void OnEnable()
    {
        rb = GetComponent <Rigidbody>();
        bb = GetComponent <Blackboard>();

        targettedFriend = bb.GetGameObjectVar("healTarget");

        visionRangeObject = bb.GetGameObjectVar("visionRange").Value.GetComponent <ScanSightArea>();
        healRangeObject   = bb.GetGameObjectVar("healRange").Value.GetComponent <ScanSightArea>();

        iWasJustPanicking = bb.GetBoolVar("wasIPanicking");
        inMotion          = bb.GetBoolVar("inMotion");

        turnSpeed = bb.GetFloatVar("turnSpeed");
        moveSpeed = bb.GetFloatVar("moveSpeed");

        lowestHPRatio = 2;
    }
Beispiel #21
0
        /// <summary>
        /// Draw a bool variable.
        /// <param name="rect">The position to draw the variable.</param>
        /// <param name="boolVar">The bool variable to be drawn.</param>
        /// </summary>
        static void DrawBoolVar(Rect rect, BoolVar boolVar)
        {
            rect.yMin += 3f;
            rect.yMax -= 2f;
            rect.xMin += 6f;
            rect.xMax -= 6f;

            DrawName(new Rect(rect.x, rect.y, c_LargeNameWidth, rect.height), boolVar);

            rect.xMin += c_LargeNameWidth + c_Space;
            rect.xMax -= c_MinusButtonWidth + c_RightPadding;
            EditorGUI.BeginChangeCheck();
            var newValue = EditorGUI.Toggle(rect, GUIContent.none, boolVar.Value);

            if (EditorGUI.EndChangeCheck() && newValue != boolVar.Value)
            {
                // Register undo
                if (boolVar.blackboard != null)
                {
                    #if UNITY_4_0_0 || UNITY_4_1 || UNITY_4_2
                    Undo.RegisterUndo(boolVar.blackboard, "Variable Value");
                    #else
                    Undo.RecordObject(boolVar.blackboard, "Variable Value");
                    #endif
                }

                // Update variable value
                boolVar.Value = newValue;
                // Set blackboard dirty flag
                if (boolVar.blackboard != null)
                {
                    EditorUtility.SetDirty(boolVar.blackboard);
                }
            }

            rect.x    += rect.width + 2f;
            rect.width = c_MinusButtonWidth;
            rect.yMin -= 2f;
            rect.yMax += 2f;
            if (GUI.Button(rect, s_Styles.iconToolbarMinus, s_Styles.invisbleButton))
            {
                s_VariableToRemove = boolVar;
            }
        }
Beispiel #22
0
    static void Main()
    {
        CpModel model = new CpModel();

        BoolVar x = model.NewBoolVar("x");
        BoolVar y = model.NewBoolVar("y");
        BoolVar b = model.NewBoolVar("b");

        //  First version using a half-reified bool and.
        model.AddBoolAnd(new ILiteral[] { x, y.Not() }).OnlyEnforceIf(b);

        // Second version using implications.
        model.AddImplication(b, x);
        model.AddImplication(b, y.Not());

        // Third version using bool or.
        model.AddBoolOr(new ILiteral[] { b.Not(), x });
        model.AddBoolOr(new ILiteral[] { b.Not(), y.Not() });
    }
Beispiel #23
0
    private void OnEnable()
    {
        rb = GetComponent <Rigidbody>();
        bb = GetComponent <Blackboard>();

        moveSpeed   = bb.GetFloatVar("moveSpeed");
        turnSpeed   = bb.GetFloatVar("turnSpeed");
        attackSpeed = bb.GetFloatVar("attackSpeedInSeconds");

        visionRangeObject = bb.GetGameObjectVar("visionRange").Value.GetComponent <ScanSightArea>();
        attackRangeObject = bb.GetGameObjectVar("attackRange").Value.GetComponent <ScanSightArea>();

        inMotion       = bb.GetBoolVar("inMotion");
        amIAtObjective = bb.GetBoolVar("atObjective");

        targettedEnemy = bb.GetGameObjectVar("targetEnemy");

        invokedTeleport = false;
        invokeScan      = false;
    }
            public static Term generateTerm(Random rng, BoolVar[] arr, Term aTerm)
            {
                BoolVar var1 = arr[rng.Next(0, arr.Length)];

                bool   operation = Convert.ToBoolean(rng.Next(0, 2));  // 0 means addition, 1 means multiplication
                string newStackString;

                if (operation)
                {
                    newStackString = '(' + aTerm.StackString + '*' + var1.var.ToString() + ')';
                }
                else
                {
                    newStackString = '(' + aTerm.StackString + '+' + var1.var.ToString() + ')';
                }
                Console.WriteLine(newStackString);


                return(new Term(arr, operation, newStackString));
            }
Beispiel #25
0
        private void Reset()
        {
            BoolVar RiderCombatMode = MalbersTools.GetInstance <BoolVar>("RC Combat Mode");

            MEvent RCCombatMode      = MalbersTools.GetInstance <MEvent>("RC Combat Mode");
            MEvent RCEquipedWeapon   = MalbersTools.GetInstance <MEvent>("RC Equiped Weapon");
            MEvent SetCameraSettings = MalbersTools.GetInstance <MEvent>("Set Camera Settings");

            if (RiderCombatMode != null)
            {
                UnityEditor.Events.UnityEventTools.AddPersistentListener(OnCombatMode, RiderCombatMode.SetValue);
            }
            if (RCCombatMode != null)
            {
                UnityEditor.Events.UnityEventTools.AddPersistentListener(OnCombatMode, RCCombatMode.Invoke);
            }
            if (RCEquipedWeapon != null)
            {
                UnityEditor.Events.UnityEventTools.AddPersistentListener(OnEquipWeapon, RCEquipedWeapon.Invoke);
            }

            if (SetCameraSettings != null)
            {
                UnityEditor.Events.UnityEventTools.AddPersistentListener(OnAiming, SetCameraSettings.Invoke);
                UnityEditor.Events.UnityEventTools.AddPersistentListener(OnAimSide, SetCameraSettings.Invoke);
            }

            UnityEditor.Events.UnityEventTools.AddStringPersistentListener(OnEquipWeapon, DisableMountInput, "Attack1");
            UnityEditor.Events.UnityEventTools.AddStringPersistentListener(OnEquipWeapon, DisableMountInput, "Attack2");

            UnityEditor.Events.UnityEventTools.AddStringPersistentListener(OnUnequipWeapon, EnableMountInput, "Attack1");
            UnityEditor.Events.UnityEventTools.AddStringPersistentListener(OnUnequipWeapon, EnableMountInput, "Attack2");

            var aimer = GetComponent <Aim>();

            if (aimer == null)
            {
                aimer = gameObject.AddComponent <Aim>();
            }
        }
Beispiel #26
0
        public void LinearExprStaticCompileTest()
        {
            Console.WriteLine("LinearExprStaticCompileTest");
            CpModel model = new CpModel();
            IntVar  v1    = model.NewIntVar(-10, 10, "v1");
            IntVar  v2    = model.NewIntVar(-10, 10, "v2");
            BoolVar b1    = model.NewBoolVar("b1");
            BoolVar b2    = model.NewBoolVar("b2");

            long[]     c1 = new long[] { 2L, 4L };
            int[]      c2 = new int[] { 2, 4 };
            LinearExpr e1 = LinearExpr.Sum(new IntVar[] { v1, v2 });

            Console.WriteLine(e1.ToString());
            LinearExpr e2 = LinearExpr.Sum(new ILiteral[] { b1, b2 });

            Console.WriteLine(e2.ToString());
            LinearExpr e3 = LinearExpr.Sum(new BoolVar[] { b1, b2 });

            Console.WriteLine(e3.ToString());
            LinearExpr e4 = LinearExpr.WeightedSum(new IntVar[] { v1, v2 }, c1);

            Console.WriteLine(e4.ToString());
            LinearExpr e5 = LinearExpr.WeightedSum(new ILiteral[] { b1, b2 }, c1);

            Console.WriteLine(e5.ToString());
            LinearExpr e6 = LinearExpr.WeightedSum(new BoolVar[] { b1, b2 }, c1);

            Console.WriteLine(e6.ToString());
            LinearExpr e7 = LinearExpr.WeightedSum(new IntVar[] { v1, v2 }, c2);

            Console.WriteLine(e7.ToString());
            LinearExpr e8 = LinearExpr.WeightedSum(new ILiteral[] { b1, b2 }, c2);

            Console.WriteLine(e8.ToString());
            LinearExpr e9 = LinearExpr.WeightedSum(new BoolVar[] { b1, b2 }, c2);

            Console.WriteLine(e9.ToString());
        }
Beispiel #27
0
        public void LinearExprBoolVarOperatorTest()
        {
            Console.WriteLine("LinearExprBoolVarOperatorTest");
            CpModel    model = new CpModel();
            BoolVar    v     = model.NewBoolVar("v");
            LinearExpr e     = v * 2;

            Console.WriteLine(e);
            e = 2 * v;
            Console.WriteLine(e);
            e = v + 2;
            Console.WriteLine(e);
            e = 2 + v;
            Console.WriteLine(e);
            e = v;
            Console.WriteLine(e);
            e = -v;
            Console.WriteLine(e);
            e = 1 - v;
            Console.WriteLine(e);
            e = v - 1;
            Console.WriteLine(e);
        }
Beispiel #28
0
    public override void OnEnter()
    {
        base.OnEnter();

        if (variable == null)
        {
            return;
        }
        if (!isInit)
        {
            variable = Fsm.FindVar <BoolVar>(variable.Name);
            isInit   = true;
        }

        if (variable.Value)
        {
            Fsm.FireEvent("YES");
        }
        else
        {
            Fsm.FireEvent("NO");
        }
    }
Beispiel #29
0
            public static BoolVar[] getRandomArray(Random rng)
            {
                int numVars = rng.Next(2, 5);

                BoolVar[] arr = new BoolVar[numVars];
                Console.WriteLine(numVars);

                char c;
                bool b;

                for (int i = 0; i < numVars; i++)
                {
                    c = (char)(97 + i);
                    b = Convert.ToBoolean(rng.Next(0, 2));
                    if (b)
                    {
                        c = (char)(Convert.ToInt16(c) - 32);
                    }
                    arr[i] = new BoolVar(c, b);
                }

                return(arr);
            }
Beispiel #30
0
    static void Main()
    {
        // Create the CP-SAT model.
        CpModel model = new CpModel();

        // Declare our two primary variables.
        IntVar x = model.NewIntVar(0, 10, "x");
        IntVar y = model.NewIntVar(0, 10, "y");

        // Declare our intermediate boolean variable.
        BoolVar b = model.NewBoolVar("b");

        // Implement b == (x >= 5).
        model.Add(x >= 5).OnlyEnforceIf(b);
        model.Add(x < 5).OnlyEnforceIf(b.Not());

        // Create our two half-reified constraints.
        // First, b implies (y == 10 - x).
        model.Add(y == 10 - x).OnlyEnforceIf(b);
        // Second, not(b) implies y == 0.
        model.Add(y == 0).OnlyEnforceIf(b.Not());

        // Search for x values in increasing order.
        model.AddDecisionStrategy(new IntVar[] { x }, DecisionStrategyProto.Types.VariableSelectionStrategy.ChooseFirst,
                                  DecisionStrategyProto.Types.DomainReductionStrategy.SelectMinValue);

        // Create the solver.
        CpSolver solver = new CpSolver();

        // Force solver to follow the decision strategy exactly.
        // Tell the solver to search for all solutions.
        solver.StringParameters = "search_branching:FIXED_SEARCH, enumerate_all_solutions:true";

        VarArraySolutionPrinter cb = new VarArraySolutionPrinter(new IntVar[] { x, y, b });

        solver.Solve(model, cb);
    }