Safe Passage- The Game!

Have you ever wanted to be a pirate but live in a stupid city that doesn't want you to be awesome and and cool and have fun? Do you like gold? do you like to take gold from other people? Do you really really really REALLY hate the wavecall ability? If you answered "yes" to any of these questions you need to stop talking to yourself. We're all kind of worried about you...

But seriously now. A few months back I "developed" a little dice game based on a real game pirates would play to pass the time. We've had a lot of fun playing it in the PoM and I've shown a few people outside the PoM how to play. If you like to gamble it can be a lot of fun and Achaea's wonky RNG actually works out ok with it. Ah but there is more! Not only do you get the rules to this fun little game but I'm also including a script to make it easier to play! Colourful echos and result tracking. Credit for which goes to @Kross.

We've had a lot of fun playing and I think it's worth sharing. So here you go. Enjoy!

Safe Passage
It is a real simple game that plays out what happens when Pirates are out doing
what they do. All you need is a container of some sort to act as the "strongbox"
and some dice and what pirate worth his marque doesn't have some dice?

All players agree to a bet value before you start, to be placed into the
"Strongbox" each time they roll.

The first player puts their bet in the strongbox placed on the ground in front
of all players. Then they roll 3, 6 sided dice (ROLLDICE 3 6) If you do NOT roll
 a double, two of the three dice have the same value, you pass to the next
player who places their bet and rolls. The game progresses as such, back and
forth, until someone rolls a double. This is called the "search"

If you roll a double You've "spotted a target" Add the sum of the two dice to
the third. If the total of all three dice is 10 or under you capture the ship
and everything in the strongbox is yours as payment for "safe passage"

If you roll a double and the sum of all three dice is over 10 the target has
wavecalled away like a filthy Nerai. Add 5x the bet to the stongbox to make up
for your disgrace and pass the dice.


Example

Ruth, Hirst and Kinilan decide to play Safe Passage and agree to bet of 100 gold.

Ruth goes first and places 100 gold in the strongbox. She rolls a 2, 5, and 3.
No double so the search continues. Ruth passes the dice to Hirst.

Hirst places 100 gold in  the strongbox. He rolls a 3, 1 and 4. No double so the
search continues. Hirst passes to Kinilan

Kinilan places 100 gold in the strongbox. He rolls a 4, 4 and a 3. There is a
double and the sum of all 3 dice is over 10. The target wavecalls away and
Kinilan places 500 gold into the cargo hold to make up fis his failure and
passes to Ruth.

Ruth places 100 gold in the strongbox. She rolls a 2, 2 and a 6. The sum of all
three dice is 10 or under. Ruth captures the ship and takes everything in the
strongbox as payment. Which in this case would be 900 gold.


And then of course the basic script and triggers to add a bit more excitment to the game!


Script
wavecallEchos = {
"BAH! THEY'VE GIVEN US THE SLIP!",
"I'LL GET YOU NEXT TIME, NERAI! NEXT TIIIIIME!!.",
"WAVECALL? AGAIN? UGH.",
"OH GODS! A KRAKEN!",
"KRAKEN! HARD TO PORT!",
"THEY'VE MADE IT TO THE HARBOUR, CAPTAIN.",
"THAT'S NO ISLAND!",
"WHAT DO YOU MEAN YOU CAN'T SEE THEM ANYMORE?",
"HOW THE HELL DID THEY MANAGE THAT?",
"WE'VE RUN ASHORE, CAPTAIN!",
"SORRY SIR, WE'RE OUT OF AMMO!",
"WELL THAT PLAN BACKFIRED...",
"YOU'LL WALK THE PLANK FOR THIS FAILURE!",
"WALK THE PLANK, YA HOSER!",
"ABANDON SHIP!",
"YOU CAN'T RUN FOREVER, NERAI!",
"OH GODS! THAT'S NOT TARAUS, THAT'S A SEA HAG!",
"IT'S PULLING US UNDER, SIR!",
"GAME OVER MAN! GAME. OVER!",
"WHAT DO YOU MEAN THE RUM IS GONE?",
"I'VE HAD ENOUGH! MUTINY!!",
"WHY IS ALL THE RUM GONE?",
"GODS DAMN IT SCABS! YOU'VE LET THEM SLIP AWAY AGAIN!",
"I CAN'T DO IT CAPTAIN, SHE DON'T HAVE THE POWER.",
"DID YOU SEE THE SIZE OF THOSE TENTACLES?!",
"THE WATER IS RISING!",
"FIGHT TO THE END, YOU KAK HEADED DECK APES!"
}
 
searchingEchos = {
"NOTHING BUT HORIZON, CAPTAIN.",
"SAIL OFF THE PORT BOW!",
"SAIL OFF THE STARBOARD BOW!",
"SAIL ON THE HORIZON, CAPTAIN!",
"NOTHING TO REPORT, CAPTAIN",
"JUST SEAS AND SEAGULL SHIT, SIR.",
"MAYBE WE SHOULD LOOK CLOSER TO SHORE?",
"MAYBE WE SHOULD CHECK THE DEEP, CAPTAIN.",
"FIND A -SHIP-? I THOUGHT YOU SAID -SHEEP-.",
"MAYBE WE SHOULD POP A FLARE.",
"SHIP SPOTTED TO THE NORTH, CAPTAIN!",
"SHIP TO THE NORTH, CAPTAIN!",
"SHIP SPOTTED TO THE SOUTH, CAPTAIN!",
"SHIP TO THE SOUTH, CAPTAIN!",
"SHIP SPOTTED TO THE EAST, CAPTAIN!",
"SHIP TO THE EAST, CAPTAIN!",
"SHIP SPOTTED TO THE WEST, CAPTAIN!",
"SHIP TO THE WEST, CAPTAIN!",
"CLOAKED SHIP AT CLOSE RANGE!",
"I SMELL NERAI...",
"I CAN SMELL THE GOLD, CAPTAIN.",
"NO SIR...IT'S JUST ARTANIS.",
"WE'VE GONE OFF COURSE, SIR.",
"WE'RE OFF COURSE, CAPTAIN!",
"THESE WATERS ARE DEAD, CAPTAIN."
}
 
plunderedEchos = {
"THERE GO THE BONES, BOYS!",
"ARRR, AIN'T THAT A PRETTY SIGHT?",
"THE SHIP IS OURS, CAPTAIN!",
"I'VE NEVER SEEN SO MUCH GOLD BEFORE!",
"YOUR LIVES, AND YOUR SHIP, BELONG TO US NOW.",
"HOOKERS AND GLEAM FOR EVERYONE!",
"BREAK OUT THE RUM! IT'S TIME TO CELEBRATE!",
"IT IS MINE TO DIVIDE, AND YOURS TO OBEY.",
"TO THE VICTOR GOES THE SPOILS.",
"PILLAGE AND PLUNDER!",
"THE PRIZE IS OURS, MATES.",
"OPEN THE STRONGBOX.",
"A FEW MORE LIKE THIS AND WE COULD RETIRE.",
"NOW WHERE SHOULD WE BURY ALL OF THIS?",
"I LOVE ME SOME PIRATE BOOTY.",
"WE'VE FINISHED TRANSFERRING THE CARGO, CAPTAIN.",
"THE HOLD IS FULL OF GEMS AND GOLD!",
"WITH THIS MUCH, WE'LL LIVE LIKE KINGS!",
"TRIPLE RATIONS FOR EVERYONE! EXCEPT YOU SCABS.",
"THEY SHOULD HAVE HAD THE GOOD SENSE TO PAY US FIRST.",
"THROW THE CORPSES OVERBOARD. WE'RE DONE HERE.",
"CUT THE LINES AND MAKE SAIL. WE HAVE WHAT WE CAME FOR.",
"TIME TO START COUNTING, GENTS.",
"SECURE THE HOLD AND FETCH THE QUARTERMASTER!",
"SCABS! IF A SINGLE COIN GOES MISSING YOU'LL WALK THE PLANK!",
"THIS SHOULD COVER THE REPAIRS AND THEN SOME!"
}
 
=============================================================================
 
TRIGGER:  ^You roll 3 dice and as they tumble to a stop you see they show (\w+)\, (\w+)\, and (\w+)\.$
 
rollA = tonumber(matches[2])
rollB = tonumber(matches[3])
rollC = tonumber(matches[4])
rollTotal = rollA + rollB + rollC
 
if (rollA == rollB or rollA == rollC or rollB == rollC) and rollTotal <= 10 then
        echo("\n")
        cecho("\n<DeepPink>[<white>Safe Passage<DeepPink>]: <green>"..plunderedEchos[math.random(1, #plunderedEchos)].." <DimGrey>(Rolled <green>"..tostring(rollTotal).."<DimGrey>)")
elseif (rollA == rollB or rollA == rollC or rollB == rollC) and rollTotal >= 11 then
        echo("\n")
        cecho("\n<DeepPink>[<white>Safe Passage<DeepPink>]: <red>"..wavecallEchos[math.random(1, #wavecallEchos)].." <DimGrey>(Rolled <red>"..tostring(rollTotal).."<DimGrey>)")
else
        echo("\n")
        cecho("\n<DeepPink>[<white>Safe Passage<DeepPink>]: <yellow>"..searchingEchos[math.random(1, #searchingEchos)].." <DimGrey>(Rolled <yellow>"..tostring(rollTotal).."<DimGrey>)")
end
 
 
TRIGGER:  ^You watch as (\w+) rolls a pair of ivory dice. They split into 3 dice and come to rest showing (\w+)\, (\w+)\, and (\w+)\.$
 
rollA = tonumber(matches[3])
rollB = tonumber(matches[4])
rollC = tonumber(matches[5])
rollTotal = rollA + rollB + rollC
 
if (rollA == rollB or rollA == rollC or rollB == rollC) and rollTotal <= 10 then
        echo("\n")
        cecho("\n<DeepPink>[<white>Safe Passage<DeepPink>]: <green>"..plunderedEchos[math.random(1, #plunderedEchos)].." <DimGrey>(Rolled <green>"..tostring(rollTotal).."<DimGrey>)")
elseif (rollA == rollB or rollA == rollC or rollB == rollC) and rollTotal >= 11 then
        echo("\n")
        cecho("\n<DeepPink>[<white>Safe Passage<DeepPink>]: <red>"..wavecallEchos[math.random(1, #wavecallEchos)].." <DimGrey>(Rolled <red>"..tostring(rollTotal).."<DimGrey>)")
else
        echo("\n")
        cecho("\n<DeepPink>[<white>Safe Passage<DeepPink>]: <yellow>"..searchingEchos[math.random(1, #searchingEchos)].." <DimGrey>(Rolled <yellow>"..tostring(rollTotal).."<DimGrey>)")
end


Comments

  • I just lost The Game.

    image

  • I want to play!
  • AustereAustere Tennessee
    edited January 2015
    (\d+) is your friend.  No need to convert the matches to numbers using it. 
  • BluefBluef Delos
    edited January 2015
    This is amazing. 

    Edit: I wish I knew squat about sailing beyond basic commands. Bluef would turn pirate in a heartbeat.
  • TarausTaraus The Gypsy Wind
    gdi

  • Taraus said:
    gdi
    Go away.
  • TarausTaraus The Gypsy Wind
    edited January 2015
    Kinilan said:
    Taraus said:
    gdi
    Go away.
    you're fired

    *also I'm broke again, rustle @Kross up for a game so I can take the rest of your money

  • RuthRuth Singapore
    I love them echoes.
    "Mummy, I'm hungry, but there's no one to eat! :C"

     

  • Ruth said:
    I love them echoes.
    Result of some brainstorming by me. Taraus and Kross. Best part is it's real easy to add your own!
  • @Austere‌

    I was having a problem when using (\d+) for the number captures for the math portion. Can't really explain it, as I put this together a while ago with the help of a few others. 
  • AustereAustere Tennessee
    Kross said:
    @Austere‌

    I was having a problem when using (\d+) for the number captures for the math portion. Can't really explain it, as I put this together a while ago with the help of a few others. 
    Very strange.  I use it to capture all my numbers. I figured it would have just made it a little cleaner.  Obviously the process time isn't going to matter in the last with the way it is coded.  I wasn't trying to be mean, just a suggestion in case it wasn't known.  You should see some of my triggers. .the ones you wrote are modern art masterpieces in comparison, @Kross‌
  • JonathinJonathin Retired in a hole.
    Bluef said:
    This is amazing. 

    Edit: I wish I knew squat about sailing beyond basic commands. Bluef would turn pirate in a heartbeat.
    That's why you join pirates. They can teach you. We all start somewhere.
    I am retired and log into the forums maybe once every 2 months. It was a good 20 years, live your best lives, friends.
  • Austere said:
    (\d+) is your friend.  No need to convert the matches to numbers using it. 
    Everything in the matches table is a string because it's all coming from a string. The (\d+) just means that only numbers will be matched, it has absolutely no bearing on the resulting type of the entry in that table.

    Lua does a lot of implicit conversion from a string to a number when you use certain operators like + or *, but doesn't when you try to use comparison operators such as >, so it's safer to always convert it to a number using tonumber(whatever) before you try to work with anything you expect to be a number.
  • Antonius said:
    Austere said:
    (\d+) is your friend.  No need to convert the matches to numbers using it. 
    Everything in the matches table is a string because it's all coming from a string. The (\d+) just means that only numbers will be matched, it has absolutely no bearing on the resulting type of the entry in that table.

    Lua does a lot of implicit conversion from a string to a number when you use certain operators like + or *, but doesn't when you try to use comparison operators such as >, so it's safer to always convert it to a number using tonumber(whatever) before you try to work with anything you expect to be a number.
    What he said...I just did it cause it worked one way, but not the other. :neutral_face: 
  • AustereAustere Tennessee
    edited January 2015
    Sorry,  mudlet knowledge fail.  I guess I am just lucky that mine haven't errored yet. 

    Can we still be friends? 
  • Oh boy. I love this game.

  • BronislavBronislav Maryland
    So, first of all...Cute game.

    Now to see if we can customize it to make it more seafaring/non-pirate. :innocent: 



Sign In or Register to comment.