Giter Club home page Giter Club logo

stale-tales-slate's Introduction

stale-tales-slate

This repository contains source, binaries, support scripts and test files for Shuffling Around, A Roiling Original and Tours Roust Torus, three text adventures written in Inform 7 with similar themes. You may guess what they are by the titles or, indeed, the title of this repository, as together, they make the Stale Tales Slate. To give a much starker hint, let's just say that if I had to rename them, I'd rename Shuffling Around to A Roiling Original and A Roiling Original to Ordeal Reload. But the names have stuck, and I do like Shuffling Around.

The first two games were conceived in March of 2012, at which time I started writing scripts to find which words anagrammed with which others. Shuffling Around was written for the 2012 IFComp (9/29/2012) and A Roiling Original dropped on Spring Thing of the next year (4/1/2013). Since then they have gone through several revisions. Tours Roust Torus is the third game, originally released for Spring Thing 2002 (3/31/2022).

To get an idea of the various sizes:

  • Shuffling Around has 34 rooms and 91 points
  • A Roiling Original has 90 rooms, not including a semi-joke maze, and 300 points
  • Tours Roust Torus has 8 rooms and 13 points

The directory structure has scripts and extension files used by all games at the top. Shuffling, Roiling and Torus are the game subdirectories, with further testing subdirectories. Utils has utilities.

I learned Python soon after starting this repo, so the utilities are a blend of Perl and Python. Some were first in Perl then rewritten in Python. Python is much better.

Many of my Perl scripts do not use strict/warnings, which is bad, I know, but I was just writing simple test scripts.

Testing uses a modification of Zarf's python script. My tweaked version is/will be at https://github.com/andrewschultz/plotex/. The original is at https://github.com/erkyrath/plotex/. You should probably go with his official version, though I'd like to think I've found interesting tweaks.

Inform files are compiled with 6G60.

Shuffling Around cover art is copyright Wade Clarke. Tours Roust Torus cover art is copyright J. J. Guest. Their making such cool cover art was a big boost for me nailing technical stuff down. (Yes, A Roiling Original's cover art is by me.)

Perl files should run with Perl 5.8. Python files are generally compiled under 3.9..

cheapbotsdonequick.com hosts both anagram bots found in Roiling: @AnagramBookBot has books from Roiling's 3 shelves. @AnagramTauntBot has taunts from both Shuffling (crowd and Red Bull Burdell) and Roiling (8 places where the game heckles you). The bot may no longer work. But it was fun to try.

More information on the various games is/will be in the subdirectories: Shuffling, Roiling and Torus.

You may notice some *.i7x files on the top directory. These contain code used by more than one game. Universal is for all three games, and Common is for just Shuffling and Roiling.

stale-tales-slate's People

Contributors

andrewschultz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

prariehill

stale-tales-slate's Issues

source code vet: ARO

1000 lines per day is a good pace.

Currently at line 809, hint availability variables. "a thing can be ssok, ssno, ssblur or ssclear. a thing is usually ssok."

Trivial issue: hint-scramble the animals in Store T

This would be neat to do.

We could simply have a table with all the animals/pre-animals in them, and we could sort it randomly at the beginning.

Then we could go through it and the first one that gets hinted, you get the next clue.

However, this presents a small problem with

HINT LEOPARD
HINT (when Satyr is before Leopard)

So there's a lot of busy work to do. I suppose the current fixed order is perfectly suitable.

Line breaks in [randbla] entries: Shuffling

This is less arduous than Roiling but still likely a pain. It's something I always think I checked, but I'm worried I didn't.

It's possible to use just a plain cheat-test to go through e.g.

CAP 11
X LIST.G.G
CAP 4
GONEAR MOOR.Z.Z.Z
PURLOIN MAPS.X MAPS.G.G.G.G
GONEAR NERDS.Z.Z.Z.Z.Z
GONEAR CONDO.Z.Z.Z.Z.Z
S.Z.Z.Z.Z.Z
S.S.X PSA.G.G.G.G.G
GONEAR HOTSPOT.Z.Z.Z.Z.Z
TRIO.POTTERS.CHAIN.KILNS.
Z.Z.Z.Z.Z.Z.TUG TOE.E

(Do the endgame)

reconfigure Store Y hinting

  1. decide what item is the current one to use the pills on
  2. then check if it is prefigured or hinted
  3. then go with the text

to decide what item is pill-target:
(etc.)

Allow for a tester-debug build

There are some features I want to send to testers without sending to release mode. These can be marked with " - not for release" but the line before will be [ok for testers] and the perl script to change the text will dump the file in another directory.

Then I can compile it on the command line.

That directory will be a common dumping ground so I will need to be aware of things that might go wrong like pulling the wrong binary etc.

HINT then (use one-time HINTITEM) ruins the hintitem.

For instance, HINT POST a bunch of times, then EAT TRUFFLE will tell you what to do.

This is sort of the player's fault, but it's enough my responsibility I can fix it. The problem is, it's nontrivial.

When objhinting, if you hit the (minus) then it flips a global flag. If the global flag is flipped, the item becomes ingame-hinted. So you cannot waste a hint-food on it.

This is already fixed in the code (preliminary) but not tested.

Cases include:

  • HINT ASHTRAY then X SPOON (U)
  • HINT POST then EAT TRUFFLE (V)
  • HINT HUMP then EAT CRUST (P)
  • HINT CLAM then SPILL PILLS (Y)
  • HINT CLUMSY then XRAY CLUMSY (W)
  • HINT ED RILEY then DISCERN (T)
  • HINT IMP then DISCERN is a particularly tricky case. If you've already gotten 1, then...

In Shuffling, there's a lot less to test. EAT SALTINE after hinting a bunch of times.

hyphen duplicator utility

Basically split by ^[a-z-] and then look through each

This is straightforward enough I can just plow through Roiling and Shuffling easily.

Closing this issue indicates I ran through the output, too

I may wish to track every word, so that if we have (x)-(y) and x or y is represented, we flag that.

reds.pl can/should show possibilities remaining

It can mark every digit and add a letter to the string as you go through. Then you can tell if something is forced or not.

This is probably semi-obvious from the initial inputs, but it's not hard to add, and it'll be a fun feature.

Generic "get through notes" issue (notepads)

There's a ton, isn't there. This is for Tales Slate ideas as well as my general ideas, so this may be deferred. But I want to write this issue so it is visible when I go to GitHub and thus I bump it in priority.

Mantle in Store U

Of course, it's a Lament Mantle. It changes the picture of the Previous Pious Rev.

He laments pretty much everything. It's some pretty aggressive lamenting! Full of tough love, if you're really gullible. And stuff he's actually sad about

Trefoil warriors need better description

What they look like, what they do when they flee.

Also, if there are people left over before you remove Rodney, they thank you. But they are slightly jealous of the people you did help out. They're too embarrassed to ask for help. They realize who you are. They will do the best with the virtues they have.

Cap the random text before cycling

  1. note, after 5 times, it will cycle after (XX). Also note you can see everything by winning the game or reading the source.
  2. at the end, note how many there are, total, and go in for that.

This will help especially with cases such as the Catechism where you have 3 different things that go in so maybe I have 10 of each.

This should/can be done for Shuffling, too. It will probably be a bit tighter, though the bit at the start will cut off before you get too far. It will be the biggest, going down about 20 times or so for each of 5 random names.

Macks behaving even more badly

I'm wondering if there should be a sort of way to judge how badly this behavior from the macks is to change.

Also,

  • tidy, PLUS/duty slip/lusty dip/stupidly
  • modestly
  • nice, slyer, sincerely
  • shabbily
  • shoddily
  • emotionally -> too menially
  • ends duly = suddenly

weed.pl: ignore "the" and :"a" at start of line

Shouldn't be too bad a fix. cromulent if gcd(all # of letters) > 1

if (($a =~ /the /i) && (cromulent($a)))
if (($a =~ /a /i) && (cromulent($a)))

Be a good way to get rid of some early false positives.

gender-neutralize the hints

Also mention that being male or female has nothing to do with gameplay.

And mention any "hilarious" bugs where female is he/him/his is due to me missing a grep or something. I'd like to know.

NO HINT/NOTHIN

"No hint" turns off hints for the current session.

"NOTHIN" turns off hints for the remainder of the game & you have to restart.

This is not as critical with Shuffling, though I may slip it in there.

source code vet: SA

1000 lines a day when I have the time. Look for obvious mistakes. 20 pages in Notepad++. Compile after each vet. Emphasis on documentation and looking for details and ??'s.

Current line: 0

stubs for f/m

to sort-genders:
if player is male: (do stuff)
else:
(do slightly different)

to say he-she of

to say him-her of

to say his-her of

(also need capitalization)

sort by base anagram utility

sba.pl

Basically takes everything with a base anagram (eg. mega game -> a1e1g1m1) and lumps them together in a hash and prints them out, to make sure overlap is not too egregious

This can be run across games for an extra check.

Bedroom is now Pallid, to start

I've liked the idea of changing location names while you're in them so much, I thought this would be good, in Troves. It also does the whole fake rags to riches thing a bit more.

new fruit in OTHERS

Newt L'Amore has fashioned a MEAN TROWEL which has protection against a MOANER WELT.

reconfigure Store T hinting

to determine which item is otters-hot-item:
(if it is nothing, print an error)
(if it is prefigured or hint-thru, note that)

Then redo "carry out discerning"

bad-cap.pl and alfy.pl

These aren't strictly for roiling but it'd be nice to be able to sort ideas by size and/or alophabet.

Also Bad-cap.pl will detect bad caps and how often they happen. For books, it tracks what is not capped. For everything else, it detects what is. Maybe each table has a flag for default capitalization or not and anything that doesn't touch it is flagged and incremented before sorting..

Dirk Stam can be female too

to say kidfirst:
say "[if smart kid is male]Dirk[else]Kim[end if]"

to say kidfull:
say "[if smart kid is male]Dir Stam[else]Kim Strad[end if]"

Dr Yow can be female in R4

The easy part is defining Yow so at the beginning.

The hard part is to note all the test cases. So I will need to grep for the following.

  1. doc-y and (him/his/he)
  2. Yow and (him/his/he)

Dr Lola Ollard

Lord Al Ollard

This can be put in the beginning when the player starts.

which-greedbag is a thing that varies.
if player is female:
now which-greedbag is Lord Al;
else:
now which-greedbag is Dr Lola;

hinting done-stuff may be a problem

For instance, the trout in Oyster, or the dart, or Leo or Rand, or even something that you've guessed but can't flip yet. Or anything with the old giant.

The test cases are too numerous to list at the moment, but if I hint-walkthrough, it should be pretty clear.

Dr Tera Darter

This can be put in the beginning when the player starts.

which-trader is a person that varies.
if player is female:
now which-trader is Tera Darter;
else:
now which-person is Art Erd;

Oh, don't forget Printed name of Dr Tera is "Dr. Tera"

Obviously I need to grep for trader and art and erd

Avoid hint disambiguation when not needed

Currently I just throw an error when hint disambiguation is needed, to avoid spoilers.

That's okay, but sometimes, it's really not needed. See: old giant vs giant painting in Roiling.

Granular stuff: in alternating Roiling tables, does "things repeat now" mean it?

In the bar, I say things repeat again but there's one more last text before the official restart.

Test of all cases:

CAP 2.GONEAR SHOP.Z.Z.Z.Z.Z.Z.Z

GONEAR STORE C.X IT.G.G.G.G.G.G

GONEAR LECTURER.Z.Z.Z.Z.Z.Z.Z

GONEAR CATECHISM.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z (catechism stuff ends first)

GONEAR RANGE.Z.Z.Z.Z.Z.Z.Z (more insults than girls)

then

SPIKE.E.SEEK.Z.Z.Z.Z.Z.Z.Z

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.