User:Sheepy
Sheepy's info compendium
EXP
Exp loss
If you're >10 levels below the area: xpMul=1.0+(5−lvlDiff)x0.15
| Level Diff | Exp Multi |
|---|---|
| -11 | 85% |
| -12 | 70% |
| -13 | 55% |
| -14 | 40% |
| -15 | 25% |
| -16 | 10% |
If you're >5 levels above the area: xpMul=1.0+(lvlDiff+10)x0.15
| Level Diff | Exp Multi |
|---|---|
| +6 | 85% |
| +7 | 70% |
| +8 | 55% |
| +9 | 40% |
| +10 | 25% |
| +11 | 10% |
Source: PlayerRecord.as - int GiveExperience(int amount, bool skipGainMod = false)
Multiplayer exp
Exp is divided equally between players before going through the exp penalty formula.
Source: GiveExperience.as - bool Apply(Actor@ owner, UnitPtr target, vec2 pos, vec2 dir, float intensity, bool husk)
Architect Modifiers
Treasure Hunt
The treasury appears to have a 8% chance of spawning on each floor, with Treasure Hunt adding a separate 8% roll.
Without Treasure Hunt: ( 1 - ( 0.92 ^ 6 ) ) x 100 = 39.36% chance of seeing the treasury on a full run
With Treasure Hunt: ( 1 - ( 0.92 ^ 12 ) ) x 100 = 63.23% chance of seeing the treasury on a full run
Source: themes_dungeon.sval, themes_barracks.sval, themes_courts.sval - search for "treasury"
Scaling
Enemy HP
Simplified: hp = ( base_hp + ngp_level x 25 ) x ( 1 + mp_scaling + ngp_level x 2.75 )
Note that mp_scaling will vary depending on the enemy, value of 1 for Avatar in solo.
The following table is for Avatar's 100k base hp
| NGP | HP |
|---|---|
| 1 | 375,093.75 |
| 2 | 650,325.00 |
| 3 | 925,693.75 |
| 4 | 1,201,200.00 |
| 5 | 1,476,843.75 |
| 6 | 1,752,625.00 |
| 7 | 2,028,543.75 |
| 8 | 2,304,600.00 |
| 9 | 2,580,793.75 |
| 10 | 2,857,125.00 |
Source: CompositeActorBehavior.as - GetMaxHp()
Multiplayer
Enemy HP is increased in multiplayer with the following code: g_mpEnemyHealthScale = (num - 1) * pow(num, -0.35) + max(0.0f, (num - 2) * 0.3f);
Which is then used as part of the hp calculation: float ret = m_props.m_maxHp + (m_props.m_ngpScale * g_ngp * 25); ret *= (1.0f + g_mpEnemyHealthScale * m_props.m_mpScaleFact) * Tweak::EnemyHealthMul;
m_props.mpScaleFact varies per enemy
Source:
AGameplayGameMode.as - RefreshMultiplayerScaling()
CompositeActorBehavior.as - GetMaxHp()
Damage taken
An increased damage taken modifier is applied to all players, including from trap, scaling with number of players.
Code: g_mpPlrDmgTakenScale = clamp(pow(num, 0.2), 1.0f, 2.0f);
Simplified: player_count ^ 0.2 with a maximum of x2 at 32 players.
| Players | Damage taken |
|---|---|
| 1 | 1 |
| 2 | 1.148 |
| 3 | 1.245 |
| 4 | 1.310 |
| 5 | 1.379 |
| 6 | 1.430 |
| 7 | 1.475 |
| ... | ... |
| 32 | 2 |
Source: AGameplayGameMode.as - RefreshMultiplayerScaling()