Exemplo n.º 1
0
        public void PropertyChanged()
        {
            GameObject.CreateProperty <float>("X", "Layout", "blah", 1);

            var a = new GameObject();
            var p = a.Properties.Get <float>("X");

            _wasCalled = false;
            float oldValue = 1;
            float newValue = 11;

            p.Changed += OnPropertyChanged;
            p.Changed += (s, e) => Assert.AreEqual(a, s);
            p.Changed += (s, e) => Assert.AreEqual(p, e.Property);
            p.Changed += (s, e) => Assert.AreEqual(oldValue, e.OldValue);
            p.Changed += (s, e) => Assert.AreEqual(newValue, e.NewValue);
            p.Changed += (s, e) => Assert.AreEqual(newValue, e.CoercedValue);

            a.SetValue("X", 11f);

            Assert.IsTrue(_wasCalled);

            // Setting an equal value does not trigger event.
            _wasCalled = false;
            oldValue   = 11;
            a.SetValue("X", 11f);
            Assert.IsFalse(_wasCalled);

            // Test de-registration of event handler.
            _wasCalled = false;
            p.Changed -= OnPropertyChanged;
            newValue   = 5;
            p.Value    = 5;
            Assert.IsFalse(_wasCalled);
        }
Exemplo n.º 2
0
            public void AddToTemplate(IUIRenderer renderer, string style, GameObject template)
            {
                // Add this property to the game object. The value is set to:
                // - the value of the Renderer/Theme, or
                // - the overridden default value, or
                // - no value (= the global default value of the GamePropertyMetadata).

                T value;

                if (renderer.GetAttribute(style, Name, out value))
                {
                    // Set value from renderer/theme.
                    template.SetValue(Name, value);
                }
                else if (OverridesDefaultValue)
                {
                    // Set overridden default value.
                    template.SetValue(Name, DefaultValue);
                }
                else
                {
                    // Use default value. (Add property without local value.)
                    template.Properties.Add <T>(Name);
                }
            }
Exemplo n.º 3
0
        public void Template()
        {
            GameObject.CreateProperty <float>("X", "Layout", "blah", 0);
            GameObject.CreateProperty <float>("Y", "Layout", "blah", 0);
            GameObject.CreateProperty <float>("Z", "Layout", "blah", 0);
            GameObject.CreateProperty <float>("W", "Layout", "blah", 0);

            var t = new GameObject();

            t.SetValue("X", 10.0f);
            t.SetValue("Y", 20.0f);
            t.SetValue("Z", 30.0f);

            var a = new GameObject();

            Assert.AreEqual(0, a.GetValue <float>("X"));

            a.Template = t;

            Assert.AreEqual(10, a.GetValue <float>("X"));
            Assert.AreEqual(20, a.GetValue <float>("Y"));
            Assert.AreEqual(30, a.GetValue <float>("Z"));

            Assert.IsFalse(a.Properties.Get <float>("X").HasLocalValue);
            Assert.IsFalse(a.Properties.Get <float>("Y").HasLocalValue);
            Assert.IsFalse(a.Properties.Get <float>("Z").HasLocalValue);

            a.SetValue("Y", 999.0f);

            Assert.AreEqual(10, a.GetValue <float>("X"));
            Assert.AreEqual(999, a.GetValue <float>("Y"));
            Assert.AreEqual(30, a.GetValue <float>("Z"));

            Assert.IsFalse(a.Properties.Get <float>("X").HasLocalValue);
            Assert.IsTrue(a.Properties.Get <float>("Y").HasLocalValue);
            Assert.IsFalse(a.Properties.Get <float>("Z").HasLocalValue);

            a.Properties.Get <float>("Y").Reset();

            Assert.AreEqual(10, a.GetValue <float>("X"));
            Assert.AreEqual(20, a.GetValue <float>("Y"));
            Assert.AreEqual(30, a.GetValue <float>("Z"));

            Assert.IsFalse(a.Properties.Get <float>("X").HasLocalValue);
            Assert.IsFalse(a.Properties.Get <float>("Y").HasLocalValue);
            Assert.IsFalse(a.Properties.Get <float>("Z").HasLocalValue);

            // Enumerate properties.
            Assert.AreEqual(3, ((IEnumerable)a.Properties).Cast <IGameProperty>().Count());

            _wasCalled         = false;
            a.TemplateChanged += (s, e) => _wasCalled = true;

            a.Template = t;
            Assert.IsFalse(_wasCalled);

            a.Template = null;
            Assert.IsTrue(_wasCalled);
        }
Exemplo n.º 4
0
        public void PropertyChanging()
        {
            GameObject.CreateProperty <float>("X", "Layout", "blah", 1);

            var a = new GameObject();
            var p = a.Properties.Get <float>("X");

            _wasCalled = false;
            float oldValue = 1;
            float newValue = 11;

            p.Changing += OnPropertyChanged;
            p.Changing += (s, e) => e.CoercedValue = 10;
            p.Changing += (s, e) => Assert.AreEqual(a, s);
            p.Changing += (s, e) => Assert.AreEqual(p, e.Property);
            p.Changing += (s, e) => Assert.AreEqual(oldValue, e.OldValue);
            p.Changing += (s, e) => Assert.AreEqual(newValue, e.NewValue);
            p.Changing += (s, e) => Assert.LessOrEqual(e.CoercedValue, 10);

            a.SetValue("X", 11f);

            Assert.IsTrue(_wasCalled);
            Assert.AreEqual(10, p.Value);

            // Test de-registration of event handler.
            _wasCalled  = false;
            p.Changing -= OnPropertyChanged;
            oldValue    = 10;
            newValue    = 5;
            p.Value     = 5;
            Assert.IsFalse(_wasCalled);
        }
Exemplo n.º 5
0
    private GameObject[] InstantiateAllCars()
    {
        int carsLength = carPrefabs.Length;
        var result     = new GameObject[carsLength * 2];

        for (int i = 0; i < carPrefabs.Length; i++)
        {
            //Account for object duplication
            var resultIndex = i * 2;
            var g           = Instantiate(carPrefabs[i]);
            var g1          = Instantiate(carPrefabs[i]);
            g.SetActive(false);
            g1.SetActive(false);
            result.SetValue(g, resultIndex);
            result.SetValue(g1, resultIndex + 1);
        }
        return(result);
    }
Exemplo n.º 6
0
        public GameObject[] ShiftLeft(GameObject newTopLeft, GameObject newMidLeft, GameObject newLowLeft)
        {
            GameObject[] moveOut = new GameObject[3];
            moveOut.SetValue(topRight, 0);
            moveOut.SetValue(midRight, 1);
            moveOut.SetValue(lowRight, 2);

            topRight = topCenter;
            midRight = midCenter;
            lowRight = lowCenter;

            topCenter = topLeft;
            midCenter = midLeft;
            lowCenter = lowLeft;

            topLeft = newTopLeft;
            midLeft = newMidLeft;
            lowLeft = newLowLeft;

            return(moveOut);
        }
Exemplo n.º 7
0
        public void NotifyPropertyChanged()
        {
            GameObject.CreateProperty <float>("X", "Layout", "blah", 0);

            var a = new GameObject();

            ((INotifyPropertyChanged)a).PropertyChanged += OnPropertyChanged;
            ((INotifyPropertyChanged)a).PropertyChanged += (s, e) => Assert.AreEqual(a, s);
            ((INotifyPropertyChanged)a).PropertyChanged += (s, e) => Assert.AreEqual("X", e.PropertyName);

            a.SetValue("X", 11f);

            Assert.IsTrue(_wasCalled);

            // Test de-registering event handler
            _wasCalled = false;
            ((INotifyPropertyChanged)a).PropertyChanged -= OnPropertyChanged;

            a.SetValue("X", 12f);

            Assert.IsFalse(_wasCalled);
        }
Exemplo n.º 8
0
    private GameObject[] CreateTrianglesFor(Rotation[] rotations)
    {
        var triangles = new GameObject[rotations.Length];
        int index     = 0;

        foreach (Rotation rotation in rotations)
        {
            var pos      = new Vector3(0, 0, 1);
            var rot      = Quaternion.Euler(0, 0f, (float)rotation);
            var triangle = CreateTriangle(pos, rot);
            triangles.SetValue(triangle, index);
            index++;
        }
        return(triangles);
    }
Exemplo n.º 9
0
    private void SpawnHolePieceMenu()
    {
        GameObject holePieceObject = Instantiate(PieceWithHoles, transform.position, transform.rotation);

        GameObject[] coverColliders = new GameObject[numberOfHoles];
        GameObject[] covers         = new GameObject[numberOfHoles];

        for (int i = 0; i < numberOfHoles; i++)
        {
            int coverIndex = 7 + i;
            coverColliders.SetValue(holePieceObject.transform.GetChild(i).gameObject, i);
            covers.SetValue(holePieceObject.transform.GetChild(coverIndex).gameObject, i);
        }

        int skipDeleting  = UnityEngine.Random.Range(1, 7);
        int skipDeleting2 = skipDeleting - 1;

        for (int i = 0; i < numberOfHoles; i++)
        {
            HoleColliderScript currentCollider = coverColliders[i].GetComponent <HoleColliderScript>();

            currentCollider.GameControllerObject = GameController;

            if (i != skipDeleting && i != skipDeleting2)
            {
                Destroy(covers[i].gameObject);

                currentCollider.connectedCollider = coverColliders[skipDeleting];
            }
            else
            {
                currentCollider.noHole = true;

                if (i == skipDeleting2)
                {
                    HoleColliderScript colliderToConnect = coverColliders[skipDeleting].GetComponent <HoleColliderScript>();
                    colliderToConnect.connectedCollider = coverColliders[i].gameObject;
                    colliderToConnect.connected         = true;
                }
            }
        }
    }
    private CharacterConteiner ManageBattle()
    {
        List <GameObject> turnList = new List <GameObject>();

        GameObject[] playerTeam;
        GameObject[] enemyTeam;
        GameObject[] aux;
        int          initiativeRoll;

        aux        = GameObject.FindGameObjectsWithTag("Character");
        playerTeam = GameObject.FindGameObjectsWithTag("Player");
        enemyTeam  = GameObject.FindGameObjectsWithTag("Enemy");

        GameObject[] characters = new GameObject[aux.Length];

        for (int i = 0; i < aux.Length; i++)
        {
            GameObject objectMain = aux[i].transform.parent.gameObject;
            characters.SetValue(objectMain, i);
        }

        foreach (var character in characters)
        {
            initiativeRoll = Random.Range(0, 3);
            character.GetComponent <CharacterDisplay>().character.charCurrentSpeed += initiativeRoll;
            turnList.Add(character);
        }

        turnList = turnList.OrderByDescending(x => x.GetComponent <CharacterDisplay>().character.charCurrentSpeed).ToList();

        foreach (var action in turnList)
        {
            if (action.GetComponent <CharacterDisplay>().CompareTag("Player") && !action.GetComponent <CharacterDisplay>().character.alreadyAttacked)
            {
                player        = action.GetComponent <CharacterDisplay>().character;
                player.active = true;

                print("Seclected: " + player.charClass + " Count: " + count + " Turn List: " + turnList.Count);

                return(player);
            }
            if (action.GetComponent <CharacterDisplay>().CompareTag("Enemy") && !action.GetComponent <CharacterDisplay>().character.alreadyAttacked)
            {
                enemy = action.GetComponent <CharacterDisplay>().character;
                EnemyAction(enemy);
            }
        }

        if (count == turnList.Count)
        {
            count = 0;
            turn++;

            for (int i = 0; i < playerTeam.Length; i++)
            {
                playerTeam[i].GetComponent <CharacterDisplay>().character.alreadyAttacked = false;
            }
            for (int i = 0; i < enemyTeam.Length; i++)
            {
                enemyTeam[i].GetComponent <CharacterDisplay>().character.alreadyAttacked = false;
            }
            ManageBattle();
        }

        return(player);
    }
Exemplo n.º 11
0
        public void Template()
        {
            GameObject.CreateProperty<float>("X", "Layout", "blah", 0);
              GameObject.CreateProperty<float>("Y", "Layout", "blah", 0);
              GameObject.CreateProperty<float>("Z", "Layout", "blah", 0);
              GameObject.CreateProperty<float>("W", "Layout", "blah", 0);

              var t = new GameObject();

              t.SetValue("X", 10.0f);
              t.SetValue("Y", 20.0f);
              t.SetValue("Z", 30.0f);

              var a = new GameObject();

              Assert.AreEqual(0, a.GetValue<float>("X"));

              a.Template = t;

              Assert.AreEqual(10, a.GetValue<float>("X"));
              Assert.AreEqual(20, a.GetValue<float>("Y"));
              Assert.AreEqual(30, a.GetValue<float>("Z"));

              Assert.IsFalse(a.Properties.Get<float>("X").HasLocalValue);
              Assert.IsFalse(a.Properties.Get<float>("Y").HasLocalValue);
              Assert.IsFalse(a.Properties.Get<float>("Z").HasLocalValue);

              a.SetValue("Y", 999.0f);

              Assert.AreEqual(10, a.GetValue<float>("X"));
              Assert.AreEqual(999, a.GetValue<float>("Y"));
              Assert.AreEqual(30, a.GetValue<float>("Z"));

              Assert.IsFalse(a.Properties.Get<float>("X").HasLocalValue);
              Assert.IsTrue(a.Properties.Get<float>("Y").HasLocalValue);
              Assert.IsFalse(a.Properties.Get<float>("Z").HasLocalValue);

              a.Properties.Get<float>("Y").Reset();

              Assert.AreEqual(10, a.GetValue<float>("X"));
              Assert.AreEqual(20, a.GetValue<float>("Y"));
              Assert.AreEqual(30, a.GetValue<float>("Z"));

              Assert.IsFalse(a.Properties.Get<float>("X").HasLocalValue);
              Assert.IsFalse(a.Properties.Get<float>("Y").HasLocalValue);
              Assert.IsFalse(a.Properties.Get<float>("Z").HasLocalValue);

              // Enumerate properties.
              Assert.AreEqual(3, ((IEnumerable)a.Properties).Cast<IGameProperty>().Count());

              _wasCalled = false;
              a.TemplateChanged += (s, e) => _wasCalled = true;

              a.Template = t;
              Assert.IsFalse(_wasCalled);

              a.Template = null;
              Assert.IsTrue(_wasCalled);
        }
Exemplo n.º 12
0
        public void PropertyChanging()
        {
            GameObject.CreateProperty<float>("X", "Layout", "blah", 1);

              var a = new GameObject();
              var p = a.Properties.Get<float>("X");

              _wasCalled = false;
              float oldValue = 1;
              float newValue = 11;
              p.Changing += OnPropertyChanged;
              p.Changing += (s, e) => e.CoercedValue = 10;
              p.Changing += (s, e) => Assert.AreEqual(a, s);
              p.Changing += (s, e) => Assert.AreEqual(p, e.Property);
              p.Changing += (s, e) => Assert.AreEqual(oldValue, e.OldValue);
              p.Changing += (s, e) => Assert.AreEqual(newValue, e.NewValue);
              p.Changing += (s, e) => Assert.LessOrEqual(e.CoercedValue, 10);

              a.SetValue("X", 11f);

              Assert.IsTrue(_wasCalled);
              Assert.AreEqual(10, p.Value);

              // Test de-registration of event handler.
              _wasCalled = false;
              p.Changing -= OnPropertyChanged;
              oldValue = 10;
              newValue = 5;
              p.Value = 5;
              Assert.IsFalse(_wasCalled);
        }
Exemplo n.º 13
0
        public void PropertyChanged()
        {
            GameObject.CreateProperty<float>("X", "Layout", "blah", 1);

              var a = new GameObject();
              var p = a.Properties.Get<float>("X");

              _wasCalled = false;
              float oldValue = 1;
              float newValue = 11;
              p.Changed += OnPropertyChanged;
              p.Changed += (s, e) => Assert.AreEqual(a, s);
              p.Changed += (s, e) => Assert.AreEqual(p, e.Property);
              p.Changed += (s, e) => Assert.AreEqual(oldValue, e.OldValue);
              p.Changed += (s, e) => Assert.AreEqual(newValue, e.NewValue);
              p.Changed += (s, e) => Assert.AreEqual(newValue, e.CoercedValue);

              a.SetValue("X", 11f);

              Assert.IsTrue(_wasCalled);

              // Setting an equal value does not trigger event.
              _wasCalled = false;
              oldValue = 11;
              a.SetValue("X", 11f);
              Assert.IsFalse(_wasCalled);

              // Test de-registration of event handler.
              _wasCalled = false;
              p.Changed -= OnPropertyChanged;
              newValue = 5;
              p.Value = 5;
              Assert.IsFalse(_wasCalled);
        }
Exemplo n.º 14
0
        public void NotifyPropertyChanged()
        {
            GameObject.CreateProperty<float>("X", "Layout", "blah", 0);

              var a = new GameObject();

              ((INotifyPropertyChanged)a).PropertyChanged += OnPropertyChanged;
              ((INotifyPropertyChanged)a).PropertyChanged += (s, e) => Assert.AreEqual(a, s);
              ((INotifyPropertyChanged)a).PropertyChanged += (s, e) => Assert.AreEqual("X", e.PropertyName);

              a.SetValue("X", 11f);

              Assert.IsTrue(_wasCalled);

              // Test de-registering event handler
              _wasCalled = false;
              ((INotifyPropertyChanged)a).PropertyChanged -= OnPropertyChanged;

              a.SetValue("X", 12f);

              Assert.IsFalse(_wasCalled);
        }