Exemplo n.º 1
0
    public void OnSelected()
    {
        NTween.by(view.body.transform, 0.15f, new NTweenParam().gameObject(view.gameObject).prop("y", 1.2f).rewind());
        NTween.to(view.body.transform, 0.15f, new NTweenParam().gameObject(view.gameObject).prop("scale", 1.1f).rewind());
        //闪烁颜色
        foreach (var childSprite in view.body.GetComponentsInChildren <tk2dSprite>())
        {
            NTween.to(childSprite, 1f, new NTweenParam().gameObject(view.gameObject).prop("color", new Color(0.5f, 0.5f, 0.5f)).rewind().loop());
        }

        BuildOptManager.Instance.ShowBuildingOptWin(this);


        if (model.range > 0)
        {
            if (!rangeView)
            {
                rangeView =
                    ((GameObject)ResourceManager.Instance.LoadAndCreate("Misc/RangeView")).GetComponent <RangeView>();
            }
            rangeView.SetEntity(this);
            rangeView.transform.localScale = Vector3.zero;
            NTween.to(rangeView, 0.15f, new NTweenParam().gameObject(rangeView.gameObject).prop("scale", 1));
        }
    }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            var bin = new DatabaseBuilder().Append(new Monster[]
            {
                new Monster(MonsterId: 1, Name: "Foo", MaxHp: 100)
            }).Build();


            // new DatabaseBuilderBase(


            //new DatabaseBuilder(


            var db = new MemoryDatabase(File.ReadAllBytes("db.bin"));

            // .PersonTable.FindByPersonIdもコード生成により型が付いてる
            Person person = db.PersonTable.FindByPersonId(10);


            // 女性の23歳を取得。戻り値は複数。
            RangeView <Person> result = db.PersonTable.FindByGenderAndAge((Gender.Female, 23));


            // 31歳に最も近い人を取得
            RangeView <Person> age1 = db.PersonTable.FindClosestByAge(31);


            // 20歳から29際の人を取得
            RangeView <Person> age2 = db.PersonTable.FindRangeByAge(20, 29);
        }
Exemplo n.º 3
0
        public void Range()
        {
            // 4 -> 8
            {
                var range = new RangeView <int>(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 4, 8, true);

                range.Count.Should().Be(5);
                range[0].Should().Be(4);
                range[1].Should().Be(5);
                range[2].Should().Be(6);
                range[3].Should().Be(7);
                range[4].Should().Be(8);

                Assert.Throws <ArgumentOutOfRangeException>(() => range[-1]);
                Assert.Throws <ArgumentOutOfRangeException>(() => range[5]);

                var begin = 4;
                foreach (var item in range)
                {
                    item.Should().Be(begin++);
                }
            }
            {
                // 7 -> 2
                var range = new RangeView <int>(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 2, 7, false);

                range.Count.Should().Be(6);
                range[0].Should().Be(7);
                range[1].Should().Be(6);
                range[2].Should().Be(5);
                range[3].Should().Be(4);
                range[4].Should().Be(3);
                range[5].Should().Be(2);

                Assert.Throws <ArgumentOutOfRangeException>(() => range[-1]);
                Assert.Throws <ArgumentOutOfRangeException>(() => range[6]);

                var begin = 7;
                foreach (var item in range)
                {
                    item.Should().Be(begin--);
                }
            }

            var empty = new RangeView <int>(Enumerable.Empty <int>().ToArray(), 0, 0, true);

            empty.Count.Should().Be(0);

            var same = new RangeView <int>(Enumerable.Range(1, 1000).ToArray(), 100, 100, true);

            same.Count.Should().Be(1);
            same[0].Should().Be(101);
        }
Exemplo n.º 4
0
        private static void Test1()
        {
            // to create database, use DatabaseBuilder and Append method.
            var builder = new DatabaseBuilder();

            builder.Append(new Person[]
            {
                new Person {
                    PersonId = 0, Age = 13, Gender = Gender.Male, Name = "Dana Terry"
                },
                new Person {
                    PersonId = 1, Age = 17, Gender = Gender.Male, Name = "Kirk Obrien"
                },
                new Person {
                    PersonId = 2, Age = 31, Gender = Gender.Male, Name = "Wm Banks"
                },
                new Person {
                    PersonId = 3, Age = 44, Gender = Gender.Male, Name = "Karl Benson"
                },
                new Person {
                    PersonId = 4, Age = 23, Gender = Gender.Male, Name = "Jared Holland"
                },
                new Person {
                    PersonId = 5, Age = 27, Gender = Gender.Female, Name = "Jeanne Phelps"
                },
                new Person {
                    PersonId = 6, Age = 25, Gender = Gender.Female, Name = "Willie Rose"
                },
                new Person {
                    PersonId = 7, Age = 11, Gender = Gender.Female, Name = "Shari Gutierrez"
                },
                new Person {
                    PersonId = 8, Age = 63, Gender = Gender.Female, Name = "Lori Wilson"
                },
                new Person {
                    PersonId = 9, Age = 34, Gender = Gender.Female, Name = "Lena Ramsey"
                },
            });

            // build database binary(you can also use `WriteToStream` for save to file).
            byte[] data = builder.Build();

            // -----------------------

            // for query phase, create MemoryDatabase.
            // (MemoryDatabase is recommended to store in singleton container(static field/DI)).
            var db = new MemoryDatabase(data);

            // .PersonTable.FindByPersonId is fully typed by code-generation.
            Person person = db.PersonTable.FindByPersonId(1);

            // Multiple key is also typed(***And * **), Return value is multiple if key is marked with `NonUnique`.
            RangeView <Person> result = db.PersonTable.FindByGenderAndAge((Gender.Female, 23));

            Debug.Log("result");
            foreach (var p in result)
            {
                Debug.Log($"{p.Name}");
            }

            // Get nearest value(choose lower(default) or higher).
            RangeView <Person> age1 = db.PersonTable.FindClosestByAge(31);

            Debug.Log("age1");
            foreach (var p in age1)
            {
                Debug.Log($"{p.Name}");
            }

            // Get range(min-max inclusive).
            RangeView <Person> age2 = db.PersonTable.FindRangeByAge(20, 29);

            Debug.Log("age2");
            foreach (var p in age2)
            {
                Debug.Log($"{p.Name}");
            }
        }
Exemplo n.º 5
0
        public void Range()
        {
            // 4 -> 8
            {
                var range = new RangeView <int>(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 4, 8, true);

                range.Count.Is(5);
                range[0].Is(4);
                range[1].Is(5);
                range[2].Is(6);
                range[3].Is(7);
                range[4].Is(8);

                Assert.Throws <ArgumentOutOfRangeException>(() => range[-1]);
                Assert.Throws <ArgumentOutOfRangeException>(() => range[5]);

                var begin = 4;
                foreach (var item in range)
                {
                    item.Is(begin++);
                }

                var c = (ICollection <int>)range;
                c.Contains(6).IsTrue();
                c.Contains(-1).IsFalse();

                var l = (IList <int>)range;
                l.IndexOf(6).Is(2);
                var newXs = new int[10];
                l.CopyTo(newXs, 3);
                newXs[3].Is(4);
                newXs[4].Is(5);
                newXs[5].Is(6);
                newXs[6].Is(7);
                newXs[7].Is(8);
            }
            {
                // 7 -> 2
                var range = new RangeView <int>(new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 2, 7, false);

                range.Count.Is(6);
                range[0].Is(7);
                range[1].Is(6);
                range[2].Is(5);
                range[3].Is(4);
                range[4].Is(3);
                range[5].Is(2);

                Assert.Throws <ArgumentOutOfRangeException>(() => range[-1]);
                Assert.Throws <ArgumentOutOfRangeException>(() => range[6]);

                var begin = 7;
                foreach (var item in range)
                {
                    item.Is(begin--);
                }

                var c = (ICollection <int>)range;
                c.Contains(6).IsTrue();
                c.Contains(-1).IsFalse();

                var l = (IList <int>)range;
                l.IndexOf(6).Is(1);
                var newXs = new int[10];
                l.CopyTo(newXs, 3);
                newXs[3].Is(7);
                newXs[4].Is(6);
                newXs[5].Is(5);
                newXs[6].Is(4);
                newXs[7].Is(3);
                newXs[8].Is(2);
            }

            var empty = new RangeView <int>(Enumerable.Empty <int>().ToArray(), 0, 0, true);

            empty.Count.Is(0);

            var same = new RangeView <int>(Enumerable.Range(1, 1000).ToArray(), 100, 100, true);

            same.Count.Is(1);
            same[0].Is(101);


            // count = 0;
            // Assert.Throws<ArgumentException>(() => new RangeView<int>(new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }, 5, 4, true));
        }