예제 #1
0
        internal void SoulStoneBadLifeRegen()
        {
            if (HypothemaEffect && player.lifeRegen < 0 && (Focus.IsVitality() || Focus.IsTenacity()))
            {
                player.statDefense += 8;
            }

            if (UtilityCurse3 && player.lifeRegen < 0)
            {
                player.lifeRegen -= player.lifeRegen / 2;
            }

            if (VitalityCurse2 && player.lifeRegen < 0)
            {
                player.lifeRegen -= 2;
            }

            if (VitalityCurse3 && player.statLife >= player.statLifeMax2 / 2)
            {
                player.lifeRegen = 0;
            }

            if (VitalityCurse4)
            {
                if (player.statLifeMax2 > player.statLifeMax)
                {
                    player.statLifeMax2 = player.statLifeMax;
                }
            }

            if (EvilBossEffect && Focus.IsVitality())
            {
                if (player.lifeRegen < 0)
                {
                    player.lifeRegen += 2;
                }
                if (player.lifeRegen > -1)
                {
                    player.lifeRegen = -1;
                }
            }

            if (MoonLordEffect && Focus.IsUtility())
            {
                if (player.lifeRegen < 0)
                {
                    player.lifeRegen = 0;
                }
            }
        }
예제 #2
0
        internal void SoulStoneHitByNPC(NPC npc, ref int damage, ref bool crit)
        {
            if (Focus == null)
            {
                return;
            }

            if (Focus.IsCapacity())
            {
                CapacityHitByNPC(npc, ref damage, ref crit);
            }

            if (SteamTrainEffect && !player.HasBuff(ModContent.BuffType <SteamTrainSoulCooldownBuff>()) && Focus.IsCapacity())
            {
                player.AddBuff(ModContent.BuffType <SteamTrainSoulCooldownBuff>(), 90 * Constants.TICKS_PER_SECONDS);
                player.immune     = true;
                player.immuneTime = 2 * 60;
            }

            if (EvilBossEffect && !player.HasBuff(ModContent.BuffType <EvilBossCooldownBuff>()) && Focus.IsUtility())
            {
                player.AddBuff(ModContent.BuffType <EvilBossCooldownBuff>(), 120 * Constants.TICKS_PER_SECONDS);
                player.immune     = true;
                player.immuneTime = 2 * 60;
            }

            if (KingSlimeStomp && player.velocity.Y > 4)
            {
                player.ApplyDamageToNPC(npc, player.statDefense + damage + 4, 4f, 0, false);
            }
        }