Beispiel #1
0
    void Observe()
    {
        spider targetInsect = null;
        float  targetDist   = float.MaxValue;

        foreach (spider testInsect in m_memory.VisibleInsects)
        {
            if (targetInsect == null)
            {
                targetInsect = testInsect;
                targetDist   = (testInsect.transform.position - this.transform.position).magnitude;
            }
            else
            {
                float testDist = (testInsect.transform.position - this.transform.position).magnitude;
                if (testDist < targetDist)
                {
                    targetInsect = testInsect;
                }
            }
        }

        if (m_memory.TargetInsect != targetInsect)
        {
            SetTargetInsect(targetInsect);
        }

        // Quick dumb check to make sure that targetInsect is still alive.  If not, null it out.
        if (m_memory.TargetInsect != null && !m_memory.TargetInsect.Alive)
        {
            SetTargetInsect(null);
        }
    }
Beispiel #2
0
    void SelectInsect()
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        RaycastHit hit;
        LayerMask  mask = 1 << 8; //use this to determine what you want/don't want to collide with.

        Debug.DrawLine(ray.origin, ray.GetPoint(200), Color.blue);

        if (Physics.Raycast(ray, out hit, 200, mask))
        {
            spider collidedSpider = hit.collider.GetComponent <spider>();
            if (collidedSpider != null && collidedSpider.Alive)
            {
                spider[] spiders = GameObject.FindObjectsOfType <spider>();

                foreach (spider thisSpider in spiders)
                {
                    thisSpider.Selected = (thisSpider == collidedSpider) && !collidedSpider.Selected;
                }

                selectedSpider = Array.Find <spider>(spiders, s => s.Selected);
            }
        }
    }
Beispiel #3
0
    IEnumerator AttackCoroutine(spider targetSpider)
    {
        yield return(new WaitForSeconds(1.0f));

        this.transform.LookAt(targetSpider.transform);
        Debug.Log(string.Format("{0} attacking {1} with {2} damage", this.name, targetSpider.name, damage.ToString()));
        targetSpider.TakeDamage(this, damage);
    }
Beispiel #4
0
    void OnTriggerStay(Collider other)
    {
        spider testSpider = other.GetComponent <spider>();

        if (testSpider != null)
        {
            Debug.DrawLine(this.transform.position, testSpider.transform.position, Color.red);
        }
    }
Beispiel #5
0
    // Use this for initialization
    void Start()
    {
        if (instance != null)
        {
            DestroyObject(this.gameObject);
            return;
        }

        instance = this;
        this.sr  = this.GetComponent <SpriteRenderer>();
    }
Beispiel #6
0
    void OnTriggerExit(Collider other)
    {
        spider testSpider = other.GetComponent <spider>();

        if (testSpider != null && m_memory.VisibleInsects.Contains(testSpider))
        {
            Debug.Log(string.Format("{0} LOST sight of insect named {1}.", this.name, testSpider.name));
            m_memory.VisibleInsects.Remove(testSpider);
            m_memory.VisibleInsects.ForEach(DebugTrigger);
        }
    }
Beispiel #7
0
    void OnTriggerEnter(Collider other)
    {
        spider testSpider = other.GetComponent <spider>();

        if (testSpider != null && !m_memory.VisibleInsects.Contains(testSpider))
        {
            Debug.Log(string.Format("{0} SPIES an insect named {1}.", this.name, testSpider.name));
            m_memory.VisibleInsects.Add(testSpider);
            m_memory.VisibleInsects.ForEach(DebugTrigger);
        }
    }
Beispiel #8
0
 void SetTargetInsect(spider targetInsect)
 {
     m_memory.TargetInsect = targetInsect;
     if (m_memory.TargetInsect != null)
     {
         SetTargetPosition(targetInsect.transform.position);
     }
     else
     {
         ClearTargetPosition();
     }
 }
Beispiel #9
0
    void TakeDamage(spider attacker, float damage)
    {
        m_memory.AttackingInsect = attacker;

        health -= damage;
        Debug.Log(string.Format("{0}'s Health is: {1}", this.name, health));

        if (health <= 0)
        {
            Die();
        }
    }
Beispiel #10
0
    void ToggleColliderVisible()
    {
        spider selectedSpider = GetSelectedSpider();

        if (selectedSpider != null)
        {
            Renderer[] childRenderers = selectedSpider.GetComponentsInChildren <Renderer>(true);

            foreach (var renderer in childRenderers)
            {
                if (renderer.name == "AttackRadius")
                {
                    renderer.enabled = !renderer.enabled;
                }

                if (renderer.name == "VisibilityRadius")
                {
                    renderer.enabled = !renderer.enabled;
                }
            }
        }
    }
Beispiel #11
0
    void Attack(spider targetSpider)
    {
        if (targetSpider == null || !targetSpider.Alive)
        {
            Debug.Log("The target spider is dead!");
            return;
        }

        Move(targetSpider.transform.position);

        Vector3 directionToTargetPosition = targetSpider.transform.position - transform.localPosition;
        float   targetAngleOff            = Vector3.Angle(this.transform.forward, directionToTargetPosition);

        if (targetAngleOff < m_maxAngleForAttack)
        {
            if (m_memory.AttackReady)
            {
                m_memory.AttackReady = false;
                m_spiderAnimation.CrossFade(ANIMATION_ATTACK_LEFT);
                StartCoroutine(AttackCoroutine(targetSpider));
                StartCoroutine(AttackCooldownCoroutine(attackCooldown));
            }
        }
    }
Beispiel #12
0
        private void jump_to_crawler(object sender, RoutedEventArgs e)
        {
            spider sp = new spider();

            this.NavigationService.Navigate(sp);
        }
Beispiel #13
0
        private void crawl_test(object sender, RoutedEventArgs e)
        {
            spider sp = new spider();

            this.frmMain.Navigate(sp);
        }
Beispiel #14
0
 private static void DebugTrigger(spider s)
 {
     //       Debug.Log(s.name);
 }