Exemplo n.º 1
0
    public void Dash(int normalizedHorizontal)
    {
        float horizontalForce = 0;

        dashTime -= Time.deltaTime; //once dashtime is below 0 dash is over
        if (dashTime > 0 || !player._ControllerState.IsGrounded)
        {
            if (player._ControllerState.IsGrounded)
            {
                horizontalForce = player._ControllerState.IsFacingRight ? CactiParameters.DashSpeed : CactiParameters.DashSpeed * -1;
            }
            else
            {
                if (normalizedHorizontal > 0)
                {
                    player._ControllerState.IsFacingRight = true;
                }

                else if (normalizedHorizontal < 0)
                {
                    player._ControllerState.IsFacingRight = false;
                }

                horizontalForce = player._ControllerState.IsFacingRight ? CactiParameters.DashSpeed : CactiParameters.DashSpeed * -1;
            }
            player.SetHorizontalVeloicty(horizontalForce);
        }
        else
        {
            State  = CactimanParameters.PlayerState.FullControll;
            dashIn = CactiParameters.DashFrequency;
        }
    }
Exemplo n.º 2
0
 public void Die()
 {
     if (State != CactimanParameters.PlayerState.Dead)
     {
         State = CactimanParameters.PlayerState.Dead;
         ActorManager.instance.PlaySound("Hit_Hurt", 1f);
         ActorManager.instance.PlaySoundDeley("Hit_Hurt", .8f, .15f);
         ActorManager.instance.PlaySoundDeley("PlayerDeath", .8f, .22f);
         Instantiate(DeathPrefab, transform.position + new Vector3(16f, 16f, -1f), Quaternion.identity);
     }
 }
Exemplo n.º 3
0
 private void getDialogInput()
 {
     //Input is taken in the dialog manager gameobject
     normalizedHorizontal = 0;
     player.SetHorizontalVeloicty(0);
     GO_PlayerSprite.GetComponent <Animator>().Play("Idle");
     if (!dm.InDialog)
     {
         State = CactimanParameters.PlayerState.FullControll;
     }
 }
Exemplo n.º 4
0
 private void checkSpikes()
 {
     RaycastHit2D[] hits = Physics2D.BoxCastAll((Vector2)transform.position + player._Collider.offset, player._Collider.size, 0, Vector2.zero, Mathf.Infinity, LayerMask.GetMask("Spike", "Bullet"));
     if (hits.Length > 0)
     {
         if (State != CactimanParameters.PlayerState.Dead)
         {
             State = CactimanParameters.PlayerState.Dead;
             ActorManager.instance.PlaySound("Hit_Hurt", 1f);
             ActorManager.instance.PlaySoundDeley("Hit_Hurt", .8f, .15f);
             ActorManager.instance.PlaySoundDeley("PlayerDeath", .8f, .22f);
             Instantiate(DeathPrefab, transform.position + new Vector3(16f, 16f, -1f), Quaternion.identity);
         }
     }
 }
Exemplo n.º 5
0
    private bool canDash()
    {
        if (CactiParameters.DashRestrictions == CactimanParameters.DashBehavior.CantDash || State == CactimanParameters.PlayerState.Dashing)
        {
            return(false);
        }

        switch (State)
        {
        case CactimanParameters.PlayerState.FullControll:
            break;

        case CactimanParameters.PlayerState.Dashing:
            return(false);

        case CactimanParameters.PlayerState.Crashing:
            return(false);

        case CactimanParameters.PlayerState.Dead:
            return(false);

        default:
            break;
        }

        if (dashIn <= 0)
        {
            if (player._ControllerState.IsGrounded && CactiParameters.DashRestrictions == CactimanParameters.DashBehavior.CanDashOnGround)
            {
                State    = CactimanParameters.PlayerState.Dashing;
                dashTime = CactiParameters.DashDuration;
                return(true);
            }
            if (CactiParameters.DashRestrictions == CactimanParameters.DashBehavior.CanDashAnywhere)
            {
                State    = CactimanParameters.PlayerState.Dashing;
                dashTime = CactiParameters.DashDuration;
                return(true);
            }
        }
        return(false);
    }
Exemplo n.º 6
0
    private void GetInput()
    {
        if (player._ControllerState.IsGrounded)
        {
            timeInAir = 0f;
        }
        else
        {
            timeInAir += Time.deltaTime;
        }
        bool hasjumped = false;

        jumpIn -= Time.deltaTime;

        if (player._ControllerState.IsGrounded && heldObject == null)
        {
            if (DpadButtons.firstUp)
            {
                RaycastHit2D[] hits = Physics2D.BoxCastAll((Vector2)transform.position + player._Collider.offset, player._Collider.size, 0, Vector2.zero, Mathf.Infinity);
                if (hits.Length > 0)
                {
                    bool enterDialog = false;
                    foreach (var item in hits)
                    {
                        if (item.transform.gameObject.GetComponent <PowerPickUp>())
                        {
                            item.transform.gameObject.GetComponent <PowerPickUp>().pickedUp();
                        }
                        if (item.transform.gameObject.GetComponent <DialogTrigger>())
                        {
                            enterDialog = true;
                            State       = CactimanParameters.PlayerState.InDialog;
                            DialogBox.transform.parent.transform.position = new Vector2(item.transform.position.x + 65, item.transform.position.y - 380);
                            DialogBox.GetComponent <Animator>().Play("DialogBoxAnim");
                            item.transform.gameObject.GetComponent <DialogTrigger>().TriggerDialogue();
                            break;
                        }
                    }
                    if (enterDialog)
                    {
                        return;
                    }
                }
            }
        }


        if (DpadButtons.firstA && canJump())
        {
            //player.SetVerticalVelocity(CactiParameters.JumpMagnitude);
            player.Parameters.StarSnap = false;
            //player.addVerticalVelocity(CactiParameters.JumpMagnitude);
            jumpIn = CactiParameters.JumpFrequency;
            player.Parameters.IgnorePlatforms = true;
            hasjumped = true;
            Jumping   = true;
            timeJump  = 0;
            ActorManager.instance.PlaySound("JumpFinal", .8f);
        }

        if (Jumping)
        {
            if (player._ControllerState.IsCollidingUp)
            {
                player.Parameters.StarSnap        = true;
                player.Parameters.IgnorePlatforms = false;
                Jumping = false;
            }
            if (DpadButtons.A)
            {
            }
            else
            {
                player.Parameters.StarSnap        = true;
                player.Parameters.IgnorePlatforms = false;
                Jumping = false;
            }
            if (player._ControllerState.IsCollidingDown && timeJump > .01f)
            {
                player.Parameters.StarSnap        = true;
                player.Parameters.IgnorePlatforms = false;
                Jumping = false;
            }
            if (timeJump > .21f)
            {
                player.Parameters.StarSnap        = true;
                player.Parameters.IgnorePlatforms = false;
                Jumping = false;
            }
        }

        normalizedHorizontal = 0;
        if (DpadButtons.left && DpadButtons.right)
        {
        }
        else if (DpadButtons.left)
        {
            normalizedHorizontal += -1;
            //If you are dashing and grounded you cant change direction. Dash will change your direction if you are in air
            if (State == CactimanParameters.PlayerState.FullControll)
            {
                player._ControllerState.IsFacingRight = false;
            }
        }
        else if (DpadButtons.right)
        {
            normalizedHorizontal += 1;
            //If you are dashing and grounded you cant change direction. Dash will change your direction if you are in air
            if (State == CactimanParameters.PlayerState.FullControll)
            {
                player._ControllerState.IsFacingRight = true;
            }
        }

        if (timeOnStar != 0 && timeOnStar <= .15f)
        {
            normalizedHorizontal = 0;
        }

        if (DpadButtons.X && ActorManager.instance.hasStar && holdType == holdObjectType.Nothing)
        {
            holdType = holdObjectType.Star;
            Vector3 pos = new Vector3(transform.position.x - 4, transform.position.y + 9f, transform.position.z + 1f);
            heldObject = Instantiate(StarPrefab, pos, Quaternion.identity).GetComponentInChildren <SuperActor>();
        }
        if (DpadButtons.Y && ActorManager.instance.hasBomb && holdType == holdObjectType.Nothing)
        {
            holdType = holdObjectType.Bomb;
            Vector3 pos = new Vector3(transform.position.x - 4, transform.position.y + 9f, transform.position.z + 1f);
            heldObject = Instantiate(BombPrefab, pos, Quaternion.identity).GetComponentInChildren <SuperActor>();
        }

        if (hasjumped)
        {
            GO_PlayerSprite.GetComponent <Animator>().Play("Jump");
        }
        else if (normalizedHorizontal != 0 && State == CactimanParameters.PlayerState.FullControll && player._ControllerState.IsGrounded && jumpIn != CactiParameters.JumpFrequency && jumpIn <= CactiParameters.JumpFrequency - .2f)
        {
            GO_PlayerSprite.GetComponent <Animator>().Play("Run");
        }
        else if (jumpIn != CactiParameters.JumpFrequency && player._ControllerState.IsGrounded && jumpIn <= CactiParameters.JumpFrequency - .2f)
        {
            GO_PlayerSprite.GetComponent <Animator>().Play("Idle");
        }

        if (player._ControllerState.IsFacingRight)
        {
            GO_PlayerSprite.GetComponent <SpriteRenderer>().flipX = false;
            GO_PlayerSprite.transform.position = transform.position;
        }
        else
        {
            GO_PlayerSprite.GetComponent <SpriteRenderer>().flipX = true;
            GO_PlayerSprite.transform.position = transform.position + new Vector3(24, 0, 0);
        }

        player.SetHorizontalVeloicty(normalizedHorizontal * 150);
        if (holdType != holdObjectType.Nothing && heldObject != null)
        {
            bool buttonReleased = false;

            switch (holdType)
            {
            case holdObjectType.Nothing:
                //This never happens
                break;

            case holdObjectType.Bomb:

                heldObject.transform.position = new Vector3(transform.position.x - 20, transform.position.y - 2, transform.position.z + 1);
                if (DpadButtons.Y)
                {
                }
                else
                {
                    buttonReleased = true;
                }
                break;

            case holdObjectType.Star:

                heldObject.transform.parent.position = new Vector3(transform.position.x - 4, transform.position.y + 9f, transform.position.z + 1);
                if (DpadButtons.X)
                {
                }
                else
                {
                    buttonReleased = true;
                }
                break;

            default:
                break;
            }

            if (!buttonReleased)
            {
                timeholdingobject += Time.deltaTime;
            }
            else
            {
                timeholdingobject = 0f;
            }

            if (heldObject.GetComponent <Throwable>().DoneSpawning&& buttonReleased)
            {
                //Throwing
                Vector2 throwVelocity = new Vector2();

                if (player._ControllerState.IsFacingRight)
                {
                    if (DpadButtons.up)
                    {
                        throwVelocity = new Vector2(150, 400);
                    }
                    else if (DpadButtons.down)
                    {
                        throwVelocity = new Vector2(150, -400);
                    }
                    else
                    {
                        throwVelocity = new Vector2(250, 200);
                    }
                }
                else
                {
                    if (DpadButtons.up)
                    {
                        throwVelocity = new Vector2(-150, 400);
                    }
                    else if (DpadButtons.down)
                    {
                        throwVelocity = new Vector2(-150, -400);
                    }
                    else
                    {
                        throwVelocity = new Vector2(-250, 200);
                    }
                }

                heldObject.GetComponentInChildren <Throwable>().Throw(throwVelocity);
                holdType   = holdObjectType.Nothing;
                heldObject = null;
            }
            else if (buttonReleased)
            {
                //LetGoTooEarly
                switch (holdType)
                {
                case holdObjectType.Nothing:
                    break;

                case holdObjectType.Bomb:
                    heldObject.GetComponent <Bomb>().removeBomb();
                    break;

                case holdObjectType.Star:
                    heldObject.GetComponent <Star>().removeStar();
                    break;

                default:
                    break;
                }
                heldObject = null;
                holdType   = holdObjectType.Nothing;
            }
        }
        else if (heldObject == null)
        {
            holdType = holdObjectType.Nothing;
        }
    }