User:Frazyl/Triggers

From Discworld MUD Wiki
< User:Frazyl
Revision as of 06:03, 24 September 2020 by Frazyl (Talk | contribs) (follow Pokey kraken release)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Triggers that I use, from modifying Quow's QuowTriggers.xml, see [1].

To use, copy the text below the list of changes in a file named QuowTriggers.xml in the MUSHclient/quow_plugins/ directory.

You can of course change the colours like I did. I prefer background colours with black fore colour because I notice those a lot more.

I didn't play around with renaming the file, you'd need to make sure that both files are not active, etc.

Changes from Quow's version:

  • Background colours with back text.
  • TPA changes
  • CCC changes
  • HEB changes
  • JPoCT rumbling/closing
  • Highlight gap exits
  • Fumbles not from you
  • Lost boots in AM solid water
  • Expired BP permit
  • Reboot (old list I converted was made when reboots were common)
  • Visions
  • Performing on you
  • Suppressing evade
  • Things exploding (this is rarely good)
  • More Tshop stuff
  • Hidden bug chats
  • Broomstick
  • Djb Witch caravan
  • Bug shield events using wildcards (a few bugs changed names at some point, wildcard will catch all regardless)
  • Beesargh
  • Scorpion sting
  • Poisoned
  • End for several witch spells
  • End of fade/circle/mock/crystal/tea
  • Sober
  • Failed drink
  • No more clothes in sonky shop room
  • Got cold
  • Warcry/ambush/backstab effects
  • Out of hiding
  • Delude levels
  • SS Unsinkable
  • Silence Ryattenoki
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>

<!-- Sample/Pre-Made Wizzard-Friendly Mushclient Trigger Plugin File by Quow -->

<!-- To change colours of individual triggers, locate the trigger below and change the number given for the other_text_colour="x" option -->
<!-- To enable sounds for TPA breaks or EFF drops, scroll to the bottom of this file and uncomment (remove the two dashes) the playsound commands -->
<!-- Set the path for the sounds to a valid soundfile on your computer - I use a breaking glass sound for TPA, and a metal clunking noise for EFF drops, and a swishing/swooshing noise for FTF running out! -->

<muclient>
<plugin
   name="DiscTriggers"
   author="Quow, Frazyl"
   id="bff25408c325373fe3b17f4c"
   language="Lua"
   purpose="TriggersForDiscworld"
   date_written="2018-05-06"
   date_modified="2020-07-10"
   save_state="y"
   requires="4.84"
   version="0.07"
   >
</plugin>

<!--  Triggers  -->
<triggers>
   <!-- Each individual trigger appears between it's own <trigger> and </trigger> section, copy and paste an entire <trigger></trigger> section to make a new one, save the file, then reload your plugin to enable -->

   <!-- Set enabled to "n" to keep a trigger disabled without having to delete it, in case you want to re-enable at a later date -->

   <!-- Set keep_evaluating to "n" to stop any other trigger in this plugin from processing this line (doesn't stop/affect other plugins) -->

   <!-- Set other_text_colour to any ANSI colour name *OR* full hex-code, as seen in the colour picker in Mushclient if you press ctrl+alt+p -->
   <!-- You MUST keep custom_colour to 17, for other_text_colour to work, like this: -->
   <!-- custom_colour="17" -->
   <!-- other_text_colour="#9400D3" -->

   <!-- "Omit_from_output" can be set to "y" to stop the line appearing in your output window (eg to hide spam lines!) -->

   <!-- "Sequence" is like a priority order - lower sequence triggers process before higher sequence ones... -->
   <!--   Only important if you set "keep_evaluating" to "n", to stop one trigger from letting another, later trigger, from firing on that same line -->

   <!-- "regexp" should be set to "y" for all regexp triggers.  I make *ALL* my triggers be regexp, to allow me to help prevent false-positives/tells/talker chats triggering them.  Poke me if you want any help! -->
   <!--   Set regexp to "n" if you want standard non-regexp triggers (eg "plaintext", with "*" as a wildcard  -->
   <!--   ALL triggers in this file by default are regexp triggers, these allow matching start-of-line, end-of-line etc. to prevent talker chats or similar triggering them -->

   <!-- Triggers start below, comment above each says what it's for -->

   <!-- This trigger is for *YOUR* personal TPA/SFP breaking, lookup function "SoundPlayTPA" at bottom of this file to enable sound! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?There is a sudden white flash\.  Your magical shield has broken\.$"
   omit_from_output="n"
   sequence="10"
   script="SoundPlayTPA"
   regexp="y"
   make_bold="y"
   make_italic="n"
   make_underline="n"
  >
  </trigger>
  <!-- Note above the make_bold, make_italic, and make_underline codes - you can paste these into any trigger you want and set them to "y" -->
  

   <!-- This trigger is for SOMEONE ELSE TPA breaking, but it will helpfully ignore the "passing wizard" room chat outside the Drum! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?There is a sudden white flash around ((?!a passing wizard).+)\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>

  <!-- TPA changing colour to dull red, slight colour change -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="darkorange"
   match="^(?:> )?As your shield absorbs the impact, it becomes visible as a dull red glow\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <!-- TPA changing colour to bright red, different colour change -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?(As your shield absorbs the impact, it becomes visible as a bright red glow\.|As your shield absorbs the impact, its glow changes from a (.+?) to a bright red\.)$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <!-- TPA changing colour to wobbling orange or flickering red, pick a bold/red colour change, almost broke! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?(As your shield absorbs the impact, it becomes visible as a (?>flickering yellow|wobbling orange)\.|As your shield absorbs the impact, its glow changes from a (.+?) to a (?>wobbling orange|flickering yellow)\.)$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="white"
   other_back_colour="green"
   match="^(?:> )?(Your shield changes from (.+?) to (.+?)\.)$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="^(?:> )?(Your shield stops glowing (.+?) and lapses back into invisibility\.)$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>

  <!-- CCC on. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="^(?:> )?You feel your skin (become (elastic as rubber|rock hard)|tingle as the metal powder fuses together into thin metal bands, forming a net-like shape)\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <!-- CCC stacked. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="^(?:> )?The metallic network on your skin feels .+ stronger now\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="^(?:> )?Your skin feels .+ (harder|elastic) now\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <!-- CCC maxed. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="mediumblue"
   other_back_colour="lime"
   match="^(?:> )?Your skin is now as (hard|elastic|thickly covered) as it can get\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <!-- CCC weakening. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?A crackle of magic runs over your body, rearranging your (elastic|metallic|stony) skin\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <!-- CCC breaking. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?With a brief flash of magic, your (elastic|metallic|stony) skin falls away\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>

  <!-- HEB breaking. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?The (red|green|yellow|blue) energy around you fades away\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>

  <!-- Floater/EFF knockdown both message types, lookup function "SoundPlayEFF" to enable sound! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?(In blocking the attack (.+?) floating around you is knocked out of orbit\.|You realise that (.+?) is no longer floating around you\.)$"
   omit_from_output="n"
   sequence="10"
   script="SoundPlayEFF"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="clatter to the ground.$"
   omit_from_output="n"
   sequence="10"
   script="SoundPlayEFF"
   regexp="y"
  >
  </trigger>

  <!-- Floater/EFF BROKE in mid-air!  Different colour to knockdown if you want, but call the EFF-knockdown sound function too -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?(?P<effitem>(?:\w+\b\W*?){1,6}) floating around you breaks!$"
   omit_from_output="n"
   sequence="10"
   script="SoundPlayEFF"
   regexp="y"
  >
  </trigger>

  <!-- Blorple ring vanishing from damage/failed casts on an un-repaired ring -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?(?P<brokeblorp>(?:\w+\b\W*?){1,6}) disappears with a small pop of inrushing air\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>

  <!-- Burning JPCT portal - open/enter at own HP risk! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?A burning (.+?) solidifies with a satisfying thump\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>

  <!-- Rumbling JPCT portal - cannot use, if you do you'll take a bunch of damage! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?When you open (.+?) you think you can hear a faint rumbling sound from it\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>
  
  <!-- Rumbling JPCT portal - cannot use, if you do you'll take a bunch of damage! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?The (.+?)door(.+?)rumbles faintly\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>
  
  <!-- JPCT portal closed. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?The portal disappears with a small clap of thunder\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>
  
  <!-- Maudlin Bridge Troll throw you off -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?The vibrations hurl you (?:across|off the side of|off) the bridge(.+)$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>
  
  <!-- Copperhead mines -->
  
  <!-- Lethal stinkdamp gas! Leave now! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="mediumblue"
   other_back_colour="red"
   match="^(?:> )?Something doesn't smell right\.  You take a sniff but the faint odour of rotten eggs makes you cough\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>
  <!-- Still lethal stinkdamp gas! Leave the room! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="mediumblue"
   other_back_colour="red"
   match="^(?:> )?The air here is just as choking as before\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>
  <!-- Room with no stinkdamp gas, safe. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="white"
   other_back_colour="green"
   match="^(?:> )?The air here seems fresher\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>
  <!-- Cured from lethal stinkdamp gas, can now return without cumulative effects. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="yellow"
   other_back_colour="green"
   match="^(?:> )?(You cough the last of the vapour out of your lungs|You feel better)\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>
  <!-- Rocks fall, leave the room! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?Somewhere above you, you hear the rumble of falling rock\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>
  <!-- Line to 'stop' panning to keep the maximum amount of purple mineral powder. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="green"
   match="^(?:> )?You (turn|tilt|shake) your pan (from side to side|in a circle), as glittering purple is all that's left in the pan for just a moment\.$"
   omit_from_output="n"
   sequence="25"
   regexp="y"
  >
  </trigger>

  <!-- Coffee Nostra hitman - sound-trigger function is "SoundPlayHitman" if you want to enable! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?A Coffee Nostra hitman steps out of the shadows\.$"
   omit_from_output="n"
   sequence="10"
   script="SoundPlayHitman"
   regexp="y"
  >
  </trigger>

  <!-- This is the line in the library when a new distortion is forming - make sure to "Look" after seeing this! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="darkgoldenrod"
   match="^(?:> )?You notice an odd rippling in the air\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <!-- This is the distortions in the library - avoid moving into them! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?There is a strange distortion in space and time (.+?) you!$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <!-- Help to see gaps in exits. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="^(?:> )?There are .+ obvious exits?: .*gap.*"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>

  <!-- The alchemy guild is about to blow up - time to get out! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?The Alchemists' Guild begins to shudder, as if some experiment is about to go critical\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>

  <!-- Somebody/a mugger NPC snatch/filch items from you, filthy thieves -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?(.+?) grabs (.+?) from you\.  You struggle briefly but (.+?) wrests it from your grip and makes for a hasty retreat\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- More snatchings -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?(.+?) snatches (.+?) from you\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- Mugger dropping a snatched item on death -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?As (.+?) dies (.+?) drops (.+) in shock\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>
  <!-- Drowning and/or sinking type texts -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?Despite your best efforts, your weight drags you down\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="#D1EF01"
   match="^(?:> )?Your lungs feel a bit heavy\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger> 
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="#E7CB0A"
   match="^(?:> )?Your lungs feel very heavy\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger> 
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="#E6730B"
   match="^(?:> )?Your lungs feel close to bursting\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger> 
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="#EA2806"
   match="^(?:> )?You feel a burning sensation in your lungs\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger> 
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?Agonising pain radiates from your lungs\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>
  <!-- WARNING!  Fumbling items! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?(?>Whoops!  You tried to carry too many things and fumbled |Oops, butterfingers, you have dropped |You juggle your things, dropping ).+$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- Someone/something else fumbling stuff -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="(juggles around (its|her|his) stuff and fumbles|drops .* under strain)"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>

  <!-- Boots stuck in mud! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?With a slurping noise your .+ sucked from your feet by the mud!$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>

  <!-- Expired BP permit -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="expired Bes Pelargic arms permit"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>

  <!-- Reboot -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?A'Tuin cries out: Too heavy, I need to put the Disc down for a moment\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>

  <!-- Priest performing Visions. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match=" holy amulet in a hypnotic pattern\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>

  <!-- Priest performing something on you! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match=" says a prayer over you\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>

  <!-- Pursued target is suppressing evade. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match=" isn't trying very hard to lose you\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>

  <!-- Things explode. This is never good. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?The large round stone explodes!$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?The small round stone gets warm and explodes!$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?The large metallic dragon explodes in a violent inferno of fire, oil, soot and dragon bits\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )? *The Klatchian Fire Engine shudders violently, then explodes in a mass of flames and oil\.$"
   omit_from_output="n"
   sequence="100"
   regexp="y"
  >
  </trigger>

  <!-- "Lassitude" interrupts spellcasting - caused by pragi'ing when a mail frog or bug-reply insect appears! :( -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?A wave of lassitude comes over you and you lose interest in what you were doing\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- T-Shop  -->
  <!-- T-Shop door appearing on a wall!  -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?Greasy sparks crawl over .+, and a door silently materialises\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?You suddenly notice a door where there wasn't one before\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- T-Shop door (or stationary shop) in the room.  -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?There is a doorway .+ leading into a curious shop\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- T-Shop door gone. (from outside)  -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?The door in the .+ flickers, and vanishes\.  A few lazy worms of fire remain on the wall in its place, but they quickly wink out\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- T-Shop leaving from inside.  -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?The door out of the shop surreptitiously loses itself amongst all the junk and, with an almost imperceptible lurch, the shop resumes its journey\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- T-Shop has arrived at new destination.  -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?You suddenly notice a door where there wasn't one before\.  This must mean that the shop has arrived at another place\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- Bug -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?You catch a slight scuttling motion out of the corner of your eye\.  Something's hidden here, you're sure of it\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?There is a little flash of movement just out of sight, as if something's hiding here\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?You almost catch sight of something scuttling around in the shadows, but when you blink it's gone\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?There is a tiny clicking noise from somewhere in the area\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?You hear a faint buzz, but can't see what's making the noise\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?You catch a slight scuttling motion out of the corner of your eye\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- Witch arrives on a broomstick. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?There is the faintest of sounds, as of a gnat yawning, then a WHOOSH sound\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- Djelibeybi Witch Caravan.  -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?A curious caravan is moving along the road\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?There is a curious caravan stopped here\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match="^(?:> )?The caravan rumbles off"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="cyan"
   match=".* camel caravan thunders in from the .*"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- FTF spell effect ending - calls function "SoundPlayFTF" if you want to enable/edit in a sound for this ending -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?Your feet touch the ground again\.$"
   omit_from_output="n"
   sequence="20"
   script="SoundPlayFTF"
   regexp="y"
  >
  </trigger>

  <!-- Bug shield -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="^(?:> )?((Whirring gently|Buzzing (drowsily|loudly|threateningly)|Clicking and buzzing|With a (low, menacing buzzing|rasping noise|high-pitched whining noise|buzzing sound so loud and meaty it's almost like a dog growling)|Rather clumsily), the|The) (handful|cloud|small swarm|large swarm|vast swarm|plague) of (bees|elephant beetles|hornets|crickets|stick insects|assassin bugs|butterflies|cicadas|damselflies|dragonflies|flying ants|gnats|ladybirds|locusts|mayflies|moths|praying mantids|sandflies|winged termites|lacewings|horseflies|mosquitoes|wasps|grasshoppers) (starts to|begins to( buzz( erratically)?| cluster)?|flutters into a (loosely-formed orbit|chaotic formation)|clusters haphazardly|forms a chaotic web of small white bodies) (circle|circle around|around|hover near|orbit) you(, buzzing hungrily| happily|, chirping gently| slowly)?\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="(fly into the swarm surrounding you|gather around you victoriously)\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="don't seem to get along with|is so large that it practically frightens any more insects from joining it!"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="absorbs (some|most) of the blow.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
   script="SoundPlayTPA"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?As the bugs around you fall, you realise you are now only surrounded by .+"
   omit_from_output="n"
   sequence="10"
   regexp="y"
   script="SoundPlayTPA"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?The .+ around you buzz damply and float away\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
   script="SoundPlayTPA"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?The .+ surrounding you scatter in different directions and fly off\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
   script="SoundPlayTPA"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?The last of the injured .+ surrounding you crash to the ground\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
   script="SoundPlayTPA"
  >
  </trigger>

  <!-- Beesargh -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="swarm angrily around the"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- Poisoned ! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?The cautious scorpion stabs you with its tail!$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?Seething pain radiates through your body, turning your guts to liquid agony\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- End of spells / commands / crystals -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?The sounds around you grow more distinct again\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?You feel less protected from prying eyes\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?Your resolve to withstand temptation weakens\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?You step out of the foreground\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?The magic circle fades\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?You lose interest in"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?The last speck of .+ inside the large crystal dies\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- Back to sober, can no longer Hedgehog. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?As the features of the world become painfully clear, you realize you are once again sober\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- Failed to drink, vessel too empty. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match=" is less than 1/100 full\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- No more clothes in that room of the Sonky Shop. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?You search around but there are no more interesting looking clothes left here\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- Intelligence tea -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="white"
   other_back_colour="green"
   match="^(?:> )?You feel more intelligent!$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- End of intelligence tea -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?You no longer feel quite so intelligent\.(  In fact, you feel a bit slower on the uptake than when you started\.)?$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- End of intelligence tea penalty, Ephebian horse intelligence bonus -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="blue"
   other_back_colour="cyan"
   match="^(?:> )?You feel that your mental acuity has returned to normal\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- End of OC shrine wisdom bonus -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="goldenrod"
   other_back_colour="cyan"
   match="^(?:> )?You feel that your mental acumen has returned to normal\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- Caught a cold. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?You feel your strength being sapped by your cold\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- Bad effect of warcry / ambush / backstab. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?You become flustered!$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?You feel .+ confused\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- End of warcry / ambush / backstab. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="^(?:> )?You no longer feel (flustered|shocked and confused)\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- Out of hiding. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?You temporarily stop trying to be inconspicuous\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?You come out of your hiding place\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- Delude levels -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="darkviolet"
   other_back_colour="black"
   match="^(?:> )?It has a faint octarine shadow about it that disappears if you look at it squarely\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="mediumorchid"
   other_back_colour="black"
   match="^(?:> )?It has a faint octarine shadow about it\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="plum"
   other_back_colour="black"
   match="^(?:> )?It has an octarine shadow about it that flickers occasionally out of the corner of your eye\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="violet"
   other_back_colour="black"
   match="^(?:> )?It has a flickering octarine shadow about it\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="fuchsia"
   other_back_colour="black"
   match="^(?:> )?It has a flickering octarine haze about it\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="white"
   other_back_colour="darkviolet"
   match="^(?:> )?The octarine shadow around .* deepens\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="orange"
   other_back_colour="black"
   match="^(?:> )?The octarine shadow around .* fades a little bit\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="forestgreen"
   other_back_colour="fuchsia"
   match=".+ shudders suddenly and sharply.  It flashes an intense octarine for just a moment and the shuddering subsides\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="lime"
   other_back_colour="black"
   match="^(?:> )?It has the hazy octarine sparkle of a magical talisman\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <!-- Enchant -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="begins to glow in the octarine\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="glows a little more intensely than before\.$"
   omit_from_output="n"
   sequence="20"
   regexp="y"
  >
  </trigger>

  <!-- SS Unsinkable triggers -->

  <!-- Fire! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?(The room is filled with a huge conflagration|Fire fills the room|Several small (blazes|fires?) are eagerly licking at the floorboards|Smoke billows from the (conflagration|blaze|fires?) in the room|A small fire has started here|The room catches on fire!|Some cinders fly in from the nearby conflagration and spark a small blaze.|The bracket holding the small brass lantern on the wall breaks under the (Aggy|Idiot|Nugget|Bitey) the (pale green|bright red|dark purple|sky blue) swamp dragon's weight!  The small brass lantern falls several feet onto the floor and shatters, scattering burning oil across the room.|This fire is too big to stamp out!)"
   omit_from_output="n"
   sequence="15"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?(A tongue of fire reaches for you, singeing your skin|The fire (and smoke )?assaults? you with painful heat|The heat takes a toll on you|You briefly catch on fire and spend a panicked minute putting yourself out)\.$"
   omit_from_output="n"
   sequence="15"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match=", a (spear|bolt) of lightning (pierces down from above to strike|strikes) the deck, (accompanied by thunder|its thunderous report booming across the sea)\.$"
   omit_from_output="n"
   sequence="15"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?(Flickering firelight can be seen to|Long shadows dance as (flickering|unsteady|red-orange) firelight from|The distinctive (crackling|snapping and popping) of (burning wood|a wood fire) comes from|Fiery heat pours in from)"
   omit_from_output="n"
   sequence="15"
   regexp="y"
  >
  </trigger>
  <!-- ICE! Ice can kill! Beware and heal before you die. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="blue"
   other_back_colour="red"
   match="^(?:> )?You slip on the slippery floor"
   omit_from_output="n"
   sequence="15"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="blue"
   other_back_colour="yellow"
   match="((S|s)ome|(M|m)ost) of the floor is coated in a slippery layer of ice\.$"
   omit_from_output="n"
   sequence="15"
   regexp="y"
  >
  </trigger>
  <!-- Dragons / Engines -->
  <!-- Escaping/rampaging dragon -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="red"
   other_back_colour="yellow"
   match="^(?:> )?(Aggy|Idiot|Nugget|Bitey) the (pale green|bright red|dark purple|sky blue) swamp dragon (wobbles unsteadily, nearly falling off the small brass lantern and flapping its wings to rebalance itself|gets frustrated with the small brass lantern's durability and bites it, scoring long gouges in the glass|struggles vigorously, forcing you to drop it|squeaks happily at its newfound freedom, scampering away as fast as its little stubby feet will take it|flutters away .+)\.$"
   omit_from_output="n"
   sequence="15"
   regexp="y"
  >
  </trigger>
  <!-- Dragon finished eating -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="red"
   other_back_colour="lime"
   match="^(?:> )?(Aggy|Idiot|Nugget|Bitey) the (pale green|bright red|dark purple|sky blue) swamp dragon finishes"
   omit_from_output="n"
   sequence="15"
   regexp="y"
  >
  </trigger>
  <!-- Monster on ship. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="orangered"
   match="^(?:> )?A massive (kraken|sea serpent) crests from the water ahead of the ship, seawater sloughing off its (many coiling tentacles|dinner-plate-sized scales)\.  In a flash, it wraps the SS Unsinkable in its (grasp|tail) and eyes you as though you were its next meal - which you might well be, if you don't find a way to drive it off\.$"
   omit_from_output="n"
   sequence="15"
   regexp="y"
  >
  </trigger>
  <!-- Sea serpent / Kraken attacks YOU! Continue with next trigger to highlight all except where the attack is coming from. Running into the attack is bad. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="red"
   match="^(?:> )?(Fangs out and dripping deadly venom, the|Moving with incredible speed for something of its size, the|The|With a hungry glint in its eye, the|Bellowing fiercely, the|Spraying seawater in a huge arc, the) (sea serpent|kraken) (lunges towards you from|reaches for you from|strikes forward swiftly at you from|raises a massive tentacle from the sea, then whips it towards you from|coils up a tentacle like a spring, then launches it forward at you from)"
   omit_from_output="n"
   sequence="6"
   regexp="y"
  >
  </trigger>
  <!-- Kraken catches someone! Uh-oh. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="gold"
	other_back_colour="red"
   match="^(?:.+?)\, the tentacle snakes around (.+?) legs and coils its way up to (?:.+?) torso, binding (?:.+?) in an unescapable embrace\."
   omit_from_output="n"
   sequence="6"
   regexp="y"
  >
  </trigger>
  <!-- Freed from Kraken. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="lime"
   match="^(?:> )?The tentacle wrapped around (.+?) unwraps itself and (?:slips|retreats|retracts) back into the sea\."
   omit_from_output="n"
   sequence="6"
   regexp="y"
  >
  </trigger>
  <!-- Run you fool! Just not in the direction of the attack. -->
  <trigger
   enabled="y"
   keep_evaluating="y"
   custom_colour="17"
   other_text_colour="fuchsia"
   other_back_colour="black"
   match="\.  Run!$"
   omit_from_output="n"
   sequence="5"
   regexp="y"
  >
  </trigger>
  <!-- Sea serpent / Kraken attacks other. Time to throw/fire. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="gold"
   match="^(?:> )?(Fangs out and dripping deadly venom, the|Moving with incredible speed for something of its size, the|The|With a hungry glint in its eye, the|Bellowing fiercely, the|Spraying seawater in a huge arc, the) (sea serpent|kraken) (lunges towards|reaches for|strikes forward swiftly at|raises a massive tentacle from the sea, then whips it towards|coils up a tentacle like a spring, then launches it forward at)"
   omit_from_output="n"
   sequence="7"
   regexp="y"
  >
  </trigger>
  <!-- Oops got hit. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="yellow"
   other_back_colour="darkred"
   match="^(?:> )?(You turn and run - right into the (sea serpent's gaping maw|grasping kraken tentacle)\.  Somehow, you|You) manage to (somehow )?avoid being (completely swallowed|caught up in its grip|caught in the kraken's grasp), but (its fangs tear you up painfully as you struggle out|it sends you rolling across the deck with a powerful strike|in return you take a painful blow to the ribs that sends you rolling across the deck)\.$"
   omit_from_output="n"
   sequence="6"
   regexp="y"
  >
  </trigger>
  <!-- Too late to throw/fire. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="dodgerblue"
   match="^(?:> )?(The (claws on the end of the )?(sea serpent|kraken)('s (venomous fangs|tentacle) gouge long scratches in the deck as its strike misses| chomps down on nothing but air, its prey having escaped|'s tentacle wraps around nothing but air, its prey having escaped| aborts its strike and draws its head back, looking for its missing prey)|At the last moment before the sea serpent's mouth engulfs|The kraken aborts its strike, readying another tentacle to chase its missing prey.)\.?"
   omit_from_output="n"
   sequence="7"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="n"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="dodgerblue"
   match="(one of its fangs tears a bleeding wound across (his|her|its) side|taking a painful gash in (his|her|its) side from its fangs|its fangs tear you up painfully as you struggle out|charges, whether out of courage or confusion, right into the grasping kraken tentacle\.  Somehow, (he|she|it) manages to avoid being caught up in its grip, but it sends (him|her|it) rolling across the deck with a powerful strike)\.$"
   omit_from_output="n"
   sequence="7"
   regexp="y"
  >
  </trigger>
  <!-- No one on deck, monster is destroying the ship. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="yellow"
   match="^(?:> )?The ship creaks under strain as the (sea serpent|kraken) coiled around it tightens its grip\.  Someone should probably go up and do something about that before it crushes the ship\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <!-- Monster eats swamp dragon, which explodes. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="pink"
   match="^(?:> )?(The (sea serpent|kraken) snatches up (Aggy|Idiot|Nugget|Bitey) the (pale green|bright red|dark purple|sky blue) swamp dragon and bites into it, only to suffer a painful-sounding explosion to the mouth|Somewhere overhead, you hear a muffled explosion, shortly followed by the sound of a (sea serpent|kraken) having a severe toothache)\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
  <!-- End of monster, rejoice! -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   custom_colour="17"
   other_text_colour="black"
   other_back_colour="green"
   match="^(?:> )?With that last blow, the (sea serpent|kraken) seems to decide that your ship isn't worth it\.  It (uncoils its tail, roars resignedly a last time, and dives back into the depths with a huge splash|retrieves all of its tentacles, bellows resignedly a last time, and sinks slowly back into the depths, its staring eyes the last thing to pass below the surface)\.$"
   omit_from_output="n"
   sequence="10"
   regexp="y"
  >
  </trigger>
<!--
The ship plows through a field of floating dire seaweed, some of which glows green and latches onto the hull aggressively!
You hear the distinctive sound of an angry giant turtle bellowing, followed by the rather less distinctive sound of a giant bite being taken out of the ship.
The ship abruptly starts spinning in circles.  After a few rounds, it manages to escape the whirlpool, heading in a different direction from before.

The SS Unsinkable's hull has a few patches of sea ice frozen onto it, dragging the ship down, and is in perfect condition.
-->
  <!-- SS Unsinkable triggers END -->
  
  <!-- Silence Ryattenoki's spam. -->
  <trigger
   enabled="y"
   keep_evaluating="n"
   match="^(?:> )?Ryattenoki (asks|exclaims|says|might|tugs|offers|arrives|succeeds|waves|exudes|is looking|nudges|pokes|prods|will accept|points|(and .*)?succeed in following).*"
   omit_from_output="y"
   sequence="50"
   regexp="y"
  >
  </trigger>
  <trigger
   enabled="n"
   keep_evaluating="n"
   match="^(?:> )?The smell of fresh haddock wafts over from Ryattenoki\.$"
   omit_from_output="y"
   sequence="50"
   regexp="y"
  >
  </trigger>



  <!-- Omitting a couple of spam lines in one trigger, as an example - this trigger is DISABLED, it is just here for example! -->
  <!-- Set enabled="y" to enable it if you really want to omit these two particular sample-spam lines being omitted -->
  <trigger
   enabled="n"
   keep_evaluating="n"
   match="^(?:> )?(Trying to hurt a cloud of water vapour, are we\?|A huge trumpeting noise comes from your rear, closely followed by a stench of boiled cabbage\.)$"
   omit_from_output="y"
   sequence="50"
   regexp="y"
  >
  </trigger>

</triggers>

<script>
<![CDATA[

-- If you want to change the COLOURS of triggers, do so in the appropriate trigger section higher up this file, the other_text_colour option!

-- Below are four functions that can PLAY SOUNDFILES on your PC, commented out by default.  
-- Remove the two -- dashes before the appropriate "Sound" command to enable
-- Make sure the path and file name to a soundfile are valid!

-- Sound volume is a decibel change.  It MUST be from 0 to -100 (that's zero through to NEGATIVE one hundred)
-- As it's a decibel change, even -2 can cut the volume in half.  -10 is approximately a fifth of the full volume
-- Leave at 0 if you want sounds played at full volume
iSoundVolume = -10

-- ***** Self-TPA Breaking Sound *****
-- Uncomment the "PlaySound" command, and edit in a path to your own soundfile, to enable!
function SoundPlayTPA(name, line, wildcards, styles)

  --PlaySound (1, "C:/Discworld/glassbreak.wav", false, iSoundVolume, 0)

  -- IMPORTANT:  The path must use FORWARD SLASHES ONLY, instead of backward slashes!
  -- The first 1 is a "sound channel" - this means other sounds in different channels can play at the same time (eg a TPA sound while an EFF sound plays)
end

-- ***** Self-EFF Knockdown/Broken Sound *****
-- Uncomment the "PlaySound" command, and edit in a path to your own soundfile, to enable!
function SoundPlayEFF(name, line, wildcards, styles)

  --PlaySound (2, "C:/Discworld/clunking.wav", false, iSoundVolume, 0)

  -- IMPORTANT:  The path must use FORWARD SLASHES ONLY, instead of backward slashes!
  -- The first 2 is a "sound channel" - this means other sounds in different channels can play at the same time
end

-- ***** FTF Ending Sound *****
-- Uncomment the "PlaySound" command, and edit in a path to your own soundfile, to enable!
function SoundPlayFTF(name, line, wildcards, styles)

  --PlaySound (3, "C:/Discworld/swoosh.wav", false, iSoundVolume, 0)

  -- IMPORTANT:  The path must use FORWARD SLASHES ONLY, instead of backward slashes!
  -- The first 3 is a "sound channel" - this means other sounds in different channels can play at the same time
end

-- ***** Coffee Hitman Sound *****
-- Uncomment the "PlaySound" command, and edit in a path to your own soundfile, to enable!
function SoundPlayHitman(name, line, wildcards, styles)

  --PlaySound (4, "C:/Discworld/incoming.wav", false, iSoundVolume, 0)

  -- IMPORTANT:  The path must use FORWARD SLASHES ONLY, instead of backward slashes!
  -- The first 4 is a "sound channel" - this means other sounds in different channels can play at the same time
end

]]>
</script> 

</muclient>