a night at the gold saucer
a ff7 fangame
[[xax|https://patreon.com/xax/]]
<h1>a Night at the Gold Saucer</h1><h2>a ff7 fangame</h2>by <a href="https://archiveofourown.org/users/xax">xax</a>\n\n[[new game|new game]]\n[[content notes|content]]
Your party arrives at the gold saucer and decides to take a break for a bit. You'll keep following Sephiroth again in the morning. For now, the night is yours.\n<<display "init">>\\n\n<<display "ghost hotel start">>
this is a ff7 fangame where you play as barret during the first gold saucer section in disc 1. that's not in the ff7 remake, so this does kind of assume knowledge of a 24-year-old video game. it's a big amusement park. it's the part where you go on a date with somebody in the original game.\n\nthis is an attempt to write some shortform porn. specifically, with a goal of most sex scenes being 3-4 paragraphs long. (i immediately made that harder on myself by adding a lot of branching, so that each sex scene is actually a bunch of short sequences, but, that's how things are sometimes i guess.) currently this contains around ~21,000 words, and i plan on calling it 'finished' whatever state it's in once it hits 50,000 words.\n\nbasically everything accessible in-game is half-finished to some degree. a lot of sex scenes just kind of end.\n\nright now the capitalization and formatting is pretty uneven, and there are a few chunks with uncoded prose shims. i'll probably fix that at some point. trying to use items or check your status in the middle of a sex scene will mess up a bunch of the logic; i'll probably restructure the status sidebar at some point to prevent that, but keep that in mind for right now.\n\ni'd say this game is very heavily based around bottoming & powerbottoming. there are no sex scenes where you top.\n\nanyway this is that section of the game but everything is incredibly pornographic. sexual content: (stuff that's struck out isn't actually in the game yet)\n* fucking machines\n* public sex\n* public use (only a little currently)\n* exhibitionism\n* ==gangbangs==\n* fisting\n* prolapses (frequently running out of hp at/near the end of a scene leads to a prolapse variant. plus there are just some prolapse scenes)\n* pissplay (only a small amount of 'fucked so hard you start pissing' right now)\n* drug use / chemsex (b/c this is essentially what rpg healing and status-changing items are, when put in a sex context. there's porn analogues to the 'fury' and 'sadness' statuses in ff7, which raise or lower your damage taken & limit charge, and items to set or remove those statuses, and there's text describing the items' effects on your body. ==some sex scenes have people use status-changing items on themselves or others.== nobody's snorting meth.)\n* xeno/feral (red xiii)\n* bestiality (chocobos and monsters)\n* knotting (==red xiii &== monsters)\n* flagrant abuse of game mechanics. that's barret's actual limit break calculation, thank you final fantasy wiki.\n\n[[<--|Start]]
<<if $barret>>\n<<print statScreen ($barret, $inventory)>>\n<<endif>>\\n<<if ["Barret"].indexOf (passage()) === -1 && !tale.passages[passage()].tags.includes ("item")>><<set $_back to passage()>><<endif>>
#sidebar #storyMenu { display: block; }\n\nbody { margin-left: 3em; }\n#sidebar { width: 19em; }\n#title { }\n #title #storyTitle {}\n #title #storySubtitle {}\n #title #titleSeparator {}\n #title #storyAuthor {}\n\n.meta { color: #ccc; }\n\n.choco_yellow { color: #fea; }\n.choco_green { color: #bfb; }\n.choco_blue { color: #acf; }\n.choco_red { color: #fca; }\n.choco_purple { color: #fbf; }\n.choco_white { color: #fff; }\n.choco_pink { color: #fdd; }\n.choco_black { color: #aaa; }\n\n.limitbreak { display: block; border: 1px solid #fff; border-radius: 6px; background: rgba(255, 79, 191, 0.75); text-transform: uppercase; text-align: center; }\n@keyframes limitbreak {\n 0% { color: red; }\n 16% { color: orange; }\n 33% { color: yellow; }\n 50% { color: green; }\n 66% { color: blue; }\n 83% { color: indigo; }\n 100% { color: purple; }\n}\n\nh1 { font-size: 250%; }\nh2 { font-size: 150%; }\nhr { border: none; border-top: 1px solid #aaa; margin: 1.12em 5em; }\n\n#storyTitle, #sidebar #storySubtitle, #titleSeparator, #storyAuthor, #bookmark { display: none; }\n\na.internalLink { color: #25f; }\n.passage a.internalLink:hover { color: #fea; }\n\n\n#sidebar #stats, .uibox { border: 1px solid #fff; border-radius: 6px; padding: 8px;\n background: radial-gradient(ellipse farthest-corner at 0% 0%, #00f, #004); color: #e6e9e8; text-shadow: 2px 2px #000; }\n #sidebar #stats ul, .uibox ul { clear: both; margin: 0; padding: 0 0 0 1em; }\n #sidebar #stats li, .uibox li { color: #e6e9e8; text-align: left; padding: 0; margin: 0; }\n #sidebar #stats a { float: left; padding: 0; color: #fff; }\n #sidebar #stats a:hover { color: #fea; }\n #sidebar #stats .lv, .uibox .lv { color: #1ed8d9; }\n #sidebar #stats .hp { display: inline-block; width: 7em; text-align: right; }\n #sidebar #stats .status, .uibox .status { color: #d10ad1; font-weight: normal; }\n #sidebar #stats .status { float: left; margin-left: 0.6em; }\n #sidebar #stats .num, .uibox .num { display: inline-block; width: 3.1em; text-align: right; }\n #sidebar #stats .barw, .uibox .barw,\n #sidebar #stats .limitw, .uibox .limitw { position: relative; }\n #sidebar #stats .label, .uibox .label { font-variant: small-caps; position: absolute; top: -20px; left: 0.2em; }\n #sidebar #stats .bar, #sidebar #stats .barb, .uibox .bar, .uibox .barb { display: block; position: absolute; bottom: 0; height: 3px; width: 100%; }\n #sidebar #stats .barb, .uibox .barb { background: #400618; }\n #sidebar #stats .bar, .uibox .bar { background: linear-gradient(to right, #2e72e8, #c2bffe); }\n\n .limitw { display: inline-block; height: 1em; width: 3em; border: 2px outset; position: relative; margin: 0em 0 0 1em; position: relative; top: 0.5em; }\n .uibox .barw .label { left: 0.7em; }\n .uibox .limitw .label { top: -26px; }\n .boxb, .box { display: block; position: absolute; width: 100%; height: 1em; }\n .boxb { background: linear-gradient(to bottom\n , #141a16\n , #141a16 7%\n , #565656 8%\n , #7b7b7b 95%\n , #6b6b6b 100%\n ); }\n .box { background: linear-gradient(to bottom\n , #9a4e72\n , #9a4e72 7%\n , #d2a5bc 8%\n , #e9dde9 33%\n , #e78fb7 35%\n , #a88697 95%\n , #7d6d77 100%\n ); }\n\n\n #sidebar ul#inventory { display: flex; }\n #sidebar ul#inventory li { width: 50%; text-align: left; color: #e6e9e8; }\n #sidebar ul#inventory li .item { display: inline-block; font-weight: normal; width: 80%; }\n #sidebar ul#inventory li .invc { display: inline-block; width: 20% }\n\n #sidebar ul#inventory li a { color: #fff; }\n #sidebar ul#inventory a:hover { color: #fea; }\n\n #sidebar .slot { display: inline-block; width: 3em; text-align: right; color: #1ed8d9; font-weight: normal; }\n #sidebar .slots { display: inline-block; border: 1px inset #999; background: rgba(0.5,0.5,0.5,0.75); height: 1.65em; line-height: 1.65em; }\n #sidebar .materia { display: block; float: left; position: relative; width: 1.6em; height: 1.6em; vertical-align: middle; background: transparent radial-gradient(circle\n , #1b1b1b\n , #1b1b1b 14%\n , #343434 16%\n , #343434 19%\n , #1b1b1b 20%\n , #1b1b1b 50%\n , #999999 51%\n , #d1d1d1 60%\n , transparent 63%\n ); }\n #sidebar .materia::after { display: block; content: ' '; position: absolute; top: 0; left: 0; width: 1.6em; height: 1.6em; clip-path: circle(40%); opacity: 0.7; }\n #sidebar .materia.magic::after { background:\n radial-gradient(circle closest-corner at 33% 33%\n , #9faea7\n , transparent 33%\n )\n , linear-gradient(to bottom right\n , #206420\n , #68f168\n ); }\n #sidebar .materia.summon::after { background:\n radial-gradient(circle closest-corner at 33% 33%\n , #ae9fa7\n , transparent 33%\n )\n , linear-gradient(to bottom right\n , #642020\n , #f16868\n ); }\n #sidebar .materia.support::after { background:\n radial-gradient(circle closest-corner at 33% 33%\n , #9faeae\n , transparent 33%\n )\n , linear-gradient(to bottom right\n , #206464\n , #68f1f1\n ); }\n #sidebar .materia.command::after { background:\n radial-gradient(circle closest-corner at 33% 33%\n , #aeae9f\n , transparent 33%\n )\n , linear-gradient(to bottom right\n , #646420\n , #f1f168\n ); }\n #sidebar .materia.independent::after { background:\n radial-gradient(circle closest-corner at 33% 33%\n , #ae9fae\n , transparent 33%\n )\n , linear-gradient(to bottom right\n , #642064\n , #f168f1\n ); }
function lvlSort (a, b) {\n let order = ["gape", "throat", "cumslut", "exhibitionist", "pisspig"];\n let ai = order.indexOf (a);\n let bi = order.indexOf (b);\n return ai - bi;\n}\n\nfunction slotSort (a, b) {\n let order = ["throat", "ass", "dick"];\n let ai = order.indexOf (a);\n let bi = order.indexOf (b);\n return ai - bi;\n}\n\nfunction matType (m) {\n switch (m) {\n case "shiva":\n case "phoenix":\n case "choco/mog":\n case "ifrit":\n case "kjata":\n case "titan":\n case "bahamut":\n return "summon";\n case "seal":\n case "lightning":\n return "magic";\n case "manipulate":\n case "mimic":\n return "command";\n case "final attack":\n case "hp absorb":\n return "support";\n case "long range":\n case "chocobo lure":\n case "enemy lure":\n case "underwater":\n case "hp plus":\n return "independent";\n }\n}\nfunction capitalize (m) {\n let cap = a => a == "hp" ? "HP" : a[0].toUpperCase() + a.slice(1);\n return m.split(" ").map(cap).join(" ")\n .split("-").map(cap).join("-");\n}\nwindow.capitalize = capitalize;\nfunction matDesc (m) {\n switch (m) {\n case "shiva":\n return "unlocks vaginal / dp / triple-penetration scenes";\n case "phoenix":\n return "unlocks vaginal / dp / triple-penetration scenes";\n case "choco/mog":\n case "ifrit":\n case "kjata":\n case "titan":\n case "bahamut":\n return "changes your dick description in your bio. has absolutely no effect on any scenes; does not unlock any topping scenes.";\n case "seal":\n return "replaces all orgasm sections in scenes with chastity sections";\n case "lightning":\n return "periodically forces you into an e-stim scene; modifies some sex scenes"\n case "manipulate":\n return "unlocks bonus sections in some sex scenes";\n case "mimic":\n return "adds additional sections to sex scenes. expands gangbang scenes."\n case "final attack":\n return "unlocks bonus sections in some sex scenes";\n case "hp absorb":\n return "gives you hp in scenes; no direct effect on scene content";\n case "hp plus":\n return "raises max hp; no effect on scene content";\n case "long range":\n return "unlocks public-use & sextoy scenes; periodically forces you into a sextoy scene"\n case "chocobo lure":\n return "unlocks additional chocobo sex scenes & adds variants to existing ones"\n case "enemy lure":\n return "unlocks additional monster sex scenes & adds variants to existing ones"\n case "underwater":\n return "unlocks rougher throatfucking scenes and allows oral knotting";\n }\n}\nwindow.matDesc = matDesc;\n\nwindow.statScreen = function (char, inventory) {\n let ass = (char.ass.cur / char.ass.max) * 100;\n let throat = (char.throat.cur / char.throat.max) * 100;\n let limit = (char.limit / 255) * 100;\n let lvls = Object.keys (char.lvls).sort (lvlSort);\n let materia = Object.keys (char.slots).sort (slotSort).filter (a => char.slots[a]);\n return ('<div id="stats">[[' + char.name + ']]' +\n (char.status !== "normal" ? ('<span class="status">' + char.status + '</span>') : '') +\n ('<span class="limitw">' +\n '<span class="label">limit</span>' +\n '<span class="boxb"></span>' +\n '<span class="box" style="width: ' + limit + '%"></span>' +\n '</span>') +\n '<ul>' +\n '<li><span class="lv hp">ASS HP</span> ' +\n '<span class="barw">' +\n '<span class="barb"></span>' +\n '<span class="bar" style="width: ' + ass + '%"></span>' +\n '<span class="num">' + char.ass.cur + '</span>/' +\n '<span class="num">' + char.ass.max + '</span>' +\n '</span></li>' +\n '<li><span class="lv hp">THROAT HP</span> ' +\n '<span class="barw">' +\n '<span class="barb"></span>' +\n '<span class="bar" style="width: ' + throat + '%"></span>' +\n '<span class="num">' + char.throat.cur + '</span>/' +\n '<span class="num">' + char.throat.max + '</span>' +\n '</span></li>' +\n (lvls\n .map (lvl => '<li>' + '<span class="lv">LV</span> ' + char.lvls[lvl].lvl + ' ' + capitalize (lvl) + "</li>")\n .join("")) +\n (materia\n .map (slot => '<li>' + '<span class="slot">' + slot + '</span> ' + '<span class="slots" title="' + matDesc (char.slots[slot]) + '"><span class="materia ' + matType (char.slots[slot]) + '"></span>' + capitalize (char.slots[slot]) + '</span></li>')\n .join("")) +\n '</ul></div>' +\n (Object.keys (inventory).length == 0\n ? ''\n : ('<div class="uibox"><ul id="inventory">' + Object.keys(inventory)\n .filter (i => inventory[i] > 0)\n .map (i => '<li><span class="item">[[' + capitalize (i) + '|useitem][$_i = "' + i + '"]]</span><span class="invc">:' + inventory[i] + '</span></li>')\n .join ("") +\n '</ul></div>'))\n );\n};\n\nfunction grantXP (char, skill, xp) {\n console.log ("grantXP", skill, xp);\n let levels = [ 1, 9,25,49, 81,121,169,225,289,361,441];\n let hp = [32,48,66,86,108,132,158,186,216,248,282];\n if (!char.lvls[skill]) {\n char.lvls[skill] = {lvl: 0, xp: 0};\n }\n let req = levels[char.lvls[skill].lvl];\n char.lvls[skill].xp += xp;\n if (char.lvls[skill].xp >= req) {\n char.lvls[skill].lvl += 1;\n char.lvls[skill].xp -= req;\n let bonus = [];\n switch (skill) {\n case "gape":\n let oldAss = char.ass.max;\n let newAss = hp[char.lvls[skill].lvl];\n let assRatio = char.ass.cur / char.ass.max;\n char.ass.max = newAss;\n char.ass.cur = Math.ceil (char.ass.max * assRatio);\n bonus = ['Max ASS HP up! ' + oldAss + ' -> ' + newAss];\n break;\n case "throat":\n let oldThroat = char.throat.max;\n let newThroat = hp[char.lvls[skill].lvl];\n let throatRatio = char.throat.cur / char.throat.max;\n char.throat.max = newThroat;\n char.throat.cur = Math.ceil (char.throat.max * throatRatio);\n bonus = ['Max THROAT HP up! ' + oldThroat + ' -> ' + newThroat];\n break;\n default:\n bonus = [];\n break;\n }\n return (char.lvls[skill].lvl == 1\n ? [ 'Ranked new skill! Got <span class="lv">LV</span> 1 ' + skill + "!"]\n : [ "Gained " + xp + " " + capitalize (skill) + " xp!"\n , "Level up! " + capitalize (skill) + " grew " + (char.lvls[skill].lvl-1) + "→" + char.lvls[skill].lvl\n ]).concat (bonus);\n }\n return ["Gained " + xp + " " + capitalize (skill) + " xp!"];\n\n}\nwindow.gainXPGroup = function () {\n let i = 1;\n let char = arguments[0];\n let o = [];\n while (arguments[i]) {\n let lvl = arguments[i];\n let xp = arguments[i+1];\n o = o.concat (grantXP (char, lvl, xp));\n i += 2;\n }\n return '<div class="uibox"><ul>' + o.map(msg => '<li>'+msg+'</li>').join("") + '</ul></div>'\n};\n\nwindow.gainItem = function (inventory, item, amount) {\n if (!inventory[item]) {\n inventory[item] = 0;\n }\n inventory[item] += amount;\n if (inventory[item] < 0) {\n inventory[item] = 0;\n }\n if (amount <= 0) {\n return '';\n }\n return '<div class="uibox">Got ' + amount + 'x ' + capitalize (item) + '!</div>'\n};\n\nwindow.hasItem = function (inventory, item, amount) {\n if (!inventory[item]) {\n return false;\n }\n return inventory[item] >= amount;\n};\n\nwindow.lvl = function (char, skill) {\n if (!char.lvls[skill]) {\n return 0;\n }\n return char.lvls[skill].lvl;\n}\n\nwindow.health = function (char, where) {\n return char[where].cur;\n};\n\n/*\npoison / antidote\ndarkness / eye drop\npetrify / soft / vagyrisk claw -- (lol giant rock-hard but unfeeling dick)\nfrog / maiden's kiss\nsmall / cornucopia\nsilence / echo screen\n\n\nwar gong / inflicts berserk\nloco weed / inflicts confuse\n\nspeed drink / haste\nhero drink / stats up\nvaccine / resist negative status\n\n\n*/\nwindow.damage = function (char, inventory, where, amount) {\n let adjust =\n char.status === "horny" ? 1.1\n : char.status === "dazed" ? 0.8\n : 1.0;\n let limitAdjust =\n char.status === "horny" ? 2.0\n : char.status === "dazed" ? 0.5\n : 1.0;\n let starting = char[where].cur;\n\n /* this is genuinely the limit break calculation for barret in ff7 */\n /* limitModifiers = [129,240,374,450]; this is assuming barret is using is lvl3 limit breaks :V */\n char.limit += Math.max (0, (Math.floor ((amount * 300) / char[where].max) * 256 * adjust) / 374);\n if (char.limit >= 255) {\n char.limit = 255;\n }\n\n char[where].cur -= Math.floor (amount * adjust);\n if (char[where].cur < 0) {\n char[where].cur = 0;\n char.limit = 0;\n }\n if (char[where].cur > char[where].max) {\n char[where].cur = char[where].max;\n }\n\n let change = char[where].cur - starting;\n\n let o = hpbar (char.name, where, char[where], char.limit);\n\n if (char[where].cur === 0 && inventory["phoenix down"] && inventory["phoenix down"] > 0) {\n inventory["phoenix down"] -= 1;\n o += "One of your phoenix downs bursts into dust, rushing into your " + where + '.';\n char[where].cur = Math.floor (char[where].max / 4);\n o += hpbar (char.name, where, char[where], char.limit);\n }\n\n if (char[where].cur === 0 && char.status !== "normal") {\n o += status (char, "normal");\n }\n return o;\n};\n\nwindow.limitbreak = function (char) {\n if (char.limit >= 255) {\n char.limit = 0;\n return true;\n }\n return false;\n}\n\nfunction status (char, status) {\n if (status === undefined || char.status === status) {\n return status;\n }\n let prev = char.status;\n char.status = status;\n return ('<div class="uibox">status: ' +\n '<span class="status">' + prev + '</span> → ' +\n '<span class="status">' + status + '</span></div>');\n}\n\nwindow.status = status;\n\nfunction hpbar (name, where, hp, limit) {\n let r = hp.cur / hp.max * 100;\n let l = limit / 255 * 100;\n return ('<div class="uibox">' + name +\n '<span class="barw">' +\n '<span class="label">' + where + '</span>' +\n '<span class="barb"></span>' +\n '<span class="bar" style="width: ' + r + '%"></span>' +\n '<span class="num">' + hp.cur + '</span>/' +\n '<span class="num">' + hp.max + '</span>' +\n '</span>' +\n '<span class="limitw">' +\n '<span class="label">limit</span>' +\n '<span class="boxb"></span>' +\n '<span class="box" style="width: ' + l + '%"></span>' +\n '</span>' +\n '</div>');\n};
window.passage = function () {\n return state.history[0].passage ? state.history[0].passage.title : "???";\n}
window.zip = function () {\n let o = [];\n for (let i = 0; i < arguments[0].length; i++) {\n let slice = [];\n for (let j = 0; j < arguments.length; j++) {\n if (arguments[j].length <= i) {\n return o;\n }\n slice.push (arguments[j][i]);\n }\n o.push (slice);\n }\n return o;\n}\n\nwindow.shuffle = function (arr) {\n var j, t, i;\n for (i = arr.length - 1; i > 0; i--) {\n j = Math.floor(Math.random() * (i + 1));\n t = arr[i];\n arr[i] = arr[j];\n arr[j] = t;\n }\n return arr;\n};\n\nwindow.draw = function (list, num) {\n let shuffled = shuffle (list);\n return shuffled.slice (0, num);\n};\nwindow.roll = function (list, num) {\n let o = [];\n for (let i = 0; i < num; i++) {\n o.push (shuffle(list)[0]);\n }\n return o;\n};\n\n/* this is an argument-tracking draw that lets you do something like call\n drawRepeat ([1,2,3])\n drawRepeat ([1,2,3])\n drawRepeat ([1,2,3])\nwith the returned value only repeating once all values have been returned once, no matter the distance between calls\n*/\nlet args = [];\nwindow.drawRepeat = function (list) {\n let match = null;\n if (!(match = args.find (i => i.canonical == list))) {\n match = {canonical: list, cur: []};\n args.push (match);\n }\n if (match.cur.length === 0) {\n match.cur = shuffle (match.canonical);\n }\n let res = match.cur[0];\n match.cur = match.cur.slice(1);\n return res;\n};\n\nwindow.ord = function (n) {\n let ones = ["zeroth", "first", "second", "third", "fourth", "fifth", "sixth", "seventh", "eighth", "ninth"];\n if (n < 0) {\n return "negative " + ord (n * -1);\n }\n if (n < 10) {\n return ones[n];\n }\n return "???"\n}
/*\nfunction innercontent(tag, parser) {\n var\n i,\n textbegin = parser.source.indexOf(">>",parser.matchStart)+2,\n textend = -1,\n text = parser.source.slice(textbegin),\n depth = 0;\n for (i = 0; i < text.length; i++) {\n if (text.substr(i,tag.length + 5) === ("<<end" + tag)) {\n if(depth===0){\n textend=textbegin+i;\n break;\n }else{\n depth--;\n }\n } else if (text.substr(i,tag.length + 2) === ("<<" + tag)) {\n depth++;\n }\n }\n if (textend === -1) {\n throwError(place,"can't find matching end"+tag,parser.fullMatch())\n return;\n }\n return [textbegin, textend];\n}\n\nmacros.switch = {\n handler: function (place, macroName, params, parser) {\n var svar = params[0][0] == "$"\n ? eval(Wikifier.parse(params[0]))\n : params[0];\n var inner_index = innercontent ("switch", parser);\n }\n};\nmacros.case = {\n handler: function (place, macroName, params, parser) {\n }\n};\nmacros.endswitch = { handler: function () {}}\n*/
<<if $_i == "potion">>\nYou get out a potion.\n* <<if $barret.throat.cur < $barret.throat.max>>[[drink it|potion throat]]<<else>>==drink it== throat HP max<<endif>>\n* <<if $barret.ass.cur < $barret.ass.max>>[[pour it into your ass|potion ass]]<<else>>==pour it into your ass== ass HP max<<endif>>\n* <<print "[[nevermind|" + $_back + "]]">>\n<<else if $_i == "hyper">>\nYou get out a hyper.\n* <<if $barret.status === "horny" >>==drink it== already horny<<else>>[[drink it|hyper]]<<endif>>\n* <<print "[[nevermind|" + $_back + "]]">>\n<<else if $_i == "tranquilizer">>\nYou get out a tranquilizer.\n* <<if $barret.status === "dazed">>==drink it== already dazed<<else>>[[drink it|tranquilizer]]<<endif>>\n* <<print "[[nevermind|" + $_back + "]]">>\n<<else if $_i == "hi-potion">>\nYou get out a hi-potion.\n* <<if $barret.throat.cur < $barret.throat.max>>[[drink it|hi-potion throat]]<<else>>==drink it== throat HP max<<endif>>\n* <<if $barret.ass.cur < $barret.ass.max>>[[pour it into your ass|hi-potion ass]]<<else>>==pour it into your ass== ass HP max<<endif>>\n* <<print "[[nevermind|" + $_back + "]]">>\n<<else if $_i == "phoenix down">>\nYou hold a phoenix down in your hand. Its flames whisper across your skin. <span class="meta">(Phoenix downs are used automatically when you're KOed, and automatically restore you to 1/4th max health.)</span>\n\n* <<print "[[nevermind|" + $_back + "]]">>\n<<else>>\n{??? unknown item '<<print $_i>>'}\n(could be: GP, ether, carob nut)\n<<endif>>
You gulp down the potion.\n\nit soothes the rough burn in your well-used throat, leaving you feeling ready to get throatfucked more.\n<<print damage ($barret, $inventory, "throat", -100)>>\n<<print gainItem ($inventory, "potion", -1)>>\n\n<<print "[[-->|" + $_back + "]]">>
You uncork the potion and pour it into your ass.\n\nyou gotta lie on the ground, legs up in the air, and twist around so you can line up your good hand with your spread asshole. the potion is a little more viscous than water, and it tingles across your hairy taint as you spill it down the crack of your ass, gurgling as it pours into your puffy asshole. the healing energy stings as it works, buzzing all through your ass as it spills deeper inside you.\n\n<<print damage ($barret, $inventory, "ass", -100)>>\n<<print gainItem ($inventory, "potion", -1)>>\n\n<<print "[[-->|" + $_back + "]]">>
You gulp down the hi-potion.\n\nit soothes the rough burn in your well-used throat, leaving you feeling ready to get throatfucked more.\n<<print damage ($barret, $inventory, "throat", -500)>>\n<<print gainItem ($inventory, "hi-potion", -1)>>\n\n<<print "[[-->|" + $_back + "]]">>
You uncork the hi-potion and pour it into your ass.\n\nyou gotta lie on the ground, legs up in the air, and twist around so you can line up your good hand with your spread asshole. the potion is a little more viscous than water, and it tingles across your hairy taint as you spill it down the crack of your ass, gurgling as it pours into your puffy asshole. the healing energy stings as it works, buzzing all through your ass as it spills deeper inside you.\n\n<<print damage ($barret, $inventory, "ass", -500)>>\n<<print gainItem ($inventory, "hi-potion", -1)>>\n\n<<print "[[-->|" + $_back + "]]">>
You drink the hyper. It's bitter and chemical.\n\n<<if status ($barret) === "dazed">>A few seconds after swallowing it down, you feel a full-body flush, and the hazy, floaty feeling of being dazed dissipates from the rush of heat.\n\n<<print status ($barret, "normal")>>\n<<else>>A few seconds after swallowing it down, you feel a full-body flush: heart pounding in your chest, heat washing over your skin.\n\n<<print status ($barret, "horny")>>\n<<endif>>\\n\n<<print "[[-->|" + $_back + "]]">>
You drink the tranquilizer. It's smoky.\n\n<<if status ($barret) === "hyper">>it numbs your body, chasing away the burning head of horniness filling your body. for a moment, a chill runs through you, making your skin prick up into goosebumps.\n\n<<print status ($barret, "normal")>>\n<<else>>it numbs your body, making you feel dazed and floaty, like you're disconnected from your body. all the aches from your well-used throat and ass feel distant and far away, reduced to a pleasant-feeling throb.\n\n<<print status ($barret, "dazed")>>\n<<endif>>\\n\n<<print "[[-->|" + $_back + "]]">>
<<nobr>>\n<<set $bpTotal to 0>>\n<<set $barret to\n { name: "Barret"\n , ass: {cur: 32, max: 32}\n , throat: {cur: 32, max: 32}\n , limit: 0\n , status: "horny"\n , lvls:\n {\n }\n , slots:\n { ass: null\n , dick: null\n , throat: null\n }\n , cum:\n { face: []\n , ass: []\n , body: []\n }\n }>>\n<<set $inventory to {}>>\n\n<<set $cumslut to {lvl: 1, xp: 0}>>\n<<set $gape to {lvl: 1, xp: 0}>>\n<<set $exhib to {lvl: 1, xp: 0}>>\n<<set $ass to {cur: 32, max: 32}>>\n<<endnobr>>
<div class="uibox"><<print parameter(0)>>\n“<<print parameter(1)>>”</div>
window.dialog = function (who, text) {\n return ('<div class="uibox">'+ who + '<br/>' +\n '“' + text.join('<br/>') + '”</div>')\n};
<<nobr>>\n<<set $gape.xp += 1>>''Gained gape XP!''\n<<if $gape.xp >= [1, 2, 3, 4, 5, 6][$gape.lvl]>>\n<<set $gape.lvl += 1>>''Gape level up!''\n<<set $gape.xp to 0>>\n<<endif>>\n<<endnobr>>
<<nobr>>\n<<set $cumslut.xp += 1>>''Gained cumslut XP!''\n<<if $cumslut.xp >= [1, 2, 3, 4, 5, 6][$cumslut.lvl]>>\n<<set $cumslut.lvl += 1>>''Cumslut level up!''\n<<set $cumslut.xp to 0>>\n<<endif>>\n<<endnobr>>
<<nobr>>\n<<set $exhib.xp += 1>>''Gained exhibitionist XP!''\n<<if $exhib.xp >= [1, 2, 3, 4, 5, 6][$exhib.lvl]>>\n<<set $exhib.lvl += 1>>''Exhibitionist level up!''\n<<set $exhib.xp to 0>>\n<<endif>>\n<<endnobr>>
You're Barret. Barret Wallace. Big black guy, broadly muscled, big flaming skull tattoo all over your left shoulder and bicep. Hair in a low fade, chiseled jaw a mess of coarse stubble. Some shrapnel scars across your right cheek, slicing down over your jaw. Hairy chest. Hairy most everywhere, actually, in tightly-coiled curls of dark hair. Silver ring through your left ear. Right arm replaced with a gatling-gun just below the elbow.\n\n<<if lvl ($barret, "exhibitionist") === 0>>you're fully dressed.\n<<else if lvl ($barret, "exhibitionist") === 1>>your clothes are torn and scuffed, showing off strips of your bare chest and thighs, and the seat of your pants has been torn apart, revealing slivers of your bare ass as you walk.\n<<else if lvl ($barret, "exhibitionist") === 2>>your clothes have been shredded apart into tatters, only held in place by the more robust leather and metal of your belts around your thighs, chest, and forearms. your bare skin is on display: jacket and shirt discarded, showing off your muscled, hairy chest; the shreds of your pants only cling to your belted thighs, letting your cock and balls hang out, bare ass on display for easy access.\n<<else if lvl ($barret, "exhibitionist") === 3>>you're stripped down to only belts and boots: glossy brown leather straps wrapped around your midriff, thighs, and forearms, with a single bracer on your good arm. other than that, you're entirely naked: hairy ass on display, skin bare of any clothing\n<<else if lvl ($barret, "exhibitionist") gte 4>>you're bare-ass naked save for you dog tags. your bare feet squelch on the floor, cum-glazed, and the cool night air billows all over your naked body. your cock is perpetually half-hard, jutting out over your heavy balls.\n<<endif>>\\n\n<<if lvl ($barret, "gape") === 0>>your asshole is still tight, but the night is young.\n<<else if lvl ($barret, "gape") eq 1>>your asshole is fucked open, and it slips against itself as you walk.\n<<else if lvl ($barret, "gape") eq 2>>your ass is slack and open after taking {some knots / some tentacles}, and your hole is a fat mound swollen between your cheeks\n<<else if lvl ($barret, "gape") eq 3>>your ass is a broken-open mess, with your fat asslips swollen into a big rubbery pout, drooping over themselves to show off the flushed red meat of your guts\n<<else if lvl ($barret, "gape") eq 4>>your ass is unfurled in a fat meaty blossom, and your guts peek out in a heavy rosebud, rhythmically spilling out of your ass and slurping back inside as you walk\n<<else if lvl ($barret, "gape") gte 5>>your ass is a sloppy, ruined mass of meat after taking so much {monster cock}. when you bend over, your guts automatically spill from your body, forming a fat lumpy tail that smacks against the backs of your thighs. even when you stand up straight, your prolapse still peeks out between your cheeks in a florid mound of raw red flesh.\n<<endif>>\\n\n<<if lvl ($barret, "cumslut") === 0>>nobody's dumped their loads on or in you yet.\n<<endif>>\\n<<print $barret.cum["face"].map(a => {\n switch (a) {\n case "red xiii":\n return "a mess of Red XIII's glowing cum, thin and translucent, is smeared all over your face, forming slimy cords oozing down your neck and over your chest.";\n default:\n return "";\n }\n }).join(' ')>>\\n<<print $barret.cum["body"].map(a => a).join(' ')>>\\n<<print $barret.cum["ass"].map(a => {\n switch (a) {\n case "cloud":\n return "Cloud's mako-infused cum burns inside you, squelching and slurping as it burbles out over your puffy asshole and spills down your legs, painting them in streams of strange, dimly-glowing white-blue cum.";\n default:\n return "";\n }\n }).join(' ')>>\\n\n<<if $barret.slots["throat"]>>\n\n<<print (function (mat){\n switch (mat) {\n case "underwater":\n return "somebody's shoved an underwater materia down your throat. it's buzzing against your tonsils. now you don't need to breathe, and your throat can used to its fullest.";\n case "hp absorb":\n return "somebody's shoved a hp absorb materia down your throat. it's buzzing against your tonsils. every time somebody cums in your mouth, you absorb some hp."\n case "hp plus":\n return "somebody's shoved a hp plus materia down your throat. it's buzzing against your tonsils. max throat hp up for as long as it's inside you."\n default:\n return "";\n }\n })($barret.slots["throat"])>> <span class="meta">(<<print matDesc ($barret.slots["throat"])>>)</span>\n<<endif>>\n<<if $barret.slots["ass"]>>\n\n<<print (function (mat){\n switch (mat) {\n case "chocobo lure":\n return "somebody's shoved a chocobo lure materia up your ass. you can feel it pulsing, calling out for you to be bred by chocobo cocks.";\n case "enemy lure":\n return "somebody's shoved an enemy lure materia up your ass. you can feel it pulsing, calling out for you to be bred by monster cocks.";\n case "long range":\n return "somebody's shoved a long range materia up your ass. there's a cocksleeve somewhere with the paired materia that somebody's using; you can feel their phantom cock ruthlessly pumping in your guts, right now. fresh loads of strangers' cum continually gush from your ass as each one finishes and trades around the sleeve with your ass in it."\n case "hp absorb":\n return "somebody's shoved a hp absorb materia up your ass. every time somebody cums in your ass, you absorb some hp."\n case "hp plus":\n return "somebody's shoved a hp plus materia up your ass. max ass hp up for as long as it's inside you."\n default:\n return "";\n }\n })($barret.slots["ass"])>> <span class="meta">(<<print matDesc ($barret.slots["ass"])>>)</span>\n<<endif>>\\n<<if $barret.slots["dick"]>>\n\n<<print (function (mat){\n switch (mat) {\n case "seal":\n return "somebody's shoved a seal materia down into your fat, fleshy foreskin. now your dick is untouchable, wrapped up tight in a sensationless mound of glowing magical force.";\n case "lightning":\n return "somebody's shoved a lightning materia down into your fat, fleshy foreskin. it jolts and shocks you erratically, forcing you to continually leak a slimy mix of cum and pre.";\n case "manipulate":\n return "somebody's shoved a manipulate materia down into your fat, fleshy foreskin. now any time anybody commands you to cum, you cum instantly, on cue."\n case "final attack":\n return "somebody's shoved a final attack materia down into your fat, fleshy foreskin. every time your ass or throat hp is exhausted, you cum explosively."\n case "mimic":\n return "somebody's shoved a mimic materia down into your fat, fleshy foreskin. every time somebody cums in or on you, you cum too."\n\n case "phoenix":\n return "somebody shoved a phoenix materia down into your foreskin, transforming your cock into a fat, pulsing cloaca. the materia is still lodged deep inside your new slit, buzzing away."\n case "shiva":\n return "somebody shoved a shiva materia down into your foreskin, transforming your cock into a flushed, purplish cunt. the materia is still lodged between your lips, buzzing away against your huge, bulging clit."\n case "choco/mog":\n return "somebody shoved a choco/mog materia down into your foreskin, transforming your cock into a prehensile chocobo cock: a fat pink length like a smooth tongue, that grows thicker the further down it goes, until at the very base -- slurping back and forth through your new slit, with the materia itself buzzing inside it -- it's broader than your gatling gun."\n case "ifrit":\n return "somebody shoved an ifrit materia down into your foreskin, transforming your cock into a duplicate of ifrit's: a leathery, orange-skinned cock, easily wrist-thick and over a foot long, with equally giant balls beneath. the materia itself is inset in a cock-ring bangle wrapped around the base of your cock, pushing your gigantic balls forward and keeping your cock perpetually-hard."\n case "kjata":\n return "somebody shoved a kjata materia down into your foreskin, transforming your cock into a duplicate of kjata's: a monstrous, bestial boar cock, a thick as your forearm, in a sheath of prickling brown hair. the real thing on display is your balls: a pair of fat pig balls, almost perfectly circular, each one bigger than your head, and so heavy it aches to walk. they hang down to your knees, filling the space between your legs, and they jostle and lurch with every step. the materia is still buzzing inside you, shoved deep down inside your bulging sheath."\n case "titan":\n return "somebody shoved a titan materia down into your foreskin, transforming your cock into a duplicate of titan's. you honestly don't notice much difference: cock still bulky, brutally fat, with a pair of low-hanging balls. the skin tone's all wrong, lighter rather than darker than the rest of your skin, and your pubes and the hair across your balls is white and straight, not curled at all. the materia itself is still buzzing inside your fat, fleshy foreskin.";\n case "bahamut":\n return "somebody shoved a bahamut material down into your foreskin, transforming your cock into a duplicate of bahamut's: a pair of huge, black-purple hemipenes, covered in stiff spurs webbed together by taut arcs of raw, blue-purple flesh. your balls are stored inside you, so huge and lumpy they bulge out against your hairy taint, aching inside you like two extra prostates. the materia itself gleams from its position pinned between your twin cocks."\n default:\n return "";\n }\n })($barret.slots["dick"])>> <span class="meta">(<<print matDesc ($barret.slots["dick"])>>)</span>\n<<endif>>\\n<<if $barret.status === "horny">>\nyou're feeling particularly hot and horny right now. your body burns with heat. <span class="meta">(you take 10% more ass & throat damage, & your limit gauge charges twice as fast)</span>\n<<else if $barret.status === "dazed">>\nyou're feeling floaty and disconnected, and your body pleasantly throbs. <span class="meta">(you take 20% less ass & throat damage, & your limit gauge charges half as fast)</span>\n<<endif>>\n\n<<print "[[<--|" + $_back + "]]">>
Everybody else is settling in for the evening, but you got an itch you need to scratch. You're horny as hell and you need somebody to fuck you.\n* [[Check in on Cloud|cloud start]]\n* [[Check in on Red XIII|red xiii start]]
You barge into Cloud's room.\n\n<<dialog "Barret" "Gimmie your dick.">>\nYou send him sprawling back on his bed, cock already tenting his pants. his mako-infused cock is enormous: jutting up like a flagpole, utterly gigantic on his otherwise-lean frame, sheathed in a mass of pulsating, glowing veins.\n\nyou straddle him, giant knees braced on either side of his lean body. His cockhead scrapes across your muscular asscheeks, and you roll your hips, pinning his cock in place and letting you sink his whole length into you, easy. it burns inside you, unnaturally hot; each drizzle of pre leaves sizzling marks along the inner walls of your ass.\n\n<<print damage ($barret, $inventory, "ass", 4)>>\nyou mercilessly ride him, only focusing on the way his fat cockhead knocks against your guts, plunging your ass down on his fat shaft over and over. you're nowhere near done the first time he bucks and groans, hosing your guts down with a heavy load of burning, mako-tainted cum. you milk load after load out of him until he's in a fucked-out haze, eyes rolling back in his head as you work his sloppy shaft, a wet //crack// sounding every time you hilt his cock, cum squirting out over your bruised and glossy asslips.\n\n<<print damage ($barret, $inventory, "ass", 8)>>\nyou leave him sprawled out on the bed, his cock slowly shrinking, still glazed in his glowing-blue mako-infused cum. cum drools from your ass, spilling down the backs of your thighs in sloppy trails.\n\n<<dialog "Cloud" "Uhnnn....">>\n<<print gainXPGroup ($barret, "gape", 1, "cumslut", 2)>>\n<<set $barret.cum.ass.push ("cloud")>>\\nthat didn't scratch your itch at all. you need something more. you head out into the golden saucer, not bothering to get cleaned up at all.\n\n<<print gainItem ($inventory, "potion", 2)>>\nyou swipe some of cloud's potions as you go. you'll need them eventually.\n\n[[-->|ghost square]]
You barge into Red XIII's room.\n\n<<dialog "Barret" "Gimmie your dick.">>\nRed XIII bares his teeth at you, his fat sheath already swelling fatter as his cock unsheathes. he mounts your face against the side of his bed, smacking your face with his giant glowing-red animal dick. The surface is covered in rubbery barbs that scrape all across your cheeks, leaving behind stinging lines.\n\n<<print damage ($barret, $inventory, "throat", 3)>>\nHe rears back, lining up his sharp cockhead against your lips, and shoves inside, battering his cock against your tonsils and plunging down your throat with a single brutal thrust. when he pulls back, all his barbs latch into the soft flesh of your throat and tear their way back up, making you retch and gag, gurgling around his cockhead before he reverses direction and plunges even deeper, brutally fucking your throat.\n\n<<print damage ($barret, $inventory, "throat", 9)>>\nyou gurgle and gag on his cock, depraved squelches filling the room as he mercilessly pounds your throat. his steaming pre squirts from your nose and mouth, forming a slimy mess spilling down your neck and all over your pillowy pecs. his huge, swaying balls wetly crack against you body, fat and heavy enough to feel like punches.\n\n<<print damage ($barret, $inventory, "throat", 9)>>\nhe crams his entire cock down your throat, snarling and growling each time your throat convulses around his huge animal cock. he bashes your face against his taut sheath, each //smack// peeling his furry sheathflesh over his turgid knot, until the full thing lurches out into the open with a wet pop and a splatter of slimy ooze. he grinds it against your lips, rank and steaming. his barbs tear up your throat, sawing back and forth as he fucks you with the last inch of his cock.\n\n<<print damage ($barret, $inventory, "throat", 9)>>\nhe roars, bashing his fat knot against your bruised lips, and dumps his glowing load down your throat. you gag and retch, cum squirting from your nose and pouring all down your chest in a sloppy mess as he keeps cumming, dumping a huge load straight down into your stomach.\n\nhe pulls out with a brutal, tearing withdraw, leaving your throat burning and your breath steaming, lips bruised and swollen, face and chest a dripping mess.\n\n<<dialog "Red XIII" "Maybe next time, you'll be able to take my knot.">>\n<<print gainXPGroup ($barret, "throat", 1, "cumslut", 2)>>\n<<set $barret.cum.face.push ("red xiii")>>\\nhe looks you over:\n<<dialog "Red XIII" "Here, take this. You'll need it.">>\n<<print gainItem ($inventory, "potion", 4)>>\nthat wasn't enough for you. you need something more. you head out into the golden saucer, not bothering to get cleaned up at all.\n\n[[-->|ghost square]]
!GHOST HOTEL\n* [[take a break in yr room|room]]\n/% * talk to [[barret]] %/\n* ==talk to [[red xiii]]==\n* ==talk to [[the zombie butler]]==\n* ==talk to [[the desk clerk]]==\n* [[head out of the ghost hotel|ghost square]]
he's a guy in a cheap rubber zombie mask. you blow him and then jerk him off so he blows his load all over your face\n<<cumup>>\n<<exhibup>>\n\n[[-->|ghost hotel]]
the desk clerk is a hunchbacked goblin. when you approach the desk, mr. hangman drops from the ceiling with a screech.\n\nyou blow mr. hangman's giant engorged cock while you ride the goblin's fat knobbled dick.\n <<if $gape.lvl lt 2>> <<gapeup>> <<endif>>\n <<if $cumslut.lvl lt 3>> <<cumup>> <<endif>>\n <<if $exhib.lvl lt 4>> <<exhibup>> <<endif>>\n\n[[-->|ghost hotel]]\n/%
you talk to barret & end up giving him a hj while he shoves his tongue down yr throat\n<<if $cumslut.lvl lt 3>><<cumup>> <<endif>>\n\n[[-->|ghost hotel]]\n%/
you talk to red xiii and end up letting him hump yr leg until he paints yr front in his load\n <<if $cumslut.lvl lt 3>><<cumup>> <<endif>>\n\n[[-->|ghost hotel]]
<<display either ("room j/o", "room j/o", "room j/o", "room cloud", "room red xiii")>>\n<<if $barret.ass.cur lt $barret.ass.max>><<print damage ($barret, $inventory, "ass", -9999)>><<endif>>\n<<if $barret.throat.cur lt $barret.throat.max>><<print damage ($barret, $inventory, "throat", -9999)>><<endif>>\nFeeling restored, you head back out.\n\n* [[get up|ghost hotel]]
You sprawl down on your bed, body aching. {You're cum-slathered, staining the sheets.} {Your bruised, swollen gape aches.} {Your throat burns from being facefucked.} <<if $barret.status === "horny">>\\nYour whole body is flooded with heat, burning across your skin in rippling waves, making your nipples stiff and your cock jut up hard.<<else if $barret.status === "dazed">>\\nYour whole body feels floaty, hazy, not-there, even through the aches and pains. You're a little surprised when you look down and see your cock, ramrod-hard, jutting up from your crotch.<<else>>\\nThe well-used feeling rushes through you. Your cock throbs between your thighs, each heartbeat making its veins flutter, sluggishly fattening against your thigh until it gets hard enough to peel off your {cum-glazed/sweaty} skin and jut straight up in the air.\n<<endif>>
<<display "room settle intro">>\n\nYou wrap your hand around your cock, pumping it in steady strokes. You leak a lot, pre spilling down your fat shaft, drizzling across your fingers, and you pull your hand back, licking across your knuckles to taste the salty tang of your own pre{, mixed in with all the cum splattered across your hands: {...}}.\n\nYour cock throbs harder, steadily oozing down your shaft to smear into your curly pubes, and you get back to business: fist wrapped around your cock, body throbbing as you start fucking up into your sloppy grip, gushing spurts of pre all across your chiseled belly. You fuck your hand, cheap bed rattling, and your breath turns into snarling grunts, gun-arm braced across the bed as you fuck your hand, snorting and grunting with each lewd //crack// of skin-on-skin.\n\nYou cum with a groan, entire body shuddering as you hose yourself down with your load, aiming your cock so you splatter thick, milky-white cords of cum all up your stomach and chest. The second shot pegs you in the face, salty cum drooling into your open mouth, and you groan, sloppily swallowing it down, imagining it's somebody else doing the cumshot all over you.\n\n<<set $barret.cum.body.push("barret")>>\\nCum drools down your shaft, all across your fingers, and you peel your hand off your cock, hungrily lapping up the strands of cum between your fingers. Your cock smacks against your thigh, oozing out the last dregs of your load down to your knee.
<<display "room settle intro">>\n\nSomebody knocks on the door and then pushes it open before you can respond. Normally you'd be pissed off, but it's Cloud, and judging by the lump in his pants he's gotten a second wind.\n\n{...} {cloud fucks you (again)}
<<display "room settle intro">>\n\nThe door swings open and Red XIII steps into the room. He leers, tail whipping behind him, as he sees you spread out on your bed{, naked and cum-drenched}.\n\n{...} {red xiii fucks you}
<<set $date to ["barret", "red xiii"][Math.floor (Math.random() * 2)]>>\\n<<print $date>> barges into the room and takes you out.\n* he takes you to [[event square|event square date]]
-> lol fucked by the knight, the dragon, or the king\n* after that he takes you to [[round square|round square date]]
<<if $date eq "barret">>\\n-> you ride his dick in the gondola and once the gondola stops he gets you on yr knees and fucks you more while the attendant watches\n<<exhibup>>\n<<else if $date eq "red xiii">>\\n-> he fucks and knots you in the gondola and once the gondola stops he drags you out of the gondola and all the way through the plaza before his knot bursts free\n<<exhibup>>\n<<endif>>\n* after that you head back to the [[ghost hotel]]
<ul><<print (function (where, verb){\n let locations =\n {/* terminal: "==head back to the [[terminal floor]]=="\n , */ghost: "take the " + verb + " to [[ghost square]]"\n ,/* event: "==take the " + verb + " to [[event square]]=="\n , round: "==take the " + verb + " to [[round square]]=="\n , */wonder: "take the " + verb + " to [[wonder square]]"\n ,/*speed: "==take the " + verb + " to [[speed square]]=="\n ,*/ battle: "take the " + verb + " to [[battle square]]"\n , chocobo: "take the " + verb + " to [[chocobo square]]"\n };\n return (Object.keys (locations)\n .filter (k => k !== where)\n .map (k => '<li>' + locations[k] + '</li>')\n .join (""));\n })($location, $verb)>></ul>
!TERMINAL FLOOR\nyou're out for a night at the gold saucer.\n* ==head back to the [[ropeway station]]==\n<hr>\\n<<set $location to "terminal">><<set $verb to "chute">><<display "connectors">>
!ROPEWAY STATION\n* talk to the [[chocobo mascot]]\n* head to the [[terminal floor]]
!GHOST SQUARE\nit's a foggy dirt path, surrounded by scraggly dead trees. there's an ornate mansion on a hill, with an enormous, larger-than-life moon brilliantly illuminating the scene.\n* head to the [[ghost hotel]]\n<hr>\nthere's a collection of open graves in front of the building, with each headstone inscribed with the name of another square.\n<<set $location to "ghost">><<set $verb to "grave">><<display "connectors">>
!EVENT SQUARE\n\noutside of the date, watch some super pornographic play where the cast is auctioned off to the audience at the end\n<hr>\\n<<set $location to "event">><<set $verb to "doorway">><<display "connectors">>
!ROUND SQUARE\n\noutside of the date, take red xiii, barret, or cait sith (or others??) on a gondola ride and blow them or smth\n* blow the ticket attendant while he's taking tickets + have some guy taking the gondola ride notice and buy an extra ticket so you can blow him while he's riding the gondola\n<hr>\\n<<set $location to "round">><<set $verb to "archway">><<display "connectors">>
!WONDER SQUARE\nthere's a resting area below a giant arcade filled with glimmering lights.\n* <<if !$caitIntroduced>>there's a [[big animatronic moogle|cait sith]] here<<else>>talk to ==[[cait sith]]==<<endif>>\n* head into the [[arcade|wonder games]]\n<hr>\\nthere's a series of labeled holes curving along the edge of the area.\n<<set $location to "wonder">><<set $verb to "hole">><<display "connectors">>
!SPEED SQUARE\nfirst time yr here -> dio is here & you can talk to him (about the keystone?) and then he fucks you\n* there's a [[huge man dressed only in a tight red speedo|speed dio]] standing around\n\n* perform as a shooting coaster target where people launch billiard balls at yr propped-open gape and then afterward you gotta squirt the balls out so they can count their score. getting a hi score ball in you means they get to fuck you afterwards\n<hr>\\n<<set $location to "speed">><<set $verb to "doorway">><<display "connectors">>
!BATTLE SQUARE\na dark checkerboard floor lit up by spotlights, with a royal purple carpet unrolled down the stairs leading to the arena itself\n* the [[arena]] is ahead, up the stairs\n* dio's show room is to the right\n* there's a [[terminal|battle terminal]] to redeem battle points\n<hr>\\n<<set $location to "battle">><<set $verb to "doorway">><<display "connectors">>
!CHOCOBO SQUARE\n<<display "chocobo stats">>\\n* [[bet on chocobo races]]\n* talk to the guy betting on chocobo races\n* talk to the staff security guard\n<<if $barret.slots.ass === "chocobo lure">>\n* perform in some chocobo races\n** 'chocobo ride' where six guys line up to get fucked by chocobos and the one who lasts the longest wins\n** 'chocobo frenzy' where one guy (you) is buckled up in a breeding chair & a bunch of chocobos fuck you, more and more intensely, w/ red & then black chocobos until the last one is a giant golden chocobo; you get a prize based on how far you go\n** 'chocobockle' where they just kick you into a pen full of horny chocobos\n<<endif>>\n<hr>\\n<<set $location to "chocobo">><<set $verb to "tunnel">><<display "connectors">>
You look at the man, and he turns to face you. He's a hugely-muscular bodybuilder, with a broad chest that's coated in a mess of tightly-curled hair, entirely covering his front, fanning out down his stomach. His trunks are red and gold, bulging and protruding out from his front in a way that must be on purpose.\n\n<<dialog "Man" "Hey boy.">>\n\n<<dialog "Barret" "Boy?!">>\n\n<<dialog "Man" "How is it? You having fun?">>\n\n<<dialog "Barret" "Could be more exciting.">>\n\nThe man lets out a laugh.\n\n<<dialog "Man" "Mmm, such a saucy personality! Well, good, good for you boy.">>\n\n<<dialog "Barret" "Saucy?!">>\n\n<<dialog "Man" "If my Golden Saucer has failed to entertain you, then I, Dio, must be the perfect entertainer!">>\n\nHe looks you up and down, grinning at the cum-stains <<if $barret.cum.body.length > 0>>all over your body<<else if $barret.cum.face.length > 0>>smeared across your face and chest<<else if $barret.cum.ass.length > 0>>spilling down your thighs<<endif>>.\n\n<<if lvl ($barret, "throat") > lvl ($barret, "gape")>>\\n<<dialog "Dio" "Kneel.">>\nDio hefts his bulge, groping and tugging on the soft flesh, and you automatically fall to your knees before him. he hauls out his cock, waistband snapping tightly below his balls, letting out his absolute monster of a cock -- even soft, it's past wrist-thick, spilling down over his orange-sized balls in a heavy, drooping arch that leaves his fat cockhead hanging mid-thigh. he doesn't touch himself: he grabs your head and pulls you forward, mashing your face against his cock. you open wide, sucking\n<<else>>\n<<dialog "Dio" "Present yourself.">>\n\n<<endif>>\n\n[[-->|speed square]]
you let the guy in the mascot suit fuck you on all fours in the middle of the station\n <<if $exhib.lvl lt 5>><<exhibup>> <<endif>>\n\n[[-->|ropeway station]]
!WONDER SQUARE, ARCADE\nit's a games arcade in a circular building, divided up into passages between the various cabinets and consoles.\n* cabinets for [[DEEP PUNCH]] and ==[[DEEP THRUST]]== are set up right next to each other\n* three ==[[HOLE CATCH]]== booths are set up along the wall\n\n* there's an arcade desk where you can [[trade GP for items|wonder trade]].\n\n-> basketball game where u throw balls into people's spread assholes\n-> mog house where u get big nuts fisted up yr asshole\n[[-->|wonder square]]
{u can also blow the trade attendant, who's wearing a translucent visor and some brightly-colored shabby uniform, etc}\n\n* <<if hasItem ($inventory, "GP", 1)>>[[potion|wonder buy][$_buy = "potion"; $_cost = 1;]]<<else>>==potion==<<endif>> (1 gp)\n* <<if hasItem ($inventory, "GP", 5)>>[[hyper|wonder buy][$_buy = "hyper"; $_cost = 5;]]<<else>>==hyper==<<endif>> (5 gp)\n* <<if hasItem ($inventory, "GP", 5)>>[[tranquilizer|wonder buy][$_buy = "tranquilizer"; $_cost = 5;]]<<else>>==tranquilizer==<<endif>> (5 gp)\n* <<if hasItem ($inventory, "GP", 10)>>[[hi-potion|wonder buy][$_buy = "hi-potion"; $_cost = 10;]]<<else>>==hi-potion==<<endif>> (10 gp)\n* <<if hasItem ($inventory, "GP", 20)>>[[ether|wonder buy][$_buy = "ether"; $_cost = 20;]]<<else>>==ether==<<endif>> (20 gp)\n* <<if hasItem ($inventory, "GP", 300)>>[[carob nut|wonder buy][$_buy = "carob nut"; $_cost = 300;]]<<else>>==carob nut==<<endif>> (300 gp)\n* <<if hasItem ($inventory, "GP", 1000)>>[[hp absorb|wonder buy][$_buy = "hp absorb"; $_cost = 1000;]]<<else>>==hp absorb==<<endif>> (1000 gp)\n* <<if hasItem ($inventory, "GP", 2000)>>[[hp plus|wonder buy][$_buy = "hp plus"; $_cost = 2000;]]<<else>>==hp plus==<<endif>> (2000 gp)\n\n[[<--|wonder games]]
you trade <<print $_cost>> GP for a <<print $_buy>>.\n<<print gainItem ($inventory, $_buy, 1)>>\n<<print gainItem ($inventory, "GP", $_cost * -1)>>\n[[-->|wonder trade]]
it's like [[DEEP THRUST]], only for fists. it's a large cabinet, with a raised platform inside it at around mid-thick level, where the player stands on, facing outward. there's a huge silicone fist mounted in the center, with outlined sensors for your feet on either side, and metal crash-rails on the inner walls to hold on to. it's in attract mode, and the fist is shallowly wiggling side-to-side, revealing the piston mount beneath it.\n\nthe colorful poster on the side of the booth outlines the rules: there's five difficulty modes, from 'first-timer', through 'easy-going', 'rough ride', and the titular 'deep punch', all the way to 'blooming rose'. stay on the first through the entire ride and you get a prize; after each set you have the option to go again at the same difficulty (left button, blue) or jump up to the next difficulty (right button, red) for additional points. any time your feet move off the sensors, you lose and get whatever prize you've earned up to that point.\n\n<<set $punchPrize to 0>>\\n* ==play on 'first-timer'== too easy; you're not interested\n* [[play on 'easy-going'|punch easy]]\n* [[play on 'rough ride'|punch rough]]\n* [[play on 'deep punch'|punch deep]]\n* ==[[play on 'blooming rose'|punch rose]]==\n* [[<--|wonder games]]
you haul yourself up into the booth and plant your {booted/bare} feet on the sensors, lighting them up. the digital counter in front of the booth, between your feet, lights up, showing your score of <<print $punchPrize>>. the big rubber fist presses forward, solid and girthy as it drags over your hairy ass-cheek, leaving behind a streak of slick lube. you slot it up against your hole, bearing down to let it sink inside you. its rubbery knuckles squish and shift as the piston rolls up, squelching up into your open guts.
<<display "punch mount">>\n\nit really is easy going. the piston rolls gently, knocking against your prostate, and you groan and squat deeper, forcing yourself down past the wrist: eyes closed, mouth open, groaning from the smooth pressure. your cock shudders between your thighs, fattening up into full hardness. your hard cock juts out between your thighs, fleshy foreskin half-pulled back, revealing your dark purple cockhead and your fat, rumpled cocklips. slick pre burbles out, spilling down your shaft and coating your fleecy balls in a slimy spill of pre as you rock yourself on the heavy, soft fist inside you.\n<<print damage ($barret, $inventory, "ass", 2)>>\n<<display "punch easy options">>
you hit the blue button, telling the booth to repeat the cycle. you fuck yourself down on the fist as it rocks up, fat asshole lewdly slurping and gulping as you clench around the thick, muscular forearm of the silicone fist.\n\n<<if !$_punch>>your cock sways between your thighs, slinging cords of pre across the booth, hooking out over the rim and splattering on the floor in front. you focus on the slick, easy push of the fist inside you, clenching and pulling. the flat impact of the fist's curled knuckles bashes against your inner walls, each one sending ripples of pleasure through your entire body. you groan, deep and guttural, and your cock throbs more, leaking a steady stream of pre onto the booth, sloppy and wet spilling over the plastic deck.<<set $_punch to 1>>\n<<else if $_punch == 1>><<display "punch easy climax">>\n<<else if $_punch == 2>><<display "punch easy flaccid">>\n<<endif>>\n<<print damage ($barret, $inventory, "ass", 3)>>\n<<display "punch easy options">>
your cock throbs, heat gathering across your throbbing length as you fuck yourself on the fat fist. your shaky breaths turn into deep groans as you rock down onto the fist, steadily hammering away inside you. your cock, untouched, lurches up, flexing hard, and you cum with a bellow, spraying thick white lines of cum all across the floor in front of the booth. the fist plunges away inside you, each lewd //smack// as it crashes against your inner walls forcing out another spray of cum, and you sag forward, nearly toppling off the sensors before you right yourself. the machine fucks the cum out of you, huge squirts turning into sloppy gushes, then into a slimy drool of cum all over the surface of the booth, squelching under your feet.<<set $_punch to 2>>
your cock softens between your thighs, dripping with your load. your fat, fleecy balls smack against your calves as you squat onto the fist. you're sheened with sweat and cum: dripping down your sides, making the dark flesh of your soft cock gleam. your hole throbs, ring sloppy and bruised, squelching and slurping when you squeeze down on the fist rolling inside you.<<set $_punch to 0>>
<<print gainXPGroup ($barret, "gape", 1, "exhibitionist", 2)>>\n<<if limitbreak ($barret)>>\\n<<display "punch easy limit">>\n<<else if health ($barret, "ass") gt 0>>\\n<<set $punchPrize += 1>>\nbefore you know it, the cycle is done. a tinny horn sound effect plays, and the fist inside you stills, before the buttons on the left and right walls of the light up. the counter display between your feet says your score is <<print $punchPrize>>.\n* [[dismount and get your prize|punch prize]]\n* [[hit the left button to repeat the same cycle|punch easy repeat]]\n* [[hit the right button to jump up to 'rough ride' difficulty|punch rough repeat]]\n<<else>>\\n<<display "punch fail easy">>\n<<endif>>
<div class="limitbreak">limit break!</div>\n\nyou groan, gaping yourself wide open and slurping all the way down on the silicone forearm, until your ass meets the cabinet surface with a muffled //thud//. the fist continues to lurch inside you, whirring slightly louder from the extra resistance. the fist pops deeper into you, punching past your ass into your guts, sending an overwhelming bolt of sensation rushing through you. you rock down on it, loudly bashing your ass against the platform base, thighs burning as you swallow up the huge, bulky forearm of the fist. the abrupt rim of the molded silicone slops against your rubbery asshole, letting you feel the cold metal piston itself beneath, and you spread your knees wider, feet still planted on the sensor, as you smash your ass down on the fist over and over, chest heaving, sweat splattering across the flimsy stall walls.\n\nwhen the fist stalls inside you, cabinet playing its little tune, you immediately smash the blue button, repeating the cycle over again as you focus on the fist plunging its way through your guts. your hole gapes wide, slack and open as you fuck yourself on the huge, muscular forearm, grunting and groaning. when the fist stalls again, you slap the button again, over and over as you focus on the burning heat in your guts, the sloppy stretch of the clenched fist inside you.\n\nyour hard cock smacks against the console lip, each impact sending a burning jolt of pleasure/pain through your body. you snarl, hands gripping the crash bars hard as you haul yourself up, brutally fucking yourself on the lube-slimy fist, ramming yourself down on it over and over. you cum with a bellow, cock spraying out thick blasts of cum all across the floor. you rock on the fist as you cum explosively, body spasming around its thick girth, and your load dwindles shot after shot, until you're pissing out a slimy mess of opaque white cum, painting the surface of the cabinet and pouring down the front in a slimy stream.\n\n<<print gainXPGroup ($barret, "gape", 4, "exhibitionist", 4)>>\n\nyou collapse forward, sliding off the cabinet, and the fist yanks its way out of your guts, catching on your slack rim and pulling it inside-out, letting your guts blossom out in a fat prolapse as you spill down to your knees on the cum-covered floor. the machine behind you plays a little jingle; more coincidence than anything else, but you slumped off the machine after it had finished its cycle, so you technically won. coins clatter into the machine tray behind you, so many they bounce off each other and spill out, smacking against your ass and thighs. one of them slots itself into your gape, shockingly cold enveloped in your soggy gut flesh for a second, before the metal rapidly warms.\n\n<<set $punchPrize += 12>>\\nyou lurch up onto one foot, and then push yourself up, swaying. you're drenched in sweat and cum, broken prolapse sloppy with lube, with tacky, frothy ooze clinging tight to your gape, slowly spilling in creamy dollops over your stinging, bruised asslips.\n\nyou pick the scattered coins off the ground, using your good hand to slip your guts back into your body, peeling the single hot, slimy GP from the folds of your ass.\n\n<<print gainItem ($inventory, "GP", $punchPrize)>>\\n<<set $punchPrize to 0>>\\n[[-->|wonder games]]
<<display "punch mount">>\n\nthe fist lurches to life, immediately punching deep enough to knock the breath from your lungs with a sharp wheeze. this cycle digs in deep, fist hammering against the end of your ass, teasing its way into your sloppy guts, and then pulls back far enough for the crest of the hand to drag against your asshole, pouting out your fat asslips. you groan, rocking down on it as it punches up, entire body jolted by the solid mechanical force pistoning into you over and over.\n<<print damage ($barret, $inventory, "ass", 5)>>\n<<display "punch rough options">>
<<display drawRepeat (["punch rough repeat 1", "punch rough repeat 2"])>>\n<<display "punch rough options">>
the fist whirrs back to life, immediately punching deep into your guts. you let out a bass groan, squatting deeper to let it carve you open. the fist yanks back, churning through your ass with a wet crack. the fist constantly slops back and forth inside you, twisting around to tug your guts one way and then the other. your ass squelches obscenely, the silicone forearm emerging shining and sloppy with churned-up lube. the cycle is more erratic, lurching deeper and then jerking back to tease your fat, rubbery asshole with the stretch of its clenched fist.\n\nyou hold on, riding the fist, entire body pulsing with heat as it slams its way into your open guts over and over.\n<<print damage ($barret, $inventory, "ass", 6)>>
the fist whirrs back to life, solidly smacking into your loosened guts. you bellow, cock flopping between your thighs as you rut down onto the pistoning fist. it's a little too fast and rough for you to really get hard -- your cock throbs, lengthening into a heavy, turgid erection, but the brutal slam into your guts keeps you from getting fully hard, even as you groan and sink down deeper, trying to focus entirely on your ass getting wrecked. your half-hard cock slings slimy gushes of pre all across the booth front, hosing it down in liquid spurts.\n\nyou hold on to the handbars, bouncing and jolting on the fist inside you, entire body pulsing with heat as it plunges into your guts over and over.\n<<print damage ($barret, $inventory, "ass", 6)>>
<<print gainXPGroup ($barret, "gape", 3, "exhibitionist", 1)>>\n<<if limitbreak ($barret)>>\\n<<display "punch rough limit">>\n<<else if health ($barret, "ass") gt 0>>\\n<<set $punchPrize += 3>>\nthe cycle ends with you panting, bare skin sheened with sweat. a tinny horn sound effect plays, and the fist inside you stills, before the buttons on the left and right walls of the light up. the {cum:2: cum-glazed }counter display between your feet{cum:1: -- glazed with cum, now --} says your score is <<print $punchPrize>>.\n* [[dismount and get your prize|punch prize]]\n* [[hit the left button to repeat the same cycle|punch rough repeat]]\n* [[hit the right button to jump up to 'deep punch' difficulty|punch deep repeat]]\n<<else>>\\n<<display "punch fail easy">>\n<<endif>>
<div class="limitbreak">limit break!</div>\n\n{...}\n\n{...}\n<<display "punch prize">>
<<display "punch mount">>\n\nthe fist immediately slams deep into you, twisting as it pushes, and only stops once it slams into the end of your ass, rubbery knuckles digging into the opening of your guts. it punchfucks you brutally, drawing back to yank the clenched fist over your yawning asshole, only to immediately slam it back inside, driving deep into your ass, warping your hole around the fist's muscular forearm. you hold on tight, roaring as it shreds your ass. the pumping fist makes obscene wet sounds pounding into your ass, a continual burble of squelches and pops that overpowers even the mechanical //whirr// of the piston.\n\nyour entire body jolts as the fist twists inside you, lurching to the sides as it slams deep, punching in the prostate, bladder, kidneys, guts. you groan, throat open, breath knocked out of you in a sharp //whoof// as the fist slams in deep.\n<<print damage ($barret, $inventory, "ass", 16)>>\n<<display "punch deep options">>
the fist lurches back to life viciously, immediately slamming deep into your kidneys, and you groan and lurch forward, feet nearly rising off the sensors. it bucks and twists inside you, fist slamming deep and pulling back to tease the rim of your ass. you ride it, grunting and groaning.\n\nthe fist slams against your bladder, and you bellow, arcs of piss gushing from your half-hard cock, fucked out of you in a spraying stream as the fist slams into you over and over, punch-fucking the piss out of you as you writhe on the mount.\n<<print gainXPGroup ($barret, "pisspig", 3)>>\n<<print damage ($barret, $inventory, "ass", 19)>>\n<<display "punch deep options">>
<<print gainXPGroup ($barret, "gape", 9, "exhibitionist", 3)>>\n<<if limitbreak ($barret)>>\\n<<display "punch deep limit">>\n<<else if health ($barret, "ass") gt 0>>\\n<<set $punchPrize += 7>>\nthe fist eventually rattles to a stop inside you. the phantom-sensation of it jolting inside you carries on, guts punched to mush, shuddering and clenching around the bulky fist lodged deep inside you. your thighs burn and sweat pours down your body, dripping onto the {piss: piss-drenched} cabinet surface.\n\na tinny horn sound effect plays, and the buttons on the left and right walls of the light up. the counter display between your feet says your score is <<print $punchPrize>>.\n* [[dismount and get your prize|punch prize]]\n* [[hit the left button to repeat the same cycle|punch deep repeat]]\n* ==[[hit the right button to jump up to 'deep punch' difficulty|punch rose repeat]]==\n<<else>>\\n<<display "punch fail deep">>\n<<endif>>
<div class="limitbreak">limit break!</div>\n\n{...}\n\n{...}\n<<display "punch prize">>
<<display "punch mount">>\n\n{...}\n<<print damage ($barret, $inventory, "ass", 44)>>\n<<display "punch rose options">>
{...}\n\n<<print damage ($barret, $inventory, "ass", 48)>>\n<<display "punch rose options">>
<<print gainXPGroup ($barret, "gape", 12, "exhibitionist", 3)>>\n<<if limitbreak ($barret)>>\\n<<display "punch rose limit">>\n<<else if health ($barret, "ass") gt 0>>\\n<<set $punchPrize += 14>>\n{...}\n\n* [[dismount and get your prize|punch prize]]\n* [[hit the left button to repeat the same cycle|punch rose repeat]]\n* ==[[hit the right button to jump up to 'super x-treme' difficulty|punch extreme]]==\n\n<<else>>\\n<<display "punch fail rose">>\n<<endif>>
<div class="limitbreak">limit break!</div>\n\n{...}\n\n{...}\n<<display "punch prize">>
your ass is just too used. you groan and lurch forward, and the fist in your ass abruptly stops moving. a loud buzzer plays and the booth lights up with red lights. your feet slipped off the sensors.\n\n<<set $punchPrize to 0>>\\nyou lose! no prize awarded!\n\nyou shakily dismount, fist peeling free from your ass with a wet slurp, and slump down to your knees on the floor, panting. your hole is gaped and drooping, burning hot between your cheeks.\n[[-->|wonder games]]
{...}\n\n<<set $punchPrize to 0>>\\nyou lose! no prize awarded!\n\n{...}\n\n[[-->|wonder games]]
you haul yourself off the fist. it slurps out of you with a wet //pop//, leaving your hole cratered, sloppily gaping open.\n\ncoins clatter into the booth's tray beneath, your prize: <<if $punchPrize == 1>>a single coin<<else>><<print $punchPrize>> coins<<endif>>.\n<<print gainItem ($inventory, "GP", $punchPrize)>>\n<<set $punchPrize to 0>>\n[[-->|wonder games]]
it's like [[DEEP PUNCH]], only for dicks. there's a silicone dick mounted in the cabinet, with outlined sensors for your feet on either side, and metal hang-rails to hold on to on either side. it's in attract mode, showing off its multi-selection: the dick is piston-mounted, shallowly wiggling side-to-side, lube streaming down from the faux-cumslit at the tip, and every twenty seconds or so there's a //clunk// from within the machine and the current dildo sinks down into it, replaced with a differently-sized one. it's cycling through 'starter', so small it wouldn't be worth it; 'average', something a solid handspan in length and maybe three fingers thick; 'large', a giant floppy dildo easily over a foot in length and almost as thick around as your wrist; and 'expert', only an inch or two longer than 'large' but brutally-fat, looking almost thigh-thick.\n\nthe colorful poster on the side of the booth outlines the rules: if you manage to stay on it for the entire length of its cycle, you get a prize. after that, you start racking up a time-based multiplier, and if you max that out you automatically rank up to the next-sized dildo and the process starts over again. any time your feet move off the sensors, you lose and get whatever prize you've earned up to that point.\n\n* ==play on 'starter'== too easy; you're not interested\n* play on 'average'\n* play on 'large'\n* play on 'expert'\n* [[<--|wonder games]]
<<if !$caitIntroduced>>\\n<<display "cait sith first">>\n<<else if $brokeCaitSith>>\nthe robot appears fixed. or maybe it's a second robot.\n\n<<dialog "Barret" "How many of those robots you got?">>\n\nCait Sith sniffs.\n\n<<dialog "Cait Sith" "What, planning on breaking another one? You got a hungry ass, you know.">>\n\n<<dialog "Barret" "Just thinkin', if you got another spare there's no reason not to double-fuck me.">>\n\nCait Sith's big shiny eyes literally light up. It rubs its hands together.\n\n<<dialog "Cait Sith" "I think that can be arranged.">>\n\n{another sex scene where you get dped, 2-in-one-hole, by two giant moogle dolls}\n\n<<else>>\n<<dialog "Cait Sith" "Oh, you're back! Do you want your fortune told again?">>\nthe cat-moogle leers at you. you crack your knuckles.\n<<dialog "Barret" "I got a fortune for you. It's, 'you're gonna be ridden like the cheap dildo you are'">>\nyou kick the moogle over, so its already-unsheathed dildo-cock sticks straight up in the air, and you clamber on. the hard tip jabs against your ass, and you groan as it spreads you open.\n\n{slightly different opening before jumping back into it}\n\n<<display "cait sith general opening">>\n\n<<endif>>
<<set $caitIntroduced to true>>\\nit's a cheap-looking fat moogle animatronic robot. there's a visible seam in the faux-fur down its back. there's another, higher-quality cat-moogle robot perched on the first robot's shoulders. the fat moogle whirs to life and looks at you with its glowing eyes, but it's the smaller robot that speaks, in a chipper cartoony voice:\n<<dialog "Cait Sith" "Hi, I'm Cait Sith, the fortune-telling robot! Do you want your fortune told?">>\n<<dialog "Barret" "Sure, why not.">>\nthe big moogle robot holds its hands together and shakes them, doing a robotic little dance. the cat-moogle-thing perched on top holds on a lot more realistically. it pulls apart its hands with an explosion of confetti, revealing a scrap of paper, which it holds up to the small robot, who holds it in both hands, reading it out slowly.\n<<dialog "Cait Sith" "It says, your fortune is... 'What you seek is right in front of you.' Huh, I wonder what that could mean?">> The small robot quirks its head to the side, thinking.\n<<dialog "Cait Sith" "Oh, I know!">>\nit taps the big moogle on the shoulder, and there's another series of //whirrs// and //clunks// from inside its body. between its legs, on the undercarriage of its bulky body, its fur splits open and an enormous bumped dildo shoves out: hard plastic, hot pink. its surface is covered in bulging domes, evenly spaced along its entire surface.\n<<dialog "Cait Sith" "That means you need to get fucked, hard!">>\n<<dialog "Barret" "What the fuck--">>\n<<if lvl ($barret, "exhibitionist") < 1>>The robot grabs you by the legs and tosses you to the floor, tearing apart the seat of your pants with its iron-hard grasp, leaving your bare ass exposed. It lurches forward, hot-pink dildo pressing against your bare hole. it's slick and slimy with some machine lubricant.\n\n<<print gainXPGroup ($barret, "exhibitionist", 2)>>\n<<else>>The robot grabs you by the legs and tosses you to the floor, immediately stepping in to socket its cock against your already-exposed hole. it's slick and slimy with some machine lubricant.\n<<endif>>\n<<display "cait sith general opening">>
the giant moogle robot fucks you hard. its servos repeat the same thrust over and over with mechanical precision, utterly uncaring as you writhe and bellow on the plaza floor. it plows your hole open, hard plastic utterly unyielding inside you as it spreads you open.\n\n<<print damage ($barret, $inventory, "ass", 9)>>\n<<if limitbreak ($barret)>>\\n<<display "cait sith first limit">>\\n<<else if health ($barret, "ass") gt 0>>\\n<<display "cait sith first s1">>\\n<<else>>\\n<<display "cait sith first f1">>\\n<<endif>>\\n\n[[-->|wonder square]]
You find yourself begging and moaning, ass spasming around the cheap dildo as the moogle robot fucks you through a mind-melting series of anal orgasms. The thrusts get stronger, deeper, as the robot pins you more solidly under its bulk, until its thrust goes through its entire range of articulation: stiff cocktip peeling out between your bruised, rubbery asslips, entire shaft mercilessly plunging into your fucked-open guts until the cheap fur of its body presses against your upturned ass, letting you feel the stiff metal frame beneath. Cait Sith tears its cock from your guts with an obscene squelch, hole crackling from the sheen of lube as your bloated, bruised asslips spill over its hard bumps.\n\n<<print damage ($barret, $inventory, "ass", 13)>>\n<<if limitbreak ($barret)>>\\n<<display "cait sith first limit">>\\n<<else if health ($barret, "ass") gt 0>>\\n<<display "cait sith first s2">>\\n<<else>>\\n<<display "cait sith first f2">>\\n<<endif>>
<<print gainXPGroup ($barret, "gape", 3)>>\nIt's too much. You squirm and bellow, body shuddering around its mammoth dildo-cock, asshole aching and burning. Cait Sith laughs above you.\n<<dialog "Cait Sith" "That's all you could take? Looks like your eyes were hungrier than your hole!">>\n\nYou drag yourself off the fat moogle cock, fingers scrabbling on the smooth tiles, gun-arm screeching, and pant for breath, body drenched in sweat, hole limply collapsed over on itself.\n<<dialog "Barret" "Fucking crazy puppet...">>\nCait Sith grins at you. <<dialog "Cait Sith" "Come back again any time you need a good fucking!">>
You writhe on the ground, eyes rolled back into your skull, legs braced on either side of the fat moogle robot. You fuck yourself down on its cock, bellows and roars ripping out of your throat as the steady, brutal pump of its cock inside you makes your guts spasm and clench, pulsing in orgasm after orgasm, until your legs start to spasm so much all you can do is lie there and take it, a limp body with a mindless robot fucking into it endlessly.\n\nThere's a crowd forming around you, men staring as you're brutalized by a cartoon moogle: muscular legs spread around its stuffed body, abs bulging up each time Cait Sith hilts itself in you, streams of sweat dripping down your chest.\n\n<<print gainXPGroup ($barret, "exhibitionist", 2)>>\n<<print damage ($barret, $inventory, "ass", 18)>>\n<<if limitbreak ($barret)>>\\n<<display "cait sith first limit">>\\n<<else if health ($barret, "ass") gt 0>>\\n<<display "cait sith first s3">>\\n<<else>>\\n<<display "cait sith first f3">>\\n<<endif>>
<<display "cait sith first prolapse fail">>\nCait Sith looks down at you, grinning widely. The moogle robot is still, and always, grinning dumbly. Its cock juts out from its mounting, slathered with a foamy mass churned-up lube.\n<<dialog "Cait Sith" "We were just getting started! Well, come back any time you need a good fucking!">>
It's too much. You howl and bellow, broken asshole slurping, and the next time Cait Sith's cock pulls free your guts come with it, prolapsing out of your body in a fat, rubbery mound. Its cock jabs forward again, slamming into your soggy guts, and you squirm across the floor, chest heaving, body drenched in sweat. Cait Sith slams into your wrecked guts a few more times, letting your sloppy prolapse unfurl around its hot-pink cock, before whatever robot animation it's running through catches up and it stills, leaving you sprawled out on the floor, gasping for breath.\n\n<<print gainXPGroup ($barret, "gape", 4)>>
<<print gainXPGroup ($barret, "exhibitionist", 2, "gape", 1)>>\nCait Sith has hit its stride. the sharp, uncaring thrusts inside you transform into a haze, a phantom-sensation of the cock throbbing and pulsing inside you, hot from the heat of your guts. your inner flesh burns, raw and ravaged as you lay there and take it, weakly convulsing each time Cait Sith's monstrous dildo-cock buries itself deeply in your wrecked body. It's a machine; there's no way this will stop until your body gives out.\n\n<<print damage ($barret, $inventory, "ass", 20)>>\n<<if limitbreak ($barret)>>\\n<<display "cait sith first limit">>\\n<<else if health ($barret, "ass") gt 0>>\\n<<display "cait sith first sx">>\\n<<else>>\\n<<display "cait sith first fx">>\\n<<endif>>
<<display "cait sith first prolapse fail">>\n\nCait Sith looks down at you, grinning widely. The moogle robot is still, and always, grinning dumbly. Its cock juts out from its mounting, slathered with a foamy mass churned-up lube. <<dialog "Cait Sith" "You took that pretty well! Well, come back any time you need a good fucking!">>
<<display drawRepeat (["cait sith first sx piss", "cait sith first sx exhib", "cait sith first vibrator"])>>\n<<if limitbreak ($barret)>>\\n<<display "cait sith first limit">>\\n<<else if health ($barret, "ass") gt 0>>\\n<<display "cait sith first sx">>\\n<<else>>\\n<<display "cait sith first fx">>\\n<<endif>>
Cait Sith keeps fucking you. its servos groan and creak as it plunges the full length of its cock inside you, only to tear it back out again, over and over. You sob and whine, your cock flopping around, a slimy mess of pre and piss dribbling from the foreskin-sheathed tip as the hard tip scrapes through your guts, jabbing against your prostate, bladder. It's not even aiming for anything, as animate as a fucking machine, thrusting again and again in a loop.\n\n<<print gainXPGroup ($barret, "gape", 1, "pisspig", 1)>>\n<<print damage ($barret, $inventory, "ass", 25)>>
Cait Sith keeps fucking you. your body lurches from the force of its thrusts, back scraping over the plaza tiles. one of the men watching you whips out his dick and kneels in front of you. he smacks his fat cock against your face, smearing his pre over your sweaty skin before he shoves his bloated cockhead between your lips and starts humping away, fucking your face while cait sith is ruining your ass.\n\nthe man brutally rams his cock down your throat, groaning each time you gag around his shaft. cait sith's thrusts fuck you down onto his cock, helping you swallow him down to the root. he blows quick, cock spasming in your mouth as he gushes out wet, sloppy strings of cum into your throat, washing over your tongue in a salty mess. he pulls out, cum stretching from his cockhead to your bruised lips, and strokes himself off, spraying the last few shots of his load all over your face and chest.\n<<set $barret.cum.face.push ("stranger")>>\\n<<print gainXPGroup ($barret, "throat", 1, "exhibitionist", 1)>>\n<<print damage ($barret, $inventory, "throat", 4)>>\nall the while, cait sith is hammering away, huge bumpy dildo turning your ass into a gaping cocksleeve, steadily carving you open as his cock jabs into you over and over, mechanical and unwavering.\n\n<<print damage ($barret, $inventory, "ass", 20)>>
Cait Sith keeps fucking you. his giant dildo-cock seeps lube all down its length, stiff and crackling as it punches through your gaped, slack asshole. there's a loud //clunk// from within its shaft as some mechanism swings into place, and then its entire shaft starts buzzing, vibrating inside you furiously. you roar, hand scrabbling over the tiles, bashing your gun-arm down with enough force to crack the ceramic, as cait sith continues its implacable thrusts, dildo now buzzing away, jiggling its huge hard-plastic bumps all over your aching, worn-out internal flesh.\n<<print gainXPGroup ($barret, "gape", 3)>>\n<<print damage ($barret, $inventory, "ass", 30)>>
Your body gives out. <<display "cait sith first prolapse fail">>\n<<dialog "Cait Sith" "That was fucking hot!">>\nIt's a little bizarre to hear that from its chirpy, high-pitched cartoon voice.\n<<dialog "Cait Sith" "You have a talent for being used. Come back any time you need to be used more.">>\n<<print gainXPGroup ($barret, "exhibitionist", 2)>>\nYou drag yourself away from the robot, clawing at the floor. Your prolapse pulses and throbs between your cheeks, stinging as your curly ass-hair plucks across your raw, bruised flesh. You lay there on the ground, just gasping for breath, letting your ass suck your guts back into your body, letting your sweat cool, before your legs stop trembling too much for you to even stand up.
<div class="limitbreak">limit break!</div>\nyou roar and flip the big moogle robot onto its back with a crash, keeping yourself impaled on its dildo-cock the whole time. you squat over it, asshole pulsing and squeezing, and ride it, fucking yourself down deeper as its mechanical servos thrust up. its cockhead jabs against your lungs, guts squirming out of place as you fuck yourself wide-open on it, and you just bellow and fuck yourself harder, ass sharply clapping against the stuffing-padded metal skeleton of the robot.\n\nyou cum with a roar, cock erupting in heavy bolts of cum, splattering all up the fat moogle's belly, and keep going, fucking your load out as its whirring thrusts continue unabated. the flesh of your ass shudders and convulses from the continual slamming thrusts, and your eyes roll back in your skull, head raised up into the sky, entire body dripping with sweat as cait sith fucks you through the most brutal, overwhelming anal orgasm you've ever had.\n\na servo fails with a sharp //bang//, jamming its cock-piston in place. plumes of acrid black smoke vent out the sides of the moogle robot, slick servo fluid slowly starting to leak through the cheap fur, and the moogle-cat robot looks on, aghast. you let out a roar of victory, huge muscular asshole clamping down on the huge dildo, and another burning orgasm sweeps through your ass.\n\nyou drag yourself off the wrecked robot and collapse, chest heaving as you pant for breath.\n\n<<set $brokeCaitSith to true>>\\n<<print dialog ("Cait Sith", ["I'm gonna have to bring out another robot!", "Those things aren't free, you know!"])>>\nIt looks at you, appraisingly: ass gaped and drooling frothy lube in creamy dollops down your thighs, cock leaking cum, entire body shiny with sweat. You glare down at the little cat-moogle robot.\n<<print dialog ("Cait Sith", ["That was hot as hell, though."])>>
the battle square arena is a monster-fighting challenge: go through eight rounds of battle, each against an exhibit from dio's extensive monster bestiary, and earn a certain amount of 'battle points', or BP, for each one.\n\nyou think at night, it'll be less 'monster-fighting' and more 'monster-fucking'. you think you can handle it.\n<<set $specfail to false>>\\n<<set $bp to 0>>\\n\n* [[challenge the arena|arena actual]]\n* [[maybe you can get fucked by monsters later|battle square]]
you enter the arena. it's a square ring, surrounded by a moat of poison. everything is cool stone brick, in massive slabs. there's audience seating on a recessed upper level; dio himself presides over the fight, staring down at you seated naked on his throne, his hard cock jutting upward as his attendants sloppily kiss around his cockhead.\n\nthe far gate rumbles, and the lights dim. a spotlight bursts to light over you, turning everything else to dark shadows, churning and moving.\n\n<<set $arena to 1>><<set $bp to 0>><<display "arena inner">>
<<if $arena === 1>>\\n<<display either ("arena 1 hound", "arena 1 hounds")>>\n<<else if $arena === 2>>\\n<<display either ("arena 2 pie", "arena 2 sahagin", "arena 2 whole")>>\n<<else if $arena === 3>>\\n<<display either ("arena 3 deenglow", "arena 3 eligor")>>\n<<else if $arena === 4>>\\n<<display either ("arena 4 pod", "arena 4 moth")>>\n<<else if $arena === 5>>\\n<<display either ("arena 5 fangs", "arena 5 elfadunk")>>\n<<else if $arena === 6>>\\n<<display either ("arena 6 eyes", "arena 6 ark", "arena 6 crawler")>>\n<<else if $arena === 7>>\\n<<display either ("arena 7 zem", "arena 7 formula")>>\n<<else if $arena === 8>>\\nthe last round. what fierce monster will be your final opponent?\n\n<<display either ("arena 8 hell", "arena 8 bagnadrana", "arena 8 chimera")>>\n<<else>>\n[[-->|battle square]]\n<<endif>>
<<if limitbreak ($barret)>>\\n{limit break}\n\n{i guess you autowin the encounter, & it keeps going?}\n\n<<print gainXPGroup ($barret, "gape", 2 * $arena, "exhibitionist", 3)>>\n<<set $arena += 1>><<display "arena inner">>\n<<else if health ($barret, "ass") lte 0>>\\n{arena fail}\n\nyou collapse, overwhelmed.\n\n<<print gainXPGroup ($barret, "gape", 2 * $arena, "exhibitionist", 3)>>\n\nyou got 0 BP!\n\n[[-->|battle square]]\n<<else>>\\n\n<<print gainXPGroup ($barret, "gape", 2 * $arena, "exhibitionist", 3, "cumslut", 2 * $arena)>>\n\n{fuck victory}\n\n<<set $bp += $arena * 10>>\\n<<if $arena lt 8>>\\nyou've earned <<print $bp>> BP so far. tap out and keep your points, or keep going and risk it for more?\n* [[you need more monster cum!|arena inner][$arena += 1]]\n* [[tap out|arena tap]]\n<<else>>\\n<<set $bpTotal += $bp>>\\nyou took all of dio's monsters. you got <<print $bp>> BP for your showing! you now have <<print $bpTotal>> BP in total.\n\n{...}\n\n[[-->|battle square]]\n<<endif>>\n<<endif>>
<<if !$specfail>>\\n<<if health ($barret, "ass") lte 0>>\\nyou collapse, overwhelmed.\n\n<<print gainXPGroup ($barret, "gape", 2 * $arena, "exhibitionist", 3)>>\n\nyou got 0 BP!\n\n[[-->|battle square]]\n<<else>>\\n\n<<set $bp += $arena * 10>>\\n<<if $arena lt 8>>\\nyou've earned <<print $bp>> so far. tap out and keep your points, or keep going and risk it for more?\n* [[you need more monster cum!|arena inner][$arena += 1]]\n* [[tap out|arena tap]]\n<<else>>\\n<<set $bpTotal += $bp>>\\nyou took all of dio's monsters. you got <<print $bp>> BP for your showing! you now have <<print $bpTotal>> BP in total.\n\n{...}\n\n[[-->|battle square]]\n<<endif>>\n<<endif>>\n<<endif>>
<<set $bpTotal += $bp>>\\nyou tap out.\n\nyou got <<print $bp>> BP for your showing! you now have <<print $bpTotal>> BP in total.\n\n{...}\n\n[[-->|battle square]]
you can trade in BP for rewards at this terminal. you have <<print $bpTotal>> BP.\n\n* <<if $bpTotal > 80>>[[potion|battle terminal buy][$_buy = "potion"; $_cost = 80;]]<<else>>==potion==<<endif>> (80 BP)\n* <<if $bpTotal > 160>>[[phoenix down|battle terminal buy][$_buy = "phoenix down"; $_cost = 160;]]<<else>>==phoenix down==<<endif>> (160 BP)\n* ==enemy lure== (5120 BP) (not implemented)\n* ==championship belt== (40960 BP) (not implemented)\n\n[[<--|battle square]]
you trade <<print $_cost>> BP for a <<print $_buy>>.\n<<print gainItem ($inventory, $_buy, 1)>>\n<<set $bpTotal -= $_cost>>\n[[-->|battle terminal]]
from the shadows, a single guard hound emerges: a pitch-black wolf-panther, with a single prehensile tentacle reaching out from the back of its neck, twisting in the air behind it like a scarf.\n\nits cock throbs between its haunches, just as black as its fur. it's rock hard, its barb-covered knot already partially engorged. slick silvery pre drools from the pointed tip, leaving behind slashing splatters on the ground as it leaps towards you.\n\nyou brace yourself, but it still bowls you over backwards when it slams into you, knocking you back on your ass as it kicks off your chest. it paces closer, eyes gleaming in the darkness, cock shuddering across its underbelly, and you just roll back, letting the monster push itself atop you, its slick, animal cock scraping across your stomach as it stares down at you.\n\nunexpectedly, it kisses you: slavering mouth full of fangs pressing against your face, a mess of acrid drool smearing over your lips as it shoves its rasping tongue into your mouth. it hunches forward, humping its cock across your own, and you arch up, letting its thrusts guide it across your inner thigh, catching on the curve of your muscular ass before it slams into you with all the consideration you'd expect from a slavering beast.\n\n<<print damage ($barret, $inventory, "ass", 3)>>\n<<if health ($barret, "ass") lte 0>>\\n<<display "arena 1 hound fail">>\n<<else>>\\nyou bellow, asshole shuddering around the beast's barbed cock. it's slick on the push in, but when it jerks back, hundreds of stiff, rasping barbs scrape across your inner flesh, making you thrash and writhe under the hound. it snarls above you, pinning you in place with one broad paw across your chest, and it humps you mindlessly, muscular haunches slapping against your thighs as it buries its cock balls-deep in your ass. it feels like an iron rod shoved inside you, burning hot and rock hard.\n\nits cock saws across your prostate, barbs digging deep into the soft flesh of your ass. your cock gets hard from getting fucked, from having a fat monster cock tearing up your guts, and it smacks against your belly, drooling a continual stream of glossy pre all over your clenched abs as you take each brutal thrust.\n\nits knot slams against your rim, scraping deeper, twisting and tugging as the beast's barbs tear at your sensitive flesh, and you go bug-eyed, all breath leaving your lungs with a //whuff// as it slams its knot fully inside.\n\n<<print damage ($barret, $inventory, "ass", 8)>>\n<<if health ($barret, "ass") lte 0>>\\n<<display "arena 1 hound fail">>\n<<else>>\\nyou roar as the beast turns you into its bitch, roughly mating your ass as it drools in slimy streamers all across your face, coating your head in monster saliva. its huge, hard cock spreads you open, knot burning hot inside you as it fucks you in short sharp jabs, tearing up your guts as its knot swells fatter.\n\nthe guard hound yowls as it dumps its load inside you, snarling and clawing at the stone beside you. its cum gushes into you in heavy, sloppy bursts, sealed into you tight by its bloated knot.\n\nyour stomach swells, monster cum churning inside you as the guard hound keeps cumming, each spurt of its cock sending a huge gush of slime into your flooded guts. you groan, eyes rolling back into your head as you're bred, and your cock fires off, untouched, splattering all up your swelling stomach and painting your chest with your ropy load. the hound snarls above you, rasping tongue lapping at your throat and jaw, licking up the mess of your load and drooling it back all over your face. its tongue lolls from its mouth as it pants, unloading in your ass for minutes, mindlessly dumping its load into your used hole.\n\n<<print damage ($barret, $inventory, "ass", 7)>>\n<<if health ($barret, "ass") lte 0>>\\n<<set $specfail to true>><<display "arena 1 hound fail prolapse">>\n<<else>>\\nthe hound tears free once its done, leaving your ass cratered and gaping, thin silvery-grey monster cum gushing through the folds of your rumpled asshole and all over the cold stone brick beneath you.\n\na buzzer goes off, somewhere. you've 'defeated' the first monster.\n\n<<print gainXPGroup ($barret, "gape", 5, "exhibitionist", 3, "cumslut", 2 * $arena)>>\n<<endif>>\\n<<endif>>\\n<<endif>>\\n<<display "arena round aftermath">>
you yowl, ass burning, and twist off the monster's cock. it snarls and snaps at you, rutting against your side until it drenches your body in a sloppy orgasm, hosing you down with spurts of rank, watery monster cum. it paces around you, cock hard and unsatisfied, knot still throbbing.
the hound tears free, and your broken and abused ass can't take any more. you bellow, lurching forward, trying to get off its cock, and its barbs hook deep in your guts as it pulls out, spilling your guts out into a fat, sloppy prolapse. your gut shudders, internal muscles spasming and shuddering, and your prolapse grows into a fat rose, slick and shining with monster cum, as the guard hound paces away, leaving you lying flat in the center of the arena ring, guts pulsing as your ravaged hole shudders and gapes, guts sluggishly slurping back and forth over the bruised, puffy mound of your wrecked hole.\n\nyou drag yourself up, eventually crawling out of the ring. you won, but you're in no condition to go any further.\n\n<<print gainXPGroup ($barret, "gape", 8, "exhibitionist", 3, "cumslut", 2 * $arena)>>\n<<display "arena tap">>
from the shadows, a pair of guard hounds emerge: two pitch-black wolf-panthers, each with a single prehensile tentacle reaching out from the back of their necks, twisting in the air behind it like a scarf.\n\ntheir cocks throb between their haunches, both just as black as their fur. they're rock hard, with their barb-coated knots already partially engorged. slick silvery pre drools from the pointed tips, leaving behind slashing splatters on the ground as they leap towards you.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
from the shadows, two hedgehog pies hop out: squat, froglike monsters with shiny red-purple hide, each one maybe half your height. their cocks are huge for their body size, bulky triangular wedges that crawl more than half the way up their rotund bellies, already slick and dripping with their greyish preseed.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
from the shadows, two sahagin scuttle out: bipedal turtle-men, taller than you but less than half your weight. they've got broad finned hands and feet sticking out from a smooth, rounded shell. their cocks are already out, dark green-brown flesh everted from a bulging slit beneath their shells. they have a pulsing furl of flesh for a cockhead, wide like a sledgehammer head. there's a fat lump of muscle at the base that pulses and flexes, making their semi-prehensile cocks twist and lurch, feeling towards you.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
a flock of deenglows descend from the shadows. three of them. they're elongated, cranelike birds, brilliantly blue with purplish bat-like wings. they're lanky, angular, and as they land around you their cocks prolapse out from their cloacas: huge rubbery coils of tightly-corkscrewed purple flesh, each one easily three fingers thick and three feet long.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
an enormous eligor wheels its way out of the darkness. it's a blackened unicorn, melded with its own chariot. it's only the front half; at its waist, the horse-body merges with a shuddering motor, perched between two enormous metal chariot-wheels. there's a humanoid upper body atop the motor, body pale and inhumanly muscular, its face a blank black mask. huge spears of black metal frame the motor, making it look like an infernal ribcage.\n\nbut hanging beneath the motor, where all three parts of its body conjoin, is its cock, a nightmare hybrid of man, unicorn, and machine: it juts out, sleek and black, flesh plasticy, an enormous horsecock with a bloated, bulging cockhead, that spans all the way to its horse-body's forelegs. metal ports stud the sides of its length, and near the base they're hooked up to thick metal pipes hooked up to the engine; when the engine roars, its cock shutters, spraying out rancid black spouts of oily precum.\n\nyou're already on your knees. it stomps closer, wheels thundering, and its cock hits you with the force of a battering ram, smacking you to one side. it's enormous. even your used, cum-drooling ass will have trouble stretching over its enormous cockhead. the eligor isn't interested in waiting; it perches above you, matted horsehair against your shoulders, hot metal aganst your ass, and drives its cock into you, slamming its fat horsecock into your already-wrecked ass. something hot and reeking spurts into you, its chunky, slimy oil-pre hosing down your inner walls, adding an inhuman, machine slickness to the drag and push of its grimy cock as it rams its way into your ass.\n\n<<print damage ($barret, $inventory, "ass", 18)>>\nyou bellow, entire body shuddering as it pries your ass open wide, into a huge slimy gape, black pre already gushing from your broken ass and down its monstrous ass.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
two brain pods roll out onto the arena floor. they look like animate teapots: a lidded top, a spout on one side, and stumpy limbs that smoothly bulge out of their bodies and stomp the ground. they pull off their lids, and the magical ooze filling them boils out in the form of brightly-colored tentacles, huge rippling cords twisting and grasping at the air as they lurch closer to you.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
three kalm fangs burst out of the darkness, snarling. fierce dark-grey wolf-creatures, with a stiff, sharp mane ringing their heads. their cocks are blood red and enormous, spanning all across their underbelly, with the smooth, sharp tips dripping murky slime between their forelegs. they audibly slap against their underbellies as they vault towards you.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
a mass of writhing leech-serpents pour out of the darkness. they're crawlers: electric blue snakelike monsters, somewhere between a leech and a moray eel. their bodies fork near the base, giving them two twisting tails, and just before that their cocks emergy: each one a fat, twisting helix, already bulging with broodspawn. you only have a moment before the flock of them, a half-dozen, is on you, and they start to seek out every orifice to dump their eggs into.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
four scrutin eyes descend. they look like smooth spheres, like a budding plant, held atop a churning mass of muscular purplish tentacles. their tentacles pulse and ripple, holding them aloft, and slowly they approach, tentacles flexing towards you.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
an ark dragon flutters down from the darkness above. a yellow-bronze dragon, with whirring hornet wings and six scythe-tipped limbs. its stomach is bloated in a bulging potbelly, and its cock juts out against it, a short fat spike that resembles an enormous stinger so much as a cock. it's already drooling slick greenish slime as it clatters to the ground and skitters over your body.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
a single enormous zemzelett stomps out from the shadows. it's an enormous owl-monster, with the bulk of a bear under its shaggy feathers, and two gigantic arm-wings it can use to fly or crush opponents. its cock, like the rest of it, is a chimera of disparate parts: a long, tapering shaft as thick as an arm, studded with gristed ridges, topped with a knobbled lump as fat as two fists.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
two formulas burst into the arena, screeching as they circle around the walls. they're brilliant red-purple birds that resemble sleek aircraft more than anything with wings, and they move in abrupt bursts, talons clawing beneath them.\n\ntheir cocks add drag to their movement: brutally-fat triangular pylons jutting out from their haunches, bulky things that swell near the base in a mess of finned spines.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
a gigantic hell rider stomps out of the darkness. the //hell// part is the beast: an enormous horned lizard-monster two people tall, with dark red scales and gleaming red eyes. its cock juts out between its scaly haunches, red-black and steaming, longer than you are tall, base wider than your chest. the //rider// part sits atop, over the beast's shoulders: a bronzed, muscular warrior, entirely naked, his cock jutting out from his crotch, curving up to dig into his pecs.\n\nhe dismounts with a roar, and the two approch.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
a bagnadrana stomps out of the darkness, its steps rumbling the floor. it's an enormous six-limbed dragon-insect, with a thick metal shell banded around its thorax and abdomen. its twin cocks hang beneath, huge rubbery purple-black tentacles that spill from its body and coil across the cum-stained floor, squirming at like snakes even as it stomps closer.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
a chimera stomps out of the darkness. it's an enormous beast, towering two people tall. it has the haunches of a bird, the forelegs of a lion, a vicious snake for a tail, and three heads mounted on its monstrous body: that of a lion, a goat, and a dragon.\n\nits cock is equally as monstrous as its body: a gnarled, ridged club that hangs heavily from its feathered haunches, banded with bumps, coated with stiff barbs, with a bloated head and a spike of a protruding pizzle jutting out further from its warped cockhead, lashing wildly as pre sprays out through it, splattering it in every direction. the ground trembles under its claws as it stomps closer, all its faces slavering.\n\n{...}\n\n<<print damage ($barret, $inventory, "ass", 5 * $arena)>>\n\n<<display "arena round aftermath">>
two whole eaters skitter out from the darkness. they're insectile monstrosities: a skinny, chitinous body with four needle-thin legs, and an enormous round mouth ringed with bulging eyes and studded with enormous teeth. their entire body is a support system for their stomaches, protruding fat and heavy from their scrawny underbellies.\n\ntheir tongues loll out from their perpetually-gaping mouths, slapping wetly on the ground as they skitter closer. they're bloated, a pallid pink, and glazed with sticky slime, drooling from their mouths and hanging from their immense tongues in jelly-like cords.\n\n{...}
a moth slasher rolls out from the darkness. a vaguely-humanoid robot, but instead of legs it rolls around on an immense metal sphere, with its equator studded with spinning blades. its head is a brutal metal spike. that's the combat version, at least. the model dio's running has had its spinning blades replaced with studded half-spheres, crackling with electricity, and its head-spike is instead an enormous rigid silicone dildo. a second dildo has been mounted at its crotch, perpetually jutting upwards.\n\n{...}
two enormous elfadunks stomp out of the darkness. they're giant elephant-monsters with short stubby legs, tusked and fanged, with huge stiff horns erupting from their skull. their hides are a brilliant cyan-teal, scintillating in the spotlight.\n\ntheir cocks drag beneath them, blue-purple and grotesquely oversized even on their giant bodies. they lurch and twitch, uselessly slapping aganst their forelegs as they stumble to avoid tripping over their own cocks. they're chest-thick pillars of corded muscle, with a broad, oval fringe of rubbery flesh for a cockhead.\n\n{...}
<<display either("arena mono drive", "arena grunts", "arena chuse tank", "arena guard hound")>>
you get fucked by some mono drives' tentacles\n<<if $gape.lvl lt 2>><<gapeup>> <<endif>>
you get spitroast by two grunts w/ their cyber-augmented dicks\n<<if $cumslut.lvl lt 2>><<cumup>> <<endif>>
you get fucked + pumped full of eggs by two chuse tanks w/ their bulbous prehensile dicks\n<<if $gape.lvl lt 2>><<gapeup>> <<endif>>\n<<if $cumslut.lvl lt 2>><<cumup>> <<endif>>
you get fucked + knotted by a guard hound\n<<if $cumslut.lvl lt 3>><<cumup>> <<endif>>
you win the prize.\n\nthe prize is dio personally rewards you by drenching you in monster cum and/or fisting yr gaping ass, w/e\n <<if $cumslut.lvl lt 5>><<cumup>> <<endif>>\n <<if $gape.lvl lt 5>><<gapeup>> <<endif>>\n\n[[-->|arena]]<<set $arenaWin to true>>
you can bet on the chocobo races here. it's six chocobos to a track, and you can bet on the two winning chocobos for a race. get that right, in either order, and you get a prize, with a random chance of getting a rare prize.\n\n<<display "chocobo bet">>\n* [[<--|chocobo square]]
the six chocobos in this race are:\n<ol><<print $_chocorace\n .map (choco => '<li>a ' + choco.adj + ' ' + choco.color + ' chocobo, "' +\n choco.chocobo +\n '", ridden by "' + choco.jockey + '", a ' +\n choco.jadj + ' ' + choco.jbody + ' ' + choco.jnoun +\n '</li>')\n .join("")>></ol>\n\nyou can bet on which two come in first, in either order:\n[[1-2|chocobo race][$_bet=[1,2] ]] | [[1-3|chocobo race][$_bet=[1,3] ]] | [[1-4|chocobo race][$_bet=[1,4] ]] | [[1-5|chocobo race][$_bet=[1,5] ]] | [[1-6|chocobo race][$_bet=[1,6] ]]\n[[2-3|chocobo race][$_bet=[2,3] ]] | [[2-4|chocobo race][$_bet=[2,4] ]] | [[2-5|chocobo race][$_bet=[2,5] ]] | [[2-6|chocobo race][$_bet=[2,6] ]] | [[3-4|chocobo race][$_bet=[3,4] ]]\n[[3-5|chocobo race][$_bet=[3,5] ]] | [[3-6|chocobo race][$_bet=[3,6] ]] | [[4-5|chocobo race][$_bet=[4,5] ]] | [[4-6|chocobo race][$_bet=[4,6] ]] | [[5-6|chocobo race][$_bet=[5,6] ]]
<<set {\n let jockeys =\n [ "andy", "blues", "clive", "dan", "dario"\n , "edward", "fox", "gary", "george", "graham"\n , "grey", "harvey", "james", "joel", "john"\n , "karl", "knight", "mike", "peter", "robert"\n , "rudy", "sam", "sean", "terry", "tim", "tom"\n ];\n let jadjectives =\n [ "well-dressed", "dazed-looking", "tired-looking", "scowling"\n , "muscular", "leanly-muscled", "skinny"\n , "bald", "long-haired"\n , "punk-looking", "heavily-pierced"\n ];\n let jbody =\n [ "white", "dark-skinned", "light-skinned"\n , "tattooed", "mako-infused", "hairy", "oiled-up", "leather-wearing"\n ];\n let jnoun =\n [ "man", "man", "man", "guy", "guy", "guy"\n , "bodybuilder", "teenager", "jockey"\n ]\n let colors =\n [ "yellow", "yellow", "yellow"\n , "green", "blue", "red", "purple"\n , "white", "pink"\n ];\n let cadjectives =\n [ "fluffy", "shaggy", "muscular", "broad"\n , "bulky", "sleek", "huge", "scrawny"\n , "curious", "dashing", "nice", "furious"\n , "luxurious", "metallic", "gleaming", "oily"\n , "grimy"\n ];\n let skill =\n [ 1, 1, 1, 1, 1\n , 2, 2, 2\n , 3, 3\n , 4\n , 5\n ];\n let prefixes =\n [ "mega", "giga", "tera"\n , "great", "super", "hyper"\n , "ultra", "master", "mister"\n , "uncle", "dark", "devil"\n , "dragon", "north", "south"\n , "high", "easy", "nice"\n , "techno", "pop", "mini"\n , "max", "motor", "twin"\n , "mime", "sun", "dunk"\n , "v", "the", "mid"\n ];\n let suffixes =\n [ "go"\n , "gogo"\n , "king"\n , "emperor"\n , "x"\n , "z"\n , "star"\n , "death"\n , "sin"\n , "dance"\n , "non"\n , "ring"\n , "memory"\n , "light"\n , "recipro"\n , "khan"\n , "moth"\n , "soul"\n , "gauge"\n , "pop"\n , "pudding"\n , "dancer"\n , "one"\n , "titan"\n , "bridge"\n , "maniac"\n , "ton"\n ];\n let jockyP = draw (jockeys, 6);\n let jadjP = draw (jadjectives, 6);\n let jbodyP = roll (jbody, 6);\n let jnounP = roll (jnoun, 6);\n let colorP = draw (colors, 6);\n let adjP = draw (cadjectives, 6);\n let skillP = draw (skill, 6);\n let preP = draw (prefixes, 6);\n let sufP = draw (suffixes, 6);\n\n let cockColors =\n { "yellow": ["pink", "purple"]\n , "green": ["tan", "pink", "green"]\n , "blue": ["purple", "pink", "blue"]\n , "red": ["pink", "black", "red"]\n , "purple": ["pink", "black"]\n , "white": ["pink", "red", "black"]\n , "pink": ["red", "purple"]\n };\n let vars = zip\n ( jockyP, jadjP, jbodyP, jnounP\n , colorP, skillP, adjP\n , preP, sufP)\n .map ((vals, ix) => {\n [jockey, jadj1, jadj2, jnoun, color, skill, adj, pre, suf] = vals;\n return (\n { jockey: capitalize (jockey), jadj: jadj1, jbody: jadj2, jnoun: jnoun\n , color: color, skill: skill, adj: adj\n , cock: draw (cockColors[color], 1)[0]\n , pre: pre, suf: suf\n , chocobo: '<span class="choco_' + color + '">' + capitalize (pre + ' ' + suf) + '</span>'\n , ix: ix\n });\n });\n state.history[0].variables._chocorace = vars;\n }>>
you bet on '<<print $_chocorace [$_bet[0]-1].chocobo>>' and '<<print $_chocorace [$_bet[1]-1].chocobo>>'.\n<<set $_bet[0] to $_bet[0]-1>>\\n<<set $_bet[1] to $_bet[1]-1>>\\n\nthe chocobos line up at the starting line, and you watch the tvs in the lobby with your ticket clutched in hand.\n\n<<set (function (race){\n race.sort ((a, b) => (b.skill - a.skill) == 0\n ? [1,-1][Math.floor (Math.random() * 2)]\n : b.skill - a.skill)\n })($_chocorace)>>\\nthey're off! the chocobos race around the track, darting and weaving, and eventually one pulls ahead.\n<ol><<print $_chocorace\n .map ((choco, i) => '<li>"' + choco.chocobo + '"' +\n ' comes in ' + ord (i+1) + (i < 2 ? '!' : '.') +\n '</li>')\n .join("")>></ol>\n<<set $_bplaces =\n [ $_chocorace.findIndex (e => e.ix == $_bet[0])\n , $_chocorace.findIndex (e => e.ix == $_bet[1])\n ]>>\\n<<set $_res =\n [ $_chocorace [$_bplaces [0]]\n , $_chocorace [$_bplaces [1]]\n ]>>\\n<<set $_res1 = $_res[0]>>\\n<<set $_res2 = $_res[1]>>\\n<<if $_bplaces.includes (0) && $_bplaces.includes (1)>>you won!\n\n<<print $_res[0].chocobo>> and <<print $_res[1].chocobo>> came in <<print ord ($_bplaces[0]+1)>> and <<print ord ($_bplaces[1]+1)>>, respectively.\n\n\nyou get a prize!\n<<set $_r = Math.floor (Math.random() * 5)>>\\n<<if $_r == 0>>\n<<print gainItem ($inventory, "potion", 2)>>\n<<else if $_r == 1>>\n<<print gainItem ($inventory, "potion", 2)>>\n<<else if $_r == 2>>\n<<print gainItem ($inventory, "hi-potion", 1)>>\n<<else if $_r == 3>>\n<<print gainItem ($inventory, "hyper", 1)>>\n<<else if $_r == 4>>\n<<print gainItem ($inventory, "tranquilizer", 1)>>\n<<endif>>\n\n* [[talk to the winners|choco double]]\n<<else>>you lost!\n\n<<if $_bplaces.includes(0) || $_bplaces.includes(1)>>\\n<<set $_winIx to $_bplaces[0] < $_bplaces[1] ? 0 : 1>>\\n<<set $_loseIx to $_bplaces[0] < $_bplaces[1] ? 1 : 0>>\\n<<set $_winning to $_chocorace.find (e => e.ix == $_bet [$_winIx])>>\\n<<set $_losing to $_chocorace.find (e => e.ix == $_bet [$_loseIx])>>\\n'<<print $_winning.chocobo>>' came in <<print ord ($_bplaces [$_winIx]+1)>>, but '<<print $_losing.chocobo>>' came in <<print ord ($_bplaces [$_loseIx]+1)>>.\n\n<<print $_winning.jockey>> is up on the winner's podium, and <<print $_losing.jockey>> idles around beneath, {scowling/ cursing / looking angry/ looking sad / looking resigned / looking calm / giving {chocobo} a pep talk}.\n\n* [[talk to <<print $_losing.jockey>> and <<print $_losing.chocobo>>|choco solo][$_chocofuck = $_losing]]\n<<else>><<print $_res[0].chocobo>> and <<print $_res[1].chocobo>> came in <<print ord ($_bplaces[0]+1)>> and <<print ord ($_bplaces[1]+1)>>, respectively.\n\n<<print $_res[0].jockey>> and <<print $_res[1].jockey>> are both idling around below the winner's podium, after giving the obligatory round of applause for the winners.\n\n* [[talk to <<print $_res1.jockey>> and <<print $_res1.chocobo>>|choco solo][$_chocofuck = $_res1 ]]\n* [[talk to <<print $_res2.jockey>> and <<print $_res2.chocobo>>|choco solo][$_chocofuck = $_res2 ]]\n* [[talk to them both|choco double]]\n<<endif>>\\n<<endif>>\\n* [[leave|chocobo square]]
<<if $barret.slots.ass === "chocobo lure">>\\nbefore you even get close, the two chocobos go wild. they charge at you, bowling you to the ground with a smack from their shockingly-powerful wings, and jostle above you, fighting for dominance over who gets to fuck you first.\n\n<<display "choco double lure">>\n<<else>>\\nyou talk to the two winning/losing jockeys\n<<print $_res[0].jockey>> & <<print $_res[0].chocobo>> + <<print $_res[1].jockey>> & <<print $_res[1].chocobo>>\n\n* [[get dped by the two jockeys|choco jockey dp]]\n* [[get dped by their two chocobos|choco chocobo dp]]\n* [[go after <<print $_res1.jockey>> & <<print $_res1.chocobo>>|choco solo][$_chocofuck = $_res1 ]]\n* [[go after <<print $_res2.jockey>> & <<print $_res2.chocobo>>|choco solo][$_chocofuck = $_res2 ]]\n<<endif>>
<<if $barret.slots.ass === "chocobo lure">>\\nbefore you even get close, <<print $_chocofuck.chocobo>> squawks and charges at you, bowling you over and immediately rutting his bulging cloaca against your hole.\n\n<<display "choco solo lure">>\n<<else>>\\nyou head over to talk to <<print $_chocofuck.jockey>>. <span class="meta">{attrs: <<print $_chocofuck.jockey>> / <<print $_chocofuck.jadj>> / <<print $_chocofuck.jbody>> / <<print $_chocofuck.jnoun>> }</span> he seems nice enough. you notice him staring at your ass.\n\n<<print dialog ($_chocofuck.jockey, ["Wouldn't mind giving something else a ride, if you know what I mean."])>>\nit's a pretty bad line. you still need to get fucked, though, so you don't mind it much.\n\n* [[get fucked by <<print $_chocofuck.jockey>>|choco jockey fuck]]\n* [[get fucked by <<print $_chocofuck.chocobo>>|choco fuck]]\n* ==[[get dped by them both|choco dp]]==\n<<endif>>
random pick:\n {the chocobos spitroast you}\n {the chocobos cram both their cocks in yr ass}\n\n[[-->|chocobo square]]
{the chocobo fucks you hard}\n\n[[-->|chocobo square]]
{they spitroast you right there}\n\n[[-->|chocobo square]]
{yr pinned between the two chocobos as they brutally fuck yr throat & ass}\n\n\nif you make it all the way through -> {afterward the guy shoves a chocobo lure materia up yr ass and is like, since you like getting fucked by chocobos so much, this'll get you bred more}\n\n<<set $barret.slots.ass = "chocobo lure">>\\n[[-->|chocobo square]]
<<if $_chocofuck.jnoun == "teenager">>\\n<<dialog "Barret" "You're a little young for me.">>\nScrawny little kid hardly looks worth it. he snorts.\n<<print dialog ($_chocofuck.jockey, ["Oh yeah? You're a little old for me, but I'm really gonna enjoy fucking your hairy dad ass."])>>\nHe whips out his cock, a brutal cudgel too big for his body, and cracks it loudly against his palm. You laugh.\n<<dialog "Barret" "When y'put it that way...">>\n<<else if $_chocofuck.jnoun == "bodybuilder">>\\n<<print $_chocofuck.jockey>> is a big bodybuilder, so big you wouldn't expect him to have any luck riding a chocobo. You look him up and down, appraisingly. He'll do.\n<<dialog "Barret" "C'mon, tear up my ass already.">>\n<<else>>\\n<<print $_chocofuck.jockey>> looks decently handsome. You look him up and down, appraisingly. He'll do.\n<<dialog "Barret" "Yeah, you'll do. C'mon and fuck me already.">>\n<<endif>>\n\nThere's a low wall surrounding the winners' podiums; <<print $_chocofuck.jockey>> pushes you back against them, one hand on your chest, the other stroking his dick. He bends you over, ass on display, and misses no time getting between your legs, smacking his fat cockhead against your hairy cheeks before shoving into your hole. You groan and push back, smacking your ass against his hips as you swallow the whole length of his cock effortlessly.\n<<print gainXPGroup ($barret, "exhibitionist", 4)>>\n\nHe fucks you hard. His hands grip your hips, dragging you back onto his dick. You pump back, ass slamming down against his hips, letting his cock carve deep into your guts. Your head and shoulders are slung over the wall, forearms braced against its lips, and his thrusts fuck a stuttering groan out of you, bellowing as he tears your ass up with his brutal, frenzied thrusts.\n\n<<print damage ($barret, $inventory, "ass", 5)>>\n<<if limitbreak ($barret)>>\\n<<display "choco jockey fuck limitbreak">>\n<<else if health ($barret, "ass") lte 0>>\\n<<display "choco jockey fuck fail">>\n<<else>>\\n<<display "choco jockey fuck cont 1">>\n<<endif>>
The sharp //crack// of skin-on-skin sounds out; the jockey's thrusts slam into you, each one digging your shoulders into the barricade. He treats your ass like a hole, fucking into you with no care, grunting and groaning as he hunches over your body. His hands dig into your cheeks, spreading you wide so he can stare down at his cock sliding into your well-used ass: hungrily swallowing his cock to the root, fat ass-lips clinging to his shaft when he pulls out.\n\n<<print damage ($barret, $inventory, "ass", 7)>>\n<<if limitbreak ($barret)>>\\n<<display "choco jockey fuck limitbreak">>\n<<else if health ($barret, "ass") lte 0>>\\n<<display "choco jockey fuck fail">>\n<<else>>\\n<<display "choco jockey fuck cont 2">>\n<<endif>>
<<print $_chocofuck.jockey>> slams into you, cock pulsing hard, and he lets out a {reedy-sounding/deep} bellow as he blows his load into your ass. He spills forward, arms wrapping around your chest in a hug as he erratically jerks and grinds his spurting cock into your worn hole, moaning in your ear as he floods your ass. His thrusts squelch, shaft emerging slimy and dripping with cum, splattering down between your widely-spread thighs. Little rivulets stream from your ass, spilling down your thighs and drenching your furrowed ballsac. His thrusts smear the mess into your skin, glazing you in his load.\n\n<<print gainXPGroup ($barret, "gape", 2, "exhibitionist", 4, "cumslut", 3)>>\n\nHe {...}\n\n[[-->|chocobo square]]
{he pulls out and jerks off all over yr back}\n\n[[-->|chocobo square]]
<div class="limitbreak">limit break!</div>\n\n{...}\n\n[[-->|chocobo square]]
<<dialog "Barret" "I think yer chocobo needs a reward for running that race.">>\\n<<print $_chocofuck.jockey>> lets out a low whistle.\n<<print dialog ($_chocofuck.jockey, ["You're that kind of guy, huh?"])>>\n<<set $_cname = capitalize ($_chocofuck.pre + ' ' + $_chocofuck.suf)>>\\nYou shrug. You're not picky, and a chocobo is gonna have a bigger dick than a human.\n<<print dialog ($_chocofuck.jockey, ["Good thing he's well-trained for studding."])>>\nHe lets out a sharp whistle, and <<print $_cname>> flaps his wings and jerks forward.\n<<print dialog ($_chocofuck.jockey, ["Get on your hands and knees."])>>\n<span class="meta">{attrs: <<print $_chocofuck.color>> / <<print $_chocofuck.adj>> / <<print $_chocofuck.cock>> / <<print $_chocofuck.pre>> <<print $_chocofuck.suf>>}</span>\n\nYou're doing it right here, in the middle of the winner's circle podium. The other losers are idling around, and there's still a crowd of people with bets. <<print $_cname>>'s fat cock spills out from his cloaca, tapering and prehensile. A chocobo cock is slick and shiny, smooth all over, looking more like a tentacle than a cock -- tapering to a nubby point at the tip, without any defined cockhead, and growing thicker and thicker further down until it's beyond forearm-thick. <<print (function (color){\n switch (color) {\n case "pink":\n return "his cock is a flushed pink, striated redder near the base.";\n case "purple":\n return "his cock is a deep, raw-looking purple, tinged almost black at the base.";\n case "tan":\n return "his cock is a woody-looking tan, contrasting sharply with his green feathers.";\n case "green":\n return "his cock is a deep emerald, flushed purple-brown along the underside.";\n case "blue":\n return "his cock is a cyan a few shades darker than his feathers, with striated purple lines along the twisting shaft.";\n case "black":\n return "his cock is solid black, in sharp contrast to his bright feathers.";\n case "red":\n return "his cock is solid crimson, pulsing and shuddering in sloppy lurches as it furls over itself";\n }\n })($_chocofuck.cock)>>\n\nYou get on your hands and knees. <<if lvl ($barret, "exhibitionist") < 1>><<print $_chocofuck.jockey>> steps up behind you and yanks on your pants, tearing the seat off. He slaps your bare ass, two fingers sliding down your crack, shoving inside over your fat asslips for a second, before he steps back. <<endif>> <<print $_cname>>'s talons clatter on the concrete floor as he steps forward. His cock licks between your thighs.\n\n<<print gainXPGroup ($barret, "exhibitionist", 4)>>\n<<print $_cname>> mounts you with a sharp //wark//, heavy talons scrabbling over your calves as he leans forward, wings flapping out over your body. his cock twists into place, nubby tip lapping over your asshole before plunging in with a sudden jab.\n<<print damage ($barret, $inventory, "ass", 7)>>\n<<if limitbreak ($barret)>>\\n<<display "choco fuck limitbreak">>\n<<else if health ($barret, "ass") lte 0>>\\n<<display "choco fuck fail">>\n<<else>>\\n<<display "choco fuck cont 1">>\n<<endif>>
<<print gainXPGroup ($barret, "gape", 3)>>\nyou bellow, rocking forward as the chocobo bears down, cock twisting inside you as it pulls itself deeper. beside you, <<print $_chocofuck.jockey>> groans, jerking off as he watches you get bred by a chocobo.\n\n<<print $_cname>> hammers into you, warking and chirping as he plunges his enormous bird dick into your ass. your ass pulsates around it, fat asshole stretched wide around the girthy shaft. the chocobo cock sinks into you so deep you can feel it under your abs, knocking through your guts, and when you relax your core your stomach bloats wider, lurching and swelling from the sheer size of the huge chocobo cock.\n\n<<print damage ($barret, $inventory, "ass", 10)>>\n<<if limitbreak ($barret)>>\\n<<display "choco fuck limitbreak">>\n<<else if health ($barret, "ass") lte 0>>\\n<<display "choco fuck fail">>\n<<else>>\\n<<display "choco fuck cont 2">>\n<<endif>>
<<print gainXPGroup ($barret, "gape", 3)>>\nthe chocobo breeds you mercilessly, mindlessly rutting into the slick wet hole of your ass, using you like a breeding bench. you jolt forward, nearly knocked down onto your face from a brutal thrust, and above you <<print $_cname>> warks loudly, cock twisting into spirals inside you as he floods your guts with animal spunk. his cock pulses strongly inside you, each burst adding a bloom of heat to your guts, more and more until you overflow, thick chocobo cum squirting from your well-fucked ass in sloppy explosions.\n\nyour stomach swells, sagging under you as <<print $_cname>> fills you up with cum, and beside you <<print $_chocofuck.jockey>> groans and lurches forward, aiming his cock as he splatters your shoulders and face with his load. the both drench you with cum, painting you inside and out with strong gushes, and you collapse under <<print $_cname>>, letting him breed your limp body. your ass pulsates, clenching around the spurting cock as heat bursts through your body, the brutal fucking punching you through a dizzying anal orgasm.\n<<print damage ($barret, $inventory, "ass", 12)>>\n<<if limitbreak ($barret)>>\\n<<display "choco fuck limitbreak">>\n<<else if health ($barret, "ass") lte 0>>\\n<<display "choco fuck fail">>\n<<else>>\\n<<display "choco fuck cont 3">>\n<<endif>>
<<print gainXPGroup ($barret, "gape", 5, "cumslut", 8, "exhibitionist", 4)>>\n<<print $_cname>> pulls free, leaving your ass gaping, sloppy and rubbery, flooded with a slimy mess of stringy chocobo cum. more and more of his cock spills out of you, sheened with his load, until finally the tip slurps over your rubbery asslips, letting a waterfall of cum squirt out of your wrecked ass.\n\nyou drag yourself to your feet, chocobo cum gushing out of you, pouring in thick rivers down your massive thighs, and lurch to the side, still feeling the phantom ache of chocobo cock pistoning inside you.\n<<set $barret.cum.face.push ("jockey")>>\\n<<set $barret.cum.ass.push ("chocobo")>>\\n<<print dialog ($_chocofuck.jockey, ["You took that pretty good, huh? Maybe you got a future of being a choco-slut ahead of you."])>>\n\nYou limp back to the chocobo terminal.\n[[-->|chocobo square]]
you bellow, ass burning, and lurch forward, practically crawling off the chocobo cock. <<print $_chocofuck.jockey>> laughs, cock in hand, jerking off over your back.\n<<print dialog ($_chocofuck.jockey, ["Eyes too big for you ass, huh? Don't worry, " + $_cname + " can still use you to get off."])>>\n\n<<print $_cname>> pins you down, beak clamped around your neck, wings battering your sides. his cock pounds across your back, sloppy and squelching as he ruts his cock over your skill, drenching you in sloppy chocobo pre. it smells almost sweet, like grass. his talons flex around your thighs, pinning you in place, and he uses your body as a rutting board, sawing his cock over your skin, drenching you with stringy slime.\n\nthey both cum at the same time, <<print $_chocofuck.jockey>> groaning as <<print $_cname>> warks sharply. you're sprayed down with cum: huge blasts gushing from the huge choco-cock, splattering all up and down your back, drenching you in slimy animal cum, pouring down your sides in rivers. the few ropes of human cum, shot into the mess, are hardly anything.\n\nthey both hose you down with their loads, groaning and chirping, until <<print $_cname>> pulls off you, leaving you a limp mass of cum-glazed muscle, ass burning, frothy cords of cum strung all over your body. <<print $_cname>>'s cock smears over your hip, tip licking at your burning ass, and you groan weakly.\n<<set $barret.cum.body.push ("jockey")>>\\n<<set $barret.cum.body.push ("chocobo")>>\\n<<print dialog ($_chocofuck.jockey, ["Amateur. Gotta try harder if you wanna take a chocobo cock."])>>\n\nyou eventually drag yourself to your feet, entire body glazed and dripping with sweet-smelling, grassy chocobo cum.\n\n[[-->|chocobo square]]
<div class="limitbreak">limit break!</div>\n\n{...}\n\n[[-->|chocobo square]]
<<dialog "Barret" "Sure, you can ride me. Think yer chocobo wants to ride me too?">>\n<<print $_chocofuck.jockey>> lets out a low whistle.\n<<print dialog (capitalize ($_chocofuck.jockey), ["You're that kind of guy, huh?"])>>\n<<set $_cname = $_chocofuck.pre + ' ' + $_chocofuck.suf>>\\nYou shrug. you need something big in your ass.\n\nrandom pick:\n {you suck the guy's cock while his chocobo fucks you}\n {you suck the chocobo's cock while the guy fucks you}\n\n[[-->|chocobo square]]