Ejemplo n.º 1
0
 public void RpcEndAttack()
 {
     Destroy(attack);
     vis.CmdColorNose(false);
     attack = null;
     look   = LookState.Free;
 }
Ejemplo n.º 2
0
    private void CheckLookState()
    {
        float xPos       = transform.position.x;
        float xPosPlayer = player.position.x;

        xDistance = xPosPlayer - xPos;

        if (socialState == SocialState.looking)
        {
            if (xDistance < -2f)
            {
                lookState = LookState.leftFar;
            }
            else if (xDistance < -0.7f && xDistance >= -2f)
            {
                lookState = LookState.leftNear;
            }
            else if (xDistance >= -0.7f && xDistance <= 0.7f)
            {
                lookState = LookState.middle;
            }
            else if (xDistance > 0.7f && xDistance <= 2f)
            {
                lookState = LookState.rightNear;
            }
            else if (xDistance > 2f)
            {
                lookState = LookState.rightFar;
            }
        }
    }
Ejemplo n.º 3
0
    void FixedUpdate()
    {
        if (LookAtSth == LookState.LookToPlayer)
        {
            if (player == null)
            {
                LookAtSth = LookState.LookToDefault;
            }
            else
            {
                // sth wrong: mod will be in continuous rotation
//				Quaternion quaDir = Quaternion.LookRotation(player.transform.position-reference.position, Vector3.up);
//				transform.rotation = Quaternion.Lerp (reference.rotation, quaDir, Time.fixedDeltaTime * 2f);
//				if (Quaternion.Angle (reference.rotation, quaDir) < 1) {LookAtSth = LookState.Stand;}

                transform.LookAt(player);                  // just instantly followed

                if (Vector3.Distance(transform.position, player.position) > 2)
                {
                    LookAtSth = LookState.LookToDefault;
                }
            }
        }
        else if (LookAtSth == LookState.LookToDefault)
        {
            Quaternion quaDir = Quaternion.LookRotation(defaultLook, Vector3.up);
            transform.rotation = Quaternion.Lerp(reference.rotation, quaDir, Time.fixedDeltaTime * 2f);

            if (Quaternion.Angle(reference.rotation, quaDir) < 1)
            {
                LookAtSth = LookState.Stand;
            }
        }
    }
Ejemplo n.º 4
0
 void FindPlayer(Player player)
 {
     _lookState = LookState.Player;
     if (OnFindPlayer != null)
     {
         OnFindPlayer(player);
     }
 }
Ejemplo n.º 5
0
 private void Aim()
 {
     if (CurrentTarget == null)
     {
         State = LookState.AquiringTarget;
         return;
     }
     transform.rotation = TargetingUtilities.SmoothRotation(CurrentTarget.position, transform, rotateSpeed, error);
 }
Ejemplo n.º 6
0
    // Use this for initialization
    void Start()
    {
        mainCamera.enabled = true;
        zoomCamera.enabled = false;

        mouseSensitivity = lookMouseSensitivity;

        _lookState = LookState.FreeLook;
    }
Ejemplo n.º 7
0
    private void Initialize()
    {
        UpdateError();
        State = LookState.Targetless;

        RandomizeLookDirection();
        wiggleIntervalTimer   = new Timer("Wiggle Timer", wiggleInterval, true, RandomizeLookDirection);
        wiggleDurationTimer   = new Timer("Wiggle Duration", wiggleDuration, false, OnTrackDelayFinish);
        trackingDurationTimer = new Timer("Tracking Duration", trackingDuration, false, OnTrackingFinished);
    }
Ejemplo n.º 8
0
    private void AquireTarget()
    {
        alltargets    = TargetingUtilities.FindAllTargets(transform.position, detectionRadius, targetLayer);
        CurrentTarget = TargetingUtilities.FindNearestTarget(transform.position, alltargets);

        if (CurrentTarget != null)
        {
            State = LookState.Aiming;
        }
    }
Ejemplo n.º 9
0
    // Use this for initialization
    void Start()
    {
        rb      = GetComponent <Rigidbody>();
        col     = GetComponent <CapsuleCollider>();
        hp      = GetComponent <Health>();
        current = PState.Free;
        look    = LookState.Free;

        vis        = GetComponent <Visuals>();
        buffholder = GetComponent <BuffableLoose>();
    }
Ejemplo n.º 10
0
 public void SetExamineTarget(Transform to, Transform from)
 {
     if (to == null)
     {
         _lookState = LookState.FreeLook;
         return;
     }
     _lookState = LookState.Examining;
     examiningSourcePosition = from.position;
     examiningSourceRotation = from.rotation;
     examiningTargetPosition = to.position;
     examiningTargetRotation = to.rotation;
 }
Ejemplo n.º 11
0
 public void SetCenterTarget(Transform target, InteractableGroup group)
 {
     Debug.Log("setting");
     if (_lookState == LookState.FreeLook)
     {
         _lookState              = LookState.ZoomingIn;
         centering               = 1f;
         centeringGroup          = group;
         centeringTargetPosition = target.position;
         centeringTargetRotation = target.rotation;
         centeringSourcePosition = transform.position;
         centeringSourceRotation = transform.rotation;
     }
 }
Ejemplo n.º 12
0
 private void Awake()
 {           //estas lineas son medio conflictivas para mí
     chaseState  = new ChaseState(this);
     alertState  = new AlertState(this);
     patrolState = new PatrolState(this);
     atackState  = new AtackState(this);
     lookState   = new LookState(this);
     //obteniendo el componente de navmesh
     navMeshAgent        = GetComponent <NavMeshAgent> ();
     animator            = GetComponent <Animator> ();
     controladorVision   = GetComponent <ControladorVision> ();
     controladorNavMesh  = GetComponent <ControladorNavMesh> ();
     controladorAnimator = GetComponent <ControladorAnimator> ();
     hashIDs             = GetComponent <HashIDs> ();
 }
Ejemplo n.º 13
0
    public void ChangeLookState(LookState state)
    {
        switch (state)
        {
        case LookState.LockedInvisible:
            Cursor.lockState = CursorLockMode.Locked;
            Cursor.visible   = false;
            break;

        case LookState.VisibleMoveable:
            Cursor.lockState = CursorLockMode.None;
            Cursor.visible   = true;
            break;
        }
    }
Ejemplo n.º 14
0
 public void ResetCenterTarget(Transform target)
 {
     Debug.Log("resetting");
     if (_lookState == LookState.ZoomedIn)
     {
         _lookState = LookState.ZoomingOut;
         centering  = 1f;
         if (centeringGroup != null)
         {
             centeringGroup.OnUnCentered();
         }
         centeringTargetPosition = centeringSourcePosition;
         centeringTargetRotation = centeringSourceRotation;
         centeringSourcePosition = target.position;
         centeringSourceRotation = target.rotation;
     }
 }
Ejemplo n.º 15
0
 private void OnTrackingFinished()
 {
     ModifyStats();
     State = LookState.None;
 }
Ejemplo n.º 16
0
 private void OnTrackDelayFinish()
 {
     ModifyStats();
     State = LookState.AquiringTarget;
 }
Ejemplo n.º 17
0
 private LookState NewLook()
 {
     look = new LookState(transform, lookDistance, "Player", LookCallback);
     return(look);
 }
Ejemplo n.º 18
0
    void Update()
    {
        //Debug.Log(_lookState.ToString());

        switch (_lookState)
        {
        case LookState.FreeLook:
            Cursor.lockState   = CursorLockMode.Locked;
            playerYaw         += Input.GetAxis("Mouse X") * lookMouseSensitivity * Mathf.Deg2Rad;
            playerPitch       += Input.GetAxis("Mouse Y") * lookMouseSensitivity * Mathf.Deg2Rad;
            transform.rotation = Quaternion.identity;
            transform.Rotate(new Vector3(-playerPitch, playerYaw, 0), Space.World);
            transform.Rotate(new Vector3(0, 0, BoatTilt._tiltAngle), Space.World);
            break;

        case LookState.Examining:
            Cursor.lockState = CursorLockMode.Locked;
            zoomYaw         += Input.GetAxis("Mouse X") * zoomMouseSensitivity * Mathf.Deg2Rad;
            zoomPitch       += Input.GetAxis("Mouse Y") * zoomMouseSensitivity * Mathf.Deg2Rad;
            zoomPitch        = Mathf.Clamp(zoomPitch, -90f, 90f);

            zoomCamera.transform.rotation = examiningSourceRotation;
            zoomCamera.transform.position = examiningSourcePosition;
            zoomCamera.transform.RotateAround(examiningTargetPosition, zoomCamera.transform.up, zoomYaw);
            zoomCamera.transform.RotateAround(examiningTargetPosition, zoomCamera.transform.right, -zoomPitch);
            break;

        case LookState.ZoomedIn:
            Cursor.lockState = CursorLockMode.None;
            break;

        case LookState.ZoomingIn:
        case LookState.ZoomingOut:
            Cursor.lockState   = CursorLockMode.Locked;
            transform.position = (centeringSourcePosition * centering) + (centeringTargetPosition * (1f - centering));
            transform.rotation = Quaternion.Lerp(centeringSourceRotation, centeringTargetRotation, (1f - centering));
            if (centering > .02f)
            {
                centering -= .01f;
            }
            else
            {
                centering = 0f;
                if (_lookState == LookState.ZoomingIn)
                {
                    _lookState = LookState.ZoomedIn;
                    if (centeringGroup != null)
                    {
                        centeringGroup.OnCentered();
                    }
                }
                else if (_lookState == LookState.ZoomingOut)
                {
                    _lookState = LookState.FreeLook;
                }
            }

            break;

        case LookState.Paused:
            Cursor.lockState = CursorLockMode.None;
            break;
        }

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            if (_lookState == LookState.Paused)
            {
                _lookState = _storedLookState;
            }
            else
            {
                _storedLookState = _lookState;
                _lookState       = LookState.Paused;
            }
        }


        playerPitch = Mathf.Clamp(playerPitch, -90f, 90f);

        if (Input.GetMouseButtonDown(1))
        {
            mainCamera.enabled = true;
            zoomCamera.enabled = false;
        }
    }
Ejemplo n.º 19
0
 void Miss()
 {
     _lookState = LookState.None;
 }
Ejemplo n.º 20
0
    void FixedUpdate()
    {
        if (isServer)
        {
            buffholder.computeStats();
            if (registerHit)
            {
                registerHit = false;
                if (attack)
                {
                    RpcEndAttack();
                }
                if (hp.change(-hitDamage))
                {
                    Destroy(gameObject);
                }
                else
                {
                    RpcTakeHit(hitDirection * hitMag);
                }
            }
            if (abil1CD > 0)
            {
                abil1CD -= Time.fixedDeltaTime;
            }
            if (abil2CD > 0)
            {
                abil2CD -= Time.fixedDeltaTime;
            }
        }
        if (hasAuthority)
        {
            buffholder.computeStats();
            ghost.renderCD(abil1CD, abil2CD);
            bool    movement = true;
            Vector3 move     = new Vector3();
            switch (current)
            {
                #region states
            case PState.Free:
                if (!grounded)
                {
                    current  = PState.Air;
                    movement = false;
                }
                if (inp.jump)     //here
                {
                    rb.AddForce(Vector3.up * jumpForce);
                    current = PState.Air;
                }
                break;

            case PState.Air:
                if (grounded)
                {
                    current = PState.Free;
                }
                else
                {
                    movement = false;
                }
                break;

            case PState.KB:
                if (planeVel.magnitude <= KBRegain)
                {
                    current = PState.Free;
                }
                //print(planeVel);
                movement = false;
                planeVel = planeVel.normalized * (planeVel.magnitude - KBDeteriorate * Time.fixedDeltaTime * (grounded ? 1 : 0.4f));
                break;
                #endregion
            }
            if (movement)
            {
                #region movement

                if (inp.up)
                {
                    move += new Vector3(0, 0, 1);
                }
                if (inp.down)
                {
                    move += new Vector3(0, 0, -1);
                }
                if (inp.left)
                {
                    move += new Vector3(-1, 0, 0);
                }
                if (inp.right)
                {
                    move += new Vector3(1, 0, 0);
                }
                move.Normalize();
                //rb.AddForce(move * moveForce * Time.fixedDeltaTime);
                //if(planeVel.magnitude >= maxSpeed)
                //{
                //    planeVel = planeVel.normalized * maxSpeed;
                //}

                if (!sprinting)
                {
                    #region sprintS
                    if (move != Vector3.zero)
                    {
                        if (lastMove == move)
                        {
                            sprintBuildCurrent += Time.fixedDeltaTime;
                        }
                        else
                        {
                            float diff = (move - lastMove).magnitude;
                            if (diff > 1)
                            {
                                diff = 1;
                            }
                            Mathf.Pow(diff, 3);
                            //print(diff);
                            sprintBuildCurrent -= sprintChangeLoss * diff;
                            if (sprintBuildCurrent < 0)
                            {
                                sprintBuildCurrent = 0;
                            }
                        }
                    }

                    lastMove = move;

                    if (sprintBuildCurrent > sprintBuild)
                    {
                        //print("sprinting");
                        setSprint(true);
                    }
                    else
                    {
                        vis.CmdSprintAlpha(sprintPer);
                    }
                    #endregion
                }
                planeVel = ghost.spawnMutate(move) * maxSpeed * ((sprintSpeed) + 1);
                #endregion
            }

            Vector3 dif;
            switch (look)
            {
            case LookState.Free:
                dif   = inp.target - transform.position;
                dif.y = 0;
                transform.rotation = Quaternion.LookRotation(dif);
                break;

            case LookState.Attacking:
                if (current != PState.Air)
                {
                    dif   = inp.target - transform.position;
                    dif.y = 0;
                    transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.LookRotation(dif), attackTurn * Time.fixedDeltaTime);
                }
                break;
            }
            if (look == LookState.Free && inp.attacking)
            {
                if (buffholder.buf("FullSprint") < 1)
                {
                    setSprint(false);
                }
                if (inp.atk1)
                {
                    look = LookState.Attacking;
                    CmdAtk(attackType.basic, inp.groundTarget);
                }
                else if (inp.atk2)
                {
                    look = LookState.Attacking;
                    CmdAtk(attackType.heavy, inp.groundTarget);
                }
                else if (inp.abil1 && abil1CD <= 0)
                {
                    look = LookState.Attacking;
                    CmdAtk(attackType.abil1, inp.groundTarget);
                }
                else if (inp.abil2 && abil2CD <= 0)
                {
                    look = LookState.Attacking;

                    CmdAtk(attackType.abil2, inp.groundTarget);
                }
            }
            vis.CmdPropagate();
        }
    }