Example #1
0
    void Awake()
    {
        /* MAIN COMPONENTS */
        cam = GetComponent <Camera>();
        camShakeController = GetComponent <CameraShakeController>();

        /* CAMERA "MODULES" */
        follow    = GetComponent <CameraFollow>();
        shake     = GetComponent <CameraShake>();
        occlusion = GetComponent <CameraOcclusion>();
        collision = GetComponent <CameraCollision>();

        /* MISC/CAMERA ATTRIBUTES */
        state                    = State.FollowingTarget;
        lastCamPosition          = transform.position;
        nearClipPaneCornersLocal = new Vector3[4];

        /* CONVENIENCE VARIABLES */
        camPos                = cam.transform.position;
        followTargetPos       = followTarget.transform.position;
        desiredOffsetDistance = Vector3.Distance(followTargetPos, followTargetPos + desiredOffset);

        /* TARGET FOLLOW - POSITION */
        sqrMinDistanceFromTarget = minDistanceFromTarget * minDistanceFromTarget;
        sqrMaxDistanceFromTarget = maxDistanceFromTarget * maxDistanceFromTarget;

        /* OBSTACLE AVOIDANCE */

        /* OCCLUSION AVOIDANCE */
        halfWhiskerSectorAngle = whiskerSectorAngle / 2;
        angleInc = (halfWhiskerSectorAngle / numWhiskers) * 2;

        occlusionAvoidSearchSampleDist = occlusionMaxAvoidSearchDistance / occlusionNumAvoidSearchSamples;
    }
Example #2
0
 private void Awake()
 {
     instance = this;
     if (cameraTransform == null)
     {
         cameraTransform = GetComponent(typeof(Transform)) as Transform;
     }
 }
Example #3
0
 void Start()
 {
     cameraShake = Camera.main.GetComponent <CameraShakeController>();
     GameMaster  = GameObject.Find("Game Master").GetComponent <GameMasterScript>(); // CHANGE GAMEOBJ.FIND
     playerAnimator.GetComponent <SpriteRenderer>().color = color;
     littleArrow.color = color;
     fireScript        = GetComponentInChildren <Fire>();
     rigidBody         = GetComponent <Rigidbody2D>();
     speed             = StandardSpeed;
     isPoweredUp       = false;
 }
Example #4
0
 private void Awake()
 {
     instance = this;
 }
    public void Attack(EnemyBase[] enemyStats, int selectedEnemy, Skill skill, CameraShakeController cameraShakeController)
    {
        int   playerDamage = damage;
        Color attackColor  = Color.white;

        int criticalChance = 10 + ((criticalHit - 1) * 2);

        if (Random.Range(1, 101) <= criticalChance)
        {
            // Critical hit
            float criticalMultiplier = 2 + (criticalHit / 10f);
            Debug.Log("Player damage: " + playerDamage);
            playerDamage = Mathf.RoundToInt(playerDamage * criticalMultiplier);
            Debug.Log("Critical multiplier: " + criticalMultiplier);
            Debug.Log("Critical damage: " + playerDamage);
            attackColor = Color.red;
            StartCoroutine(cameraShakeController.Shake(0.1f, 0.8f));
        }

        if (IsBuffed())
        {
            playerDamage *= 2;
        }

        if (skill == Skill.Areal)
        {
            // Damage all enemies
            foreach (EnemyBase eb in enemyStats)
            {
                if (!eb.isDestroyed)
                {
                    eb.TakeDamage(playerDamage, attackColor);
                }
            }
        }
        else
        {
            if (skill == Skill.Basic)
            {
                playerDamage += Mathf.RoundToInt(playerDamage * (PlayerStatsController.ps.basicEffect / 100f));

                // Chance for poison attack
                if (PlayerStatsController.ps.isSkillUnlocked[(int)Skill.PoisonChance] && Random.Range(1, 101) <= PlayerStatsController.ps.poisonChance)
                {
                    enemyStats[selectedEnemy].ApplyPoison(PlayerStatsController.ps.poisonLength);
                }
            }
            else if (skill == Skill.Stun)
            {
                playerDamage = Mathf.RoundToInt(playerDamage / 2f); // half damage
                enemyStats[selectedEnemy].ApplyStun(PlayerStatsController.ps.stunLength);
            }
            else if (skill == Skill.Ultimate)
            {
                playerDamage = Mathf.RoundToInt(playerDamage * PlayerStatsController.ps.ultimateEffect);
            }
            else if (skill == Skill.Poison)
            {
                enemyStats[selectedEnemy].ApplyPoison(PlayerStatsController.ps.poisonLength);
            }
            enemyStats[selectedEnemy].TakeDamage(playerDamage, attackColor);
        }
    }