コード例 #1
0
 private void OnCollisionEnter(Collision col)
 {
     if (!col.gameObject.CompareTag("Bullet") && !col.gameObject.transform.root.CompareTag("Player"))
     {
         GameObject explosionClone = Instantiate(explosion, transform.position, transform.rotation);
         explosionClone.SendMessage("PlaySound", explosionSound);
         Destroy(explosionClone, 15f);
         GameObject[] enemies = AreaSearch.FindAllInRadiusWithTag(transform.position, blastRadius, "Enemy");
         GameObject[] players = AreaSearch.FindAllInRadiusWithTag(transform.position, blastRadius / 2, "Player");
         showHitmarker = false;
         foreach (GameObject i in enemies)
         {
             if (AreaSearch.CheckInLineOfSight(transform.position, i))
             {
                 health = i.transform.gameObject.GetComponent <HealthSinglePlayer>();
                 health.TakeDamage((int)(damage / (Vector3.Distance(transform.position, i.transform.position)) / 2));
                 showHitmarker = true;
             }
         }
         foreach (GameObject i in players)
         {
             if (AreaSearch.CheckInLineOfSight(transform.position, i))
             {
                 health = i.transform.gameObject.GetComponent <HealthSinglePlayer>();
                 health.TakeDamage((damage / 3) / (Vector3.Distance(transform.position, i.transform.position)) / 2);
             }
         }
         if (showHitmarker)
         {
             playerProperties.ShowHitmarker(false, .2f);
         }
         Destroy(gameObject);
     }
 }
コード例 #2
0
        public ServiceResult <List <Area> > GetSearchData(AreaSearch areaSearch)
        {
            var pageSize = 10;

            ServiceResult <List <Area> > model = new ServiceResult <List <Area> >();
            var source = db.Areas.Where(x => x.IsActive == true).Include(x => x.User.Role);

            if (areaSearch.Name != null)
            {
                if (!string.IsNullOrEmpty(areaSearch.Name))
                {
                    source = source.Where(m => m.Name.Contains(areaSearch.Name.ToLower()));
                }
                //  var items = source.OrderBy(m => m.Id).Skip((areaSearch.Page ?? 1 - 1) * pageSize).Take(pageSize).ToList();
            }
            int count = source.Count();
            var items = source.OrderByDescending(m => m.Id).Skip(((areaSearch.Page ?? 1) - 1) * pageSize)
                        .Take(pageSize).ToList();

            model.data = items.Select(x => new Area {
                Id        = x.Id,
                ManagerID = x.ManagerID,
                Name      = x.Name,
                User      = x.User,
            }).ToList();
            model.TotalCount = count;
            return(model);
        }
コード例 #3
0
 public void TriggerPlayerDetection()
 {
     if (!willWander)
     {
         willWander = true;
         return;
     }
     if (shootingRangeMode)
     {
         return;
     }
     GameObject[] closePlayers = AreaSearch.FindAllInRadiusWithTag(transform.position, playerAgroRadius, "Player");
     Debug.Log("Number of close players: " + closePlayers.Length);
     bool[] isInLineOfSight = AreaSearch.CheckInLineOfSight(transform.position, closePlayers);
     for (int i = 0; i < isInLineOfSight.Length; i++)
     {
         if (isInLineOfSight[i])
         {
             SetPlayerDetected(true);
             SetPlayerPosition(closePlayers[i].transform);
             for (int j = 0; j < detectionObjects.Count; j++)
             {
                 detectionObjects[j].playerDetected   = true;
                 detectionObjects[j].playerProperties = closePlayers[i].transform.GetComponent <PlayerProperties>();
             }
             Debug.Log(closePlayers[i] + " is in line of sight");
             break;
         }
         else
         {
             Debug.Log(closePlayers[i] + " is not in line of sight");
         }
     }
 }
コード例 #4
0
        public ActionResult _Index1(AreaSearch areaSearch, int?page)
        {
            int TotalCount  = 0;
            var pageSize    = 10;
            var pageNumber  = page ?? 1;
            int CurrentPage = pageNumber;
            var endPage     = CurrentPage + 4;
            int PagesToShow = 10;

            ViewBag.PageSize = pageSize;
            var AreaModelList = Services.AreaService.GetSearchData(areaSearch, page, out TotalCount);

            ViewBag.TotalCount = TotalCount;
            var result     = CommonFunction.GetPages(TotalCount, pageSize, CurrentPage, PagesToShow);
            int totalPages = (TotalCount / pageSize) + (TotalCount % pageSize == 0 ? 0 : 1);

            ViewBag.result      = result;
            ViewBag.totalPages  = totalPages;
            ViewBag.CurrentPage = CurrentPage;
            var pageCount = result.Count();

            ViewBag.pageCount = pageCount;
            ViewBag.endPage   = endPage;
            return(View(AreaModelList));
        }
コード例 #5
0
        public List <AreaModel> GetSearchData(AreaSearch areaSearch, int?page, out int TotalCount)
        {
            int pageNumber = (page ?? 1);
            var body       = JsonConvert.SerializeObject(areaSearch);
            var result     = ServerResponse.Invoke <ServiceResult <List <AreaModel> > >("api/area/getSearchData", body, "Post");

            TotalCount = result.TotalCount;

            if (result.data != null)
            {
                var model = result.data.ToList();
                return(model);
            }
            else
            {
            }
            return(result.data.ToList());
        }
コード例 #6
0
    IEnumerator TimedExplosion()
    {
        yield return(new WaitForSeconds(explosionTimer));

        GameObject explosionClone = Instantiate(explosion, transform.position, Quaternion.LookRotation(transform.up));

        explosionClone.SendMessage("PlaySound", explosionSound);
        Destroy(explosionClone, 2f);

        GameObject[] enemies = AreaSearch.FindAllInRadiusWithTag(transform.position, blastRadius, "Enemy");

        bool[] lineOfSight = new bool[enemies.Length];
        if (enemies != null)
        {
            lineOfSight = AreaSearch.CheckInLineOfSight(transform.position, enemies);
        }

        showHitmarker = false;
        int count = 0;

        foreach (GameObject i in enemies)
        {
            if (lineOfSight[count])
            {
                health = i.transform.gameObject.GetComponent <HealthSinglePlayer>();
                health.TakeDamage((int)((damage * 7.5) / Vector3.Distance(transform.position, i.transform.position)));
                showHitmarker = true;
            }
            count++;
        }
        if (showHitmarker)
        {
            playerProperties.ShowHitmarker(false, .2f);
        }

        Destroy(gameObject);
        yield return(null);
    }
コード例 #7
0
    // Update is called once per frame
    void Update()
    {
        for (int i = 0; i < chestContents.contents.Count; i++)
        {
            if (chestContents.contents[i] != null)
            {
                inventoryItemImages[i].sprite = chestContents.contents[i].sprite;
                inventoryItemImages[i].gameObject.SetActive(true);
                backgroundImages[i].gameObject.SetActive(true);
                chestButtons[i].interactable = true;
            }
            else
            {
                inventoryItemImages[i].gameObject.SetActive(false);
                chestButtons[i].interactable = false;
            }
        }
        for (int i = chestContents.contents.Count; i < inventoryItemImages.Length; i++)
        {
            inventoryItemImages[i].gameObject.SetActive(false);
            backgroundImages[i].gameObject.SetActive(false);
            chestButtons[i].interactable = false;
        }

        GameObject closestPlayer = AreaSearch.FindClosestInRadiusWithTag(transform.position, 6, "Player");

        if (closestPlayer != null)
        {
            ActivateUI();
            Camera playerCam = closestPlayer.GetComponent <PlayerProperties>().cam;
            transform.LookAt(playerCam.transform);
        }
        else
        {
            DisableUI();
        }
    }