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)); } }
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); }
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); }
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}"); } }
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)); }