Diancecht's Waterfall
Gardens location (configurable city, default: main village) featuring Druid Diancecht behind hidden waterfall. Two services: Resurrection (pay 10 gems default to revive dead player - target redirected from Shades/Graveyard to newday with 100 deathpower refunded, placer gets +15 alignment and +10 house points, once per day via has pref), or Transfer Favor (give your deathpower to dead player, grants up to +10 alignment based on amount transferred). Access gardens → "Diancecht's Waterfall". Pass through vines to clearing, discover waterfall with opening behind it, jump rock to rock, enter dimly lit cave with fire and tall Druid. He welcomes you asking if you're Airmid then realizes you're not his daughter. One use per day enforced - if you bash him (visit again same day), he throws you out mumbling "Airmid. where are you?" Resurrection requires gem payment, shows fuzzy search of dead players by name with level display. Transfer favor lets you donate deathpower to corpses. Where you encounter an Irish druid hiding behind a waterfall in the gardens who is clearly waiting for someone named Airmid and will help you resurrect dead players or transfer death favor but only once per day or else he gets violent and literally hurls you from behind the waterfall.
Location & Access
Where: Diancecht's Waterfall (gardens location)
City Location: Configurable via waterloc setting (default: villagename/main village)
Navigation: Gardens → "Explore" section → "Diancecht's Waterfall" → runmodule.php?module=dianfall&op=enter
Requirement: Must be in correct city (waterloc setting)
Auto-Update: If village renamed, waterloc setting updates via changesetting hook
The Entrance
Discovery Scene:
- "Passing and weaving through the entangled vines of the Gardens, you come upon a clearing."
- "At one end, you discover a thick patch of shrubbery; at the other, you find a waterfall."
- "Behind the waterfall, you can just make out a small opening."
- "Dashing over, you jump from rock to rock, no bounds to your agility."
- "You wander inside, and see a dimly lit fire."
- "Next to the fire, a tall Druid stands."
First Visit (has = 0):
- "Welcome, my child. Oh. you are not Airmid. who are you, and what do you wish of me?"
- Two service options appear
Second Visit Same Day (has = 1):
- "You step forward, seeing the familiar face of Diancecht."
- "With his quickness, he bashes you over the head, and hurls you from behind the Waterfall."
- "He casts a glance at you, and then sighs, mumbling under his breath. 'Airmid. where are you?'"
- NO services available (kicked out)
Service 1: Resurrection
Requirements (Admin Setting ressing = 1):
- 10 gems (default gem setting, configurable)
- Target must be dead (alive=0)
- Haven't used Diancecht today (has pref = 0)
Process:
- Select "Resurrection" from wishes menu
- Diancecht introduces himself: "My name is Diancecht. and I am the Healer of the Gods."
- Explains resurrection costs gems
- If you have enough gems: Enter target's name (fuzzy search)
- System searches for dead players matching name
- Displays table with Name and Level (up to 25 matches)
- Select target from list
- Confirm resurrection
Resurrection Effects:
- Cost: -10 gems (default) from resurrector
- Target:
- res pref set to 1
- who pref set to resurrector's name
- Redirected from Shades/Graveyard/Valhalla to resurrection screen
- Flash of light: "It seems that one of your little friends has decided to resurrect you. Their name is [Name]. I suggest that ye thank them."
- Button: "Continue" → newday.php?resurrection=true
- On newday, res pref checked - if true, grants +100 deathpower refund (compensates for newday -100 penalty)
- Resurrector:
- +15 alignment (if alignment module active)
- +10 house points
- has pref set to 1 (daily limit)
- News announcement: "[Your Name] has most graciously talked with Bellatrix. [Target Name] is to be resurrected!"
If Not Enough Gems:
- Diancecht scoffs: "I am sorry, but you do not have the required gems for this action. you need %s more."
- No service provided
Service 2: Transfer Favor
Requirements (Admin Setting trans = 1):
- You have deathpower > 0
- Target must be dead (alive=0)
- Haven't used Diancecht today (has pref = 0)
Process:
- Select "Transfer Favor" from wishes menu
- Diancecht checks your favor: "You have decided to part with some of your Favor of Bellatrix. I see. I estimate, that you have a total of %s Favor."
- If you have 0 favor: "I am sorry. but my services are of no use to you. Bellatrix would be quite displeased with me." (rejected)
- If you have favor: Enter target's name (fuzzy search)
- System shows dead players with Name and Favor columns (up to 25)
- Select target
- Enter amount to transfer
- Confirm transfer
Transfer Effects:
- If amount > your deathpower: Capped at your current deathpower
- Your deathpower -= amount
- Target's deathpower += amount
- Alignment gain: +(amount / 10), capped at +10 maximum
- has pref set to 1 (daily limit)
- Confirmation: "You have transfered %s Favor to your target, now they have %s favor."
- News: "[Your Name] has recieved permission from Bellatrix to send [Target Name] %s favor!"
Daily Limit System
has Preference:
- Tracks if you've used ANY Diancecht service today
- Set to 1 when you use Resurrection OR Transfer Favor
- Resets to 0 at newday hook
- If has = 1, Diancecht bashes you and throws you out
Limitation Logic:
- Can use either service once per day
- Can't use both services same day
- Can't use same service twice same day
- Prevents service spam
Alignment Integration
Resurrection: +15 alignment (fixed)
Transfer Favor: +(amount / 10) alignment, max +10
- Transfer 10 favor = +1 alignment
- Transfer 50 favor = +5 alignment
- Transfer 100 favor = +10 alignment
- Transfer 200 favor = +10 alignment (capped)
Requires Alignment Module: align() function called if module active
House Points Integration
Resurrection Only: +10 house points
Function: awardhpoints(10) via housepoints/pointslib.php
Rewards: Resurrector's House gets 10 points
Transfer Favor: NO house points
Redirect Mechanics
Resurrection Interception:
- footer-shades hook: If res pref = 1, redirect to dianfall intvene
- footer-graveyard hook: If res pref = 1, redirect to dianfall intvene
- footer-runmodule hook: If module=valhalla and res pref = 1, redirect
- Prevents dead player from seeing Shades/Graveyard/Valhalla
- Shows resurrection message with resurrector's name
Newday Compensation:
- Newday normally costs -100 deathpower
- If res pref = 1 during newday, grants +100 deathpower BEFORE newday deduction
- Net result: 0 favor change from resurrection
- After newday, res pref reset to 0
Admin Settings
Module Settings:
- trans: Allow favor transfers? (bool, default: 1)
- ressing: Allow resurrections? (bool, default: 1)
- gem: Gem cost for resurrection (int, default: 10)
- waterloc: Location of waterfall (location, default: villagename)
User Preferences:
- res: Has this user been resurrected? (bool, default: 0)
- has: Has user used Diancecht today? (bool, default: 0)
- who: Who last resurrected this user (text, default: "")
Search System
Fuzzy Name Matching:
- Takes input name: "bob"
- Creates search pattern: "%b%o%b%" (each char surrounded by %)
- SQL: WHERE name LIKE '%b%o%b%' OR login LIKE '%b%o%b%'
- Matches partial names (e.g., "bob", "Bobby", "Robby")
- Limit: 25 results maximum
Display Table:
- Resurrection: Shows Name, Level
- Transfer Favor: Shows Name, Favor (current deathpower)
- Clickable links to select target
Lore & Flavor
Diancecht:
- Irish/Celtic god of healing (real mythology)
- "Healer of the Gods" (self-introduction)
- Waiting for daughter Airmid (also real mythology)
- Mistakes you for Airmid initially
- Becomes violent if you bother him twice
Airmid References:
- First visit: "Oh. you are not Airmid."
- Second visit: "Airmid. where are you?" (mumbling)
- Lore: Airmid was Diancecht's daughter, also a healer
- Implies she's missing/left him
Waterfall Aesthetics:
- Hidden behind vines in gardens
- Rock-jumping required (agility flavor)
- Dimly lit cave with fire
- Mysterious/sacred location
Strategy & Usage
When to Resurrect:
- Friend died and wants to skip Shades
- You have spare gems (10 default cost)
- Want +15 alignment boost
- Want +10 house points for your House
- Emergency resurrection for important player
When to Transfer Favor:
- Dead friend needs deathpower for resurrection
- You have excess favor to spare
- Want moderate alignment gain (up to +10)
- Supporting clan member's graveyard activities
Cost Analysis:
- Resurrection: 10 gems = ~1000-2000 gold value (expensive)
- Benefit: +15 alignment, +10 house points, friend skips Shades
- Transfer: Free (just your favor), gain alignment
Diancecht's Waterfall: where you weave through entangled vines in the gardens to discover a clearing with a waterfall that has a small opening behind it so naturally you dash over and jump from rock to rock with no bounds to your agility because apparently you're a parkour expert now and you wander into a dimly lit cave with a fire where a tall Irish druid stands waiting for someone named Airmid who is definitely not you but he welcomes you anyway as "my child" before realizing his mistake and asking what you want. If this is your first visit today he offers two services: resurrection where he introduces himself as Diancecht the Healer of the Gods and explains you can resurrect a dead friend for ten gems which causes him to set their res preference to 1 so when they try to visit the Shades or Graveyard or Valhalla they get redirected to a flash of light message saying "one of your little friends has decided to resurrect you" with your name attached and a suggestion they thank you, then they go to newday where the resurrection flag gives them one hundred deathpower to compensate for newday's normal one hundred deathpower penalty making it a net zero favor change while you the resurrector get fifteen alignment points and ten house points and a news announcement saying you graciously talked with Bellatrix about bringing them back. Alternatively you can choose Transfer Favor where Diancecht traces a finger along your chest in a somewhat questionable manner and tells you how much favor you have then lets you search for dead players and donate your deathpower to them granting you alignment based on amount divided by ten capped at plus ten maximum so transferring one hundred favor gives you ten alignment and the target gets the deathpower added to their total with a news announcement about Bellatrix granting permission. Either way after you use any service the has preference gets set to 1 and if you try to visit Diancecht again the same day he recognizes you immediately and with his quickness bashes you over the head and hurls you from behind the waterfall while mumbling sadly about where Airmid has gone, enforcing the strict once-per-day limit on services. The module hooks into footer-shades, footer-graveyard, and footer-runmodule to intercept resurrected players and redirect them, uses gardens hook to add navigation in the correct city based on waterloc setting which auto-updates if village name changes via changesetting hook, and at newday resets the has preference to 0 while also checking the res preference and granting that one hundred deathpower compensation to make resurrection not cost favor. The fuzzy name search creates a pattern with percent signs around each character so searching "bob" becomes "%b%o%b%" matching partial names in SQL LIKE queries with a twenty-five result limit displayed in tables showing either name and level for resurrection or name and favor for transfers, and the whole system integrates with alignment module calling align() function and house points calling awardhpoints() for resurrections only while transfers just give alignment scaling with the amount donated. It's basically a magical Irish druid running a resurrection service out of a waterfall cave who is clearly depressed about his missing daughter Airmid and will violently throw you out if you bother him more than once per day.