private void Awake() { if (statRef == null) { statRef = this; } }
protected virtual void Awake() { FiniteStateMachine = new FiniteStateMachine(); StatsManager = new EnemyStatsManager(_enemyStatsData); FacingDirection = 1; }
void Awake() { stats = gameObject.GetComponent <EnemyStatsManager>(); agent = gameObject.GetComponent <NavMeshAgent>(); // Determine the figher class... AI actions based on weightclass. determineBuild = this.gameObject.tag.ToString(); playerID = Resources.Load("Prefabs/Characters/PlayerCharacter").name as string; }
// Use this for initialization void Start() { player = GameObject.FindGameObjectWithTag("Player"); gameManager = GameObject.FindGameObjectWithTag("GameManager"); radiusOfPlayer = gameManager.GetComponent <StatsManager>().PlayerRadius; enemyStatsManager = GetComponent <EnemyStatsManager>(); enemyType = enemyStatsManager.EnemyType; generateNewLocation(); }
// Start is called before the first frame update void Start() { player = FindObjectOfType <PlayerController>(); enemyCurrentHealth = enemyMaxHealth; enemyInfoManager = FindObjectOfType <EnemyInfoManager>(); enemyStats = FindObjectOfType <EnemyStatsManager>(); respawnController = FindObjectOfType <RespawnController>(); qki = FindObjectOfType <QuestKillsIncrease>(); questsManager = FindObjectOfType <QuestsManager>(); }
void Awake() { //Instantiate(soundManager, this.gameObject.transform); if (Toolbox._instance != null) { Destroy(this.gameObject); } //manager = GameObject.FindGameObjectWithTag("Manager"); if (manager == null) { var go = new GameObject(nameof(manager)); go.transform.SetParent(transform); manager = go.AddComponent <SceneLoader>(); } if (statsManager == null) { var go = new GameObject(nameof(statsManager)); go.transform.SetParent(transform); statsManager = go.AddComponent <EnemyStatsManager>(); } if (soundManager == null) { soundManager = Instantiate(Resources.Load(nameof(SoundManager), typeof(GameObject)) as GameObject); soundManager.transform.SetParent(transform); } if (musicManager == null) { if (soundManager != null) { musicManager = soundManager.GetComponent <MusicManager>(); } } if (uIManager == null) { uIManager = Instantiate(Resources.Load(nameof(UIManager), typeof(GameObject)) as GameObject); uIManager.transform.SetParent(transform); } if (screenFade == null) { screenFade = Instantiate(Resources.Load(nameof(ScreenFade), typeof(GameObject)) as GameObject); screenFade.transform.SetParent(transform); } }
public void UpdateTargetedObjectManager() { // Check if the cursor is showing an enemy if (theCursor.shownObject.tag == "Enemy") { enemyStatsManager = theCursor.shownObject.GetComponent <EnemyStatsManager>(); healthBar.fillRect.GetComponentInChildren <Image>().color = Color.red; healthBar.maxValue = enemyStatsManager.maxHealthPoints; // If overkilled, show current health as 0 if (enemyStatsManager.currentHealthPoints <= 0) { healthBar.value = 0; healthPoints.text = "0/" + enemyStatsManager.maxHealthPoints; // Otherwise show current health } else { healthBar.value = enemyStatsManager.currentHealthPoints; healthPoints.text = "" + enemyStatsManager.currentHealthPoints + "/" + enemyStatsManager.maxHealthPoints; } objectName.text = "" + enemyStatsManager.enemyName; objectLevel.text = "" + enemyStatsManager.enemyLevel; } // Check if the cursor is showing an NPC if (theCursor.shownObject.tag == "NPC") { NPCController = theCursor.shownObject.GetComponent <NPCController>(); // Check if not a sign if (!NPCController.isSign) { healthBar.fillRect.GetComponentInChildren <Image>().color = Color.green; healthBar.maxValue = 1; healthBar.value = 1; healthPoints.text = "Friendly"; objectName.text = "" + NPCController.NPCName; objectLevel.text = "" + NPCController.NPCLevel; } } }
// Use this for initialization void Start() { enemyStatsManager = GetComponent <EnemyStatsManager>(); Player = GameObject.FindGameObjectWithTag("Player"); }
// Auto-attack the player // TODO: SET THIS TO AUTO ATTACK FUNCTION public void AttackPlayer() { PlayerLevelStats playerStats = thePlayer.GetComponent <PlayerLevelStats>(); EnemyStatsManager enemyStats = gameObject.GetComponent <EnemyStatsManager>(); if (distanceFromPlayer <= attackRange) { // Don't move if in attack range enemyRigidbody.velocity = Vector2.zero; // Check if one of the 2 halves is over if (attackTimerCounter <= 0) { // Set the counter back to the max attackTimerCounter = attackTimer; // If attack is not on cooldown after one half if (!attackCooldown) { int i = enemyStats.enemyLevel; float enemyDamageAfterMultipliers = attackDamage; // Check if player is higher level than enemy if (enemyStats.enemyLevel > playerStats.currentLevel) { while (i > playerStats.currentLevel) { // Multiply damage by 150% enemyDamageAfterMultipliers *= 1.5f; i--; } } else if (enemyStats.enemyLevel < playerStats.currentLevel) { while (i < playerStats.currentLevel) { // Reduce damage by 50% enemyDamageAfterMultipliers *= 0.5f; i++; } } // Equation for the damage reduction per defense float damageReductionPercentage = 100f - Mathf.Pow(10f, 2 - 0.0030103f * playerStats.defense); enemyDamageAfterMultipliers -= enemyDamageAfterMultipliers * (damageReductionPercentage / 100); // Crit chance enemyDamageAfterMultipliers = CheckChance(enemyDamageAfterMultipliers, critChance, critMultiplier); // Reduce damage chance enemyDamageAfterMultipliers = CheckChance(enemyDamageAfterMultipliers, playerStats.reduceDamageChance, -playerStats.reduceDamageMultiplier); // Miss chance enemyDamageAfterMultipliers = CheckChance(enemyDamageAfterMultipliers, playerStats.missChance, -100); // Deal damage thePlayer.GetComponent <PlayerHealthManager>().SetCurrentHeatlh(-Mathf.RoundToInt(enemyDamageAfterMultipliers), true); // Set the cooldown to true attackCooldown = true; } else { // Set the cooldown to false attackCooldown = false; } } // Countdown time attackTimerCounter -= Time.deltaTime; } else { // Enemy is moving //transform.position = Vector3.MoveTowards(transform.position, thePlayer.transform.position, moveSpeed * Time.deltaTime); enemyRigidbody.velocity = new Vector2((thePlayer.transform.position.x - transform.position.x) / distanceFromPlayer * moveSpeed, (thePlayer.transform.position.y - transform.position.y) / distanceFromPlayer * moveSpeed); } }
// Use this for initialization void Start() { stats = GetComponent <EnemyStatsManager>(); }
void Start() { _statsManager = GetComponentInParent <Enemy>().StatsManager; _statsManager.DamageEvent += OnDamage; }
// Use this for initialization void Start() { enemyStatsManager = transform.parent.parent.GetComponent <EnemyStatsManager>(); }
// Use this for initialization void Start() { gameManager = GameObject.FindGameObjectWithTag("GameManager"); stats = GetComponent <EnemyStatsManager>(); }
// Attack an enemy private void AttackEnemy(GameObject enemy) { // Reduce amount of getting component SlimeController targetedEnemyController = enemy.GetComponent <SlimeController>(); EnemyStatsManager targetedEnemyStats = enemy.GetComponent <EnemyStatsManager>(); // 3 stages to attack, first half windup, instance of damage, second half cooldown if (!engaging) { attackTimerCounter = attackTimer; engaging = true; attackCooldown = false; attacking = false; } // Check if one of the 2 halves is over if (attackTimerCounter <= 0) { // Set the counter back to the max attackTimerCounter = attackTimer; // If attack is not on cooldown after one half if (!attackCooldown) { // Check what player is targeting if (targetedEnemyController.targeted == true && engaging) { int i = playerStats.currentLevel; float playerDamageAfterMultipliers = playerStats.attack; // Add power to damage playerDamageAfterMultipliers += playerStats.power; // Check if player is higher level than enemy if (playerStats.currentLevel > targetedEnemyStats.enemyLevel) { while (i > targetedEnemyStats.enemyLevel) { // Multiply damage by 150% playerDamageAfterMultipliers *= 1.5f; i--; } } else if (playerStats.currentLevel < targetedEnemyStats.enemyLevel) { while (i < targetedEnemyStats.enemyLevel) { // Reduce damage by 50% playerDamageAfterMultipliers *= 0.5f; i++; } } // Equation for the damage reduction per defense float damageReductionPercentage = 100f - Mathf.Pow(10f, 2 - 0.0030103f * targetedEnemyController.defense); playerDamageAfterMultipliers -= playerDamageAfterMultipliers * (damageReductionPercentage / 100); // Crit chance playerDamageAfterMultipliers = CheckChance(playerDamageAfterMultipliers, weaponCritChance, weaponCritMultiplier); // Reduce damage chance playerDamageAfterMultipliers = CheckChance(playerDamageAfterMultipliers, targetedEnemyController.reduceDamageChance, -targetedEnemyController.reduceDamageMultiplier); // Miss chance playerDamageAfterMultipliers = CheckChance(playerDamageAfterMultipliers, targetedEnemyController.missChance, -100); // Deal damage targetedEnemyStats.SetEnemyHealth(-Mathf.RoundToInt(playerDamageAfterMultipliers), true); // Make the enemy hostile targetedEnemyController.resetHostile = true; } // Set the cooldown to true attackCooldown = true; // Set animation to attacking attacking = true; } else { // Set the cooldown to false attackCooldown = false; // Set the animation to idling attacking = false; } } // Countdown time attackTimerCounter -= Time.deltaTime; }