public void ResetEnemy() { myHealth = GetComponent <HealthBehavior>(); myOffense = GetComponent <OffenseBehavior>(); myHealth.ResetHealth(); myHealth.UpdateHealthBar(); Invoke("AttackCyclePrimer", attackRateInSeconds); }
public void UseAbility() { if (!abilityActive && GameObject.FindObjectOfType <ProgressTracker>().GameStillInSession() && !player.GetAbilityUseStatus()) { switch (abilityType) { case AbilityType.defense: { abilityActive = true; HealthBehavior playerHealth = player.GetComponent <HealthBehavior>(); playerHealth.SetDividerValue(potency + 1); playerHealth.EnableBlockDamage(true); player.AbilityInUse(true); player.SetMyAnimator("StartDefense"); if (abilityEffectPrefab) { activeAbilityEffect = Instantiate(abilityEffectPrefab, player.transform.position, Quaternion.identity); activeAbilityEffect.transform.parent = player.transform; activeAbilityEffect.transform.position = player.transform.position; } DisableAbilityLabels(); } break; case AbilityType.dodge: { abilityActive = true; HealthBehavior playerHealth = player.GetComponent <HealthBehavior>(); playerHealth.SetAbsorbAttack(true, potency); player.AbilityInUse(true); player.SetMyAnimator("Dodge"); DisableAbilityLabels(); } break; case AbilityType.stun: { abilityActive = true; OffenseBehavior playerOffense = player.GetComponent <OffenseBehavior>(); playerOffense.AbilityAttack(abilityType, potency); player.SetMyAnimator("stunAttack"); DisableAbilityLabels(); coolDownTime = Mathf.Clamp(coolDownTime + 1f, 1f, 10f); } break; default: { Debug.Log("Ability was not specified. cannot be used."); } break; } if (coolDownTime > 0) { StartCoroutine(CoolDownAbility(coolDownTime)); } } }
public void UseItem() { if (currentReserve > 0 && !effectActive && GameObject.FindObjectOfType <ProgressTracker>().GameStillInSession()) { player = GameObject.FindObjectOfType <PlayerBehaviour>(); HealthBehavior playerHealth = player.GetComponent <HealthBehavior>(); switch (itemType) { case ItemType.healing: { if (player && playerHealth.GetCurrentHealth() > 0) { playerHealth.IncreaseHealth(potency); DecreaseCurrentReserveBy(1); DisplayEffect(player.transform); } } break; case ItemType.buff: { if (player && playerHealth.GetCurrentHealth() > 0) { /*int isDeadHash = Animator.StringToHash("Dead"); * AnimatorStateInfo info = player.GetPlayerAnimator().GetCurrentAnimatorStateInfo(0); * Debug.Log("Player's current int state is: " + info.fullPathHash); * Debug.Log("Player's dead animation state is: " + isDeadHash);*/ OffenseBehavior playerAtk = player.GetComponent <OffenseBehavior>(); playerAtk.BuffAttackPowerBy(potency, timeLengthOfEffect); effectActive = true; Invoke("EndOfEffect", timeLengthOfEffect + 0.5f); DecreaseCurrentReserveBy(1); } } break; case ItemType.damage: { enemy = GameObject.FindObjectOfType <EnemyBehaviour>(); HealthBehavior enemyHealth = enemy.GetComponent <HealthBehavior>(); if (enemy && playerHealth.GetCurrentHealth() > 0 && enemyHealth.GetCurrentHealth() > 0) { enemyHealth.ReduceHealth(potency); StartCoroutine(DisplayAndTrackEffect(enemy.transform)); DecreaseCurrentReserveBy(1); } } break; default: { Debug.Log("Item Type for this item was not specified."); } break; } } else { Debug.Log("Cannot use this Item anymore"); } }
private void Start() { myHealth = GetComponent <HealthBehavior>(); myOffense = GetComponent <OffenseBehavior>(); gameState = GameObject.FindObjectOfType <ProgressTracker>(); myHealth.ResetHealth(); myHealth.UpdateHealthBar(); if (items[0]) { SetItemUsesToMax(); } }
private void PrimeNewEnemy() { enemyOffenseStats = enemy.GetComponent <OffenseBehavior>(); enemyOffenseStats.SetAttackPower(enemyOffenseStats.GetAttackPower()); enemyHealthStats = enemy.GetComponent <HealthBehavior>(); enemyHealthStats.SetMaxHealth(enemyHealthStats.maxHealth); enemyAi = enemy.GetComponent <EnemyBehaviour>(); enemyAi.SetAttackRate(enemyAi.attackRateInSeconds); enemyAi.ResetEnemy(); }
private void PrimeNewEnemy() { enemyOffenseStats = enemy.GetComponent <OffenseBehavior>(); enemyOffenseStats.SetAttackPower(enemyOffenseStats.GetAttackPower() + multiplier); enemyHealthStats = enemy.GetComponent <HealthBehavior>(); enemyHealthStats.SetMaxHealth(enemyHealthStats.maxHealth * multiplier); enemyHealthStats.SetDefenseValue(enemyHealthStats.GetDefenseValue() + multiplier); enemyAi = enemy.GetComponent <EnemyBehaviour>(); //enemyAi.SetAttackRate(enemyAi.attackRateInSeconds); enemyAi.winningsValue *= multiplier; pendingWinnings = enemy.GetComponent <EnemyBehaviour>().winningsValue; multiplier = (enemyPool.enemyIndex + 1) * difficultyScale; }
public void CancelAbility(string cancelType) { if (abilityActive && !isCoolingDown) { switch (abilityType) { case AbilityType.defense: { abilityActive = false; HealthBehavior playerHealth = player.GetComponent <HealthBehavior>(); playerHealth.EnableBlockDamage(false); player.AbilityInUse(false); player.SetMyAnimator("EndDefense"); EnableAbilityLabels(); } break; case AbilityType.dodge: { if (cancelType.Equals("dodge")) { abilityActive = false; HealthBehavior playerHealth = player.GetComponent <HealthBehavior>(); playerHealth.SetAbsorbAttack(false, 0); player.AbilityInUse(false); EnableAbilityLabels(); } } break; case AbilityType.stun: { abilityActive = false; OffenseBehavior playerOffense = player.GetComponent <OffenseBehavior>(); EnableAbilityLabels(); } break; } if (activeAbilityEffect) { Destroy(activeAbilityEffect); } } }