Ejemplo n.º 1
0
 public void FindTarget()
 {
     if (target)
     {
         RaycastHit hit;
         if (Physics.Raycast(AutoTurretPos.position, ((target.GetBody.position + Vector3.up) - AutoTurretPos.position).normalized, out hit, AutoTurretRange, AutoTurretSightMask))
         {
             if (hit.transform != target)
             {
                 target = null;
             }
         }
         else
         {
             target = null;
         }
         if (target && target.isDead)
         {
             target = null;
         }
     }
     if (target)
     {
         return;
     }
     Collider[] colliders = Physics.OverlapSphere(AutoTurretPos.position, AutoTurretRange, AutoTurretMask);
     foreach (var item in colliders)
     {
         RaycastHit hit;
         if (Physics.Raycast(AutoTurretPos.position, ((item.transform.position + Vector3.up) - AutoTurretPos.position).normalized, out hit, AutoTurretRange, AutoTurretSightMask))
         {
             if (hit.collider == item)
             {
                 HealthHandler handler = item.GetComponent <HealthHandler>();
                 if (!handler)
                 {
                     ColliderHit hitCollider = item.GetComponent <ColliderHit>();
                     if (hitCollider)
                     {
                         handler = hitCollider.healthScript;
                     }
                 }
                 if (!handler)
                 {
                     continue;
                 }
                 if (handler.isDead)
                 {
                     continue;
                 }
                 target = handler;
                 return;
             }
         }
     }
 }
Ejemplo n.º 2
0
    // Use this for initialization
    void Start()
    {
        Collider[] rigidbodies = GetComponentsInChildren <Collider>();

        foreach (var child in rigidbodies)
        {
            ColliderHit script = child.gameObject.AddComponent <ColliderHit>();
            script.damageMultiplier   = GetMultiplier(child.gameObject);
            script.minForceForRagdoll = GetMinForceForRagdoll(child.gameObject);
            script.healthScript       = healthScript;
            script.forceMultToDamage  = forceMultToDamage;

            script.owner = this;

            child.gameObject.tag = "Enemy";

            colliders.Add(child.transform);
        }
    }
Ejemplo n.º 3
0
    void OnTriggerEnter(Collider col)
    {
        str = "";


        if (variable.Instance.isLoad == true)
        {
            if (col.gameObject.name != "river(Clone)")
            {
                pltMov = false;
            }

            if (col.tag == "nothing")
            {
                detectNothing = true;
                col.enabled   = false;
            }
            //if (col.tag == "nothingFall")
            //{
            //    Debug.Break();
            //    dead = true;
            //    dieBy = resoneDead.fall;
            //}
            if (col.gameObject.name == "pltPoison(Clone)")
            {
                if (variable.Instance.useMagic == false)
                {
                    colliderHit = ColliderHit.poision;
                    str         = "poison";


                    panelMagic.SetActive(true);
                    variable.Instance.isInjuerd = true;
                    timeInjuredf    = TimeToPoison;
                    txtInjured.text = "Time Remainig healing";

                    deactiveChar();
                    posionChar.SetActive(true);
                    Animator[] animPlayer = Player.GetComponentsInChildren <Animator>();
                    for (int i = 0; i < animPlayer.Length; i++)
                    {
                        animPlayer[i].SetBool("idle", false);
                    }
                }
            }
            if (col.gameObject.name == "treasure(Clone)")
            {
                colliderHit = ColliderHit.treasure;
                str         = "treasure";
                preManner   = manner;
                manner      = -1;
            }
            else if (col.tag == "topBlade")
            {
                if (variable.Instance.useMagic == false)
                {
                    colliderHit = ColliderHit.blade;
                    str         = "tigh mord";
                    manner      = -1;
                }
            }
            else if (col.tag == "bodyBlade")
            {
                str    = "stop";
                manner = -1;
            }
            else if (col.tag == "pltStable" || col.tag == "tree")
            {
                colliderHit = ColliderHit.stable;
                preManner   = manner;
                manner      = -1;
            }
            else if (col.tag == "fireEarth")
            {
                if (variable.Instance.useMagic == false)
                {
                    colliderHit = ColliderHit.fire;
                    str         = "fire";

                    burned = true;

                    panelMagic.SetActive(true);
                    variable.Instance.isInjuerd = true;
                    timeInjuredf    = TimeToBurn;
                    txtInjured.text = "Time Remainig healing";

                    deactiveChar();
                    burnedChar.SetActive(true);
                    Animator[] animPlayer = Player.GetComponentsInChildren <Animator>();
                    for (int i = 0; i < animPlayer.Length; i++)
                    {
                        animPlayer[i].SetBool("idle", false);
                    }
                }
            }
            else if (col.gameObject.name == "PartiFire")
            {
                str = "fire particle mord";
            }
            else if (col.gameObject.name == "pltFireOnOffUp(Clone)")
            {
                str = "fire particle mord";
            }
            else if (col.gameObject.name == "pltFireOnOffR(Clone)")
            {
                str = "fire particle mord";
            }
            else if (col.gameObject.name == "pltFireOnOffD(Clone)")
            {
                str = "fire particle mord";
            }
            else if (col.gameObject.name == "pltFireOnOffL(Clone)")
            {
                str = "fire particle mord";
            }

            else if (col.gameObject.name == "pltMoveable(Clone)")
            {
                pltMov = true;
            }
            else if (col.tag == "river" && pltMov == false)
            {
                colliderHit = ColliderHit.river;
                str         = "river";


                deactiveChar();
                drownChar.SetActive(true);
                Animator[] animPlayer = Player.GetComponentsInChildren <Animator>();
                for (int i = 0; i < animPlayer.Length; i++)
                {
                    animPlayer[i].SetBool("idle", false);
                }

                if (burned == true)
                {
                    burned = false;
                }
                else
                {
                    str = "mordRiver";
                }
            }
            else if (col.gameObject.name == "pltFall(Clone)")
            {
            }
        }
    }
Ejemplo n.º 4
0
    // Update is called once per frame
    void Update()
    {
        if (variable.Instance.isLoad == true && dead == false)
        {
            //correctpos();
            //  scrStaticObj.posJigZ = this.transform.position.z;

            //if (isColide == true)
            {
                decix = Player.transform.position.x - (int)Player.transform.position.x;
                deciz = Player.transform.position.z - (int)Player.transform.position.z;

                if (detectNothing == false)
                {
                    if ((Input.touchCount > 0))
                    {
                        Touch touch = Input.GetTouch(0);
                        if (touch.phase == TouchPhase.Began)
                        {
                            Ray          touchRay = mainCamera.ScreenPointToRay(touch.position);
                            RaycastHit[] hits     = Physics.RaycastAll(touchRay);
                            foreach (RaycastHit hit in hits)
                            {
                                if (hit.collider.gameObject == gameObject)
                                {
                                    useMag();
                                }
                            }


                            beginDeltaPos = touch.position;
                        }
                        if (touch.phase == TouchPhase.Stationary)
                        {
                        }
                        if (touch.phase == TouchPhase.Ended)
                        {
                            directMove(touch);
                        }
                        if (touch.phase == TouchPhase.Moved && oncePerTouch)
                        {
                            directMove(touch);
                        }
                    }
                    else
                    {
                        {
                            if (Input.GetKey(KeyCode.Z))
                            {
                                useMag();
                            }
                            if ((Input.GetKey(KeyCode.UpArrow)) || Input.GetKey(KeyCode.W))
                            //bala
                            {
                                Animator[] animPlayer = Player.GetComponentsInChildren <Animator>();
                                for (int i = 0; i < animPlayer.Length; i++)
                                {
                                    animPlayer[i].SetBool("idle", false);
                                }

                                correctpos();
                                manner = 0;
                                rotationJigooli.eulerAngles = new Vector3(GameObject.Find("jigooli").transform.eulerAngles.x, 0, Player.transform.eulerAngles.z);
                                Player.transform.rotation   = rotationJigooli;
                            }
                            else if ((Input.GetKey(KeyCode.RightArrow)) || Input.GetKey(KeyCode.D))
                            //rast
                            {
                                Animator[] animPlayer = Player.GetComponentsInChildren <Animator>();
                                for (int i = 0; i < animPlayer.Length; i++)
                                {
                                    animPlayer[i].SetBool("idle", false);
                                }

                                correctpos();
                                manner = 1;
                                rotationJigooli.eulerAngles = new Vector3(GameObject.Find("jigooli").transform.eulerAngles.x, 90, Player.transform.eulerAngles.z);
                                Player.transform.rotation   = rotationJigooli;
                            }
                            //chap
                            else if ((Input.GetKey(KeyCode.LeftArrow)) || Input.GetKey(KeyCode.A))
                            {
                                Animator[] animPlayer = Player.GetComponentsInChildren <Animator>();
                                for (int i = 0; i < animPlayer.Length; i++)
                                {
                                    animPlayer[i].SetBool("idle", false);
                                }

                                correctpos();
                                manner = 3;
                                rotationJigooli.eulerAngles = new Vector3(GameObject.Find("jigooli").transform.eulerAngles.x, 270, Player.transform.eulerAngles.z);
                                Player.transform.rotation   = rotationJigooli;
                            }
                            //paein
                            else if ((Input.GetKey(KeyCode.DownArrow)) || Input.GetKey(KeyCode.S))
                            {
                                Animator[] animPlayer = Player.GetComponentsInChildren <Animator>();
                                for (int i = 0; i < animPlayer.Length; i++)
                                {
                                    animPlayer[i].SetBool("idle", false);
                                }

                                //   Character.Instance.allowFollow = false;
                                correctpos();
                                //  Character.Instance.allowFollow = true;

                                manner = 2;
                                rotationJigooli.eulerAngles = new Vector3(GameObject.Find("jigooli").transform.eulerAngles.x, 180, Player.transform.eulerAngles.z);
                                Player.transform.rotation   = rotationJigooli;
                            }

                            posJigooli = Player.transform.position;
                        }
                    }
                }

                if (variable.Instance.isInjuerd)
                {
                    // Debug.Break();
                    timeInjuredf       -= 1 * Time.deltaTime;
                    timeInjured         = (int)timeInjuredf;
                    timeInjuredTXT.text = timeInjured.ToString();
                }

                if (stopPlayerOnPreTile == false)
                {
                    switch (colliderHit)
                    {
                    case ColliderHit.blade:
                    {
                        break;
                    }

                    case ColliderHit.fire:
                    {
                        break;
                    }

                    case ColliderHit.poision:
                    {
                        break;
                    }

                    case ColliderHit.river:
                    {
                        break;
                    }

                    case ColliderHit.stable:
                    {
                        stopPlayerOnPreTile = true;
                        break;
                    }

                    case ColliderHit.treasure:
                    {
                        stopPlayerOnPreTile = true;
                        break;
                    }
                    }
                    if (manner == 0)//bala
                    {
                        posJigooli.z += speed * Time.deltaTime;
                        Player.transform.position = posJigooli;
                    }
                    else if (manner == 1)//rast
                    {
                        posJigooli.x += speed * Time.deltaTime;
                        Player.transform.position = posJigooli;
                    }
                    else if (manner == 2)//paein
                    {
                        posJigooli.z -= speed * Time.deltaTime;
                        Player.transform.position = posJigooli;
                    }
                    else if (manner == 3)//chap
                    {
                        posJigooli.x -= speed * Time.deltaTime;
                        Player.transform.position = posJigooli;
                    }
                }
            }

            if (manner == -1)//vayse
            {
                Animator[] animPlayer = Player.GetComponentsInChildren <Animator>();
                for (int i = 0; i < animPlayer.Length; i++)
                {
                    animPlayer[i].SetBool("idle", true);
                }

                correctpos();
            }
            if (stopPlayerOnPreTile == true && manner != preManner && manner != -1)
            {
                //manner = -1;
                stopPlayerOnPreTile = false;
                colliderHit         = ColliderHit.non;
            }


            //if (reveleNextTile.z + 0.5f < Player.transform.position.z)
            //{
            //    reveleNextTile.z++;
            //    mapPositionIndexX++;
            //    if (variable.Instance.tileName[mapPositionIndexX, mapPositionIndexY] == 'n')
            //    {
            //        dieBy = resoneDead.fall;
            //        dead = true;
            //    }
            //}

            //if (reveleNextTile.x + 0.5f < Player.transform.position.x)
            //{
            //    reveleNextTile.x++;
            //    //Debug.Log(mapPositionIndexY);
            //    if (mapPositionIndexY < 9)
            //        mapPositionIndexY++;
            //    else
            //    {
            //        dieBy = resoneDead.fall;
            //        dead = true;
            //    }

            //    if (variable.Instance.tileName[mapPositionIndexX, mapPositionIndexY] == 'n')
            //    {
            //        dieBy = resoneDead.fall;
            //        dead = true;
            //    }
            //}
            //if (reveleNextTile.z - 0.5f > Player.transform.position.z)
            //{
            //    reveleNextTile.z--;
            //    if (mapPositionIndexX - 1 >= 0)
            //        mapPositionIndexX--;
            //    else
            //    {
            //        dieBy = resoneDead.fall;
            //        dead = true;
            //    }
            //    if (variable.Instance.tileName[mapPositionIndexX, mapPositionIndexY] == 'n')
            //    {
            //        dieBy = resoneDead.fall;
            //        dead = true;
            //    }
            //}
            //if (reveleNextTile.x - 0.5f > Player.transform.position.x)
            //{
            //    reveleNextTile.x--;
            //    if (mapPositionIndexY - 1 >= 0)
            //        mapPositionIndexY--;
            //    else
            //    {
            //        dieBy = resoneDead.fall;
            //        dead = true;
            //    }
            //    if (variable.Instance.tileName[mapPositionIndexX, mapPositionIndexY] == 'n')
            //    {
            //        dieBy = resoneDead.fall;
            //        dead = true;
            //    }
            //}


            switch (colliderHit)
            {
            case ColliderHit.blade:
            {
                dead  = true;
                dieBy = resoneDead.blade;
                break;
            }

            case ColliderHit.fire:
            {
                if (timeInjured <= 0 || burned == false)        //&& variable.Instance.isInjuerd)
                {
                    variable.Instance.isInjuerd = false;
                    panelMagic.SetActive(false);
                    if (variable.Instance.useMagic == false)
                    {
                        // variable.Instance.die = true;
                        str = "mordFired";
                    }
                    else
                    {
                        str = "healP";
                    }
                }
                break;
            }

            case ColliderHit.poision:
            {
                if (timeInjured <= 0)        //&& variable.Instance.isInjuerd)
                {
                    variable.Instance.isInjuerd = false;
                    panelMagic.SetActive(false);
                    if (variable.Instance.useMagic == false)
                    {
                        // variable.Instance.die = true;
                        str = "mordPoison";
                    }
                    else
                    {
                        str = "healP";
                    }
                }
                break;
            }

            case ColliderHit.river:
            {
                break;
            }
            }



            if (variable.Instance.useMagic)
            {
                timeMagicf       -= 1 * Time.deltaTime;
                timeMagic         = (int)timeMagicf;
                timeMagicTXT.text = timeMagic.ToString();
                if (timeMagic <= -1)
                {
                    variable.Instance.useMagic = false;
                    panelMagic.SetActive(false);
                    magicGO.SetActive(false);
                    useMagicOnce = true;
                }
            }
        }


        if (dead == true)
        {
            if (dieBy == resoneDead.fall)
            {
                tempcountwalk = tempcountwalk + speed * Time.deltaTime;

                if (tempcountwalk >= 0.5)
                {
                    manner = -1;
                    Player.GetComponent <Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation;
                    Physics.gravity = new Vector3(0, -9.81f, 0f);
                    Player.GetComponent <Rigidbody>().useGravity = true;
                }
            }
            else
            {
                burned = false;
                Application.LoadLevel(0);
            }
        }

        //magic
        //if (variable.Instance.useMagic && timeMagic <= -1)
        //{
        //    variable.Instance.useMagic = false;
        //    panelMagic.SetActive(false);
        //}



        //reset
        if (GameObject.Find("jigooli").transform.position.y < -6)
        {
            //scrStaticObj.detectEmptyPlatform = false;
            burned = false;
            Application.LoadLevel(0);
        }
    }