Skip to content

Instantly share code, notes, and snippets.

@lawremi
Created August 8, 2020 03:54
Show Gist options
  • Select an option

  • Save lawremi/dacdeb0f22f075db5e229783f0ef4671 to your computer and use it in GitHub Desktop.

Select an option

Save lawremi/dacdeb0f22f075db5e229783f0ef4671 to your computer and use it in GitHub Desktop.

Star

  • id
  • name
  • color
  • icon
  • threat (space)

The Star page will join the BodyType, OrbitalRegion and OrbitalRegionBodyType tables to generate an HTML table with one region * body type per row. Cargo should join identical vertically adjacent cells. The body type is not named; it is represented by its fields.

BodyType

  • id
  • icon
  • type (planet or satellite)
  • list of biomes

OrbitalRegion

  • Star:id
  • id (Star:id + “/” + name)
  • name
  • min range
  • max range
  • body probability

OrbitalRegionBodyType

  • OrbitalRegion:id
  • BodyType:id
  • weight

Stat

  • id
  • name
  • icon

StatusEffectType

  • id
  • name
  • type (debuff, buff, resistance, ability)
  • icon
  • blocking stat

StatusEffect

  • StatusEffectType:id
  • duration

StatModifier

  • source
  • source type (status effect, item, etc)
  • stat
  • amount

DamageType

  • id
  • name
  • resistance (a status effect)

Projectile

  • id
  • icon (animated gif?)
  • damage type
  • list of status effects

StatusEffectWeather

  • StatusEffect:id
  • list of resistance stats
  • resistance threshold
  • list of immunity stats
  • health drain
  • hunger drain
  • energy drain
  • speed penalty
  • jump penalty

Weather

  • id
  • name?
  • icon
  • list of weather status effects
  • list of projectiles

Climate

  • id
  • weight
  • weather

Ore Distribution

  • id
  • threat
  • weight
  • ore

Could instead pivot this:

  • id
  • threat
  • ..one weight column for each ore..

For the infobox, we could sum the weight columns, then use #ifeq to only display the icons with non-zero weights. This would be a lot easier to do on the long form, but it’s not clear how we could pivot the long form into the wide form without a lot of lua. Storing both tables would also be complicated.

Liquid

  • id
  • Item:id
  • color
  • list of status effects
  • collectible

LiquidLiquidInteraction

  • Liquid:a
  • Liquid:b
  • product
  • product type (material, liquid)

Liquid ‘a’ is converted to the product by liquid ‘b’, which is not consumed.

MaterialLiquidInteraction

  • Material:a
  • Liquid:b
  • liquid consumed
  • Material:product

Material ‘a’ is converted to the product by consuming a certain amount of liquid.

Do we highlight chain reactions?

Item

  • id
  • name
  • category (headwear, etc)
    • probably should also be used for the wiki categories
    • sometimes, the suffix of the JSON file indicates the true category, while the ‘category’ field is more general, other times it is the opposite
    • see transferconfig.config for a mapping
  • description
  • icon
  • tier
  • rarity
  • price
  • stack size
  • two handed
  • upgradeable
  • collectible

Pool

  • id
  • level
  • guaranteed
  • type (pool or item)
  • weight
  • item
  • quantity

PoolDrawing

  • Pool:id
  • level
  • allow duplicates

PoolRound

  • Pool:id
  • level
  • weight
  • count

Monster

  • id (type)
  • name
  • description
  • list of projectiles
  • contact damage type
  • list of contact status effects
  • list of drop pools
  • various statistics: knockback, max health, resistances, immunities
  • capturable
  • collectible

NPCType

  • id
  • base type
  • list of items (armor and weapons, etc)
  • list of offered quests
  • list of turn in quests
  • various statistics: knockback, max health, resistances, immunities

MerchantPool

  • id
  • level
  • item
  • price (often NULL, unfixed)

MerchantType

  • NPCType:id
  • species (can be ‘crew’ when crew member)
  • MerchantPool:id
  • title
  • subtitle
  • num items for sale
  • min buy factor
  • max buy factor
  • min sell factor
  • max sell factor

Each merchant type can have species-specific pools.

Tenant

  • id
  • NPCType:id
  • list of species
  • priority
  • min rent period
  • max rent period
  • rent pool
  • list of quest pools

TenantRequirement

  • Tenant:id
  • tag
  • quantity

CrewType

  • NPCType:id
  • role
  • field
  • recruitable
  • list of ranks

CrewBenefit

  • CrewType:id
  • type (ephemeral effect, persistent effect, regeneration, ship upgrade)
  • property
  • value

Graduation

  • NPCType:id
  • CrewType:id
  • weight

NPC

  • type
  • species

Dungeon

  • id
  • name
  • icon (if any)
  • type (major, micro, space)
  • hostile
  • list of common treasure pools
  • list of rare treasure pools
  • list of NPCs
  • list of monsters
  • list of objects (will this scale?)

DungeonPool

  • biome
  • weight
  • dungeon

Biome

  • id
  • name (cockpit.config:planetTypeNames)
  • color (cockpit.config:planetTypeColors)
  • min threat=Integer
  • max threat=Integer
  • protection=List (,) of String
  • reason=Wikitext
  • status=List (,) of String
  • breathable=Boolean
  • airless=Boolean
  • climate=List (,) of String
  • main material=String
  • sub materials=List (,) of String
  • ore distributions=List (,) of String
  • ocean liquid=String
  • cave liquids=List (,) of String
  • space=List (,) of Page
  • atmosphere=List (,) of Page
  • subsurface=List (,) of Page
  • shallowUnderground=List (,) of Page
  • midUnderground=List (,) of Page
  • deepUnderground=List (,) of Page
  • core=List (,) of Page
  • monsters=List (,) of String
  • critters=List (,) of String
  • bugs=List (,) of String
  • seeds=List (,) of String
  • bushes=List (,) of String
  • grasses=List (,) of String
  • treeStems=List (,) of String (convert to drops)
  • secondaryBiomes=List (,) of Page
  • miniBiomes=List (,) of Page
  • villages=List (,) of Page
  • microdungeons=List (,) of Page
  • encounters=List (,) of Page
  • artifacts=List (,) of String
  • chests=List (,) of String

ArmorSet

  • id
  • list of status effects

This will be tricky to determine automatically. Some sets are detected by a stat that is incremented for each piece and then mapped to a bonus in armorsets.config. Others set a stat for each piece, like [name]set_[piece], and there is a script that checks for whether all pieces are worn.

Armor

  • Item:id
  • ArmorSet:id
  • power bonus
  • protection bonus
  • max energy bonus
  • max health bonus
  • list of status effects

Shields

  • Item:id
  • health
  • cooldown
  • perfect block time
  • stamina
  • energy bonus
  • crit bonus
  • crit chance bonus
  • shield bash
  • shield bash push
  • stun chance

Weapon

  • Item:id
  • damage type
  • list of status effects
  • speed
  • damage
  • dps
  • crit bonus
  • crit chance bonus
  • stun chance
  • ability
  • special ability
  • magazine size
  • reload time
  • overheat
  • cooldown
  • energy cost (per shot)
  • max cast range (staff)
  • projectile count (staff)
  • recoil strength
  • crouched recoil strength (if different)

RewardBag

(also includes things like relics that provide madness)

  • Item:id
  • pool

EPP

  • Item:id
  • Accepted augment type
  • List of status effects

EPPAugment

  • Item:id
  • List of status effects

Material

  • id
  • Item:id

Tool

  • Item:id
  • durability

Collection

  • id
  • name
  • type (item or monster)
  • list of members

Quest

  • id
  • title
  • description
  • can be abandoned
  • mission
  • turn in description (task)
  • min money
  • max money

QuestItem

  • Quest:id
  • Item:id
  • quantity
  • consumed?

QuestReward

  • Quest:id
  • item
  • quantity

Recipe

  • id (will need to generate, from filename?)
  • output item
  • output quantity
  • duration
  • list of groups

RecipeInput

  • Recipe:id
  • item
  • quantity

Extraction

  • id
  • time scale

Reversibility should just be explicit in the recipe list.

ExtractionInput

  • Extraction:id
  • item
  • quantity

ExtractionOutput

  • Extraction:id
  • item
  • basic quantity
  • advanced quantity
  • quantum quantity

Tech

  • name
  • description
  • type
  • icon
  • cost

Research

  • id
  • icon
  • list of children
  • list of unlocked items

Could we call templates recursively to generate a nested table that would form a tree shape?

ResearchCost

  • id
  • currency
  • quantity

Object

  • Item:id
  • list of tags
  • printable
  • type
  • slot count

CentrifugePool

  • id
  • item
  • rarity
  • quantity

    Defined in centrifuge_recipes.config

CentrifugeType

  • id
  • list of pools

Centrifuge

  • Object:id
  • type

CentrifugeChance

  • Centrifuge:id
  • rarity
  • weight
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment