# A Breath Away

## Overview
The title comes from the dystopian existence of the "in-present" character in a cyberpunk dystopia. (S)he finds a portable game console (think: GBC) that contains one game: A Breath Away. It's both the title of the in-game handheld, and the idea that this game is the only respite the player's character could get.

## Features
* Random worldgen - want ABA world to feel big
    * Pre-built areas/interactions for crapsack world
* No husbandry - sorry, no horses/chickens/cattle/single cat
* Can grow plants from seeds
* Can harvest plants, get food/seeds
* Can kill/cook wild animals - this is a harsh reality in-game-game too
* Can kill/cook monsters - maybe with a random % of adverse effect?

## Resources
* Wood
* Plant fiber
    * is tough
* Sap
    * is sticky
    * is flammable
* Seeds
    * can attract birds
    * can grow shit

## Craft Items
* Metal (ingot?)
    * Metal Ore
* Axe
    * Wood
    * Metal
* Hoe
    * Wood
    * Metal
* Workbench
    * Wood
* Furnace
* Sword
    * Leather
    * Metal
* Bow
    * Wood
    * ???
* Rope?
    * Plant fiber
* Shield
    * Leather
    * Metal

## Entities
Pile of wood
Metal ingot
Player
Bunny
Wolf
Chicken


## Tile types
All ground tile types have a (very small) chance of containing a randomly chosen [thing (treasure/curse?)] when naturally occurring. Said "thing" is exposed when tilling the dirt or cutting the grass.

* Dirt - base type
* Tilled dirt - tilling exposes the potential item
* Tilled watered dirt
* Tilled, seed planted
* Tilled, sprout
* Tilled, mid-size
* Tilled, full-size
* Grass - Smooth (mowed)
* Grass - Rough (wild)
* Tree
* Rock
* Ore
* Wood log
* Wood plank?
* Stone

## ABA Player
Health - starts at 3 hearts (6 health)
FoodLevel - max of 20
FoodSaturation - max of FoodLevel, starts at FoodLevel
FoodTickTimer - cycles of 80, at cycle health is +/- depending on saturation/starvation
FoodExhaustionLevel - added to depending on action, when reaches 60 it resets and deducts one point from FoodSaturation
Tiredness - Starts at 0 when starting or waking

### Exhaustion
The following actions generate exhaustion points for the player:

* Swing sword - 3
* Hoe a tile - 1
* Harvest - 1
* Mine a block - 5
* Chop a tree - 4

## IRL Player (Reverse Tamagotchi)
Treat the game like a reverse tamagotchi. The "player" in the game is the "virtual pet" that must have its basic food/bio/sensory stimulation/? needs met, or the game is "lost" (player is dead).

When the player is in the real world, they can receive emails on the computer (maybe in-game).

Maybe IRL they have to scrounge for food? Maybe it's hard to do and they have no combat, so it's fraught with danger. In this way, endless play can be gated through difficulty.

FoodLevel - max of 10
FoodTickTimer - cycles of 80
BioLevel - max of 10
BioTickTimer - increments by FoodLevel/5 (moves faster when full), cycles at 80 - if BioLevel is already at 10, increment BioOverflow
BioOverflow - at max of 5, player gets stick (Game is exited, FoodLevel is set to 1, FoodTickTimer is reset, SicknessLevel is incremented)
SicknessLevel - max of 20

Eating rotten food - FoodLevel increase half non-rotten amount, SicknessLevel incremented
Eating normal food - FoodLevel increases by food value

### Stats
These numbers will likely change based on mechanics:

* Health: Starts at 100
* Hunger: Baseline is 0, counts up 1 per game tick
    * 50% of starvation max: minor ui notification
    * 75% of max: warning notification
    * 90%: start thinking occasionally about starvation
    * 100%: regular starvation thoughts; starts dying
        * every 5000 ticks, lose a health
* Waste: Starts at 0, counts up 1 per game tick

#### Replenishment
Eating reduces Hunger by 50,000 to min of 0. sub-standard sources can give less. Eating also increases health proportionately.

Waste is reduced by going to the bathroom. Unfortunately, the game can't be used in there.


## Scoring
* Days survived
* Days survived comfortably (no starvation)
* Days survived IRL

## Implementation
* Pico-8 palette in-game, either DB16 or Sweetie16 rest of the time
* pmem can only contain 256x32b (8192b) - no world saving :(


### Media
![wip-01](wip-01.png)