Tuesday, April 29, 2014

Dominion: After Dark Part 10 - More Suggested Sets

Five more suggested sets, most of them trying to be a little more well-rounded, though some are attack-heavy as is sometimes necessary to make good use of particular cards.  Combining these suggested sets with the previous ones uses all the cards in my expansion about evenly, as well.

Using Dominion: Intrigue:
Cruel Days: Minion, Pawn, Secret Chamber, Swindler, Torturer / Chaplain, Dark Forest, Funeral Home, Ghost Town, Hanging Tree

This one is attack-heavy, but using Intrigue's attacks instead of After Dark's.  I did this in particular so Dark Forest could be utilized well in this set.

Using Dominion: Seaside:
Sailors Take Warning: Embargo, Fishing Village, Lookout, Sea Hag, Warehouse / Banshee, Dark Forest, Folklorist, Hideaway, Seance

This one only offers one attack (Sea Hag), but uses Dark Forest again, so players who want to use it will probably go for an Apparition strategy here.

Using Dominion: Prosperity:
Pound Foolish:  City, Counting House, Mountebank, Peddler, Trade Route / Con Man, Goblin, Knocker, Physician, Wendigo

This one is a high money affair, and uses Charms without Curses, to bring Charms' other uses to the front.

Using Dominion: Hinterlands:
Ill Tidings:  Ill-Gotten Gains, Inn, Margrave, Oracle, Stables / Angry Mob, Blood Pact, Campfire, Graveyard, Zombie

Not sure what I was thinking on this one; attack-heavy, but only a couple of Curse-giving attacks.  I think here I was trying to come up with a decent place for Campfire.  As much as I like Campfire, trying to come up with good sets that work well with it is tough, so I may rethink it to make it more universally useful.

Using Dominion: Dark Ages:
Darkness Falls: Altar, Bandit Camp, Hermit, Scavenger, Vagrant / Chaplain, Hunchback, Funeral Home, Voodoo Queen, Werewolf

This one is meant to be more of a well-rounded set, I think.  It's got a few attacks, but also a few money-givers, as well.

Once again, try them out, see if they're any good, let me know what you do and don't like about them, and I'll take them into consideration when I revise them.

Tuesday, April 22, 2014

Dev Log: Horror Text Adventure #47

I started a to-do list of functions and classes and things I've begun but haven't completed yet, so I don't forget them and then redo them and have extra code later.  I also added some long-term goals of the project (like multiplayer functionality which will be a while before that gets implemented), as well as other major mechanics that must be implemented but I haven't started yet (keys, puzzles, etc.)  I'm sure this to-do list will spiral out of control soon, as I keep coming up with more and more to accomplish, but it will feel good every time I get to delete something off it.

I also went back and reread the first few dev logs of this project, mostly to look at the notes and add any big-picture stuff to the to-do list that slipped my mind.  Well, going back and rereading it revitalized me a little bit.  I forgot lots of things!  This will certainly end up being far more complex than just the little basic things I've been working on so far, and that gets me excited to work deeper on it.  Getting little things like plurals to work properly is a mind-bending enough task on its own, but to get particularly big mechanics in like the multiplayer functionality and puzzles and stuff will be a deep challenge (and hopefully a fun one).

On Easter I did a bit of yard work, and it seems like my mind thinks about this project a lot when I'm raking.  Thinking over the old notes and what the scope (and for that matter, theme) of the game should be, I've come up with what I think is a great direction to go.  When you think about this as being an allegory of growing up, you wonder, apart from the other players you meet in school (common zones), what about adults?  Why are there no adults at all?  Well, what if the player is a latchkey kid?  A latchkey kid is a child who comes home from school to an empty house because both parents work.  So what if that's basically the commonality between all players?  Each player is a latchkey kid, and the puzzles of the game revolve around self-reliance and learning to occupy your time or figuring out the world on your own, because your parents aren't there to help.  Each player's situation is different, but there are enough commonalities that players can still give general "life tips", as it were--tips on playing the game.  Clues can come in the form of notes or answering machine messages from parents as to what to do to solve puzzles.

I think this is a really interesting way to go about things.  Hopefully I can subtly add this layer of story and symbolism into the game without getting to pushy about it.  In the meantime, of course, just getting basic mechanics to work is the first step.

Tuesday, April 15, 2014

Dev Log: Horror Text Adventure #46

I shrank the draw and erase commands by a fair bit by finally making the general findItem function.  It basically just looks through an item vector (the player's inventory, or the room's), and compares the name of the item with a pre-defined string.  That is sure to come in immensely useful in many other commands later.

Next, after seeing a Dwarf Fortress update where I got to see some of the code, I noticed Toady One had plural versions of the names of his plant life, etc., as well as adjective versions.  That struck me as pretty interesting, so I'm wondering now if that's the best way to handle problems with English, like words that don't follow plural rules.  So rather than creating some silly functions that pluralizes things and figures out the exceptions and all that, why not just add a variable to each item with a plural version?  Then as the player looks around the room, it's far easier to say "there are two beds here".  As it is, I've already created an item with an exception (the plural of "chalk" is "chalk", or "piece of chalk" becomes "pieces of chalk").  So I've added a plural variable to every item, and started to make a function that finds out how many instances of each item are in a room.  That's a bit more complicated than it seems at first glance.  I've gone through two iterations to figure out the best way to implement it, but I'm still having some trouble.

Tuesday, April 8, 2014

Dominion: After Dark Part 9 - Suggested Sets

I came up with a few suggested sets from various Dominion expansions:

Using vanilla Dominion:
Night of the Living Dead: Cellar, Council Room, Militia, Laboratory, Village / Midwife, Seance, Wendigo, Werewolf, Zombie

This one's got quite a few attacks, but otherwise fairly well-rounded.

Using Dominion: Seaside:
Lonely Islands: Ambassador, Explorer, Island, Outpost, Salvager / Banshee, Hanging Tree, Hunchback, Knocker, Ripper

The tough part about this one is that nothing gives you additional actions!  Purchase carefully!

Using Dominion: Alchemy:
Curse-iosity: Alchemist, Apprentice, Familiar, Golem, Scrying Pool / Folklorist, Goblin, Graveyard, Midwife, Physician

You can tell the theme from the title on this one.

Using Dominion: Cornucopia:
Upstarts: Fairgrounds, Hamlet, Tournament, Young Witch (Bane Card: Fortune Teller) / Angry Mob, Blood Pact, Con Man, Hideaway, Voodoo Queen, Zombie

This one is pretty attack-heavy. I also like the idea of having the Witch's Bane be an attack itself.

Using Dominion: Dark Ages:
Graveyard Shift: Cultist, Death Cart, Graverobber, Junk Dealer, Rats / Campfire, Ghost Town, Goblin, Graveyard, Ripper

This one, like the theme of Dominion: Dark Ages, is heavy on trashing.

Test them out if you have the expansions, and let me know what you think!  I'll work on modifying these and coming up with more to have a few suggested sets with every combination.  Also, if you come up with any other fun suggestions, leave a comment and I'll test it out!

Tuesday, April 1, 2014

Dev Log: Horror Text Adventure #45

I previously had not taken into account the possibility of more than one of the same type of object in a room, so I've been working on making adjustments to the code so if there are two chalkboards, for instance, you can draw and erase on both of them.  Right now it only picks the first in the list, and once it's full, you can't draw anymore or choose the other chalkboard to draw on.

To make that work, first came a little restructuring to recognize that there may be more than one object in the room of a given type.  So I switched a few single item variables into arrays to detect for erasable items, so more than one erasable item could be erased, instead of just the first.  Doing this was handy because it actually removed the type warnings I was getting when I compiled.  So that's one thing I never have to see again.

While I did that, I removed the for loop breaks so the loop doesn't stop when it finds the first possible item in the list, but keeps going to get all of them.

Next, I did the same with the draw command.  At this time, there is no change for what the player does, it's just set up for later when I fully implement it.

I also made it so the player can say "move north" or "go north" or whathaveyou, but can also just give a direction (just "north") and the player will move properly.  Actually, with the way the parser is currently set up, I probably don't even need to specify the words "move", etc.  But I'll keep them for now, in case something else at some point requires a direction as part of it's command (like "look up" or something might later give a description of what's above).

I also made a repeat command.  Now the player can type "/r" and their previous command will be carried out (as long as it's a verb command, so you can't just spam the chat with a long message a thousand times).

Lastly, an invalid command will be repeated in the error box so you don't have to look two places to see that you made an error and then search for what the error is.