Example #1
0
    bool CheckTouchOnBat()
    {
        Ray ray   = cam.ScreenPointToRay(Input.GetTouch(0).position);
        int layer = CreateLayer.LayerOnly("Bat");

        //return if hit the bat
        return(Physics.Raycast(ray, 100, layer, QueryTriggerInteraction.Collide));
    }
Example #2
0
    void Attack()
    {
        //create layer to hit only enemy and player, and be sure to ignore self
        int     layer = CreateLayer.LayerOnly(new string[] { "Enemy", "Player" });
        IDamage self  = transform.GetComponent <IDamage>();

        //start weapon attack
        enemy.weapon.Attack(currentAttack.timePrepareAttack, currentAttack.durationAttack, currentAttack.damage, layer, self);
    }
        /// <summary>
        /// check result data after 'Create'
        /// </summary>
        /// <param name="createItem"></param>
        /// <returns></returns>
        private TypePlace CheckAfterCreate(TypePlace createItem)
        {
            CreateLayer dictDelegat = new CreateLayer(_layer.Create);
            TypePlace   result      = dictDelegat(createItem);

            if (result == null)
            {
                MessageShow.ShowError(CreateMess);
                //select first element of grid by default
                result = TypePlaceList[0];
            }
            return(result);
        }
        /// <summary>
        /// check result data after 'Craete'
        /// </summary>
        /// <param name="createItem"></param>
        /// <returns></returns>
        private SystemConstant CheckAfterCreate(SystemConstant createItem)
        {
            CreateLayer    dictDelegat = new CreateLayer(_layer.Create);
            SystemConstant result      = dictDelegat(createItem);

            if (result == null)
            {
                MessageShow.ShowError(CreateMess);
                //select first element of grid by default
                result = SystemConstantList[0];
            }
            return(result);
        }
        /// <summary>
        /// check result data after 'Create'
        /// </summary>
        /// <param name="createItem"></param>
        /// <returns></returns>
        private KlR030 CheckAfterCreate(KlR030 createItem)
        {
            CreateLayer dictDelegat = new CreateLayer(_layer.Create);
            KlR030      result      = dictDelegat(createItem);

            if (result == null)
            {
                MessageShow.ShowError(CreateMess);
                //select first element of grid by default
                result = Klr030List[0];
            }
            return(result);
        }
Example #6
0
    public Transform GetTarget(string layerName)
    {
        //if not enemy
        if (target == null)
        {
            int layer = CreateLayer.LayerOnly(layerName);;

            //find nearest enemy
            Collider[] targets = Physics.OverlapSphere(transform.position, radiusFindTarget, layer, QueryTriggerInteraction.Ignore);
            target = Utility.FindNearest(targets, transform.position)?.transform;
        }

        return(target);
    }
Example #7
0
        public ActionResult CreatePath([Bind] CreateLayer c, int InstanceID)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new { error = Generic.GetValidationErrors(ModelState) }));
            }
            var layer = new Layer(c);

            db.Layers.Add(layer);
            db.SaveChanges();
            //crate layer links, if appropriate.
            List <LayerLink> LayerLinks = new List <LayerLink>();

            if (c.Nodes != null)
            {
                foreach (var x in c.Nodes)
                {
                    var node = db.Nodes.DefaultIfEmpty(null).FirstOrDefault(y => y.NodeID == x && y.InstanceID == InstanceID);
                    if (node == null)
                    {
                        continue;
                    }
                    var thisLink = new LayerLink(new CreateLayerLink {
                        LayerID = layer.LayerID, NodeID = x
                    });
                    LayerLinks.Add(thisLink);
                }
                db.LayerLinks.AddRange(LayerLinks);
                db.SaveChanges();
            }

            var jsonLinks = new List <JsonLayerLink>();

            foreach (var l in LayerLinks)
            {
                jsonLinks.Add(new JsonLayerLink(l));
            }
            return(Json(new
            {
                layer = new JsonLayer(layer),
                layerLinks = jsonLinks
            }));
        }
Example #8
0
        public void ToolToolLibrary(string toolName)
        {
            bool   isFea = false;
            ILayer layer = null;

            switch (toolName)
            {
            case "AddPoint":
                MapEditing.CreateLayer pCreatePointLayer = new CreateLayer(m_mapControl);
                pCreatePointLayer.CreatePointLayer();
                break;

            case "AddPolyLine":
                MapEditing.CreateLayer pCreatePolylineLayer = new CreateLayer(m_mapControl);
                pCreatePolylineLayer.CreatePolylineLayer();
                break;

            case "AddPolygon":
                MapEditing.CreateLayer pCreatePolygonLayer = new CreateLayer(m_mapControl);
                pCreatePolygonLayer.CreatePolygonLayer();
                break;

            case "DrawPoint":
                for (int i = 0; i < this.m_mapControl.LayerCount; i++)
                {
                    layer = this.m_mapControl.get_Layer(i);
                    if (layer is IFeatureLayer)
                    {
                        isFea = true;
                        break;
                    }
                }
                if (isFea == false)
                {
                    MessageBox.Show("请先添加SHP数据!", "提示");
                    return;
                }
                TextToShapefile pTextToPoint = new TextToShapefile(m_mapControl, m_statusBar);
                pTextToPoint.TextToPoint();
                break;

            case "DrawPointandAtrri":
                for (int i = 0; i < this.m_mapControl.LayerCount; i++)
                {
                    layer = this.m_mapControl.get_Layer(i);
                    if (layer is IFeatureLayer)
                    {
                        isFea = true;
                        break;
                    }
                }
                if (isFea == false)
                {
                    MessageBox.Show("请先添加SHP数据!", "提示");
                    return;
                }
                //TextToShapefile pTextToPoint = new TextToShapefile(m_mapControl, m_statusBar);
                //pTextToPoint.TextToPoint();
                frmField frmfield = new frmField(this.m_mapControl, this.m_statusBar);
                frmfield.ShowDialog();
                break;

            case "DrawPolyLine":
                for (int i = 0; i < this.m_mapControl.LayerCount; i++)
                {
                    layer = this.m_mapControl.get_Layer(i);
                    if (layer is IFeatureLayer)
                    {
                        isFea = true;
                        break;
                    }
                }
                if (isFea == false)
                {
                    MessageBox.Show("请先添加SHP数据!", "提示");
                    return;
                }
                TextToShapefile pTextToPolyline = new TextToShapefile(m_mapControl, m_statusBar);
                pTextToPolyline.TextToPolyline();
                break;

            case "DrawPolygon":
                for (int i = 0; i < this.m_mapControl.LayerCount; i++)
                {
                    layer = this.m_mapControl.get_Layer(i);
                    if (layer is IFeatureLayer)
                    {
                        isFea = true;
                        break;
                    }
                }
                if (isFea == false)
                {
                    MessageBox.Show("请先添加SHP数据!", "提示");
                    return;
                }
                TextToShapefile pTextToPolygon = new TextToShapefile(m_mapControl, m_statusBar);
                pTextToPolygon.TextToPolygon();
                break;
            }
        }
Example #9
0
    /// <summary>
    /// In possible cells, remove everyone where overlap
    /// </summary>
    /// <param name="position">current position, used to calculate distance</param>
    /// <param name="coordinatesToAttackPosition">coordinates to attack, used to calculate distance</param>
    /// <param name="possibleCells">possible cells to teleport</param>
    public static void CheckOverlap(Vector3 position, Vector3 coordinatesToAttackPosition, List <Cell> possibleCells)
    {
        //get distance
        float distance = Vector3.Distance(position, coordinatesToAttackPosition);

        //foreach possible cell
        foreach (Cell cell in possibleCells.CreateCopy())
        {
            //if overlap in new position, remove from list
            Vector3 newPosition = GameManager.instance.world.CoordinatesToPosition(cell.coordinates, distance);   //adjacent coordinates, but same distance
            if (Physics.OverlapBox(newPosition, Vector3.one * 0.2f, Quaternion.identity, CreateLayer.LayerAllExcept(""), QueryTriggerInteraction.Collide).Length > 0)
            {
                possibleCells.Remove(cell);
            }
        }
    }