private IEnumerator HandleDamageDrainCoroutine(PlayerController coroutineTarget)
        {
            float multiplier = 3.5f;
            float scaleMult  = 2f;
            float realTime   = 3f;

            float elapsed = 0f;

            while (elapsed < realTime)
            {
                elapsed += BraveTime.DeltaTime;
                float t = Mathf.Clamp01(elapsed / realTime);
                float damagemodifier = Mathf.Lerp(multiplier, 1, t);
                float scaleMod       = Mathf.Lerp(scaleMult, 1, t);

                AlterItemStats.RemoveStatFromActive(this, PlayerStats.StatType.Damage);
                AlterItemStats.RemoveStatFromActive(this, PlayerStats.StatType.PlayerBulletScale);
                AlterItemStats.AddStatToActive(this, PlayerStats.StatType.Damage, damagemodifier, StatModifier.ModifyMethod.MULTIPLICATIVE);
                AlterItemStats.AddStatToActive(this, PlayerStats.StatType.PlayerBulletScale, scaleMod, StatModifier.ModifyMethod.MULTIPLICATIVE);
                coroutineTarget.stats.RecalculateStats(coroutineTarget, false, false);

                yield return(null);
            }
            yield break;
        }
 private void RemoveBuff()
 {
     Owner.stats.AdditionalVolleyModifiers -= this.ModifyVolley;
     AlterItemStats.RemoveStatFromPassive(this, PlayerStats.StatType.Damage);
     Owner.stats.RecalculateStats(Owner, false, false);
     buffActive = false;
 }
 private void AddBuff()
 {
     Owner.stats.AdditionalVolleyModifiers += this.ModifyVolley;
     AlterItemStats.AddStatToPassive(this, PlayerStats.StatType.Damage, 2, StatModifier.ModifyMethod.MULTIPLICATIVE);
     Owner.stats.RecalculateStats(Owner, false, false);
     buffActive = true;
 }
Ejemplo n.º 4
0
        private void Recalc()
        {
            AlterItemStats.RemoveStatFromPassive(this, PlayerStats.StatType.Damage);
            float multiplier = 1;
            float amtPerMod  = 0.05f;

            if (Owner.PlayerHasActiveSynergy("ShellllehS llehSShell"))
            {
                amtPerMod = 0.07f;
            }
            if (Owner.PlayerHasActiveSynergy("Shoot Your Shot"))
            {
                amtPerMod *= 3;
            }
            if (Owner && Owner.CurrentGun)
            {
                if (Owner.CurrentGun.Volley && (Owner.CurrentGun.Volley.projectiles != null))
                {
                    multiplier += (Owner.CurrentGun.Volley.projectiles.Count * amtPerMod);
                }
                else if (Owner.CurrentGun.DefaultModule != null)
                {
                    multiplier += amtPerMod;
                }
                multiplier = Mathf.Min(multiplier, 3);
            }
            AlterItemStats.AddStatToPassive(this, PlayerStats.StatType.Damage, multiplier, StatModifier.ModifyMethod.MULTIPLICATIVE);
            Owner.stats.RecalculateStats(Owner, false, false);
        }
Ejemplo n.º 5
0
 private void EnteredCombat()
 {
     if (Owner)
     {
         Owner.StopCoroutine(HandleDamageDrainCoroutine(Owner));
         AlterItemStats.RemoveStatFromPassive(this, PlayerStats.StatType.Damage);
         AlterItemStats.RemoveStatFromPassive(this, PlayerStats.StatType.PlayerBulletScale);
         Owner.StartCoroutine(HandleDamageDrainCoroutine(Owner));
     }
 }
Ejemplo n.º 6
0
 public override void Pickup(PlayerController player)
 {
     if (!m_pickedUpThisRun)
     {
         float deaths = GameStatsManager.Instance.GetPlayerStatValue(TrackedStats.NUMBER_DEATHS);
         if (deaths > 0)
         {
             float multiplier = (0.005f * deaths) + 1;
             float finalMult  = Mathf.Min(multiplier, 6);
             AlterItemStats.AddStatToPassive(this, PlayerStats.StatType.Damage, finalMult, StatModifier.ModifyMethod.MULTIPLICATIVE);
             AlterItemStats.AddStatToPassive(this, PlayerStats.StatType.RateOfFire, finalMult, StatModifier.ModifyMethod.MULTIPLICATIVE);
         }
     }
     base.Pickup(player);
 }
        private void RecalculateShit()
        {
            bool atMaxHP;

            if (Owner.healthHaver.GetCurrentHealthPercentage() == 1f)
            {
                atMaxHP = true;
            }
            else
            {
                atMaxHP = false;
            }
            AlterItemStats.RemoveStatFromPassive(this, PlayerStats.StatType.Coolness);
            Owner.stats.RecalculateStats(Owner, false, false);
            float amountToMod = GetModifierAmount(Owner, atMaxHP);

            AlterItemStats.AddStatToPassive(this, PlayerStats.StatType.Coolness, amountToMod, StatModifier.ModifyMethod.ADDITIVE);
            Owner.stats.RecalculateStats(Owner, false, false);
        }
        protected override void Update()
        {
            if (Owner)
            {
                if (Owner.PlayerHasActiveSynergy("Spun") != spunSynergyLastChecked)
                {
                    AlterItemStats.RemoveStatFromPassive(this, PlayerStats.StatType.Damage);
                    Owner.stats.RecalculateStats(Owner, false, false);

                    if (Owner.PlayerHasActiveSynergy("Spun"))
                    {
                        AlterItemStats.AddStatToPassive(this, PlayerStats.StatType.Damage, 2, StatModifier.ModifyMethod.MULTIPLICATIVE);
                        Owner.stats.RecalculateStats(Owner, false, false);
                    }


                    spunSynergyLastChecked = Owner.PlayerHasActiveSynergy("Spun");
                }
            }
            base.Update();
        }