public async Task <IEnumerable <Unit> > GetAllAsync()
 {
     using (var connection = context.CreateConnection())
     {
         return(await connection.QueryAsync <Unit>(UnitQuery.All()));
     }
 }
 public async Task DeleteAsync(Guid id)
 {
     using (var connection = context.CreateConnection())
     {
         await connection.ExecuteAsync(UnitQuery.Delete(id));
     }
 }
        public TabFleet_MakeQuery(UnitQuery query)
        {
            InitializeComponent();

            TemporaryQuery = query;
            //コンボボックスの初期化
            if (!KancolleInfoUnitList.IsInited) KancolleInfoUnitList.InitQuery();
            string[] queryname = (from x in KancolleInfoUnitList.Queries
                                  select string.Format("({0}){1}", x.ID, x.Name)).ToArray();
            comboBox1.Items.AddRange(queryname);
            //名前
            textBox1.Text = query.Name;
            textBox1.SelectionStart = 0;

            //クエリIDの自動探索
            TemporaryQuery.ID = 16;//デフォルトの値
            for(int i=16; i<KancolleInfoUnitList.QueriesMax; i++)
            {
                if(KancolleInfoUnitList.Queries[i].IsEmpty())
                {
                    TemporaryQuery.ID = i;
                    break;
                }
            }
            comboBox1.SelectedIndex = TemporaryQuery.ID;
        }
 public async Task <IEnumerable <Unit> > GetByParentIdAsync(Guid id)
 {
     using (var connection = context.CreateConnection())
     {
         return(await connection.QueryAsync <Unit>(UnitQuery.ByParentId(id)));
     }
 }
 public IEnumerable <Unit> GetAll()
 {
     using (var connection = context.CreateConnection())
     {
         return(connection.Query <Unit>(UnitQuery.All()));
     }
 }
        public async Task <Unit> UpdateAsync(Unit unit)
        {
            using (var connection = context.CreateConnection())
            {
                await connection.ExecuteAsync(UnitQuery.Update(unit));

                return(unit);
            }
        }
        public async Task <Unit> GetByIdAsync(Guid id)
        {
            using (var connection = context.CreateConnection())
            {
                var query = await connection.QueryAsync <Unit>(UnitQuery.ById(id));

                return(query.SingleOrDefault());
            }
        }
示例#8
0
 protected BasePage(ConditionModel model)
 {
     _model        = model;
     _unitQuery    = new UnitQuery(model);
     _unitFunc     = new UnitFunc(model);
     _unitList     = new UnitList(model);
     _unitListEdit = new UnitListEdit(model);
     _unitEdit     = new UnitEdit(model);
     _unitScript   = new UnitScript(model);
 }
示例#9
0
 /// <summary>
 /// Check if agent remembers an enemy.
 /// </summary>
 /// <param name="query"></param>
 /// <returns></returns>
 public Unit RememberUnit(UnitQuery query)
 {
     foreach (var unit in _units)
     {
         if (query(unit))
         {
             return(_rememberPositionOfTarget ? GetDefaultEntity(_positions[unit]) : unit);
         }
     }
     return(null);
 }
示例#10
0
        public Unit Create(Unit unit)
        {
            if (unit.Id == Guid.Empty)
            {
                unit.Id = Guid.NewGuid();
            }

            using (var connection = context.CreateConnection())
            {
                connection.Execute(UnitQuery.Insert(unit));
                return(unit);
            }
        }
示例#11
0
        /// <summary>
        /// Return all remembered Entities that satisfy the query.
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public List <Unit> RememberUnits(UnitQuery query)
        {
            var result = new List <Unit>();

            foreach (var unit in _units)
            {
                if (query(unit))
                {
                    result.Add(_rememberPositionOfTarget ? GetDefaultEntity(_positions[unit]) : unit);
                }
            }
            return(result);
        }
        public IActionResult GetUnitList()
        {
            UnitQuery _lQuery = new UnitQuery();
            var       list    = _lQuery.GetUnit();

            if (list != null)
            {
                return(Ok(list));
            }
            else
            {
                return(BadRequest());
            }
        }
示例#13
0
        public async Task <Unit> CreateAsync(Unit unit)
        {
            if (unit.Id == Guid.Empty)
            {
                unit.Id = Guid.NewGuid();
            }

            using (var connection = context.CreateConnection())
            {
                await connection.ExecuteAsync(UnitQuery.Insert(unit));

                return(unit);
            }
        }
        public IActionResult UnitDelete(int id)
        {
            UnitQuery _lQuery = new UnitQuery();

            if (id != null)
            {
                string message = _lQuery.UnitDelete(id);
                //if(message=="Success")
                return(Ok());
            }
            else
            {
                return(BadRequest());
            }
        }
        public IActionResult UnitUpdate(int id, [FromBody] Unit model)
        {
            UnitQuery _lQuery = new UnitQuery();

            if (model != null)
            {
                string message = _lQuery.UnitUpdate(model);
                //if(message=="Success")
                return(Ok());
            }
            else
            {
                return(BadRequest());
            }
        }
示例#16
0
        protected override void OnUpdate()
        {
            NativeArray <Translation> AllEnemiPos = EnemiQuery.ToComponentDataArray <Translation>(Allocator.TempJob);
            NativeArray <Translation> AllUnitPos  = UnitQuery.ToComponentDataArray <Translation>(Allocator.TempJob);

            var job = new FindTarget()
            {
                U_positions         = AllUnitPos,
                entityCommandBuffer = endSimulationEntityCommandBufferSystem.CreateCommandBuffer().ToConcurrent(),
                //E_positions = AllEnemiPos
            };
            JobHandle dependency = job.Schedule(EnemiQuery);



            endSimulationEntityCommandBufferSystem.AddJobHandleForProducer(dependency);
            dependency.Complete();

            for (int i = 0; i < AllUnitPos.Length; i++)
            {
                for (int j = 0; j < AllEnemiPos.Length; j++)
                {
                    //   if (Time.DeltaTime > nextShootTime)
                    // {
                    if (math.distance(AllEnemiPos[j].Value, AllUnitPos[i].Value) < 18f)
                    {
                        CustomEntity.SpawnEntityAtPosition(typeof(Projectiles), AllEnemiPos[j].Value);
                        //float fireRate = .03f;
                        //nextShootTime = Time.DeltaTime + fireRate;
                    }
                    // }
                }
            }

            var job2 = new FindCible()
            {
                U_positions         = AllUnitPos,
                entityCommandBuffer = E_endSimulationEntityCommandBufferSystem.CreateCommandBuffer().ToConcurrent(),
            };
            JobHandle dependency2 = job2.Schedule(ProjectileQuery);

            E_endSimulationEntityCommandBufferSystem.AddJobHandleForProducer(dependency2);
            dependency2.Complete();
            AllUnitPos.Dispose(dependency2);
            AllEnemiPos.Dispose();
        }
示例#17
0
        /// <summary>
        /// Test Find using the Query class
        /// </summary>
        private void Step_30_TestFindByQuery_Generated()
        {
            using (TransactionManager tm = CreateTransaction())
            {
                //Insert Mock Instance
                Unit mock   = CreateMockInstance(tm);
                bool result = DataRepository.UnitProvider.Insert(tm, mock);

                Assert.IsTrue(result, "Could Not Test FindByQuery, Insert Failed");

                UnitQuery query = new UnitQuery();

                query.AppendEquals(UnitColumn.Id, mock.Id.ToString());
                query.AppendEquals(UnitColumn.Description, mock.Description.ToString());
                query.AppendEquals(UnitColumn.Status, mock.Status.ToString());

                TList <Unit> results = DataRepository.UnitProvider.Find(tm, query);

                Assert.IsTrue(results.Count == 1, "Find is not working correctly.  Failed to find the mock instance");
            }
        }
示例#18
0
        /// <summary>
        /// Search for entities with specified characteristics in FOV or in memory.
        /// </summary>
        public bool SeeUnit(UnitQuery query, bool setAsTarget = true, bool remember = true)
        {
            //	Check if we actually see it
            if (_seenUnits.Count > 0)
            {
                foreach (var unit in _seenUnits)
                {
                    if (unit && query(unit))
                    {
                        TargetUnit = unit;
                        if (setAsTarget)
                        {
                            _agent.Target = TargetUnit.transform;
                        }
                        if (remember)
                        {
                            Memory.Memorise(unit);
                        }
                        return(true);
                    }
                }
            }

            //	Otherwise check if we remember it
            if (!remember)
            {
                return(false);
            }
            var unitEnemy = Memory.RememberUnit(query);

            if (unitEnemy == null)
            {
                return(false);
            }

            TargetUnit    = unitEnemy;
            _agent.Target = TargetUnit != null ? TargetUnit.transform : _agent.Motion.GetDefaultTarget();
            return(true);
        }
        //クエリの実行
        public static IEnumerable<ApiShip> DoQuery(UnitQuery query, bool notshowassign)
        {
            if (APIPort.DeckPorts == null || APIPort.ShipsDictionary == null) return Enumerable.Empty<ApiShip>();

            //艦隊所属の艦
            var fleetassignships = from d in APIPort.DeckPorts
                                   from s in d.api_ship
                                   where s != -1
                                   select s;
            var ships = from s in APIPort.ShipsDictionary.Values
                        where query.CheckAll(s)
                        where (!notshowassign) || !Enumerable.Contains(fleetassignships, s.api_id)
                        select s;
            return ships;
        }
        public static List<UnitQuery> MakeNewQueries()
        {
            List<UnitQuery> queries = new List<UnitQuery>();
            foreach (int i in Enumerable.Range(0, QueriesMax))
            {
                UnitQuery q = new UnitQuery();
                q.ID = i;
                q.Name = "なし";
                queries.Add(q);
            }
            //クエリプリセット
            //0 : 全て選択
            queries[0].Name = "全て表示";
            //1 : 駆逐軽巡
            queries[1].Name = "駆逐軽巡";
            UnitQueryItem q1 = new UnitQueryItem(UnitQueryMode.ShipType);
            q1.SearchesAdd(2, UnitQueryRangeMode.Equals);//駆逐
            q1.SearchesAdd(3, UnitQueryRangeMode.Equals);//軽巡
            queries[1].Query.Add(q1);
            //2  : 潜水艦のみ
            queries[2].Name = "潜水・潜水空母";
            UnitQueryItem q2 = new UnitQueryItem(UnitQueryMode.ShipType);
            q2.SearchesAdd(13, UnitQueryRangeMode.Equals);//潜水
            q2.SearchesAdd(14, UnitQueryRangeMode.Equals);//潜水空母
            queries[2].Query.Add(q2);
            //3 : キラキラのみ
            queries[3].Name = "全て : キラキラ艦";
            UnitQueryItem q3 = new UnitQueryItem(UnitQueryMode.Cond);
            q3.SearchesAdd(50, UnitQueryRangeMode.MoreThanEquals);//Cond値50以上
            queries[3].Query.Add(q3);
            //4 : ロック済み小破以下
            queries[4].Name = "主力艦 : 小破以下";
            UnitQueryItem q41 = new UnitQueryItem(UnitQueryMode.IsLocked);
            q41.SearchesAdd(1, UnitQueryRangeMode.Equals);//ロック
            UnitQueryItem q42 = new UnitQueryItem(UnitQueryMode.HPRatio);
            q42.AddHPCondition_NoneOrSmall();//小破以下
            queries[4].Query.Add(q41);
            queries[4].Query.Add(q42);
            //---
            //5 : ロック済み+中破大破
            queries[5].Name = "主力艦 : 中破・大破";
            UnitQueryItem q51 = new UnitQueryItem(UnitQueryMode.IsLocked);
            q51.SearchesAdd(1, UnitQueryRangeMode.Equals);//ロック済み
            UnitQueryItem q52 = new UnitQueryItem(UnitQueryMode.HPRatio);
            q52.AddHPCondition_MiddleOver();//中破以上
            queries[5].Query.Add(q51);
            queries[5].Query.Add(q52);
            //6 : 駆逐:キラキラなし+ロック済+小破以下
            queries[6].Name = "主力駆逐:キラキラなし+小破以下";
            UnitQueryItem q61 = new UnitQueryItem(UnitQueryMode.ShipType);
            q61.SearchesAdd(2, UnitQueryRangeMode.Equals);//駆逐艦
            UnitQueryItem q62 = new UnitQueryItem(UnitQueryMode.Cond);
            q62.SearchesAdd(49, UnitQueryRangeMode.LessThanEquals);//cond49以下
            UnitQueryItem q63 = new UnitQueryItem(UnitQueryMode.IsLocked);
            q63.SearchesAdd(1, UnitQueryRangeMode.Equals);//ロック済み
            UnitQueryItem q64 = new UnitQueryItem(UnitQueryMode.HPRatio);
            q64.AddHPCondition_NoneOrSmall();//小破以下
            queries[6].Query.AddRange(new UnitQueryItem[] { q61, q62, q63, q64 });
            // 7 : 主力駆軽雷 : 中破・大破
            queries[7].Name = "主力駆軽雷 : 中破・大破";
            UnitQueryItem q71 = new UnitQueryItem(UnitQueryMode.ShipType);
            q71.SearchesAdd(2, UnitQueryRangeMode.Equals);//駆逐艦
            q71.SearchesAdd(3, UnitQueryRangeMode.Equals);//軽巡洋艦
            q71.SearchesAdd(4, UnitQueryRangeMode.Equals);//雷巡
            UnitQueryItem q72 = new UnitQueryItem(UnitQueryMode.IsLocked);
            q72.SearchesAdd(1, UnitQueryRangeMode.Equals);//ロック済み
            UnitQueryItem q73 = new UnitQueryItem(UnitQueryMode.HPRatio);
            q73.AddHPCondition_MiddleOver();//中破以上
            queries[7].Query.AddRange(new UnitQueryItem[] { q71, q72, q73 });
            //8 : 主力巡洋艦、戦艦・空母系 : 小破
            queries[8].Name = "主力巡洋艦、戦艦・空母系 : 小破";
            UnitQueryItem q81 = new UnitQueryItem(UnitQueryMode.ShipTypeName);
            q81.SearchesAdd("巡洋艦", UnitQueryMatchMode.Contains);//巡洋艦
            q81.SearchesAdd("戦艦", UnitQueryMatchMode.Contains);//戦艦
            q81.SearchesAdd("軽空母", UnitQueryMatchMode.ExactlyMatch);
            q81.SearchesAdd("正規空母", UnitQueryMatchMode.ExactlyMatch);
            q81.SearchesAdd("装甲空母", UnitQueryMatchMode.ExactlyMatch);
            UnitQueryItem q82 = new UnitQueryItem(UnitQueryMode.IsLocked);
            q82.SearchesAdd(1, UnitQueryRangeMode.Equals);//ロック済み
            UnitQueryItem q83 = new UnitQueryItem(UnitQueryMode.HPRatio);
            q83.AddHPCondition_Small();//小破のみ
            queries[8].Query.AddRange(new UnitQueryItem[] { q81, q82, q83 });
            //9 : 非ロック重巡 : 燃弾あり
            queries[9].Name = "非ロック重巡 : 燃弾あり";
            UnitQueryItem q91 = new UnitQueryItem(UnitQueryMode.ShipType);
            q91.SearchesAdd(5, UnitQueryRangeMode.Equals);//重巡
            UnitQueryItem q92 = new UnitQueryItem(UnitQueryMode.IsLocked);
            q92.SearchesAdd(0, UnitQueryRangeMode.Equals);//非ロック
            UnitQueryItem q93 = new UnitQueryItem(UnitQueryMode.FuelNow);
            q93.SearchesAdd(1, UnitQueryRangeMode.MoreThanEquals);//燃料1以上
            UnitQueryItem q94 = new UnitQueryItem(UnitQueryMode.BullNow);
            q94.SearchesAdd(1, UnitQueryRangeMode.MoreThanEquals);//弾薬1以上
            queries[9].Query.AddRange(new UnitQueryItem[] { q91, q92, q93, q94 });
            //--
            //10 : 非ロック戦艦 : 燃弾あり
            queries[10].Name = "非ロック戦艦 : 燃弾あり";
            UnitQueryItem q101 = new UnitQueryItem(UnitQueryMode.ShipTypeName);
            q101.SearchesAdd("戦艦", UnitQueryMatchMode.Contains);//戦艦
            UnitQueryItem q102 = new UnitQueryItem(UnitQueryMode.IsLocked);
            q102.SearchesAdd(0, UnitQueryRangeMode.Equals);//非ロック
            UnitQueryItem q103 = new UnitQueryItem(UnitQueryMode.FuelNow);
            q103.SearchesAdd(1, UnitQueryRangeMode.MoreThanEquals);//燃料1以上
            UnitQueryItem q104 = new UnitQueryItem(UnitQueryMode.BullNow);
            q104.SearchesAdd(1, UnitQueryRangeMode.MoreThanEquals);//弾薬1以上
            queries[10].Query.AddRange(new UnitQueryItem[] { q101, q102, q103, q104 });
            //11 : 非ロック駆逐 : 燃弾あり
            queries[11].Name = "非ロック駆逐 : 燃弾あり";
            UnitQueryItem q111 = new UnitQueryItem(UnitQueryMode.ShipType);
            q111.SearchesAdd(2, UnitQueryRangeMode.Equals);//駆逐
            UnitQueryItem q112 = new UnitQueryItem(UnitQueryMode.IsLocked);
            q112.SearchesAdd(0, UnitQueryRangeMode.Equals);//非ロック
            UnitQueryItem q113 = new UnitQueryItem(UnitQueryMode.FuelNow);
            q113.SearchesAdd(1, UnitQueryRangeMode.MoreThanEquals);//燃料1以上
            UnitQueryItem q114 = new UnitQueryItem(UnitQueryMode.BullNow);
            q114.SearchesAdd(1, UnitQueryRangeMode.MoreThanEquals);//弾薬1以上
            queries[11].Query.AddRange(new UnitQueryItem[] { q111, q112, q113, q114 });
            //12 : 潜水・潜水空母 : 小破以下
            queries[12].Name = "潜水・潜水空母 : 小破以下";
            UnitQueryItem q121 = new UnitQueryItem(UnitQueryMode.ShipType);
            q121.SearchesAdd(13, UnitQueryRangeMode.Equals);//潜水艦
            q121.SearchesAdd(14, UnitQueryRangeMode.Equals);//潜水空母
            UnitQueryItem q122 = new UnitQueryItem(UnitQueryMode.HPRatio);
            q122.AddHPCondition_NoneOrSmall();//小破以下
            queries[12].Query.Add(q121);
            queries[12].Query.Add(q122);
            //13 : 潜水・潜水空母 : 中破・大破
            queries[13].Name = "潜水・潜水空母 : 中破・大破";
            UnitQueryItem q131 = new UnitQueryItem(UnitQueryMode.ShipType);
            q131.SearchesAdd(13, UnitQueryRangeMode.Equals);//潜水艦
            q131.SearchesAdd(14, UnitQueryRangeMode.Equals);//潜水空母
            UnitQueryItem q132 = new UnitQueryItem(UnitQueryMode.HPRatio);
            q132.AddHPCondition_MiddleOver();//中破大破
            queries[13].Query.Add(q131);
            queries[13].Query.Add(q132);
            //14 : 潜水空母 : 中破・大破
            queries[14].Name = "潜水空母 : 中破・大破";
            UnitQueryItem q141 = new UnitQueryItem(UnitQueryMode.ShipType);
            q141.SearchesAdd(14, UnitQueryRangeMode.Equals);//潜水空母
            UnitQueryItem q142 = new UnitQueryItem(UnitQueryMode.HPRatio);
            q142.AddHPCondition_MiddleOver();//中破大破
            queries[14].Query.Add(q141);
            queries[14].Query.Add(q142);
            //--
            //15 : 潜水艦 : キラキラあり
            queries[15].Name = "潜水艦 : キラキラあり";
            UnitQueryItem q151 = new UnitQueryItem(UnitQueryMode.ShipType);
            q151.SearchesAdd(13, UnitQueryRangeMode.Equals);//潜水艦
            UnitQueryItem q152 = new UnitQueryItem(UnitQueryMode.Cond);
            q152.SearchesAdd(50, UnitQueryRangeMode.MoreThanEquals);//キラキラあり
            queries[15].Query.Add(q151);
            queries[15].Query.Add(q152);

            //返り値
            return queries;
        }
示例#21
0
        /// <summary>
        /// Search for entities with specified characteristics in FOV or in memory
        /// and select the one by user defined criteria.
        /// </summary>
        /// <param name="query"></param>
        /// <param name="criterion"></param>
        /// <param name="chooseMax"></param>
        /// <param name="setAsTarget"></param>
        /// <param name="remember"></param>
        /// <returns></returns>
        public bool SelectUnitByCriteria(UnitQuery query, UnitCriterion criterion, bool chooseMax,
                                         bool setAsTarget = true, bool remember = true)
        {
            var units = new List <Unit>();

            //	Check if we actually see it
            if (_seenUnits.Count > 0)
            {
                foreach (var unit in _seenUnits)
                {
                    if (unit && query(unit))
                    {
                        units.Add(unit);
                    }
                }
            }
            else
            {
                if (remember)
                {
                    var rememberedUnits = Memory.RememberUnits(query);
                    foreach (var unit in rememberedUnits)
                    {
                        units.Add(unit);
                    }
                }
            }

            if (units.Count == 0)
            {
                return(false);
            }
            if (units.Count == 1)
            {
                TargetUnit = units[0];
                if (setAsTarget && TargetUnit)
                {
                    _agent.Target = TargetUnit.transform;
                }
                if (remember)
                {
                    Memory.Memorise(units[0]);
                }
                return(true);
            }

            // Now select thhe one Unit that fits the criteria the best.
            var index = 0;
            var crit  = criterion(units[0]);

            for (var i = 1; i < units.Count; i++)
            {
                if (chooseMax)
                {
                    if (!(criterion(units[i]) > crit))
                    {
                        continue;
                    }
                    index = i;
                    crit  = criterion(units[i]);
                }
                else
                {
                    if (!(criterion(units[i]) < crit))
                    {
                        continue;
                    }
                    index = i;
                    crit  = criterion(units[i]);
                }
            }

            TargetUnit = units[index];
            if (setAsTarget && TargetUnit)
            {
                _agent.Target = TargetUnit.transform;
            }
            if (remember)
            {
                Memory.Memorise(units[index]);
            }
            return(true);
        }
示例#22
0
        //艦娘タブの初期化
        public void Init()
        {
            if (!(this.FindForm() as WeifenLuo.WinFormsUI.Docking.DockContent).IsHandleCreated)
            {
                return;
            }

            //変数の設定
            label_unit_num = new Label[]
            {
                label_unit_num_1, label_unit_num_2, label_unit_num_3
            };
            label_unit_time = new Label[]
            {
                label_unit_time_1, label_unit_time_2, label_unit_time_3, label_unit_time_4
            };
            //メニューアイテムの作成
            MenuItemQuery = new ToolStripMenuItem[8][];
            foreach (int i in Enumerable.Range(0, MenuItemQuery.Length)) MenuItemQuery[i] = new ToolStripMenuItem[KancolleInfoUnitList.QueriesMax / MenuItemQuery.Length];
            foreach(int i in Enumerable.Range(0, KancolleInfoUnitList.QueriesMax))
            {
                ToolStripMenuItem item = new ToolStripMenuItem()
                {
                    Text = string.Format("({0})", i), Tag = i,
                };
                MenuItemQuery[i / MenuItemQuery[0].Length][i % MenuItemQuery[0].Length] = item;
            }
            toolStripMenuItem_q1.DropDownItems.AddRange(MenuItemQuery[0]); toolStripMenuItem_q2.DropDownItems.AddRange(MenuItemQuery[1]);
            toolStripMenuItem_q3.DropDownItems.AddRange(MenuItemQuery[2]); toolStripMenuItem_q4.DropDownItems.AddRange(MenuItemQuery[3]);
            toolStripMenuItem_q5.DropDownItems.AddRange(MenuItemQuery[4]); toolStripMenuItem_q6.DropDownItems.AddRange(MenuItemQuery[5]);
            toolStripMenuItem_q7.DropDownItems.AddRange(MenuItemQuery[6]); toolStripMenuItem_q8.DropDownItems.AddRange(MenuItemQuery[7]);
            //自動更新
            toolStripMenuItem_autorefresh.Click += new EventHandler(toolStripMenuItem_autorefresh_Click);
            if(!Config.TabKanmusuAutoRefreshDisable) toolStripMenuItem_autorefresh.PerformClick();
            //クエリの初期化
            UsingQuery = new UnitQuery();
            //フィルターの初期化
            UsingFilter = new UnitQueryFilter();

            InitFinished = true;
        }