Major update to Traps and further update for Rogue rework
Talent Unlock System:
Defined in GameState, can be phased in over time. (Used to control trap selection with this update.) Formalizes management of talent flags and includes support for functionality to control unlocking of talents for both the player and NPCs at either the unlock point or within the talent (which takes precedence).
game.state:unlockTalent(tid, who, v) -- to unlock
game.state:unlockTalentCheck(tid, who) -- to check unlock
Trap class updated:
(engine) Traps are position aware and automatically set their coordinates when placed.
(engine) Traps are set known when disarmed (facilitates displaying appropriate log messages).
The player automatically identifies traps he/she triggers and has a chance to identify traps discovered close by.
Tooltips are updated to include more useful information when identified by the player, including if they are "safe" and a description of the effects (for both random traps and traps created by talents).
When disarmed, some traps give the player a chance to learn (unlock) a related trap talent. This is fairly difficult (depends on skill in Trap Mastery and Heightened Senses) and requires time out of combat, but provides a means for the player to eventually unlock most talented traps (for other campaigns, etc).
Traps can define their chance to randomly fail to trigger (trigger_fail field, default 5% chance).
An appropriate combat log message will always be displayed when the player sees a known trap being avoided.
cunning/trapping Talents:
All selectable traps have a tier (from 1 to 5), which equals the minimum talent level needed to select them.
Nerfed Heightened Sense trap detection to be more inline with typical trap detect/disarm power, while still being stronger.
All standard trap talents can now (eventually) be unlocked for the player and are usable by NPCs, which automatically select which traps to prepare randomly when first acting.
Many new trap support functions are defined (in cunning.traps.lua) to make adding new trap talents easier and a "recipe" for defining new traps is included in cunning\traps.lua. This covers both "cunning/traps" and "celestial/glyphs". Relevant references for functions and tables are added to ActorTalents.
New AI functions allow NPC's to place traps in better locations (either in front or behind rather than under the player).
Talent "Preparation" renamed "Trap Priming", traps prepared with it have independent (reduced effectiveness, ~ 60%) trap mastery levels compared to those prepared with Trap Mastery talent. The trap tier must be no higher than talent level.
Updated interface for Trap Mastery and Trap Priming selection: The player can freely select/cancel traps to prepare.
Both Trap Mastery and Trap Priming have no cooldown but put newly selected traps on cooldown instead.
Low level requirements for Trap Mastery are accelerated to prevent high tier traps from being learned too early.
If Trap Mastery is learned on player birth, the dialog to select prepared traps is automatically invoked, allowing the player to start the game with traps off cooldown.
Lure: Life, Armour, and Resistances scale with talent level and Cunning.
Talent "Trap Launcher" renamed "Advanced Trap Deployment": trap ranges limited < 10 (nerf), but get bonuses to trap talent speed and maintaining stealth (buffs).
Random Traps:
Damage from random cold flames trap slightly buffed.
Teleport traps check teleport immunity.
Summoning alarm: adjusted detection/disarm level, summons will target triggering actor
New elemental trap: "anti-magic trap" -- a rare and weaker version of the purging trap
New elemental trap: "dragon fire trap" -- a rare trap that can stun its targets and set them on fire
Individual Trap Talent Changes: Eliminated redundant special versions of trap talents to trigger instantly.
Required Trap Mastery levels adjusted to spread out usable traps from tiers 1 to 5. Effects (damage) tweaked appropriately.
Bear Trap: Tier 1
Moved from tier 2, Clarified talent description. Can use a primed trigger.
Disarming Trap: Tier 1, Now unlocked from the start.
Springrazor Trap: Tier 2
Moved from tier 1, Clarified talent description.
Pitfall Trap: Tier 3
If victims avoid being engulfed (automatic for the player) they are pinned (-50% pin resistance) instead.
Flash Bang Trap: Tier 4
Duration of debuffs scale with cunning
Bladestorm Trap: Tier 5
Summoned construct cannot have ego/artifact equipment, gets summoner damage bonuses, gets rescaled armor, defense, and resistances, and correctly gains stats with level
Explosion Trap: Tier 2, Unlock: disarming "fire blast trap" or "delayed explosion trap"
Beam Trap: Tier 2, Unlock: Derth after Lightning-overload quest or disarming "spinning beam trap"
requires 20 Magic, treated as a spell, unlocked only for NPCs greater than level 5
Poison Gas Trap: Tier 2, Unlock: Maze or by disarming certain traps ("poison spore", "poison blast trap")
Freezing Trap: Tier 3, Unlock: in Daikara or disarming "cold flames trap"
unlocked only for NPCs greater than level 15
Catapult Trap: Tier 3, Unlock: killing Filio Flightfond or (rarely) disarming "giant boulder trap"
Grid to catapult target to can be set when laid. (NPCs select an appropriate grid based on their ai_state.)
Purging Trap: Tier 4, Unlock: in Zigur or by disarming "anti-magic trap"
Requires 25 Will, treated as an anti-magic ability, number of effects removed rescaled with controlling trap mastery talent, unlocked only for NPCs greater than level 15
Nightshade Trap: Tier 4, Unlock: disarming "poison vine", poisons in addition to damage (buff)
Dragonsfire Trap: Tier 5, Unlock: in Daikara or by disarming "dragon fire trap"
unlocked only for NPCs greater than level 20
Ambush Trap: Tier 5, Unlock: Assassin Lord, Lost Merchant, or (rarely) by disarming some alarm traps,
treated as a spell, summoned assassins are the summoner's (not zone's) level, cannot have ego/artifact equipment and disappear after the triggering actor is killed, are permanently stealthed, get summoner damage bonuses, and correctly gain stats with level
Gravitic Trap:
Can trigger immediately after being placed and can be triggered by foes at range 1. May trigger more than once, but requires time to recharge.
Glyph of Paralysis: only triggers on enemies
Glyph of Repulsion: only triggers on enemies
Glyph of Explosion: only triggers on enemies, damage buffed slightly
Glyph of Fatigue: only triggers on enemies, fixed bug using incorrect value for slow effect (slight nerf, no spellCrit)
Other Rogue Talent changes:
Rogues start with the "technique/dualweapon-training" category unlocked and "cunning/scoundrel" category locked.
Projectile speed shown on descriptions for Throwing Knives talents.
Throwing Knives: base damage rescaled (nerf) to more closely match iron dagger at level 1.3 and voratun dagger at level 6.5, maximum of 72 (voratun greatmaul) at high talent levels. Bandolier holds more knives at higher talent levels, but autoreloads at half rate on moving. Updated info and tooltips.
Fan of Knives: Fixed a bug causing targets to be hit by too many knives. Damage of each knife limited < 100% of normal Throwing Knife damage. Does not require any regular throwing knives ready.
Precise Aim: enabled for NPC's, nerfed crit power
Soothing Darkness: General Nerf: life and stamina regeneration, flat damage reduction, but allows stealth to always be activated in unlit grids
Shadow Dance: Drops target to enemies in LOS only. Fixed a bug that could cause stealth to be toggled incorrectly.
Apply Poisons: Fixed a bug causing some poison effects to not work without vile poisons.
Grapping Hook: requires at least range 2, fixed a bug that could cause the talent to go on cooldown with an invalid target, clarified talent description and combat log messages
Dual Weapon Defense enables parrying from level 1 up.
Parry: Chance to parry, and % of weapon damage limited < 100%
Tempo: Limit energy gain < 50% of a turn, stamina gain nerfed slightly
Duelist Focus: nerfed crit resistance to be more in line with other crit reducing talents, nerfed chance to ignore all damage: limited < 25%
Feint: Nerfed offhand damage multplier, nerfed speed penalty (limit < 50%), added some safety checks, fixed a bug causing the crippling affect to land even if the target was missed
Lethality: removed offhand multiplier bonus.
Coup de Grace: smoothed scaling of special damage, correctly applies offhand damage penalty
Heart Seeker: range limited < 10
Terrorize: radius limited < 10
Tumble: cannot be used when unable to move
Garrote: damage reduction limited < 100%
Marked for Death: damage accumulation limited < 100% of damage taken, bonus damage will not trigger if effect is removed early, clarified effect description
Lacerating Strikes: only causes energy loss if the target is successfully cut.
Scoundrel's strategies: talent disruption chance limited < 100%
Misdirection: Fixed a bug causing effects from non-actors (like traps) to be misdirected.
Twist the Knife: enabled for NPCs, rescaled (slowed down) number of effects (nerf) and duration change (buff), has fixed cooldown
Stoning Poison: Poison can stack, more reliably stones victims, learnable from the Lost Merchant (1500g)
Mystical Cunning prodigy updated:
Automatically learn both Gravitic trap (does not require Trap Mastery) and Vulnerability Poison (buffed to be applied before checking other poisons, but only reduces poison immunity of "living" creatures). Tooltip includes a full talent summary of the bonus talents learned so players know what they're getting before learning the prodigy. Magic improves damage for both bonus talents.
The stealthDetection function is made globally accessible through ActoTalents.
Other changes:
(engine) ActorTalent:canLearnTalent not enough stat message includes the stat short name.
Significant buff to the parry mechanic. Parried attacks cannot crit. The Parry effect is triggered by both the Dual Weapon Defense and Parry talents (which now use talent callbacks), and stacks with itself. (TL 6.5 for both talents with 100 cunning gives 100% chance to parry). Unless the defender has blind-fighting, attacks from unseen attackers have 1/3 normal chance to parry.
Bear Trap effect: removed redundant definitions, fixed bug causing immunities to be applied repeatedly
Randbosses will respect talent tiers when learning talents. (Prevents learning talents that are useless because they require lower tier talents of the same category.)
Added a new "Disarm Trap" command (Map Menu and default key binding shift-d) to allow the player to disarm traps without walking over them. This allows the player to disarm an adjacent trap or one he/she is standing on, with the usual chance of triggering it.
Fixed a bug causing talents with no_energy == "fake" to never break stealth.
Fixed a bug causing NPCs to not react to damage from player-created traps and other entities; They now target the trap summoner if applicable.
A talent .autolearn_talent field can be either a single talent id or a table of talent id's.
The Stoning effect now makes the victim rooted in place and confers cut and poison immunity (to new effects only) and no breathing.
Gesture of Guarding: melee attacks deflected cannot be crits.
The Assassin Lord now learns Weapon Mastery and Dagger Mastery talents and autolevels as "roguemage."
Filio Flightfond now learns the Sling Mastery, Trap Mastery, and Inertial Shot (at level 28+) talents.
New thief npc: "rogue sapper" a relatively rare type with trapping talents.
Fixed a bug with bump attacks requiring too much energy to happen.