Pascal's Wager Wiki

The game separates attacks made by characters from hazards made by the world and by boss set pieces. The hazards come in two kinds that are stored in two tables. A trick is an instant or short-lived area attack (a fireball landing, a rolling boulder, wall spikes, a light pillar). A trap is a zone that stays on the ground and applies a status effect to everyone standing in it. A trick can leave a trap behind. This article lists both, explains how their damage is worked out and which journey tier they use. For the general rules of the world see World mechanics; for the status effects themselves see Status effects and Damage formula.

Traps (lingering zones)#

Eight traps exist. Each has a circular zone, a lifetime and one or two statuses. Names below are translations of the internal Chinese names (inferred).

Trap idName (inferred)Logic typeRadiusDurationStatus 1 / 2Param1Damage journey 1-4Start delayInterval
10001Poison1013.51.8 s10002 / 00100 / 125 / 150 / 1750.2 s1 s
10002Chapter 2 boss corrosion1025.510 s10003 / 00.7100 / 125 / 150 / 1750.2 s1 s
10003Chapter 2 boss corrosion that ignites1015.510 s10008 / 00100 / 125 / 150 / 1750.2 s1 s
10004Chapter 2 boss skyward corrosion1023.510 s10008 / 00.7100 / 125 / 150 / 1750.2 s1 s
10005Chapter 4 boss rain1013.58 s10002 / 100400.7100 / 125 / 150 / 1750.2 s1 s
10006Chapter 4 boss corroded ground1013.5until cleared10002 / 100400.7100 / 125 / 150 / 1750.2 s1 s
10007Monster lure103125 s10105 / 000 / 0 / 0 / 00.5 s1 s
10008Stun smoke bomb1015.510 s10112 / 000 / 0 / 0 / 00.2 s1 s

Status ids as named in the status data: 10002 Poison, 10003 Corrosion (defence down), 10008 Burn, 10040 Sanity Loss, 10105 Lured (Soul River water), 10112 Stun (Black Sprite King). See Poison, Corrosion, Burn, Stun and Sanity loss (status).

How a trap works#

  • Zone test. Every frame a character counts as inside when the horizontal distance is less than the radius and the height difference is less than the trap's height (1 unit for all eight). Leaving removes the character from the zone at once.
  • Who is affected. TargetType is 1 (Enemy) for all traps: the trap hits characters whose team differs from the team that created it. The trap remembers its owner, so a trap created by you affects the other team and not you (inferred for the smoke bomb and lure, whose creators are not in the data).
  • Status timing. The first status is applied after the start delay (0.2 s, 0.5 s for the lure) of standing inside, then again every time more than the interval (1 s) has passed since the last application. Each application re-adds the status, so a long stay refreshes it.
  • The "Damage" number is not damage. The journey-selected value (Damage_1 to Damage_4) is handed to the status as its power parameter. The trap itself never subtracts HP. Poison zones therefore get stronger in later journeys (100, 125, 150, 175), and the lure and smoke have 0 because stun and lure do not use it.
  • Lifetime. A time of 10 means the zone is removed after 10 seconds. A time of -1 (trap 10006) means it stays until the game clears all traps (area change or reload).
  • Logic types. Type 101 is a plain status zone. Type 102 also forces everyone inside to walk only and cuts their dodge movement to Param1 (0.7) of normal; trap 10002 and 10004, the chapter 2 boss corrosion, are of this type. Type 103 pulls monsters towards the centre of the zone for as long as the zone exists (monster brains are set to "attracted").

The same walk-only rule is used for slow mud and poison mud ground, but with a dodge factor of 0.4. Poison mud also applies status 10029 (a piercing damage-over-time status, not the Poison status) constantly while you stand on it. Having the Slow status (10076) triggers the same rule even on dry ground, and a story section can force walking with the same 0.4 dodge factor.

Tricks (hazard attacks)#

Sixty tricks exist. A trick hits when its attack collider touches a character, and it keeps a list of who it has already hit during one play. Most belong to bosses and set pieces; tricks 10033-10036, 10038, 10039 and 10058 are neutral environmental hazards (team 0, 999 toughness damage) that hurt everyone.

Damage of a trick#

For an instant hit the game computes:

damage = ceil( D x (1 - R / (R + 100)) )

where D is the trick's damage for the current journey tier and R is the victim's maximum value of the matching resistance (the trick's defence type: 1 Physical, 2 Fire, 3 Poison, 4 Arcane, 5 Dark, 6 Pierce). This is the same curve as the main combat formula, see Damage types and resistances.

Then:

  • Casual difficulty multiplies damage on the player by 0.65 (0.5 in a cloud demo build). See Difficulty.
  • Owning the "noob" help item multiplies it by 0.5.
  • If you are Norwood in a non-normal sanity state, every non-Physical resistance is halved (sanity resist penalty 500 permille) before the formula runs; a matching talent can lower that penalty.
  • Period (continuous) tricks deal D per second, multiplied by the frame time each frame, with no rounding.
  • A trick with the lethal flag (10030 and 10045) tags the damage as "must death": it deals 99999 and is flagged so it cannot be survived by effects that prevent a normal death. Trick 10048 (blood mist) also does 99999, without the flag.

Worked example: Fireball (trick 10001) in journey 1 deals 400 fire damage. With 100 fire resistance the factor is 1 - 100/200 = 0.5, so the hit does 200. In journey 4 the base is 700, so 350.

Hits also drain toughness (100 for most, 999 for the environmental ones, so they always stagger) and Weakness (10). Characters may block a trick only if its HitHandEnable flag is set (27 of the 60 tricks) and they are in a move with the defensive hand frame and have skill energy. A blocked trick compares your guard strength G with the trick's GuardBreak value B: the difference ratio is r = (B - G) / G (with no guard the ratio is fixed at 2.5). If B is 0 and you have any guard, r = -1 and the hit does no damage. If r is 0 or below the hit is absorbed. If r is above 0 the damage is multiplied by min(1, hero guard ratio x r), so a stronger trick gets through more. At r of 2.5 or more the block is marked as failed; at r of 1 or more, or when your skill energy or Weakness is empty, it is marked as broken and the hero's higher guard-break ratio is used. Blocking also costs energy: damage x the hero's GuardEnergyRatio x (1 + r), capped at 45 % of your maximum energy.

Taking a trick hit does not add Rage here: the code computes a Rage amount but never applies it (inferred from the function; it is a leftover).

Which journey is used#

The Damage_n column that is active depends on where you are:

WhereColumn used
Story, any areaNew Game Plus journey 1 to 4 (journey 5 and above is capped at 4)
ArcadeAlways journey 1
Deep into the Dark Mist (maze)Maze level 1-7 = journey 1, 8-14 = journey 2, 15-21 = journey 3, 22 and above = journey 4

Setting the story journey also switches the loop columns of enemy shells (projectiles), item drops, scene items and shop data; the maze tier switch changes only traps and tricks. See New Game Plus.

All tricks#

Names are translated from the internal Chinese names (inferred). "Neutral" tricks have team 0.

Trick idName (translated from internal name, inferred)Damage typeJourney 1Journey 2Journey 3Journey 4Notes
10001FireballFire400500600700leaves trap 10004
10002TornadoFire500625750875
10003Tidal waveFire9001125900900guard break 150
10004Giant handPhysical800100012001400
10005Ice spikeFire400400400400
10006Acid rainPoison700700700700blockable, leaves trap 10005
10007Tentacle 1Dark125125125125
10008Ground laser 1Arcane550650750850guard break 150
10009Enchant 9 (part 1)Dark300375450525blockable
10010Enchant 9 (part 2)Dark300375450525blockable
10011Enchant 10 (part 1)Dark300375450525blockable
10012Enchant 10 (part 2)Dark300375450525blockable
10013Enchant 11 (part 1)Dark300375450525blockable
10014Enchant 11 (part 2)Dark300375450525blockable
10015Enchant 12 ground burstDark500675800925blockable
10016Enchant 13 dark-art pathDark500675800925blockable
10017Enchant 16 dark-art circleDark120160200240blockable, status 10078
10018Purple fire ringArcane6007509001050guard break 150
10019Black holeArcane200250300350
10020Sword planted in groundArcane800100012001400
10021Water splashArcane6007509001050
10022Lightning around the bodyDark800100012001400blockable
10023Lightning pillars spinning outwardDark70087510501225blockable
10024Two lightning boltsDark6007509001050blockable
10025Fan-shaped shockwaveDark70087510501225blockable
10026Crows gather and diveDark800100012001400blockable
10027Crows chase and riseDark100125150175blockable
10028Black mist rainDark70087510501225blockable
10029Black-feather ground spikesDark70087510501225blockable
10030Crows burst out of a fallen bodyDark99999999999999999999lethal flag, blockable
10031Small colossus ground burstDark900112513501575blockable, status 10010
10032Ground flames after sword plantFire100125150175guard break 150, status 10037
10033Rolling boulderPhysical65086010701280neutral (team 0), toughness 999
10034Wall spikes APhysical60080010001200neutral (team 0), toughness 999
10035Wall spikes BPhysical60080010001200neutral (team 0), toughness 999
10036Wall spikes CPhysical60080010001200neutral (team 0), toughness 999
10037Stage 5 boss trailing wakeDark100100100100blockable
10038Floor spikes APhysical60080010001200neutral (team 0), toughness 999
10039Floor spikes BPhysical60080010001200neutral (team 0), toughness 999
10040Enchant 20 (part 1)Dark120160200240blockable
10041(none)-0000
10042Crow bullet spreadDark6007509001050blockable
10043Rising ground pillar of lightFire1200120012001200
10044Light pillars around the bodyFire1500150015001500
10045Black circle instant killFire99999999999999999999lethal flag
10046Thunder hammerFire1000100010001000guard break 150
10047Sword slam AOEDark60080010001200blockable, guard break 150
10048Blood mistDark99999999999999999999blockable
10049Fixed pull-inFire125140155170status 10042
10050Following pull-inFire125140155170status 10042
10051Electric waveFire1000100010001000
10052Bomber 1Fire12580010001200status 10042
10053Bomber 2Fire12580010001200status 10042
10054Bomber 3Fire12580010001200status 10042
10055Sword wall 1Dark60080010001200blockable
10056Black Sprite King barrelFire800100012001400
10057Sword wall 2Dark60080010001200blockable
10058SnowballFire65086010701280neutral (team 0), toughness 999
10059Barrel bombFire60080010001200
10060Signal flare-0000

Notes on the data:

  • Tidal wave (10003) is higher in journey 2 (1125) than in journeys 3 and 4 (900). That looks like a data slip, but it is what the table says.
  • Bomber 1-3 (10052-10054) have journey 1 damage of only 125 but 800 or more from journey 2 on.
  • Tricks 10049, 10050, 10052-10054 apply status 10042, a fast-building poison. Trick 10017 applies Burn from the tower boss (10078), 10032 a strong Burn (10037), 10031 a silent stun (10010).
  • Trick 10041 ("none") and 10060 (signal flare) have no damage; they exist as hooks.
  • Two tricks leave a trap on the ground when they land: Fireball (10001, trap 10004) and Acid rain (10006, trap 10005).

Hidden mechanics#

  • A trap's "Damage" column powers its status; it is not HP damage.
  • Walk-only zones also shrink your dodge roll to 70 % (boss corrosion) or 40 % (mud).
  • A trap affects every character whose team differs from the team that created it, so the lure and the stun smoke bomb hit the other side (stun smoke: 5.5 radius for 10 s).
  • Maze depth silently raises the damage of every trick and trap in steps at levels 8, 15 and 22.
  • The environmental spikes and boulders ignore team and hit for 999 toughness, so they always stagger heroes and monsters alike.

Sources#

  • logic/trap/trapbase.lua 1-197 (zone test, status timing, lifetime); trap101.lua, trap102.lua (walk-only and dodge factor), trap103.lua (attract).
  • structdata/ms_trapdata.lua, structdata/ms_trickdata.lua (SetLoop picks Damage_n, DurabilitySub_n); structdata/fs_savestory.lua 1952-1975 (SetLoop, GetLogicLoop, loop cap 4 from BattleData.GameLoopMax); controller/controllermain.lua 4864-4885 (SetMazeTrapAndTrickData: levels under 8, 15, 22).
  • logic/playervalue/animalbase_value.lua 1812-1830 (defence base), 1915-2050 (DamageTrickCommon: formula, casual, noob, guard, lethal flag); logic/player/animalbase.lua 4876-4886 (IsHitHandTrick), 8135-8190 (trick hit reaction), 5704-5720 and 12675-12700 (logic rules, mud), 15108-15112 (DodgeClose factor).
  • Constants: gamedata/playerdefine/animalbase_value_define.lua (RageHitRate 0.15, CasualDamageRatio 0.65, NoobItemDamageRatio 0.5), animalbase_define.lua 239-241 (BlockEnergyRateMax 0.45, BlockGuardLevelHigh 2.5, BlockGuardLevelLow 1), scenebase.lua 85-86 (mud dodge 0.4), controllerstorymode.lua 202 (StoryWalkDodge 0.4).
  • Tables: TrapData rows 1-8 (ES_TrapData), TrickData rows 1-60 (ES_TrickData). Data extracts: build/wiki/data/world_mech/traps_table.md, tricks_table.md.