private void GainStatus(StatusEffect.StatusType statusType, int stacks, int duration) { ConfigData configData = FindObjectOfType <ConfigData>(); enemyCurrentStatusEffects = configData.GetEnemyStatusEffects(); enemyCurrentStatusEffects.InflictStatus(statusType, stacks, playerOrEnemy, duration); }
public void SetupStatusEffectHolders() { StatusEffectHolder[] statusEffectHolders = FindObjectsOfType <StatusEffectHolder>(); foreach (StatusEffectHolder statusEffectHolder in statusEffectHolders) { if (statusEffectHolder.IsPlayerOrEnemy() == "Player") { playerStatusEffects = statusEffectHolder; } else if (statusEffectHolder.IsPlayerOrEnemy() == "Enemy") { enemyStatusEffects = statusEffectHolder; } } }
private int CalculateModifiedDamage(int damageAmount, int critChance) { ConfigData configData = FindObjectOfType <ConfigData>(); BattleData battleData = FindObjectOfType <BattleData>(); playerCurrentStatusEffects = configData.GetPlayerStatusEffects(); enemyCurrentStatusEffects = configData.GetEnemyStatusEffects(); int dodgeChance = Mathf.Clamp(playerCurrentStatusEffects.GetDodgeChance() + FindObjectOfType <BattleData>().GetPlayerDodgeMapBuff(), 0, 80); if (PercentChance(dodgeChance)) { Debug.Log("Dodged!"); // Counterattack List <PowerUp> counterattacks = battleData.GetPowerUpsOfType(PowerUp.PowerUpType.Counterattack); foreach (PowerUp powerUp in counterattacks) { SelfDamage(powerUp.GetAmount()); } return(0); } damageAmount += enemyCurrentStatusEffects.GetMomentumStacks(); damageAmount += playerCurrentStatusEffects.GetVulnerableStacks(); damageAmount -= playerCurrentStatusEffects.GetDamageResistStacks(); damageAmount -= enemyCurrentStatusEffects.GetWeaknessStacks(); damageAmount -= battleData.GetEnemyDamageDebuff(); // Minimum damage = 1 is probably not necessary any more... //if (damageAmount < 1) // damageAmount = 1; damageAmount -= battleData.GetPlayerDefenseBuff(); damageAmount = CheckAndApplyCritical(damageAmount, critChance); if (damageAmount < 0) { return(0); } return(damageAmount); }
private void SetupStartingBuffs() { string playerOrEnemy = "player"; // ELEMENT OF SURPRISE StatusEffectHolder playerCurrentStatusEffects = configData.GetPlayerStatusEffects(); int startingMomentum = GetCombinedAmountFromPowerUps(GetPowerUpsOfType(PowerUp.PowerUpType.ElementOfSurprise)); if (startingMomentum > 0) { playerCurrentStatusEffects.InflictStatus(StatusEffect.StatusType.Momentum, startingMomentum, playerOrEnemy); } // PERSONAL SHIELD personalShieldStacks = GetCombinedAmountFromPowerUps(GetPowerUpsOfType(PowerUp.PowerUpType.PersonalShield)); // THE BEST OFFENSE int startingRetaliation = GetCombinedAmountFromPowerUps(GetPowerUpsOfType(PowerUp.PowerUpType.TheBestOffense)); if (startingRetaliation > 0) { playerCurrentStatusEffects.InflictStatus(StatusEffect.StatusType.Retaliate, startingRetaliation, playerOrEnemy, 99999); } }
private void InflictStatus(StatusEffect.StatusType whichStatus, int amountOfStacks) { StatusEffectHolder playerStatusEffects = FindObjectOfType <ConfigData>().GetPlayerStatusEffects(); playerStatusEffects.InflictStatus(whichStatus, amountOfStacks, playerOrEnemy); }