Coder Social home page Coder Social logo

fields_of_peril's People

Contributors

samuelvary1 avatar

Watchers

 avatar

fields_of_peril's Issues

Write a better help screen

This could appear on a letter that the player picks up and reads, like in Zork, but it could also just be whenever you type help. It should explain how some of the riddles work, answers should be converted to numbers to use as keypad codes, etc.

Set up a riddle system that either pops out a key or a keypad code

An example would be, you step into town square for the first time, a guy pops out and asks you a question, if you answer it correctly he tells you a keypad code. if you answer it wrong, he can say sorry, but anytime you're in the same room you can type 'talk to.. ' and he'll ask you the same question (and maybe can have more complex multiple choice conversations later)

First message appearing when you go back in the first room

If you leave the room you start out in (type 'go west' to emerge into the stairwell outside the apartment) and then go back inside ('go east') it still displays the chapter 1 header and the first_time_message still appear. They should only appear the very first time you start the game.

This bug doesn't happen when you go in and out of any other rooms so it's something to do with the initialize_message method.

Create a system for 'special passageways'

These are directions to new rooms that can only be accessed using special knowledge or equipment. It can be a locked door that requires a specific key, rotten stairs that require knowledge to pass safely, and so on

Add ability to 'look carefully' at an object

This should reveal the object's detailed description and if it has knowledge == true, then this should be added to your avatar's knowledge array (along with commensurate points increase)

Build a saving / loading system

This will probably be pretty tricky to implement but need a way to save the exact state of the player's game (location, score / progress, inventory, item locations in all rooms, etc.) that can be loaded at any time, or automatically when you start the game. Or there should be a menu when you start that says 'new game' or 'load game' basically. If you get killed in the game as well, it should also prompt you to load from your most recent save. May be possible to have multiple save slots but that will be really hard as well. Might be more feasible to only have one possible saved game.

Give [item] to [character] command

This should be pretty straightforward.. and it will accompany the ability to talk to NPC's as the only real interaction with them (there might be multiple choice conversations later, I'm not sure). You may find out what they want by talking to them, for instance. Then, if you give them the correct object, they will either give you something (key gets added to your inventory, with a message) or tell you something (the code to the vault is 4532). If you try to give an NPC an irrelevant object they should say "what would i want with that?"

Fix inventory display

Can't get this to list the items properly, always with an extra line that looks bad or with "you are currently carrying" shown after the list of items

Items need a way to contain other items

Example of how it should work:

take letter from box
you can't, the box is closed
open box
the box is open
look in box
the box contains a letter
take money
there's nothing like that here
take letter
taken (and now in inventory)
look in box
the box is empty
close box
you close the box
put letter in box / (put letter back in box should be understood as well)
you can't, the box is closed
open box
the box is open
put letter in box
you put the letter back in the box
look in box
the box contains a letter

Give player HP system

Injuries should be specific (broken leg from falling down the stairs, etc.) and deduct a commensurate amount of HP when it happens. If the deduction exceeds or matches your current amount, you die.

There should also be a 'status' command that lists your current injuries. Don't need to make it any more complicated than that.

Add ability to drop an item

You should be able to type 'drop [object]' with any item currently in your inventory and it will be removed and added to the items array of the room you're currently in (avatar.location.items)

Add the ability to pick up objects + inventory system

Few criteria that you'll need to implement here:

  1. 'pick up ' or 'take ' or 'grab ' to take something from the current room, if it is in the current room's list of pre-populated items.
  2. Add the object to the player's inventory
  3. Remove the object from the room's 'inventory'.
  4. If you type 'drop ' it will remove the item from your inventory and add it to whichever room you are currently in.
  5. Create a command 'inventory' or simply 'i' to display the list of objects you are currently carrying.
  6. create a command that lets you see the objects currently in a room for debugging purposes only, should not be enabled in the real game obviously. (you should know what objects might be in the room by advanced looking commands, which we'll need to add later.

Add a scoreboard

If you die you should have the option to enter your initials with your score when you died. Then you can load your game or start over and try to beat that score. Have it look like an old-school arcade game high score list with three initials only for recorded players' scores.

Need an unlock command that checks if you have a specific key for a specific door

This should be put to the test the second you leave the first room
in order to leave you must:
take key
unlock door
go west

otherwise, typing go west will say "sorry, the door is locked"

maybe here it could actually ask the player if they want to try and break it. If they type Y, they will smash through but lose 10HP or something..

Design keypad interface

This should be easy to add so that whenever you have one in a room, and it's visible i.e. you know it's there and visible: true, you can attempt to punch in a code to unlock the access point.

example:

use keypad

i don't see that here
push bookcase
you give the bookcase a shove, revealing a keypad.
use keypad
your fingers hover above the keys. what's the code, champ?
go east
i'm sorry, that's not a valid code
exit / leave keypad
you decide to take a step back and think for a moment
go east
you head east
go west
you head west (back into the room with the keypad)
use keypad
your fingers hover above the keys. what's the code, champ?
4918
that's... incorrect. you have 4 attempts remaining before a spike falls on your head. [might add this later]
1234
that's... correct! the keypad lights up and a hidden doorway swings open in the eastern wall, allowing you to freely step through, if you like.

Problem with repeatedly picking up / dropping objects

If you pick up an object, drop it, pick it up again, then drop it a second time, the game thinks you aren't carrying it. Picking up and dropping is generally buggy but it's close to being done. It almost seems like you have to type the command twice for it to work properly...

Add a points-based scoring system

This should be constantly on display so a player can see whenever they've accomplished something important in the game. Maybe objects should have a point system that gets added to the player's score when they get picked up, and also certain actions and advancements must have an inherent point value that gets tripped when you accomplish them. Zork has the same thing for reference.

Need some way to kill the player if they don't type 'look closer' before going downstairs on the third floor

Right now if you type 'look closer' when you see the rotting steps outside of the apartment, it says 'you can see a way to safely hop over the stairs'. If you don't use this command, it should have your player fall down through the stairs and either get severely injured or killed.

Need to figure out a way to check if the player has used this command before they proceed downstairs (maybe some sort of 'knowledge' array and then the game checks if you have key pieces of information before you proceed to a new room?).

Give items 'pickupable' attribute

Certain items are fixed in place in rooms, but may still be important. i.e. door is an object but if you type 'take door' it should say it won't budge. however, you'll need to be able to say 'unlock door' and then change its state to unlocked in the same hash

Add unlock command / ability for doors and other access points

The unlocked attribute is already in the access points sub-hash, just need to check if the player is carrying a specific key when they type "unlock door" then change unlocked to true.

access points may not need to be open or closed, simply unlocked or locked, to pass successfully through them. open or closed should only apply to containers, but containers can also eventually be locked / unlocked as well.

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.