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; }
private void Awake() { instance = this; if (cameraTransform == null) { cameraTransform = GetComponent(typeof(Transform)) as Transform; } }
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; }
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); } }