People in Glass Cells

So I want to have zombies moving around in glass cells, which people can view from the outside, and I want the zombies actions to basically print in the observation chamber. What would be the best way to do that, you think? Making them as separate rooms and then having all actions print in the observation chamber too? Or making them as rooms / objects (containers) within the observation chamber? Or just as transparent objects (containers)?

Do you have zombies wandering around as well? Does a zombie in a cell behave the same way as a zombie walking around normally? Can you go into the cells?

I'd likely just have a zombie object whose description says it's in a cell. It would look the same to the player, anyway.

You could make the cells a transparent container inside the room(there is a bug with transparency, but it is corrected in the next version of Quest which is being beta-tested).

Or look at the "Adjacent rooms" bit on this page:

I'd like it possible to open the doors and the zombies to come out, and for them to behave randomly until that happens (at one point it runs its mouth against the glass, in another it smacks its head against the glass). I'll take a read through adjacent rooms as that could work better.


I wonder if this wouldn't be easier to do with the room description?

Because the description shows up each time you look at the room, you can use stacked first time with it.

So, in your room description you say there are zombies moving restlessly inside the cell. Then stack a bunch of first times/otherwise. So each time you look at the room it will show you a different description of the zombies. Stack like 6 first times, and then your last otherwise have be randomized. This gives the illusion of changes happening in a really simple way. It's a nice trick for narrative heavy stories to give the feeling of changes happening.

You can then tie these descriptions with flags to the zombies. So, if you are on the first description add flag1 to zombies. When they look again at the room flip off flag1, and turn flag2 on zombies. Then when you look at the zombies specifically, have it check which flag is on from the room description they are on and have the zombie description correlate with more detail, it's fun because then you can also add in descriptions of the characters reactions to the zombies when they look at specific details of the scene (look at zombies, look at cell) to up the scene tension. So if one of the zombies just ran it's mouth across the glass, when you look at the cell you can describe the smear left there by the zombie.

I like to do this with descriptions.

{random:Marie is busy pouring a {random:brown:yellow:clear:red:blue} liquid into one of the pots.:Marie is {random:chopping:slicing:cutting} up {random:a plant:leaves:odd animal entrails} on a small wooden block:Marie is preoccupied with {random:writing:reading} a {random:recipe:book:spell}.}

really adds life to the descriptions and it is easy to do.


Forgewright, this is amazing. You are awesome, thank you for posting.

ooh, this is cool. And I can add an If / Else statement so this description ceases when there are no longer any more zombies in the cells. I mean, it'd be ideal to have these descriptions randomly print on occasion. Is there a way to do that? Perhaps a time-script, do you think? Hmm....

if (RandomChance(50)){
  // Do one thing
else if (RandomChance(33)){
  // Do a different thing.
else {
  // Do whatever else (or nothing).

example (taking KV's post further and using forgewright's post's contents for it):

if (RandomChance (50)) { // 50% chance // if (TRUE)
  msg ("{random:Marie is busy pouring a {random:brown:yellow:clear:red:blue} liquid into one of the pots.:Marie is {random:chopping:slicing:cutting} up {random:a plant:leaves:odd animal entrails} on a small wooden block:Marie is preoccupied with {random:writing:reading} a {random:recipe:book:spell}.}")
else { // if (FALSE)
  msg ("{random:Marie is busy pouring a {random:black:purple:green} liquid into one of the pots.:Marie is {random:putting:dropping:throwing} {random:mushrooms:frogs:monkey's brains} on a small wooden block:Marie is preoccupied with {random:incanting:conjuring} a {random:summoning:enhancement}.}")

there's also...

an example:


  random_integer_number = GetRandomInt (0, 100)

  if (random_integer_number > 66) {
    // blah scripting
  else if (random_integer_number > 33) {
    // blah scripting
  else {
    // blah scripting


and if you're working with Double (floats / floating points, aka: decimal numbers), an example:

random_double_variable = GetRandomDouble () // this randomly selects a decimal number between 0.0 and 1.0

create ("katana")
katana.damage_double_attribute = 50.0

player.weapon = katana

player.damage_double_attribute = player.weapon.damage_double_attribute + player.weapon.damage_double_attribute * random_double_variable

This topic is now closed. Topics are closed after 60 days of inactivity.