vache / Cataclysm-DDA

Cataclysm - Dark Days Ahead. A fork/variant of Cataclysm Roguelike by Whales.
http://en.cataclysmdda.com/
Other
1 stars 0 forks source link

Computer Changes #9

Open vache opened 9 years ago

vache commented 9 years ago

Major Changes:

How it Works: New json addition to map code, "place_computers", takes x,y location, name, prompt, and set of options. Each option contains a prompt, a set of security measures, a set of actions to take on security check pass, and a set of actions to take on a check fail. When accessing a computer, each option's prompt is displayed. Selecting a prompt triggers the security checks, which in turn trigger the applicable set of actions.

Security Checks: Password - Parameters: password - Requires a password to log in. Will have to include the password in an accessible terminal or on an item somewhere to be used. Item - Parameters: item name, item count, consume - Requires a set amount of items to log in. May consume the items or not. Hack - Parameters: difficulty - Requires successful computer skill check to log in. Trait - Parameters: trait name - Requires player to possess a certain trait. Pass or Hack - Parameters: password, difficulty - Requires either a password or a successful hack attempt. Trait or Hack - Parameters: trait name, difficulty - Requires player to have the trait or pass a hack attempt. Item At - Parameters: location, item name - Requires an item to exist at the specific location. May roll this into Item. Container At - Parameters: location, watertight, software, empty, contents - Requires a container to exist at the specific location. If watertight, requires a liquid container. If software, requires a usb drive (currently, may be adapted to include SD card, PDAs, etc). If empty, requires the container to be empty. If contents are set, require the contents to be in the container. Also may roll this one into item. Skill Check - Parameters: skill name, difficulty - Require passing a generic roll of a specific skill and difficulty.

Actions: Change Terrain - Parameters: location, terrain - Changes the terrain at the location to the specified terrain. Message - Parameters: message - Display a message on the computer display window. Change Level - Parameters: number of levels - Changes z-level. Noise - Parameters: volume, description - Makes a sound with given volume and description. Spawn Monster - Parameters: location, monster - Spawns a monster at given location. Spawn Item - Parameters: location, item - Spawns an item at given location. Fill Container - Parameters: location, contents, charges - Places number of charges into container at location with contents. Reveal Map - Parameters: z level, radius, terrain types (optional) - Reveals circular area of map at z level with given radius, specifically the given terrain types if given. Add Trap - Parameters: location, trap - Adds the specified trap at the location. Remove Trap - Parameters: location - Removes trap at location. Add Field - Parameters: location, field, density - Adds specified field with given density at location. Remove Field - Parameters: location, field (optional) - Removes all fields at location, or just specified field if given. Explode - Parameters: location, power, shrapnel, start fire - Creates an explosion at location with specified power and shrapnel levels, and whether it starts a fire or not. Kill Monsters - Parameters: top left location, bottom right location - Kills all monsters in a rectangular area. Disease - Parameters: disease name, duration - Adds a disease to the player for a duration. Pain - Parameters: min, max - Givens player random amount of pain in range. Event - Parameters: location, event type, when to trigger, faction association - Triggers a given game event centered on location, at the time, and with certain faction association. Cascade - Parameters: - Trigger resonance cascade. (May be removed) Nuke - Parameters: - Trigger nuclear missile targeting. (May be removed)

DavidKeaton commented 9 years ago

Very nice. Since you reworked the computer stuff, you should know more than I the feasibility of "networking" comp id's together. Possible? (Wanting to build upon yours once it's pushed to add some neat things)

vache commented 9 years ago

Right now, computers don't have any knowledge of each other. It might be possible to have one computer access another computer, but you run into reality bubble situations like everything else. It might be possible to access a computer through a control laptop or something like that through a similar system (scan the area for nearby computers, then wrap the use_computer() function with an iuse or something similar)

DavidKeaton commented 9 years ago

Something along the lines of what I was thinking. The reality bubble is a 3x3 submap anyway, yes? If so, still some breathing room. Or you could cache any actions to take place when that area becomes cached in.

vache commented 9 years ago

It's 11x11 submaps I think. Each submap is approximately 1/4 of an overmap terrain, so the reality bubble extends approximately 5x5 overmap terrain tiles centered on the player.

DavidKeaton commented 9 years ago

That's a good enough bubble to network things together as most of the larger structures fit into that. I def get some ideas brewing. It may not provide much use with current setup, but once they are fleshed out...