Ejemplo n.º 1
0
    public void DragonDead()
    {
        UIController.UpdatePages(UIMode.Vitory);
        bTimerActive = false;
        PlayerMovementScript playerMovement = FindObjectOfType <PlayerMovementScript>();

        playerMovement.GetAnimator().Play("Win");
        Vector3 Direction = bossBehaviour.transform.position - playerMovement.transform.position;

        if (Direction.x > 0)
        {
            if (playerMovement.GetSkeleton().Skeleton.ScaleX < 0)
            {
                playerMovement.GetSkeleton().Skeleton.ScaleX = -playerMovement.GetSkeleton().Skeleton.ScaleX;
            }
        }
        else
        {
            if (playerMovement.GetSkeleton().Skeleton.ScaleX > 0)
            {
                playerMovement.GetSkeleton().Skeleton.ScaleX = -playerMovement.GetSkeleton().Skeleton.ScaleX;
            }
        }

        if (PrincePrefab)
        {
            princeGO = Instantiate(PrincePrefab, bossBehaviour.transform.position, Quaternion.identity);

            GameObject VFX = Instantiate(WinVFX, bossBehaviour.transform.position, Quaternion.identity);
            Destroy(VFX, 5.0f);
            bossBehaviour.gameObject.SetActive(false);

            if (princeGO)
            {
                SkeletonAnimation PrinceSkeleton = princeGO.GetComponentInChildren <SkeletonAnimation>();
                if (Direction.x > 0)
                {
                    if (PrinceSkeleton.Skeleton.ScaleX < 0)
                    {
                        PrinceSkeleton.Skeleton.ScaleX = -PrinceSkeleton.Skeleton.ScaleX;
                    }
                }
                else
                {
                    if (PrinceSkeleton.Skeleton.ScaleX > 0)
                    {
                        PrinceSkeleton.Skeleton.ScaleX = -PrinceSkeleton.Skeleton.ScaleX;
                    }
                }
            }
        }

        cameraBehaviour.FocusCamera(playerMovement.transform.position, bossBehaviour.transform.position);
    }
    void FireProjectile()
    {
        Vector3 ProjectileDirection = Vector3.zero;

        if (playerMovementComponent)
        {
            // Debug.Log("Im shooting in the direction " + playerMovementComponent.PlayerDirection);
            switch (playerMovementComponent.PlayerDirection)
            {
            case PlayerMovementScript.EnumPlayerDirection.Up:
                ProjectileDirection.y = 1;
                break;

            case PlayerMovementScript.EnumPlayerDirection.Left:
                ProjectileDirection.x = -1;
                break;

            case PlayerMovementScript.EnumPlayerDirection.Right:
                ProjectileDirection.x = 1;
                break;

            case PlayerMovementScript.EnumPlayerDirection.Down:
                ProjectileDirection.y = -1;
                break;
            }
        }

        SkeletonAnimation skeletonAnimation = playerMovementComponent.GetSkeleton();

        Spine.Bone bone = skeletonAnimation.skeleton.FindBone("Prcs_arm_back_empty5");
        Vector3    weaponSlotPosition      = skeletonAnimation.transform.TransformPoint(new Vector3(bone.WorldX, bone.WorldY, 0f));
        Vector2    ProjectileSpawnLocation = weaponSlotPosition;



        GameObject         CreatedProjectile  = Instantiate(ProjectilePrefab, ProjectileSpawnLocation, Quaternion.identity, null);
        ProjectileMovement projectileMovement = CreatedProjectile.GetComponent <ProjectileMovement>();

        if (projectileMovement)
        {
            // Debug.Log(ProjectileDirection);
            projectileMovement.SetLaunchDirection(ProjectileDirection);
        }

        SpawnedProjectile = CreatedProjectile;
    }