tukkek / infojack

Free browser-based cyberpunk roguelike based on OGL Cybernet rules
https://tukkek.github.io/infojack/
GNU General Public License v2.0
8 stars 0 forks source link

Frames #12

Open tukkek opened 7 years ago

tukkek commented 7 years ago

Before entering a frame, a player will be given a preparation screen containing credential #19 and program #15 options. writing a prep program should only be done after a successful research #5

He can also use Research (1d4 hours) to show some basic information about a Frame on this screen. Actually this works better in a more fixed way: you can take 1d4 hours to present a full report with all your findings. You can either take 10 or 20 in this roll. The basic report is represented by a DC of 10+Frame#level. Certain pieces of information add +5 to +15 to the DC. Taking 20 is possible.

tukkek commented 7 years ago

Frames can have connections to other frames (especially those of the same company). Not sure if they can have "sub-frames" but that'd make sense.

tukkek commented 7 years ago

Frame#level raising, instead of being done in a case-by-case basis, should just take into account if a red alert was raised during the session and make the check listed elsewhere. ICE#level raise for all ICE by 1 with Frame#level (or just make sure that random ICE are leveled up until the proper EL is achieved).

tukkek commented 7 years ago

Generating a Frame map. Remember that nodes can only have NWES exits.

  1. Start with a Portal
  2. Create an adjacent Gate (a)
  3. Select a random node in this sector with at least 1 valid (a) exit
  4. Create a new empty node (corridor) in that exit
  5. Determine if this node is special (b)
  6. Go to 3 and repeat until the number of nodes is equal to 10+Frame#level*2
  7. Place the Core and Alarm Management in the final section (if there are no free nodes available, create them)
  8. Generate ICE.
  9. Generate 1 file, of equal level, per ICE. Distribute those randomly between datastores, After, that generate the remaining files #37
  10. Once all Frames are done, it's time to connect Portals to other Frames. Frames that can't be reasonably connected should create new Portals on other Frames.

(a) Every time the generator creates a Gate, a new section is started, creating an adjacent node. New nodes (step 3) cannot be placed to adjacent nodes that were already created but are not on the current area (preventing non-gated passages between areas).

(b) there's a 25% chance that a normal node will be special. Choose a random type of node here (except CPU, ICE Entry, alarm management...). If it's a gate, remember to follow (a).

tukkek commented 7 years ago

Ice generation

Target:

To calculate the EL:

  1. Sum all ICE into Power Level (pl = (cr==1?1:Math.pow(2, (x/ 2))))
  2. `el = (pl == 1? 1 : 2 (Math.LOG2E Math.log(plsum)))

You start with an array of ICE levels, each item starting with Frame#level. You randomly decrement one item until Math.round(el)<=Frame#level. Once the ICE levels are decided, enter this loop until you have enough ICE to fill all positions:

  1. 50% guard
  2. 20% patrol
  3. 30% worker

Once you have randomly generated your classes, assign all higher levels to guards, all lower levels to workers and the rest to patrols.

These levels are the then used as Purchase DC for files and places in datastores.

tukkek commented 7 years ago

Yellow / red alerts need not be a immediate ladder but rather take a few number or transgressions to reach, or a % roll to activate based on Frame#level. Keep this as an alternative system if the traditional proves too brutal.