Dead by Daylight Wiki

A documentação para este módulo pode ser criada na página Módulo:Datatable/Powers/doc

--[[local str = require("Module:Strings")
local p = {}

p.powerStrings = {
	activeAbilityButton = i("Active Ability button"),
	attackButton		= i("Attack button"),
	interactionButton	= i("Interaction button"),
	powerButton 		= i("Power button"),
}
local powerStrings = p.powerStrings

local function pwrImg(...)
	result = cstr.empty
	for _, name in ipairs((type(...) == "string" and {...}) or ...) do
		result = result .. aImg("power", name, 128, {rarity = 1}) .. nl
	end
	return '<div class = "flex flexColumn floatRight">' .. result .. '</div>'
end

p.powerDescriptions = {
	{ -- The Trapper: Bear Trap
        id = 1,
        desc =
        	pwrImg("Bear Trap") ..
            quote("A large foothold trap made of steel." .. br .. "Bear Traps are found lying around throughout the Trial Grounds, waiting to be picked up and set anywhere.") .. dbr ..
            
            b("SPECIAL TRAP: BEAR TRAP") .. br ..
            b("The Trapper") .. " starts the Trial with " .. clror(2) .. space .. b("Bear Traps") .. " equipped." .. br .. "Additionally, " .. clro(8) .. space .. b("Disarmed Bear Traps") .. " spawn in random locations throughout the environment." .. nlp ..
            "The " .. iconLink(ils.auras) .. " of " .. b("Bear Traps") .. " are revealed to " .. b("The Trapper") .. " at all times." .. dbr ..
            
            b("SPECIAL INTERACTION: COLLECTING TRAPS") .. br ..
            "Press the " .. powerStrings.interactionButton .. " while standing near or above a " .. b("Bear Trap") .. " to retrieve and collect it." .. br .. b("The Trapper") .. " may carry up to " .. clro(2) .. space .. b("Bear Traps") .. " at a time." .. dbr ..
            
            b("SPECIAL INTERACTION: SETTING TRAPS") .. img("Reset Bear Trap", "48px") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to set and arm a carried " .. b("Bear Trap") .. colon ..
            list(
            	"Grants a " .. clro("+7.5 %") .. space .. states(ils.haste) .. " for " .. clro("5 seconds") .. dot,
            	b("Armed Bear Traps") .. " trap and immobilise any Survivor stepping into them.",
            	nbullet .. "This will also injure healthy Survivors.",
            	nbullet .. i("Trapped Survivors") .. " can try to free themselves from it, which may take several attempts, or wait for another Survivor to rescue them.",
            	b("Armed Bear Traps") .. " also temporarily trap and immobilise " .. b("The Trapper") .. " stepping into them, until he frees his foot and resets it.",
            	nbullet .. "This will cause any carried Survivor to escape from his shoulder.") .. br ..
            
            b("SPECIAL INTERACTION: RESETTING TRAPS") .. img("Reset Bear Trap", "48px") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " while standing above a " .. b("Disarmed Bear Trap") .. " to reset and arm it." .. dbr ..
            
            b("SPECIAL INTERACTION: CATCHING SURVIVORS") .. img("Catching Survivors", "48px") .. br ..
            "Press the " .. powerStrings.interactionButton .. " while standing near a " .. i("Trapped Survivor") .. " to lift them out of the " .. b("Bear Trap") .. " and onto " .. b("The Trapper's") .. " shoulder, immediately allowing him to carry them."
    },
	{ -- The Wraith: Wailing Bell
        id = 2,
        desc = 
            pwrImg("Wailing Bell") ..
            quote("A heavy cast iron bell imbued with ancient powers." .. br .. "Allows the user to enter and walk the Spirit World when rung.") .. dbr ..
            
            b("SPECIAL OBJECT: WAILING BELL") .. img("Wailing Bell", "48px") .. br .. 
            b("The Wraith") .. " starts the Trial in the " .. i("Cloaked State") .. ", which has the following effects:" ..
            list(
            	"Grants the " .. states(ils.undetectable) .. dot,
            	b("Increases") .. " his Movement speed to " .. clror("6 m/s") .. dot,
            	"Fully invisible to Survivors who are farther than " .. clro("20 metres") .. " away from him.",
            	"Partially invisible to Survivors who are within " .. clro("20 metres") .. " of him.",
            	"Fully transparent while stationary for a moment and for as long as he remains unmoving.",
            	b("Removes") .. " the ability to attack or interact with Survivors.",
            	nbullet .. b("The Wraith") .. " is still able to interact with Props.") .. br ..
            "Ringing the " .. b("Wailing Bell") .. " can be heard by Survivors throughout the Trial within the following ranges:" ..
            list(
           	"The bell toll has a range of " .. clro("24 metres") .. dot,
           	"The accompanying *Wooosh* noise during the transition phase has a range of " .. clro("40 metres") .. dot) .. br ..
            
            b("SPECIAL ABILITY: CLOAK / UNCLOAK") .. img("Wailing Bell (cloaked)", "48px") .. br ..
            b("The Wraith") .. " must " .. i("Uncloak") .. " in order to attack and interact with Survivors." .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " at any time to ring the " .. b("Wailing Bell") .. " and " .. i("Uncloak") .. ", exiting the " .. i("Spirit World") .. colon ..
            list(b("Boosts") .. " his Movement speed to " .. clro("150 %") .. " for " .. clro("1 second") .. dot) ..
            b("The Wraith") .. " can " .. i("Cloak") .. " and re-enter the " .. i("Spirit World") .. " at any time by pressing and holding the " .. powerStrings.powerButton .. " again to ring the " .. b("Wailing Bell") .. dot
    },
    { -- The Hillbilly: Chainsaw
        id = 3,
        desc =
        	pwrImg("Chainsaw") ..
            quote("A hulking and deadly Chainsaw of terrifying strength." .. br .. "Grinds through flesh, bone, and soul." .. br .. "Once revved up, it sends its user into a violent frenzy.") .. dbr ..
            
            b("SPECIAL WEAPON: CHAINSAW") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to charge the " .. i("Chainsaw") .. " and break into a " .. i("Chainsaw Sprint") .. colon ..
            list("Hitting Survivors with the " .. i("Chainsaw") .. " inflicts double damage.") .. br ..
            
            b("SPECIAL LOCOMOTION: CHAINSAW SPRINT") .. br ..
            "During a " .. i("Chainsaw Sprint") .. comma .. b("The Hillbilly") .. " benefits from the following effects:" .. 
            list(
            	b("Increases") .. " his Movement speed to " .. clror("10.12 m/s") .. dot,
            	b("Reduces") .. " his manoeuvrability.") .. br ..
            
            b("SPECIAL STATE: OVERDRIVE") .. br ..
            "Revving the " .. i("Chainsaw") .. " and sprinting with it automatically charges the " .. i("Overdrive Meter") .. dot .. br .. "It decharges whenever the " .. i("Chainsaw") .. " is not in use for a prolonged time." .. nlp ..
            "Once the meter is full, the " .. i("Chainsaw") .. " is enhanced and benefits from the following effects for " .. clro("20 seconds") .. colon ..
            list(
            	b("Increases") .. " the Movement speed of the " .. i("Chainsaw Sprint") .. " to " .. clro("13 m/s") .. dot,
            	b("Increases") .. " the Charge speed of the " .. i("Chainsaw") .. " by " .. clro("+5 %") .. dot,
            	b("Reduces") .. " the Cool-down time of the " .. i("Chainsaw") .. " by " .. clro("-10 %") .. dot)
    },
    { -- The Nurse: Spencer's Last Breath
        id = 4,
        desc =
        	pwrImg("Spencer's Last Breath") ..
            quote("A powerful and violent last breath snatched from Crotus Prenn Asylum Warden Patrick Spencer." .. br .. "Channelling its energy allows The Nurse to pierce and jump through the Spirit World in a blink multiple times in a row." .. br .. " Doing so leaves her in a state of fatigue.") .. dbr ..
            
            b("SPECIAL ABILITY: SPENCER'S LAST BREATH") .. br ..
            b("The Nurse") .. " starts the Trial with " .. clror("2 Tokens") .. dot .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to charge a " .. i("Blink") .. dot .. br .. "Release the " .. powerStrings.powerButton .. " to initiate a " .. i("Blink") .. dot .. nlp ..
            "Using " .. i("Spencer's Last Breath") .. " consumes " .. clro("1 Token") .. dot .. dbr ..
            
            b("SPECIAL LOCOMOTION: BLINK") .. br ..
            "A " .. i("Blink") .. " allows " .. b("The Nurse") .. " to pierce the Realm of the Entity and teleport through obstacles and walls in a straight line:" ..
            list(
            	"Grants the ability to teleport for up to " .. clro("20 metres") .. dot,
            	nbullet .. b("The Nurse") .. " can adjust the Teleportation distance by aiming at any point closer to her.",
            	nbullet .. b("The Nurse") .. " can teleport to other floors by aiming at the ceiling or floor of a room that has another one above or below it.") .. br ..
            
            b("SPECIAL LOCOMOTION: CHAIN BLINK") .. br ..
            "After the first " .. i("Blink") .. ", if there is at least " .. clro("1 Token") .. " available, the " .. i("Chain Blink Window") .. " automatically opens for " .. clro("1.5 seconds") .. ", during which " .. b("The Nurse") .. " can initate a " .. i("Chain Blink") .. colon ..
            list(
            	"Grants the ability to teleport for up to " .. clro("12 metres") .. dot,
            	nbullet .. b("The Nurse") .. " can adjust the Teleportation distance by aiming at any point closer to her.",
            	nbullet .. b("The Nurse") .. " can teleport to other floors by aiming at the ceiling or floor of a room that has another one above or below it.") .. br ..
            
            b("SPECIAL STATE: FATIGUE") .. br ..
            "After either the " .. i("Chain Blink Window") .. " closes or the final " .. i("Chain Blink") .. " elapses, " .. b("The Nurse") .. " enters a state of " .. i("Fatigue") .. " for " .. clro("2 to 3 seconds") .. ", depending on how many " .. i("Blinks") .. " she chained."
    },
	{ -- The Shape: Evil Within
        id = 5,
        desc =
        	pwrImg("Evil Within I", "Evil Within II", "Evil Within III") ..  
            quote("The darkness inside feeds his determination to take the life of his prey.") .. dbr ..
            
            b("SPECIAL ABILITY: EVIL WITHIN") .. br ..
            i("Evil Within") .. " is a tiered Power that requires " .. b("The Shape") .. " to stalk Survivors and drain evil from their shared pool to tier up." .. br .. "The more he stalks them, the deadlier he becomes." .. dbr ..
            
            b("Evil Within I") .. " has the following permanent effects until a tier-up:" .. 
            list(
            	"Grants a permanent " .. states(ils.undetectable) .. dot,
            	b("Reduces") .. " his Movement speed to " .. clror("4.2 m/s") .. dot,
            	b("Reduces") .. " the Reach of his " .. i("Lunge Attack") .. " by shortening the duration of its open time to " .. clro("0.2 seconds") .. dot,
            	"Allows him to vault " .. iconLink(ils.windows) .. " in the default time of " .. clro("1.7 seconds") .. dot) .. br .. 
            
            b("Evil Within II") .. " has the following permanent effects until a tier-up:" .. 
            list(
            	b("Reduces") .. " his " .. iconLink(ils.terrorRadius) .. " to " .. clro("16 metres") .. dot,
            	b("Increases") .. " his Movement speed to the default speed of " .. clro("4.6 m/s") .. dot,
            	b("Increases") .. " the Reach of his " .. i("Lunge Attack") .. " to the default open time of " .. clro("0.5 seconds") .. dot,
            	b("Reduces") .. " the time to vault " .. b("Windows") .. " to " .. clro("1.48 seconds") .. dot) .. br ..
            
            b("Evil Within III") .. " has the following effects for " .. clro("60 seconds") .. ", after which it automatically regresses back to " .. b("Evil Within II") .. colon .. 
            list(
            	"Causes all Survivors to suffer from the " .. states(ils.exposed) .. dot,
            	b("Increases") .. " his " .. iconLink(ils.terrorRadius) .. " to the default radius of " .. clro("32 metres") .. dot,
            	b("Increases") .. " the Reach of his " .. i("Lunge Attack") .. " by extending the duration of its open time to " .. clro("0.6 seconds") .. dot,
            	b("Reduces") .. " the time to vault " .. b("Windows") .. " further to " .. clro("1.275 seconds") .. dot) .. br ..
            
            b("SPECIAL ABILITY: STALKING") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to stalk all visible Survivors within " .. clro("~40 metres") .. colon ..
            list(
            	i("Stalked Survivors") .. " are highlighted to " .. b("The Shape") .. dot,
            	nbullet .. "The colour of their highlight indicates the amount of evil left to drain from them, ranging from " .. bclr(16, "white (full)") .. " to " .. bclr(19, "red (drained)") .. dot,
            	"Stalking Survivors fills the Power Gauge.",
            	nbullet .. "The closer to a Survivor, the quicker it fills.",
            	nbullet .. b("The Shape") .. " can only drain evil from one Survivor at a time, prioritising the closest in proximity.")
    },
	{ -- The Hag: Blackened Catalyst
        id = 6,
        desc =
        	pwrImg("Blackened Catalyst") ..  
            quote("The source of The Hag's power: a blackened finger used as a catalyst for her terrible power." .. br .. "She bends and shapes mud to her will." .. br .. "With simple ritualistic drawings, she creates deceitful duplicates of herself, made from mud and decay, which she can use for various effects.") .. dbr ..
            
            b("SPECIAL ABILITY: BLACKENED CATALYST") .. br ..
            b("The Hag") .. " starts the Trial with " .. clror(10) .. space .. b("Phantasm Traps") .. dot .. br ..
            "Placing additional " .. b("Phantasm Traps") .. " will recycle the oldest one." .. dbr ..
            
            b("SPECIAL TRAP: PHANTASM TRAP") .. br ..
            "Press the " .. powerStrings.powerButton .. " to bend down and draw a muddy sign into the ground, placing and arming a " .. b("Phantasm Trap") .. dot .. nlp ..
            "Survivors entering the " .. i("Area of Effect") .. ", which is only visible to " .. b("The Hag") .. ", will trip the trap, causing a " .. b("Mud Phantasm") .. " to spawn that has the following effects:" ..
            list(
            	"Yanks the camera of the Survivor who tripped the trap towards itself, disorienting them and keeps its sight trained on them.",
            	"Emits a " .. b("Fake") .. space .. iconLink(ils.terrorRadius) .. " of " .. clror("8 metres") .. dot) .. nlp ..
            "Survivors can prevent tripping the trap by doing either of the following:" ..
            list(
            	"Crouch while inside the " .. i("Area of Effect") .. dot,
            	"Interact with Props while inside the " .. i("Area of Effect") .. dot) .. nlp ..
            "Survivors can safely remove a trap by wiping it away for " .. clro("4 seconds") .. " when crouching above it." .. dbr ..
            
            b("SPECIAL ABILITY: TELEPORT") .. img("Teleport", "48px") .. br .. 
            "Press the " .. powerStrings.activeAbilityButton .. " to teleport to any currently tripped " .. b("Phantasm Trap") .. " within " .. clro("48 metres") .. ", taking the place of the " .. b("Mud Phantasm") .. dot .. br ..
            "In case of multiple tripped traps, a specific " .. b("Mud Phantasm") .. " can be chosen by aiming at it before teleporting."
    },
	{ -- The Doctor: Carter's Spark
        id = 7,
        desc =
        	pwrImg("Carter's Spark") ..  
            quote("Is it a gift, or a curse?" .. br .. "The Entity has ignited a corrupted and inexhaustible spark in The Doctor's heart which allows him to generate electroconvulsive power at will." .. br .. "His insidious treatment corrupts the minds of those it touches." .. br .. "Victims shocked by the corrupt spark begin to lose their grip on reality and, with repeated exposure, inevitably succumb to madness.") .. dbr ..
            
            b("SPECIAL ABILITY: CARTER'S SPARK") .. br ..
            "Striking Survivors with his electro-convulsive abilities, " .. b("The Doctor") .. " increasingly causes them to suffer from the tiered " .. states(ils.madness) .. dot .. dbr ..
            
            b("SPECIAL AFFLICTION: MADNESS") .. br ..
            b(i("Madness")) .. " causes increasingly potent afflictions in the affected Survivors, depending on its current tier." .. nlp ..
            "Once " .. b(i("Madness")) .. " is obtained, Survivors are unable to lose it and may only regress it by performing the " .. i("Snap Out of It") .. " interaction." .. dbr ..
            
            b(i("Madness I")) .. " has the following permanent effects until a tier-up:" .. 
            list(
            	"Causes Survivors to scream once during the tier-up, revealing their location to " .. b("The Doctor") .. dot,
            	iconLink(ils.skillChecks) .. " have a chance of " .. clror("33 %") .. " to be " .. i(link("Madness Skill Checks")) .. dot) .. br ..
            
            b(i("Madness II")) .. " has the following permanent effects until a tier-up:" .. 
            list(
            	"Causes Survivors to scream once during the tier-up, revealing their location to " .. b("The Doctor") .. dot,
            	i("Skill Checks") .. " have a chance of " .. clro("66 %") .. " to be " .. i("Madness Skill Checks") .. dot,
            	"Causes Survivors to experience occasional Hallucinations in the form of " .. b(i("Illusionary Doctors")) .. dot) .. br ..
            
            b(i("Madness III")) .. " has the following permanent effects until Survivors " .. i("Snap Out of It") .. colon .. 
            list(
            	"Causes Survivors to scream during the tier-up and then intermittently every few seconds, revealing their location to " .. b("The Doctor") .. dot,
            	i("Skill Checks") .. " are " .. clro("100 %") .. space .. i("Madness Skill Checks") .. dot,
            	"Causes Survivors to experience occasional Hallucinations in the form of " .. b(i("Illusionary Doctors")) .. dot,
            	nbullet .. "The " .. iconLink(ils.auras) .. " of " .. b(i("Illusionary Doctors")) .. " are revealed to " .. b("The Doctor") .. dot,
            	b("Suppresses") .. " the ability of Survivors to use their " .. iconLink(ils.items) .. dot,
            	b("Suppresses") .. " the ability of Survivors to interact both with other Survivors and certain environmental objects.") .. br ..
            
            b("SPECIAL INTERACTION: SNAP OUT OF IT") .. br ..
            "Survivors having reached " .. b(i("Madness III")) .. " can perform the " .. i("Snap Out of It") .. " interaction for " .. clro("12 seconds") .. colon ..
            list(
            	"Succeeding the interaction regresses them back to " .. b(i("Madness I")) .. dot,
            	"Failing the interaction causes them to scream and reveal their location to " .. b("The Doctor") .. dot) .. br ..
            
            b("SPECIAL ABILITY: SHOCK THERAPY") .. img("Shock Therapy Attack", "48px") .. br .. 
            "Press and hold the " .. powerStrings.powerButton .. " to perform a " .. i("Shock Therapy Attack") .. ", unleashing a cone-shaped ranged shock attack on the ground in front of " .. b("The Doctor") .. colon ..
            list(i("Shock Therapy") .. " has a range of " .. clro("12 metres") .. " and detonates with a delay of " .. clro("0.8 seconds") .. dot) ..
            "Survivors struck with a " .. i("Shock Therapy Attack") .. " suffer from the following effects:" ..
            list(
            	b("Increases") .. " their " .. b(i("Madness")) .. " by " .. clro("+0.5 Tiers") .. ", causing them to scream and reveal their location, if it coincides with a tier-up.",
            	b("Interrupts") .. " any on-going interaction at the moment of impact.",
            	b("Suppresses") .. " their ability to perform any interactions, including with " .. iconLink(ils.pallets) .. " and " .. iconLink(ils.windows) .. dot) .. 
            "Survivors suffering from the " .. states(ils.oblivious) .. " when struck by " .. i("Shock Therapy") .. " have it removed immediately." .. dbr ..
            
            b("SPECIAL ABILITY: STATIC BLAST") .. br .. 
            "Press and hold the " .. powerStrings.activeAbilityButton .. ", once the Power Gauge is full, to perform a " .. i("Static Blast Attack") .. ", unleashing a ranged shock attack that propagates through the air from " .. b("The Doctor") .. ", covering his entire " .. iconLink(ils.terrorRadius) .. dot .. nlp ..
            "Survivors struck with a " .. i("Static Blast Attack") .. " suffer from the following effects:" ..
            list(
            	b("Increases") .. " their " .. b(i("Madness")) .. " by " .. clro("+1 Tier") .. ", causing them to scream and reveal their location, if it coincides with a tier-up.",
            	b("Interrupts") .. " any on-going interaction at the moment of impact.") .. 
            "Survivors can prevent being struck by " .. i("Static Blast") .. " by hiding inside a " .. iconLink(ils.locker) .. dot .. nlp ..
            "Survivors suffering from the " .. states(ils.oblivious) .. " when struck by " .. i("Static Blast") .. " have it removed immediately." .. nlp ..
            i("Static Blast") .. " has a Cool-down of " .. clro("60 seconds") .. dot
    },
    { -- The Huntress: Hunting Hatchets
        id = 8,
        desc =
        	pwrImg("Hunting Hatchets") ..  
            quote("A skill taught by her mother and mastered in the wild." .. br .. "The Huntress can throw hatchets with deadly precision.") .. dbr ..
            
            b("SPECIAL WEAPON: HUNTING HATCHETS") .. br ..
            b("The Huntress") .. " stars the Trial with " .. clror(7) .. space .. b("Hunting Hatchets") .. " equipped." .. nlp ..
            "Press and hold the " .. powerStrings.powerButton .. " to wind up and charge a " .. b("Hunting Hatchet") .. dot .. br .. "Release the " .. powerStrings.powerButton .. " to throw the " .. b("Hunting Hatchet") .. " or press the " .. powerStrings.attackButton .. " to cancel the throw:" ..
            list(
            	"Releasing at minimum charge throws them at " .. clro("25 m/s") .. dot,
            	"Releasing at maximum charge throws them at " .. clro("40 m/s") .. dot) ..
            b("Hunting Hatchets") .. " can be replenished at " .. iconLink(ils.lockers) .. dot .. br .. "The " .. iconLink(ils.auras) .. " of " .. b("Hunting Hatchets") .. " inside " .. b("Lockers") .. " are automatically revealed to " .. b("The Huntress") .. " within " .. clro("36 metres") .. ", when she is out of them." 
    },
    { -- The Cannibal: Bubba's Chainsaw
        id = 9,
        desc =
        	pwrImg("Bubba's Chainsaw", "Bubba's Chainsaw (Tantrum)") ..
            quote("An incredibly powerful and heavy Chainsaw which sank its teeth into countless victims." .. br .. "A suitable birthday gift for The Cannibal.") .. dbr ..
            
            b("SPECIAL WEAPON: BUBBA'S CHAINSAW") .. br ..
            b("The Cannibal") .. " starts the Trial with " .. clror("3 Tokens") .. dot .. br ..
            b("Tokens") .. " automatically recharge at a rate of " .. clro("0.25 c/s") .. " while the " .. i("Chainsaw") .. " is not in use." .. dbr ..
            
            b("SPECIAL ABILITY: CHAINSAW SWEEP") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to charge the " .. i("Chainsaw") .. " and break into a " .. i("Chainsaw Sweep") .. " for " .. clro("2 seconds") .. colon ..
            list(
            	"Hitting Survivors with the " .. i("Chainsaw") .. " inflicts double damage.",
            	nbullet .. "The " .. i("Chainsaw") .. " can hit multiple targets in one sweep.") .. 
            "Using " .. i("Bubba's Chainsaw") .. " consumes " .. clro("1 Token") .. dot .. dbr ..
            
            b("SPECIAL ABILITY: CHAINSAW DASH") .. br ..
            "Press the " .. powerStrings.powerButton .. " again during an on-going " .. i("Chainsaw Sweep") .. " to chain a " .. i("Chainsaw Dash") .. colon ..
            list(
            	b("Resets") .. " the Power Gauge timer, extending the " .. i("Chainsaw Sweep") .. dot,
            	b("Increases") .. " the Cool-down time of the " .. i("Chainsaw") .. " by " .. clro("+1 second per consumed Token") .. dot) .. br ..
            
            b("SPECIAL STATE: TANTRUM") .. br ..
            "Revving the " .. i("Chainsaw") .. " fills the " .. i("Tantrum Meter") .. " by " .. clro("+20 % per second") .. ", with it discharging at the same rate when stopping to rev." .. br .. 
            "Once the meter is full, or after hitting an obstacle during a " .. i("Chainsaw Sweep") .. comma .. b("The Cannibal") .. " unleashes a " .. i("Tantrum") .. " for a minimum of " .. clro("5 seconds") .. ", wildly slashing out and damaging any Survivors in close proximity, dealing double damage:" ..
            list(
            	b("Increases") .. " the " .. i("Tantrum") .. " duration by " .. clro("1 second per consumed Token") .. dot,
            	b("Removes") .. " any remaining Tokens.",
            	b("Reduces") .. " his Movement speed by " .. clro("-90 %") .. dot)
    },
    { -- The Nightmare: Dream Demon
        id = 10,
        desc =
        	pwrImg("Dream Demon") ..
            quote("Death won't accept him and thus he remains, a calamity, indisputable master of his victims' nightmares.") .. dbr ..
            
            b("SPECIAL ABILITY: DREAM DEMON") .. br ..
            b("The Nightmare") .. " is cloaked from awake Survivors." .. br .. "While they can hear his " .. iconLink(ils.terrorRadius) .. ", he is not always visible to them:" ..
            list(
            	b("The Nightmare") .. " is invisible to Survivors farther than " .. clror("32 metres") .. " away.",
            	b("The Nightmare") .. " is intermittently visible to Survivors from " .. clro("16 to 32 metres") .. " away.",
            	b("The Nightmare") .. " is fully visible to Survivors closer than " .. clro("16 metres") .. dot) .. br ..
            
            b("SPECIAL STATE: MICROSLEEP") .. br ..
            "The mere presence of " .. b("The Nightmare") .. " induces " .. i("Microsleep ") .. " in awake Survivors, causing them to passively fall asleep over " .. clro("60 seconds") .. dot .. br ..
            "Survivors who woke up with an " .. b("Alarm Clock") .. " are protected from " .. i("Microsleep ") .. " for " .. clro("30 seconds") .. dot .. dbr ..
            
            b("SPECIAL STATE: ASLEEP") .. br ..
            "Survivors who fall asleep automatically enter the " .. i("Dream World") .. " and suffer from the following effects while inside it:" ..
            list(
            	"Causes them to be susceptible to " .. b("Dream Traps") .. dot,
            	"Causes them to suffer from the " .. states(ils.oblivious) .. dot,
            	nbullet .. "Causes them to hear a non-directional " .. i("Lullaby") .. " instead.") .. 
            "Hitting Survivors with a " .. i(link("Basic Attack") .. " immediately pulls them into the " .. i("Dream World") .. ", unless they are still protected from " .. i("Microsleep") .. dot) .. dbr ..
            
            b("SPECIAL INTERACTION: WAKING UP") .. br ..
            "Survivors have several ways to leave the " .. i("Dream World") .. " and wake up:" ..
            list(
            	"Fail a " .. iconLink(ils.skillCheck) .. dot,
            	"Awake Survivors perform the " .. i("Wake Up") .. " interaction on an asleep Survivor for " .. clro("3 seconds") .. dot,
            	nbullet .. "From the second time onwards, this interaction time is doubled to " .. clro("6 seconds") .. dot,
            	"Interact with their personal " .. b("Alarm Clock") .. " for " .. clro("3 seconds") .. dot) .. dbr ..
            
            b("SPECIAL TRAP: DREAM SNARES") .. img("Dream Snare", "48px") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to see the outline of a " .. b("Dream Snare") .. " in front of " .. b("The Nightmare") .. dot .. br ..
            "Release the " .. powerStrings.powerButton .. " to place the trap:" ..
            list(
            	"Causes Survivors who enter its " .. i("Area of Effect") .. " to suffer from a " .. clro("-15 %") .. space .. states(ils.hindered) .. " for as long as they remain inside it.",
            	nbullet .. "This effect lingers for " .. clro("3 seconds") .. dot,
            	"Notifies " .. b("The Nightmare") .. " when tripped.") .. br ..
            
            b("SPECIAL TRAP: DREAM PALLETS") .. img("Dream Pallet", "48px") .. br ..
            "This trap is only available when using one of " .. clro(3) .. " specific " .. iconLink(ils.addons) .. dot .. nlp ..
            "Press the " .. powerStrings.powerButton .. " when near a valid Spawn point for " .. iconLink(ils.pallets) .. " to place a " .. b("Dream Pallet") .. " there:" ..
            list(
            	b("Dream Pallets") .. " are unable to stun " .. b("The Nightmare") .. " and break immediately when dropped.",
            	"Notify " .. b("The Nightmare") .. " when dropped.") .. br ..
            
            b("SPECIAL LOCOMOTION: DREAM PROJECTION") .. img("Dream Projection", "48px") .. br ..
            "Press and hold the " .. powerStrings.activeAbilityButton .. ",  once the Power Gauge is full, to perform a " .. i("Dream Projection") .. dot .. br ..
            "Release the " .. powerStrings.activeAbilityButton .. " prematurely to cancel the interaction:" .. 
            list(
            	"Grants the ability to teleport to any incomplete " .. iconLink(ils.generator) .. dot,
            	nbullet .. "Causes blood to spew from the selected " .. b("Generator") .. " during the interaction.",
            	b("Reduces") .. " the Cool-down duration of " .. i("Dream Projection") .. " by a stack-able " .. clro("-15 %") .. " for each asleep Survivor, up to a maximum of " .. clro("-60 %") .. dot) ..
            i("Dream Projection") .. " has a Cool-down of " .. clro("45 seconds") .. dot .. nlp ..
            quote("You have nothing to worry about. This won't hurt one... little... bit.", "Freddy Krueger")
    },
    { -- The Pig: Jigsaw's Baptism
        id = 11,
        desc =
        	pwrImg("Jigsaw's Baptism") ..
            quote("Forever devoted to her master's cause, she punished the ungrateful and the guilty with slyness and murderous puzzles." .. br .. "The Pig can move stealthily, dash in Ambush attacks and put deadly Reverse Bear Traps on Survivors' heads.") .. dbr ..
            
            b("SPECIAL ABILITY: JIGSAW'S BAPTISM") .. br ..
            b("The Pig") .. " starts the Trial with " .. clror(4) .. space .. b("Reverse Bear Traps") .. " equipped, which cannot be replenished once used." .. br .. "Additionally, " .. clro(5) .. space .. b("Jigsaw Boxes") .. " spawn in random locations in the environment." .. dbr ..
            
            b("SPECIAL LOCOMOTION: CROUCHING") .. br ..
            "Press the " .. powerStrings.activeAbilityButton .. " to transition into the " .. i("Crouched State") .. colon ..
            list(
            	"Grants the " .. states(ils.undetectable) .. dot,
            	b("Reduces") .. " her Movement speed to " .. clro("3.8 m/s") .. dot) ..
            "Press the " .. powerStrings.activeAbilityButton .. " again to transition out of the " .. i("Crouched State") .. dot .. dbr ..
            
            b("SPECIAL ABILITY: AMBUSH DASH") .. br ..
            "Press and hold the " .. powerStrings.attackButton .. " while in the " .. i("Crouched State") .. " to charge and perform an " .. i("Ambush Dash Attack") .. dot .. colon ..
            list(
            	b("Increases") .. " her Movement speed to " .. clro("6.9 m/s") .. " for " .. clro("2.3 seconds") .. " while attacking.",
            	"Causes " .. b("The Pig") .. " to automatically exit the " .. i("Crouched State") .. dot) .. br ..
            
            b("SPECIAL TRAP: REVERSE BEAR TRAPS") .. img("Reverse Bear Trap", "48px") .. br ..
            "Press the " .. powerStrings.powerButton .. " while standing above a downed Survivor to attach an unarmed " .. bclr(16, "Inactive Reverse Bear Trap") .. " to their head." .. nlp ..
            "Whenever a " .. iconLink(ils.generator) .. " is completed, all currently " .. bclr(16, "Inactive Reverse Bear Traps") .. " are activated." .. nlp ..
            bclr(19, "Active Reverse Bear Traps") .. " are armed and on a " .. i("Death Timer") .. " of " .. clro("150 seconds") .. ", which is displayed on the Survivor's Status icon." .. nlp ..
            "Once the " .. i("Death Timer") .. " elapses, the trap snaps open and kills the " .. i("Trapped Survivor") .. dot .. br .. 
            "The " .. i("Death Timer") .. " is paused whenever that Survivor is downed, hooked, or actively being chased by " .. b("The Pig") .. dot .. nlp ..
            i("Trapped Survivors") .. " may only leave the Trial normally if their trap is " .. bclr(16, "inactive") .. dot .. br .. "Attempting to leave through the " .. iconLink(ils.exitGates) .. " with an " .. bclr(19, "active") .. " trap will trigger the kill mechanism and execute the Survivor halfway into the exit area." .. br .. "They may still leave through the " .. iconLink(ils.hatch) .. dot .. dbr ..
            
            b("SPECIAL INTERACTION: JIGSAW BOXES") .. img("Jigsaw Box", "48px") .. br ..
            "Survivors can remove a " .. b("Reverse Bear Trap") .. " by interacting with a " .. b("Jigsaw Box") .. " and finding a key." .. br ..
            "The " .. iconLink(ils.auras) .. " of all unsearched " .. b("Jigsaw Boxes") .. " are revealed permanently to " .. i("Trapped Survivors") .. dot .. nlp ..
            i("Trapped Survivors") .. " must randomly search between " .. clro("1 to 4") .. space .. b("Jigsaw Boxes") .. colon ..
            list(
            	"Succeeding the search will remove and discard the " .. b("Reverse Bear Trap") .. dot,
            	"Failing the search will cause the Jigsaw Puppet " .. i("Billy") .. " to cackle at the unfortunate Survivor and hide the " .. i("Aura") .. " of the " .. b("Jigsaw Box") .. dot) .. nlp ..
            quote("You will give everything to me, every cell in your body." .. br .. "The marks on your arms, they're from another life." .. br .. "We'll leave that life behind." .. br .. "When you walk down that corridor there is no turning back." .. br .. "Do you understand that?", "Jigsaw's Baptism")
    },
    { -- The Clown: The Afterpiece Tonic
        id = 12,
        desc =
        	pwrImg("The Afterpiece Tonic", "The Afterpiece Antidote") ..
            quote("Throughout his years experimenting with anaesthetics and muscle relaxants, The Clown developed several effective concoctions and formulas." .. br .. "His favourite, The Afterpiece Tonic, he has used to great effect, intoxicating and capturing many unwilling victims." .. br .. "The associated Afterpiece Antidote also has useful effects.") .. dbr ..
            
            b("SPECIAL ABILITY: THE AFTERPIECE TONIC AND ANTIDOTE") .. br ..
            b("The Clown") .. " starts the Trial with a shared stock of " .. clror(6) .. space .. b("Bottles") .. dot .. nlp ..
            "Press the " .. powerStrings.activeAbilityButton .. " to switch between the " .. ibclr(15, "Tonic") .. " and the " .. ibclr(2, "Antidote") .. dot .. nlp ..
            "Press the " .. powerStrings.powerButton .. " to throw a " .. b("Bottle") .. dot .. br .. "Hold the " .. powerStrings.powerButton .. " until a shimmer travels across the " .. b("Bottle") .. " to throw it with maximum strength." .. nlp ..
            "Press and hold the " .. powerStrings.activeAbilityButton .. " to replenish the " .. b("Bottles") .. " at any time." .. dbr ..
            
            b("SPECIAL AFFLICTION: TONIC") .. br ..
            "Upon impact, the " .. ibclr(15, "Tonic") .. space .. b("Bottle") .. " breaks, releasing a " .. bclr(15, "purple") .. space .. i("Gas Cloud") .. " that intoxicates Survivors upon contact and while inside it." .. br .. b("The Clown") .. " is immune to its effects." .. nlp ..
            ibclr(15, "Intoxicated Survivors") .. " suffer from the following effects while inside the " .. i("Gas Cloud") .. colon ..
            list(
            	"Causes impaired vision.",
            	"Causes involuntary coughing.",
            	b("Suppresses") .. " the ability to perform " .. i("Fast Vaults") .. dot,
            	b("Reduces") .. " all Movement speeds through a " .. clro("-15 %") .. space .. states(ils.hindered) .. dot) ..
            "These effects linger for " .. clro("2 seconds") .. " after leaving the " .. i("Gas Cloud") .. dot .. dbr ..
            
            b("SPECIAL BENEFIT: ANTIDOTE") .. br ..
            "Upon impact, the " .. ibclr(2, "Antidote") .. space .. b("Bottle") .. " breaks, releasing an inactive " .. bclr(16, "white") .. space .. i("Gas Cloud") .. dot .. br .. "The " .. i("Gas Cloud") .. " will turn " .. bclr(2, "yellow") .. " after " .. clro("2 seconds") .. " and invigorate all Players upon contact." .. nlp ..
            ibclr(2, "Invigorated Players") .. " benefit from the following effect:" ..
            list(b("Increases") .. " all Movement speeds through a " .. clro("+10 %") .. space .. states(ils.haste) .. " for " .. clro("6 seconds") .. dot) .. br ..
            
            b("SPECIAL INTERACTION: NEUTRALISATION") .. br ..
            "The two types of " .. i("Gas Clouds") .. " instantly neutralise each other upon contact." .. nlp .. "Walking from one type into the other one will also neutralise any lingering effects from the former and instead apply the effect(s) of the latter."
    },
    { -- The Spirit: Yamaoka's Haunting
        id = 13,
        desc =
        	pwrImg("Yamaoka's Haunting") ..
            quote("Yamaoka is the name she carries from her ancestors, who unleashed hell on the battlefield." .. br .. "The Spirit draws her power from their wrath, haunting the living as retribution for her suffering." .. br .. "The Spirit can use Yamaoka's Haunting to enter the Ethereal Plane and re-appear at a new location.") .. dbr ..
            
            b("SPECIAL ABILITY: YAMAOKA'S HAUNTING") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to charge " .. i("Yamaoka's Haunting") .. " and initiate a " .. i("Phase-Walk") .. " for up to " .. clror("5 seconds") .. colon ..
            list("Causes " .. b("The Spirit") .. " to depart her physical body and enter the " .. i("Ethereal Plane") .. ", leaving behind a stationary " .. b("Husk") .. dot) ..
            i("Yamaoka's Haunting") .. " has a Cool-down of " .. clro("15 seconds") .. dot .. dbr ..
            
            b("SPECIAL LOCOMOTION: PHASE-WALK") .. br ..
            "During a " .. i("Phase-Walk") .. comma .. b("The Spirit") .. " experiences the following effects:" ..
            list(
            	b("Increases") .. " her Movement speed to " .. clro("7.04 m/s") .. dot,
            	"Survivors are invisible to her.",
            	nbullet .. "She can still see and track " .. iconLink(ils.scratchMarks) .. dot,
            	b("The Spirit") .. " emits a directional sound cue audible to all Survivors within " .. clro("24 metres") .. dot,
            	b("The Husk") .. " emits a " .. iconLink(ils.terrorRadius) .. " of " .. clro("24 metres") .. dot) ..
            b("The Spirit") .. " retains her speed boost for " .. clro("1 second") .. " after ending a " .. i("Phase-Walk") .. dot .. dbr ..
            
            b("SPECIAL ABILITY: PASSIVE-PHASING") .. br ..
            b("The Spirit") .. " is constantly phasing in and out of view for Survivors whenever she is not currently in a " .. i("Phase-Walk") .. dot
    },
    { -- The Legion: Feral Frenzy
        id = 14,
        desc =
        	pwrImg("Feral Frenzy") ..
            quote("They were a plain group of friends until Frank formed them into a Legion." .. br .. "Now they draw power from the thrilling freedom of not abiding to any rule but their own.") .. dbr ..
            
            b("SPECIAL ABILITY: FERAL FRENZY") .. br ..
            "Press the " .. powerStrings.powerButton .. " to trigger " .. i("Feral Frenzy") .. colon ..
            list(
            	b("Increases") .. " their Movement speed to " .. clror("5.2 m/s") .. dot,
            	"Unlocks their ability to perform " .. i("Feral Vaults") .. " and " .. i("Feral Slashes") .. dot) .. dbr ..
            
            b("SPECIAL ABILITY: FERAL VAULT") .. br ..
            "Press the " .. powerStrings.interactionButton .. " during " .. i("Feral Frenzy") .. " while next to a dropped " .. iconLink(ils.pallet) .. " or a " .. iconLink(ils.window) .. " to perform a " .. i("Feral Vault") .. colon ..
            list("Grants the ability to swiftly vault over them in " .. clro("0.9 seconds") .. dot) .. br ..
            
            b("SPECIAL ABILTIY: FERAL SLASH") .. br ..
            "Press the " .. powerStrings.attackButton .. " during " .. i("Feral Frenzy") .. " to initiate a " .. i("Feral Slash Attack") .. br .. "Hitting a Survivor with it applies the following effects:" ..
            list(
            	"Injures Survivors and causes them to suffer from the " .. states(ils.deepWound) .. dot,
            	"Instantly refills the Power Gauge.",
            	"Triggers " .. i(link("Killer Instinct")) .. " on all Survivors inside the " .. iconLink(ils.terrorRadius) .. " who are not currently suffering from " .. i(b("Deep Wound")) .. dot,
            	b("Increases") .. " the Movement speed of " .. b("The Legion") .. " by an additional " .. clro("+0.2 m/s") .. " per hit Survivor, up to a maximum of " .. clro("+0.8 m/s") .. " after four successful " .. i("Feral Slashes") .. dot,
            	"Causes the fifth " .. i("Feral Slash") .. " to be lethal and apply double damage.",
            	nbullet .. "This also affects Survivors already suffering from " .. i(b("Deep Wound")) .. dot) ..
            "Hitting a Survivor already suffering from " .. i(b("Deep Wound")) .. " or missing a " .. i("Feral Slash") .. " automatically ends " .. i("Feral Frenzy") .. dot
    },
    { -- The Plague: Vile Purge
        id = 15,
        desc =
        	pwrImg("Vile Purge") ..
            quote("Her condition deteriorated as the black plague overtook her body:" .. br .. "Her toes blackened, her neck mushroomed into cysts, and her throat gagged with bloody vomit.") .. dbr ..
            
            b("SPECIAL ABILITY: VILE PURGE") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to charge " .. ibclr(17, "Vile Purge") .. dot .. br ..
            "Release the " .. powerStrings.powerButton .. " to unleash a stream of infectious bile or press the " .. powerStrings.attackButton .. " to swallow it back down:" .. 
            list(
            	"Hitting Survivors with a " .. b("Vomit Projectile") .. " inflicts them with " .. i("Sickness") .. dot,
            	nbullet .. "Successive hits slowly fill the " .. i("Sickness Meter") .. dot,
            	"Hitting environmental objects causes them to become infectious to Survivors for " .. clror("40 seconds") .. dot) .. br ..
            
            b("SPECIAL STATE: SICKNESS") .. br ..
            i("Sickness") .. " is indicated on the Status HUD icon of affected Survivors, which also doubles as a " .. i("Sickness Meter") .. colon ..
            list(
            	i("Infected Survivors") .. " with a partially filled " .. i("Sickness Meter") .. " vomit at random intervals, infecting both nearby environmental objects and other Survivors.",
            	i("Infected Survivors") .. " with a full " .. i("Sickness Meter") .. " are put into the " .. iconLink(ils.injuredState) .. " and suffer permanently from the " .. states(ils.broken) .. dot) .. br ..
            
            b("SPECIAL OBJECT: POOLS OF DEVOTION") .. br ..
            iconLink("Pools of Devotion") .. " spawn randomly throughout the environment:" ..
            list(
            	clro(5) .. space .. b("Pools of Devotion") .. " spawn in the " .. ibclr(16, "Uncorrupted State") .. dot,
            	clro(1) .. space .. b("Pool of Devotion") .. " spawns in the " .. ibclr(18, "Corrupted State") .. dot) .. br ..
            
            b("SPECIAL INTERACTION: CLEANSING INFECTION") .. br ..
            "Survivors can approach an " .. ibclr(16, "Uncorrupted") .. space .. b("Pool of Devotion") .. " and interact with it to cleanse themselves." .. br .. "Cleansing removes all " .. i("Sickness") .. " and automatically heals them back to full health, but corrupts the " .. b("Pool of Devotion") .. dot .. dbr ..
            
            b("SPECIAL INTERACTION: INGESTING CORRUPTION") .. br ..
            b("The Plague") .. " can approach a " .. ibclr(18, "Corrupted") .. space .. b("Pool of Devotion") .. " and press and hold the " .. powerStrings.interactionButton .. " to ingest its corruption and empower her purge:" ..
            list(
            	b("Replaces") .. space .. ibclr(17, "Vile Purge") .. " with " .. ibclr(18, "Corrupt Purge") .. " for " .. clro("60 seconds") .. dot,
            	nbullet .. b("Resets") .. " the " .. b("Pool of Devotion") .. dot) .. 
            b("The Plague") .. " automatically receives " .. ibclr(18, "Corrupt Purge") .. " when Survivors corrupt all available " .. b("Pools of Devotion") .. ", resetting them all." .. dbr .. 
            
            b("SPECIAL ATTACK: CORRUPT PURGE") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to charge " .. ibclr(18, "Corrupt Purge") .. br ..
            "Release the " .. powerStrings.powerButton .. " to unleash a stream of lethal bile or press the " .. powerStrings.attackButton .. " to swallow it back down:" .. 
            list("Hitting Survivors with a " .. b("Vomit Projectile") .. " inflicts them with damage, causing them to lose a " .. iconLink(ils.healthState) .. dot)
    },
    { -- The Ghost Face: Night Shroud
        id = 16,
        desc =
        	pwrImg("Night Shroud", "Night Shroud (activated)") ..
            quote("The Ghost Face used to study his victims for weeks, meticulously registering their habits." .. br .. "When the urge to kill swelled, he'd know exactly how and where to strike.") .. dbr ..
            
            b("SPECIAL ABILITY: NIGHT SHROUD") .. br ..
            "Press the " .. powerStrings.powerButton .. " to enter " .. i("Stealth Mode") .. colon .. 
            list(
            	"Grants a permanent " .. states(ils.undetectable) .. dot,
            	"Unlocks the ability to " .. i("Stalk") .. " Survivors.") ..
            "Performing a " .. i("Basic Attack") .. " automatically ends " .. i("Stealth Mode") .. " and depletes the Power Gauge." .. nlp ..
            i("Night Shroud") .. " has a Cool-down of " .. clror("24 seconds") .. dot .. dbr ..
            
            b("SPECIAL LOCOMOTION: CROUCHING") .. br ..
            "Press the " .. powerStrings.activeAbilityButton .. " to " .. i("Crouch") .. colon .. 
            list(
            	b("Reduces") .. " his Movement speed to " .. clro("3.8 m/s") .. dot,
            	"Causes him to be harder to be spotted and revealed by Survivors.") .. 
            "Press the " .. powerStrings.activeAbilityButton .. " again to stand back upright." .. dbr ..
            
            b("SPECIAL ABILITY: STALKING") .. br ..
            "Press the " .. powerStrings.powerButton .. " when in " .. i("Stealth Mode") .. " to stalk Survivors within " .. clro("40 metres") .. ", filling their " .. i("Stalk Meter") .. " at " .. clro("+20 pts/s") .. dot .. dbr ..
            
            b("SPECIAL ABILITY: LEANING AND STALKING") .. br .. img("Night Shroud (leaning)", cstr.left, "48px") ..
            "Standing behind cover when in " .. i("Stealth Mode") .. " shows the " .. i("Lean and Stalk") .. " prompt." .. br .. i("Stalking") .. " Survivors while leaning doubles the rate to " .. clro("+40 pts/s") .. dot .. dbr ..
            
            b("SPECIAL STATE: MARKED") .. br .. img("Night Shroud (marked)", cstr.left, "96px") ..
            "Once the " .. i("Stalk Meter") .. " is full at " .. clro("100 Points") .. ", the affected Survivors are " .. ibclr(19, "Marked") .. " and suffer from the following effects for " .. clro("60 seconds") .. colon ..
            list(
            	states(ils.exposed) .. dot,
            	b("Suppresses") .. " their ability to reveal " .. b("The Ghost Face") .. dot) .. dbr ..
            
            b("SPECIAL INTERACTION: REVEALING") .. br ..
            "Survivors can attempt to reveal " .. b("The Ghost Face") .. " when he is in " .. i("Stealth Mode") .. ", forcing him out of it and disabling his ability to continue stalking them." .. nlp ..
            "Survivors must see at least " .. clro("30 %") .. " of his model in the central part of their screen while he is within " .. clro("32 metres") .. " in order to start revealing him over the course of " .. clro("1.5 seconds") .. colon ..
            list(
            	"Triggers markers on the HUD of " .. b("The Ghost Face") .. ", betraying the direction from which he is being revealed from.",
            	"Triggers " .. i(link("Killer Instinct")) .. " for " .. clro("2 seconds") .. " after a successful reveal.") .. nlp ..
            quote("Don't mind me. That's it, keep going. Perfect. That's the image I'll keep of you.", "The Ghost Face")
    },
    { -- The Demogorgon: Of the Abyss
        id = 17,
        desc =
        	pwrImg("Of the Abyss") ..
            quote("An unknown and otherworldly power surged through its body." .. br .. "Suddenly the ground ripped open, swallowing The Demogorgon whole.") .. dbr ..
            
            b("SPECIAL ABILITY: OF THE ABYSS") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to channel " .. i("Of the Abyss") .. colon .. 
            list(
            	"Triggers " .. i(link("Killer Instinct")) .. " on Survivors inside the " .. i("Area of Effect") .. " of " .. bclr(2, "Active Portals") .. dot,
            	"Unlocks the ability to perform a " .. i("Shred Attack") .. dot) .. br ..
            
            b("SPECIAL ATTACK: SHRED") .. img("Shred", "48px") .. br ..
            "Press the " .. powerStrings.attackButton .. " after charging " .. i("Of the Abyss") .. " to at least " .. clro("65 %") .. " to dash forwards and unleash a vicious slash:" ..
            list(
            	"Causes " .. b("The Demogorgon") .. " to lunge forwards at " .. clror("18.4 m/s") .. dot,
            	"Grants the ability to destroy " .. iconLink(ils.breakableWalls) .. " and dropped " .. iconLink(ils.pallets) .. dot) .. br ..
            
            b("SPECIAL OBJECTS: PORTALS") .. br ..
            b("The Demogorgon") .. " starts the Trial with " .. clro(6) .. space .. b("Portals") .. dot .. br ..
            "Placing additional " .. b("Portals") .. " will recycle the oldest one." .. nlp ..
            "Press and hold the " .. powerStrings.activeAbilityButton .. " to bend down and create an " .. bclr(16, "Inactive Portal") .. " in the ground:" ..
            list(
            	bclr(16, "Inactive Portals") .. " are invisible to Survivors and cannot be sealed.",
            	bclr(16, "Inactive Portals") .. " do not have an " .. i("Area of Effect") .. " and thus do not trigger " .. i("Killer Instinct") .. dot) ..
            "When " .. b("The Demogorgon") .. " interacts with " .. bclr(16, "Inactive Portals") .. " to traverse the " .. i("Upside Down") .. ", both the " .. b("Portal") .. " he travels from and the one he travels to are transformed into " .. bclr(2, "Active Portals") .. colon ..
            list(
            	bclr(2, "Active Portals") .. " are visible to Survivors and can be sealed.",
            	bclr(2, "Active Portals") .. " have an " .. i("Area of Effect") .. " of " .. clro("4 metres") .. " around them.",
            	nbullet .. "Survivors inside the " .. i("Area of Effect") .. " suffer permanently from the " .. states(ils.oblivious) .. " and are revealed by " .. i("Killer Instinct") .. " while " .. b("The Demogorgon") .. " is channelling " .. i("Of the Abyss") .. dot) .. br ..
            
            b("SPECIAL INTERACTION: SEALING PORTALS") .. br ..
            "Survivors can interact with " .. bclr(2, "Active Portals") .. " to seal them either alone or together with other Survivors, though at increasingly reduced efficiency:" .. 
            list(
            	bclr(13, "1 Survivor") .. " seals a " .. b("Portal") .. " in " .. clro("12 seconds") .. dot,
            	bclr(13, "2 Survivors") .. " seal a " .. b("Portal") .. " in " .. clro("~9 seconds") .. dot,
            	bclr(13, "3 Survivors") .. " seal a " .. b("Portal") .. " in " .. clro("8 seconds") .. dot,
            	bclr(13, "4 Survivors") .. " seal a " .. b("Portal") .. " in " .. clro("6 seconds") .. dot) .. br ..
            
            b("SPECIAL LOCOMOTION: TRAVERSING THE UPSIDE DOWN") .. img("Traverse Upside Down", "48px") .. br ..
            "Press and hold the " .. powerStrings.activeAbilityButton .. " while standing atop any " .. b("Portal") .. " and aiming at any " .. bclr(19, "Highlighted Portal") .. " to enter the first " .. b("Portal") .. " and traverse the " .. i("Upside Down") .. ", appearing at the second " .. b("Portal") .. colon ..
            list(
            	"Transforms " .. bclr(16, "Inactive Portals") .. " into " .. bclr(2, "Active Portals") .. dot,
            	"Grants the " .. states(ils.undetectable) .. " for " .. clro("5 seconds") .. dot)
    },
    { -- The Oni: Yamaoka's Wrath
        id = 18,
        desc =
        	pwrImg("Yamaoka's Wrath", "Yamaoka's Wrath (Blood Fury)") ..
            quote("The desire to destroy weaker bloodlines shaped into a literal force.") .. dbr ..
            
            b("SPECIAL ABILITY: YAMAOKA'S WRATH") .. br ..
            i("Yamaoka's Wrath") .. " passively fills the Power Gauge by " .. clror("+0.2 c/s") .. ", up to a maximum of " .. clro("98 Charges") .. dot .. nlp ..
            "Successful " .. i("Basic Attacks") .. " on healthy Survivors fill the Power Gauge by " .. clro("+40 Charges") .. dot .. dbr ..
            
            b("SPECIAL STATE: ABSORPTION MODE") .. img("Absorption Mode", "48px") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " to absorb nearby " .. bclr(19, "Blood Orbs") .. " left in the environment by injured Survivors, further filling the Power Gauge:" .. 
            list(
            	b("Fills") .. " the Power Gauge by " .. clro("+2.5 Charges per Orb") .. dot,
            	"The " .. iconLink(ils.auras) .. " of " .. bclr(19, "Blood Orbs") .. " are revealed to " .. b("The Oni") .. " within " .. clro("8 metres") .. dot,
            	b("Reduces") .. " his Movement speed to " .. clro("3.45 m/s") .. dot) .. br ..
            
            b("SPECIAL STATE: BLOOD FURY") .. br ..
            "Once the Power Gauge is full at " .. clro("100 Charges") .. ", press the " .. powerStrings.activeAbilityButton .. " to transition into " .. i("Blood Fury") .. colon ..
            list("Grants the ability to perform " .. i("Demon Dash") .. " and " .. i("Demon Strike") .. dot) .. br ..
            
            b("SPECIAL LOCOMOTION: DEMON DASH") .. img("Demon Dash", "48px") .. br ..
            "Press and hold the " .. powerStrings.powerButton .. " during " .. i("Blood Fury") .. " to perform a " .. i("Demon Dash") .. colon ..
            list(
            	b("Increases") .. " his Movement speed to " .. clro("7.82 m/s") .. dot,
            	b("Reduces") .. " his manoeuvrability.") .. br ..
            
            b("SPECIAL ATTACK: DEMON STRIKE") .. img("Demon Strike", "48px") .. br ..
            "Press and hold the " .. powerStrings.attackButton .. " during " .. i("Blood Fury") .. " to perform a " .. i("Demon Strike") .. " with extended reach:" ..
            list(
            	"Striking Survivors with the " .. b("Kanabo") .. " inflicts double damage.",
            	nbullet .. b("The Oni") .. " will strike his " .. b("Kanabo") .. " a total of " .. clro("3 times") .. dot,
            	nbullet .. b("The Oni") .. " can hit and damage multiple Survivors with his " .. b("Kanabo") .. dot) ..
            "Hitting Survivors with the " .. b("Kanabo") .. " instead by just pressing the " .. powerStrings.attackButton .. " only inflicts single damage."
    },
}

return p
]]