Library Suggestions

This is a page for us to add suggestions on what kind of things we’d like to see in the Hugo Standard Library (should Mr. Tessman ever decide to revisit it, or if one of us decides to do a rewrite and unleash it upon the world).

New Properties

New/improved property ideas go here (remember that name, before, after, noun, adjective and article are hard-coded into the compiler)

  • Dynamic Name - This feature (called dynname) causes the name of a room to be created dynamically, that is, programmatically. I had to put it in because changing the “name” property on a room in some cases triggered a “MORE” prompt and stopped for the user to type a character. I now realize there is a simpler way to do this.

New Attributes

The standard attributes are okay, but sometimes you may want to do something different in a game. Here are a few suggestions you might use for attributes that aren’t in the predefined list, but are useful for things in your game. And included are ideas on what a particular attribute might be used for. Some of these are duplicates of others, but the idea is to help you find the right name for an attribute, so that, for example, you have silent or noisy depending on which way you wanted to emphasize the situation. Some of these you could modify by putting UN or NOT in front. Some of these might be combined, so you have Cold_Money to indicate some that was hidden in a freezer, Wet_Paint, Incoming_Teleport/Outgoing_Teleport, etc.

  • Abandoned - Changes the description, make it more gothic.
  • Ammo - that which reloads a Weapon, you can create a property or another attribute to say what kind, but you can just put a check in, if you had a “reload” command, if the item they want to reload isn’t ammo, then you just ignore it
  • Animal - Something may be alive as a character but you can declare an animal if the person wants a horse or a dog around
  • Bankrupt - If you have a multi-player trading game, the ones that go bankrupt can be skipped
  • Better - opposed to worse or used or wornout
  • Blocked - might be temporarily blocked, or something closed it
  • Borrowed - something that was loaned
  • Broken - the user broke it or it failed
  • Breakable - might be something you can break as opposed to something solid
  • Clean - Your car is now no longer dirty
  • Coin - a valid form of money as opposed to a slug
  • Cold - Perhaps too cold to handle, or the room is cold
  • Collapsed - it failed, like a cave in, or crushed
  • Conveyor - takes you through a number of places, or try a teleport, escalator, elevator etc.
  • Crushed - as opposed to being in good order, or collapsed
  • Damaged - something needing to be repaired
  • Dead or Deceased - The living attribute tells if something is a character, but what if you’ve killed them, or what if you’re doing a zombie?
  • Deadly - Entering this room or touching an item with this attribute makes you sick or kills you, perhaps instantly
  • Defective - Really badly busted, or maybe wornout beyond its useful limits
  • Depleted - Worn out Uranium is still very hard, and “depleted uranium” has a lot of military uses (or it might be for something that isn’t radioactive)
  • Dirty - until you clean the car, people keep writing “Wash Me” on the windows with the grime
  • Done - some things might be InProgress because they take multiple turns, and some might indicate they’re done
  • Down - Position of a two-floor elevator or direction of an escalator, or up; could also mean a non-working computer or device
  • Dripping - Has a small leak or is slightly wet. Bigger leaks could use leaking
  • Dry (or Wet)
  • Dusty - as opposed to dirty or clean
  • Eaten - You throw out pieces of meat, if they’re partially eaten, you know that an animal has touched them
  • Edible - Plants that you can safely eat. Or Inedible
  • Elevator - You might specifically identify something as one, as opposed to transport or escalator
  • Empty - Out of ammo, out of gas, or something else
  • Escalator - or elevator, or transport or conveyor
  • Fast - as opposed to just quick or possibly slow
  • Flat - Bad condition for a tire or soda
  • Flame - Something on fire, or a lover
  • Flammable - Can burn, and technically the right word is Inflammable but most people use this
  • Floating - as opposed to it sitting on the ground
  • Food - Something edible
  • Free - In a store, some things might be free; taking them doesn’t cause you to be suspected of shoplifting
  • Fresh - Don’t want stale food or frozen food
  • Frozen - as opposed to thawed
  • Fuel - Similar to ammo, if someone tries to fuel something and the item isn’t marked as fuel, you don’t have to check, you just refuse it
  • Full - The garbage needs to be taken out
  • Glass - something is solid and perhaps transparent, but it could be a type of wall that is also blocked until it broken
  • Glasses - You might be blind without them, or you might be drinking from them; or might be broken as opposed to your good ones
  • Goggles - May give you extra vision capability when combined with the standard worn attribute
  • Gold - You might distinguish, say, gold from fools gold when ore is found in a mine
  • Heavy - Movable, but you have to have something like a lift truck
  • Hot - Possibly too hot to handle or causes burns, or the room is hot
  • Incoming - something that is one way inbound; could also be a modifier for some other transport or conveyor or teleport
  • Inedible - Stuff you can’t eat
  • Inflammable - The correct term for something that burns as opposed to flammable
  • Inflated - A better condition if you have a tire
  • InProgress - Something might require several turns to accomplish, so it’s inprogress until done
  • IsAspie - Whether you are the sort of person to write up 75 new Hugo attributes
  • Jammed - Shotguns don’t jam, but automatic weapons do
  • Killed - Something killed as opposed to dead from natural causes
  • Leaking - Has a leak. If there are small leaks you could use dripping
  • Liquid - or possibly wet or a solid
  • Loud - as opposed to noisy, silent
  • Loaned - something borrowed
  • Money - Something that can be spent, perhaps in a store, possibly instead of a coin or cheating with a slug
  • Mirror - You can see some things behind you
  • New - Or old or young or used
  • Noisy - Some things might be, or quiet or silent or loud
  • NOT - while there is a not keyword, if a particular condition tends to normally be negated, putting NOT as a prefix may be easier to understand; can be used as a modifier, NotWet instead of Dry, NOTUsed instead of NEW, NotNew, NotFrozen instead of Unfrozen or thawed, etc.
  • Old - or new or young or used depending on whether you want to emphasize something has aged or it hasn’t
  • Out - Perhaps something is out of range
  • Outgoing - something that is one way outbound; could also be a modifier for some other transport or conveyor or teleport
  • Paint - Something is a class of paint
  • Painted - Has fresh paint on it
  • Paper - something that can have annotations or writing on it
  • Poison - Not to eat, or something you throw at an enemy to kill them
  • Quick - You might have characters that are fast or slow or some object might move quicker
  • RadioActive - Room or object might be (see also depleted)
  • Redirect - Room redirects you someplace else
  • Repaired - something no longer damaged
  • Rusty - it might squeak or he harder to open
  • Seating - Create a ‘sit’ command, and you can sit on the chair, the couch, or the bed, but not the table
  • Silent - Perhaps a weapon has a silencer, or something is quiet
  • Slow - or speedy or fast
  • Slug - garden pest, or a fake coin, pretending to be money
  • Solid - as opposed to liquid, could also be wet
  • Sound - Something is making one
  • Speedy - as opposed to quick, slow or fast
  • Stable - or collapsed (or modify as unstable)
  • Stale - as opposed to fresh or frozen
  • Store - You might be able to buy things (with money or coin) only in rooms indicated as a store.
  • Terminal - A place to leave something, a place where transport arrives or departs, or a character that is dying
  • Teleport - something that directly or can directly move you to someplace else without going through other intervening rooms
  • Thawed - as opposed to frozen
  • Tool - something you might need to fix a damaged device so it is repaired
  • Track - Stand there and maybe the Train runs you over
  • Transport - Something that can move people or things, there is a built-in vehicle class, but this might be an elevator, escalator, conveyor or something different entirely
  • Train - Might be a type of shuttle, a full train or something else, runs on a track
  • Unwound - A spring that has released its energy
  • ’'’UN ‘’’ - Can be used as a modifier, Unsound instead of Defective, Unused instead of virgin, Unblocked, Unfrozen instead of thawed, etc.
  • Up - Position of a two-floor elevator or direction of an escalator, or down; also the state of a working device
  • ’'’Used ‘’’ - as opposed to something new or worse, ‘wornout
  • Varnish - something used on furniture instead of paint
  • Virgin - Maybe you’re doing a game about sex, or something never used (also you could do unused)
  • Weapon - anything from a slingshot, pistol, shotgun, to a LAWS rocket, a fuel-air explosive, or a suitcase nuke
  • Wet (or Dry) - plumbing, fixtures, a trough, wet paint, or possibly dripping, also liquid or solid
  • WornOut - really heavily used
  • Worse - not as good a condition as better
  • XRay - Produces dangerous X-rays, is leaking x-rays, etc.
  • Young - as opposed to old or new or used
  • Zombie - you might have corpses, and some that are not only dead, but have been reanimated

New Functions

  • Ordinal - This function creates the 2-letter extension for numbers, 1st, 2nd, 3rd etc. This handles numbers from 1 to 99.

    routine Ordinal( I ) { ! routine for Hugo Interactive Fiction System to generate the 2-letter extension ! for a number, e.g. 1st, 2nd, 3rd, etc. ! ! Provided courtesy of Viridian Development Corporation !

    local J,K

     J = abs(I)/10             ! Tens Digit
     K = mod(abs(I),10)        ! Units Digit
    
     if J = 1
        return "th "   ! 10th through 19th
     else
    
     select K
     case 1
         return "st "
     case 2
         return "nd "
     case 3
         return "rd "
     case 4
         return "th "
     case 5
         return "th "
     case 6
         return "th "
     case 7
         return "th "
     case 8
         return "th "
     case 9
         return "th "
     case 0
         return "th " }