WVlad
Terrarian
This mod focuses on improving rogue class experience in Calamity mod. It's original stealth mechanic is useless because standing still while fighting a boss is a death.
Generally this mod attempts to change your playstyle from blindly spamming attack to carefuly aim each shot.
So my changes are:
* Stealth regeneration doesn't depend on whether you are walking or standing so you are free to move as fast as you want and still able to do stealth strikes.
* Stealth dodge: in full stealth you are invulnerable to first projectile or enemy contact (also works immediately after stealth strike). The dodge reveals you from stealth. This is a compensation to not working agro mechanic which doesn't really do any noticeable effect in the original mod.
* Rogue stealth strike deal more damage. This is multiplied after defense.
* Rogue weapons damage rebalance, fixed too OP and too weak weapons.
* Crit calculation uses crit chance at the time when projectile is launched, before stealth consumption.
Each feature can be enabled or disabled. Source code is included.
You can install/uninstall this mod in your existing playthrough.
Multiplayer IS NOT SUPPORTED YET.
Additional features:
* Full Rage on respawn with Heart of Darkness in inventory or equipment slot (even vanity).
* SuperDummy has defence and DR set according to a world progression.
* Prints total damage dealed to dummies - usable to measure stealth strike damage.
* Reduce grinding: all treasure bags drop, legendary, defiled and rare drop chances are upped to 50%.
* Cheat: slow motion key, locks on 30 fps.
C#:
public static double? GetRogueWeaponDamageModifier(bool isStealthStrike, Item weapon)
{
var config = ModContent.GetInstance<RogueConfig>();
double multiplier = config.GlobalMultiplier;
if (weapon.type == ModContent.ItemType<SylvanSlasher>())
isStealthStrike = false;
if (ModContent.GetInstance<RogueConfig>().RebalanceWeapons)
{
if (weapon.consumable)
multiplier *= 1.5f;
if (weapon.type == ModContent.ItemType<UtensilPoker>())
return isStealthStrike ? multiplier * 0.4f : (multiplier * 0.7f);
if (weapon.type == ModContent.ItemType<SylvanSlasher>())
multiplier *= 0.6f;
else if (weapon.type == ModContent.ItemType<DefectiveSphere>())
multiplier /= 2f;
else if (weapon.type == ModContent.ItemType<StarofDestruction>())
multiplier /= 1.8f;
else if (weapon.type == ModContent.ItemType<EpidemicShredder>() || weapon.type == ModContent.ItemType<HeavenfallenStardisk>())
multiplier *= 1.75f;
else if (weapon.type == ModContent.ItemType<MoltenAmputator>() && isStealthStrike)
multiplier *= 2.5f;
else if (weapon.type == ModContent.ItemType<ProfanedPartisan>())
multiplier *= 2f;
else if (weapon.type == ModContent.ItemType<BloodsoakedCrasher>() && isStealthStrike)
multiplier /= 2f;
else if (weapon.type == ModContent.ItemType<NightsGaze>() && isStealthStrike)
multiplier /= 1.5f;
else if (weapon.type == ModContent.ItemType<PhantasmalRuin>() && !isStealthStrike)
multiplier /= 2f;
else if (weapon.type == ModContent.ItemType<TimeBolt>())
multiplier /= 2.7f;
}
if (isStealthStrike)
multiplier *= config.StealthStrikeMultiplier;
return multiplier;
}
Attachments
Last edited: