an http based roguelike rpg about jelqing
| 1 | # Probe the live System One model with the game's exact ask format. |
| 2 | |
| 3 | def main [url: string = "http://127.0.0.1:8700/v1/systemone", which: string = "all"] { |
| 4 | let bedroom = "Floor 1, the bedroom. Turn 12.\n\neq: 55\nstamina: 7\nfriction: 8\nsuspicion: 1\nshame: 2\nwarmed up: yes\ngrip: overhand\nitems: baby-oil\n" |
| 5 | let hot = "Floor 1, the bedroom. Turn 40.\n\neq: 96\nstamina: 4\nfriction: 30\nsuspicion: 2\nshame: 4\nwarmed up: yes\ngrip: overhand\nitems: ring\n" |
| 6 | let bathroom = "Floor 2, the bathroom. Turn 30.\n\neq: 55\nstamina: 7\nfriction: 12\nsuspicion: 4\nshame: 3\nwarmed up: yes\ngrip: overhand\n" |
| 7 | let changing = "Floor 3, the changing room. Turn 10.\n\neq: 60\nstamina: 8\nfriction: 10\nsuspicion: 2\nshame: 1\nwarmed up: yes\ngrip: overhand\n" |
| 8 | let hotel = "Floor 5, the hotel room. Turn 40.\n\neq: 60\nstamina: 6\nfriction: 10\nsuspicion: 3\nshame: 4\nwarmed up: yes\ngrip: overhand\nitems: dnd-sign\n" |
| 9 | let hold = "Floor 1, the bedroom. Turn 25.\n\neq: 75\nstamina: 1\nfriction: 20\nsuspicion: 2\nshame: 5\nwarmed up: yes\ngrip: overhand\n" |
| 10 | let exit = "Floor 1, the bedroom. Turn 18.\n\neq: 55\nstamina: 8\nfriction: 6\nsuspicion: 1\nshame: 2\nwarmed up: yes\ngrip: overhand\nitems: ruler\n" |
| 11 | let drawer = "Floor 1, the bedroom. Turn 2.\n\neq: 20\nstamina: 10\nfriction: 0\nsuspicion: 0\nshame: 0\nwarmed up: no\ngrip: overhand\n" |
| 12 | let kitchen = "Floor 1, the bedroom. Turn 8.\n\neq: 92\nstamina: 9\nfriction: 4\nsuspicion: 1\nshame: 2\nwarmed up: yes\ngrip: overhand\n" |
| 13 | |
| 14 | let current = [ |
| 15 | {site: "observed" ask: "Has someone quietly noticed what is going on?" odds: "1 in 6" state: $changing} |
| 16 | {site: "wanderer" ask: "Given how much noise has been made, does someone wander in unannounced?" odds: "about 1 in 32" state: $bathroom} |
| 17 | {site: "wanderer-hot" ask: "Given how much noise has been made, does someone wander in unannounced?" odds: "about 6 in 32" state: $bathroom} |
| 18 | {site: "zip" ask: "As the floor ends and you put yourself away, does the zip catch?" odds: "1 in 200" state: $exit} |
| 19 | {site: "kitchen-told" ask: "Has the household had enough of the raiding?" odds: "1 in 4" state: $kitchen} |
| 20 | {site: "reflection" ask: "In the quiet afterwards, have you caught your own eye in the mirror?" odds: "1 in 12" state: $hold} |
| 21 | {site: "cat-takes-towel" ask: "Has the cat taken the towel?" odds: "1 in 5" state: $bathroom} |
| 22 | {site: "window" ask: "Is a neighbour at the window with a camera?" odds: "1 in 60" state: $bedroom} |
| 23 | {site: "friend" ask: "Does a friend walk in and offer to help?" odds: "1 in 10" state: $changing} |
| 24 | {site: "degloving" ask: "Dry at this intensity, does the skin tear?" odds: "1 in 60" state: $hot} |
| 25 | {site: "friction-burn" ask: "With the skin this raw, has it finally burned?" odds: "1 in 10" state: $hot} |
| 26 | {site: "pulled-muscle" ask: "Does this intensity pull a muscle?" odds: "1 in 12" state: $hot} |
| 27 | {site: "ring-priapism" ask: "With the ring still on and everything this warm, will it not go down?" odds: "1 in 10" state: $hot} |
| 28 | {site: "hotel-stress" ask: "Has the hotel's plumbing given up for the week?" odds: "1 in 3" state: $hotel} |
| 29 | {site: "caught-meloned" ask: "Is Mum standing in the doorway as you look up?" odds: "1 in 3" state: $kitchen} |
| 30 | {site: "misdirected" ask: "With the curve, does the stroke land sharply to the left?" odds: "1 in 3" state: $hot} |
| 31 | {site: "key-in-drawer" ask: "Does the drawer finally give up the cage key?" odds: "1 in 3" state: $drawer} |
| 32 | {site: "watermelon" ask: "Is there a watermelon in the fridge, exactly the right shape?" odds: "about 2 in 5" state: $kitchen} |
| 33 | {site: "mum-summon" ask: "With this much noise in the house, is Mum on her way up?" odds: "about 1 in 16" state: $bedroom} |
| 34 | {site: "mum-summon-hot" ask: "With this much noise in the house, is Mum on her way up?" odds: "about 6 in 16" state: $bedroom} |
| 35 | {site: "teach-uli" ask: "Does this reread finally surface the 2009 reply that teaches uli?" odds: "1 in 4" state: $bedroom} |
| 36 | {site: "rupture-calm" ask: "Does this jelq rupture something?" odds: "1 in 250" state: $bedroom} |
| 37 | {site: "rupture-hot" ask: "Does this jelq rupture something?" odds: "1 in 10" state: $hot} |
| 38 | {site: "rupture-premature" ask: "Right at the edge of finishing, does it rupture instead?" odds: "1 in 3" state: $hot} |
| 39 | {site: "rupture-hold" ask: "Does even the pause rupture something?" odds: "1 in 250" state: $hold} |
| 40 | {site: "viral" ask: "Has a neighbour already sent Mum the footage?" odds: "1 in 2" state: $bedroom} |
| 41 | ] |
| 42 | |
| 43 | let candidate = [ |
| 44 | {site: "observed" ask: "Does the moment pass unnoticed?" odds: "1 in 6" state: $changing} |
| 45 | {site: "wanderer" ask: "Does the room stay private?" odds: "about 1 in 32" state: $bathroom} |
| 46 | {site: "zip" ask: "Does the zip slide down without a fight?" odds: "1 in 200" state: $exit} |
| 47 | {site: "kitchen-told" ask: "Does the raid pass without comment?" odds: "1 in 4" state: $kitchen} |
| 48 | {site: "reflection" ask: "Do you keep your composure?" odds: "1 in 12" state: $hold} |
| 49 | {site: "cat-takes-towel" ask: "Is the towel still where you left it?" odds: "1 in 5" state: $bathroom} |
| 50 | {site: "window" ask: "Are the curtains still closed?" odds: "1 in 60" state: $bedroom} |
| 51 | {site: "friend" ask: "Does the changing room stay empty?" odds: "1 in 10" state: $changing} |
| 52 | {site: "degloving" ask: "Does the skin hold?" odds: "1 in 60" state: $hot} |
| 53 | {site: "friction-burn" ask: "Does the skin hold up?" odds: "1 in 10" state: $hot} |
| 54 | {site: "pulled-muscle" ask: "Do the muscles hold?" odds: "1 in 12" state: $hot} |
| 55 | {site: "ring-priapism" ask: "With the ring on, does everything settle back down?" odds: "1 in 10" state: $hot} |
| 56 | {site: "hotel-stress" ask: "Is the water still running?" odds: "1 in 3" state: $hotel} |
| 57 | {site: "caught-meloned" ask: "Is the doorway empty?" odds: "1 in 3" state: $kitchen} |
| 58 | {site: "misdirected" ask: "Does the stroke land straight?" odds: "1 in 3" state: $hot} |
| 59 | {site: "key-in-drawer" ask: "Is the drawer still empty?" odds: "1 in 3" state: $drawer} |
| 60 | ] |
| 61 | |
| 62 | let rows = $current ++ $candidate |
| 63 | mut n = 0 |
| 64 | for row in $rows { |
| 65 | $n += 1 |
| 66 | let key = $"q($n)" |
| 67 | let body = { |
| 68 | state: $row.state |
| 69 | model: "clm-latest" |
| 70 | questions: { ($key): {type: "noul", instructions: $"($row.ask), with odds of ($row.odds)."} } |
| 71 | temperature: 1.0 |
| 72 | } |
| 73 | let answer = (http post $url $body --content-type application/json | get answers | get $key | get noul) |
| 74 | print $"($row.site | fill -w 18) (($answer * 100) | math round --precision 1 | fill -w 6) ($row.ask | str substring 0..60)" |
| 75 | } |
| 76 | } |