Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ScaleStats()

void Terraria.NPC.ScaleStats ( int? activePlayersCount,
GameModeData gameModeData,
float? strengthOverride )
inline

Definition at line 12149 of file NPC.cs.

12150 {
12151 if ((!NPCID.Sets.NeedsExpertScaling.IndexInRange(type) || !NPCID.Sets.NeedsExpertScaling[type]) && (lifeMax <= 5 || damage == 0 || friendly || townNPC))
12152 {
12153 return;
12154 }
12155 float num = 1f;
12156 if (strengthOverride.HasValue)
12157 {
12158 num = strengthOverride.Value;
12159 }
12160 else if (gameModeData.IsJourneyMode)
12161 {
12163 if (power != null && power.GetIsUnlocked())
12164 {
12165 num = power.StrengthMultiplierToGiveNPCs;
12166 }
12167 }
12168 float num2 = num;
12169 if (gameModeData.IsJourneyMode && Main.getGoodWorld)
12170 {
12171 num += 1f;
12172 }
12173 NPCStrengthHelper nPCStrengthHelper = new NPCStrengthHelper(gameModeData, num, Main.getGoodWorld);
12174 if (nPCStrengthHelper.IsExpertMode)
12175 {
12177 }
12178 ScaleStats_ApplyGameMode(gameModeData);
12179 if (Main.getGoodWorld && nPCStrengthHelper.ExtraDamageForGetGoodWorld)
12180 {
12181 damage += damage / 3;
12182 }
12183 if (nPCStrengthHelper.IsExpertMode)
12184 {
12185 int num3 = 1;
12188 float bossAdjustment = 1f;
12189 if (nPCStrengthHelper.IsMasterMode)
12190 {
12191 bossAdjustment = 0.85f;
12192 }
12194 }
12197 if ((type < 0 || !NPCID.Sets.ProjectileNPC[type]) && lifeMax < 6)
12198 {
12199 lifeMax = 6;
12200 }
12201 life = lifeMax;
12202 defDamage = damage;
12204 }
static bool[] NeedsExpertScaling
Definition NPCID.cs:4184
static bool[] ProjectileNPC
Definition NPCID.cs:4186
void ScaleStats_ApplyGameMode(GameModeData gameModeData)
Definition NPC.cs:12340
int defense
Definition NPC.cs:463
int damage
Definition NPC.cs:461
void ScaleStats_ApplyExpertTweaks()
Definition NPC.cs:12289
int lifeMax
Definition NPC.cs:479
int defDefense
Definition NPC.cs:467
float strengthMultiplier
Definition NPC.cs:535
bool friendly
Definition NPC.cs:555
int type
Definition NPC.cs:445
static int GetActivePlayerCount()
Definition NPC.cs:12272
void ScaleStats_ApplyMultiplayerStats(int numPlayers, float balance, float boost, float bossAdjustment)
Definition NPC.cs:12357
int defDamage
Definition NPC.cs:465
static void GetStatScalingFactors(int numPlayers, out float balance, out float boost)
Definition NPC.cs:12645
int life
Definition NPC.cs:477
void ScaleStats_UseStrengthMultiplier(float strength)
Definition NPC.cs:12206
int statsAreScaledForThisManyPlayers
Definition NPC.cs:533
bool townNPC
Definition NPC.cs:537

References Terraria.NPC.damage, Terraria.NPC.defDamage, Terraria.NPC.defDefense, Terraria.NPC.defense, Terraria.NPC.friendly, Terraria.NPC.GetActivePlayerCount(), Terraria.Main.getGoodWorld, Terraria.NPC.GetStatScalingFactors(), Terraria.GameContent.Creative.CreativePowerManager.Instance, Terraria.DataStructures.GameModeData.IsJourneyMode, Terraria.NPC.life, Terraria.NPC.lifeMax, Terraria.ID.NPCID.Sets.NeedsExpertScaling, Terraria.ID.NPCID.Sets.ProjectileNPC, Terraria.NPC.ScaleStats_ApplyExpertTweaks(), Terraria.NPC.ScaleStats_ApplyGameMode(), Terraria.NPC.ScaleStats_ApplyMultiplayerStats(), Terraria.NPC.ScaleStats_UseStrengthMultiplier(), Terraria.NPC.statsAreScaledForThisManyPlayers, Terraria.NPC.strengthMultiplier, Terraria.NPC.townNPC, and Terraria.NPC.type.

Referenced by Terraria.NPC.SetDefaults(), and Terraria.NPC.SetDefaultsFromNetId().