Пример #1
0
 private void Update()
 {
     Animate();
     CheckVisible();
     if (updateFrameIndex > IMainMenu.GetUpdateFramesPerSecond() / 10)
     {
         if (canDoSomething)
         {
             AI();
         }
         else
         {
             if (attacking && who_under_attack)
             {
                 Vector3    look = Vector0.Flat(who_under_attack.trans.position - trans.position);
                 Quaternion n    = Quaternion.LookRotation(look);
                 trans.rotation = Quaternion.Slerp(trans.rotation, n, Time.deltaTime * 3);
             }
             Stop();
         }
         if (savable.health < 1 || (hasNoArms && hasNoLegs) || hasNoHead)
         {
             Die();
         }
         updateFrameIndex = 0;
     }
     updateFrameIndex++;
 }
Пример #2
0
    public static Vector3 FromCameraFlat(Vector3 origin)
    {
        Vector3 f = cameraTransformMain.forward;
        Vector3 r = cameraTransformMain.right;

        f = Vector0.Flat(f);
        r = Vector0.Flat(r);
        return(f * origin.z + r * origin.x);
    }
Пример #3
0
    public void Spawn()
    {
        int   l   = 0;
        float max = maxCount;

        /*if (!ITimecycle.night) {
         *      max = maxCount / 2;
         * }*/
        if (human)
        {
            l = DataCenter.dataCenter.humans.Length;
        }
        else
        {
            l = DataCenter.dataCenter.zombies.Length;
        }
        if ((l < max && limit > 0) || (!IHuman.playerObj && human))
        {
            GameObject sp = (GameObject)Resources.Load("Prefabs/ZombieRag_" + Random.Range(0, 1));
            if (!human)
            {
                sp = Instantiate(sp, transform.position + (Vector3)Vector0.Flat(Random.onUnitSphere), Quaternion.identity, transform);
                IZombie z = sp.GetComponent <IZombie> ();
                z.findMode       = isFinders;
                z.savable.health = 100 + IZombie.dead * 10;
            }
            else
            {
                if (IHuman.playerObj)
                {
                    sp = (GameObject)Resources.Load("Prefabs/HumanRag");
                    sp = Instantiate(sp, transform.position + (Vector3)Vector0.Flat(Random.onUnitSphere), Quaternion.identity, transform);
                    IHuman h = sp.GetComponent <IHuman> ();
                    h.savable.name = "BOT";
                    Destroy(h.camObj);
                }
                else
                {
                    sp = (GameObject)Resources.Load("Prefabs/Human");
                    sp = Instantiate(sp, transform.position + (Vector3)Vector0.Flat(Random.onUnitSphere), Quaternion.identity, transform);
                    IHuman h = sp.GetComponent <IHuman> ();
                    h.savable.name = "player";
                    IHuman.GetPlayer();
                    ITimecycle.UpdateCameras();
                }
            }
        }
        if (limited)
        {
            limit -= 1;
        }
        if (!IsInvoking("Spawn"))
        {
            Invoke("Spawn", interval + Random.Range(0f, interval));
        }
    }
Пример #4
0
    private void Sinhro()
    {
        if (Input.GetButtonDown("Cancel"))
        {
            IMainMenu.ToMenu();
        }
        weapon.texture = (Texture)Resources.Load("Sprites/Weapon_" + player.savable.currentWeapon);
        if (fire)
        {
            Fire();
        }
        //SinhroCross ();
        Transform cm    = IHuman.cameraMainParent;
        Transform fp    = player.firePlace;
        float     speed = Time.deltaTime * 8;

        if (cross)
        {
            rangeView = 30;
            Vector3 v = fp.position - fp.forward + fp.up * 0.02f;
            Debug.DrawRay(v, fp.forward);
            cm.position = Vector3.Slerp(cm.position, v, speed);
        }
        else
        {
            rangeView        = 60;
            cm.localPosition = Vector3.Slerp(cm.localPosition, new Vector3(0, 0.0014f, 0.0013f), speed);
        }
        IHuman.cameraMain.fieldOfView = Mathf.Lerp(IHuman.cameraMain.fieldOfView, rangeView, 0.25f);
        health.text = "" + ((int)player.savable.health) + '\n' + "Зомби сейчас : " + DataCenter.dataCenter.zombies.Length;
        float  t   = ITimecycle.time;
        int    sec = (int)((t - (int)t) * 60);
        string s   = "" + sec;

        if (sec < 10)
        {
            s = "0" + sec;
        }
        killed.text = "Время : " + (int)t + ":" + s;
        IZombie z = IZombie.ZombieNearbyPosition(player.trans.position, 5, false);

        if (z)
        {
            Vector3 v = Vector0.Flat(z.trans.position - player.trans.position);
            v = player.trans.InverseTransformDirection(v);
            Quaternion q = Quaternion.LookRotation(v);
            zAngle = -135 - q.eulerAngles.y;
        }
        else
        {
            zAngle -= Time.deltaTime * 180;
        }
        radar.localEulerAngles = Vector3.forward * (zAngle);
        patronesType.texture   = (Texture)Resources.Load("Sprites/Patrones_" + player.savable.currentWeapon);
        patrones.text          = "" + player.savable.patrones_in [player.savable.currentWeapon] + "/" + player.savable.patrones_ [player.savable.currentWeapon];
    }
Пример #5
0
    private void MoveAt(Vector3 direction)
    {
        if (onGround && !falled)
        {
            direction = Vector0.Flat(direction);
            Vector3 vel = direction * walkSpeed * walk_speed_k;

            /*if (body.velocity.magnitude < walkSpeed * walk_speed_k) {
             * body.AddForce (vel * walkForce * Time.deltaTime);
             * }*/
            body.velocity = new Vector3(vel.x, body.velocity.y, vel.z);
        }
    }
Пример #6
0
 public void Fall()
 {
     if (savable.name == "player")
     {
         anims.Play("Death");
         falled = true;
         IZombie z = zombieNearby;
         if (z)
         {
             trans.rotation = Quaternion.LookRotation(Vector0.Flat(z.trans.position - trans.position));
         }
         falledEulerY = trans.eulerAngles.y;
     }
 }
Пример #7
0
    public Vector2 GetVectorForLegs()
    {
        Vector3 vel = Vector0.Flat(body.velocity);

        Vector3 dir = trans.InverseTransformDirection(vel);

        if (savable.name == "player")
        {
            dir = Joystick.move_input;
            dir = new Vector3(dir.x, 0, dir.y);
        }

        Vector2 tr = new Vector2(dir.x, dir.z);

        return(tr);
    }
Пример #8
0
 private void LookAt()
 {
     if (currentFrame.typeOfAction == ActionFrame.ActionType.MoveAndLook ||
         currentFrame.typeOfAction == ActionFrame.ActionType.MoveAndStrike ||
         currentFrame.typeOfAction == ActionFrame.ActionType.MoveAndLook ||
         currentFrame.typeOfAction == ActionFrame.ActionType.OnlyLook ||
         currentFrame.typeOfAction == ActionFrame.ActionType.Strike ||
         currentFrame.typeOfAction == ActionFrame.ActionType.StrikeOnTime ||
         savable.name == "player")
     {
         if (!falled)
         {
             Vector3 look = Vector0.Flat(GetLookDirection());
             trans.rotation = Quaternion.Slerp(trans.rotation, Quaternion.LookRotation(look), Time.deltaTime * 12);
         }
     }
 }