/** Item key -> [glyph, family, hue shift]. Shifts keep same-family items distinct. */ export const ICON_MAP = { // weapons punch:["hand","melee",0], baton:["club","melee",-8,"modern"], dagger:["blade","melee",8,"antique"], prybar:["bar","melee",-14], machete:["sword","melee",16,"antique"], spear1h:["spear","melee",-20,"antique"], grasp:["claw","melee",24], shortbow:["bow","weapon",30,"antique"], pistol_light:["pistol","weapon",-6], pistol_med:["pistol","weapon",0], pistol_heavy:["pistol","weapon",6], smg:["rifle","weapon",-12], rifle_med:["rifle","weapon",12], rifle_heavy:["rifle","weapon",18], shotgun:["shotgun","weapon",24], cutter:["blade","device",0,"anomalous"], lance:["beam","device",-14,"anomalous"], unmaker:["lattice","device",14,"anomalous"], /* ---- ANTIQUE: brought back, or never left ---- */ flintlock:["flintlock","weapon",-16,"antique"], musket:["musket","weapon",-22,"antique"], duelling_sword:["sword","melee",4,"antique"], boarding_axe:["axe","melee",-10,"antique"], crossbow:["crossbow","weapon",34,"antique"], cudgel:["club","melee",-26,"antique"], oil_lantern:["lantern","gear",-36,"antique"], tallow_candle:["candle","gear",-42,"antique"], brass_compass:["compass","gear",40,"antique"], pocket_watch:["pocketwatch","gear",-46,"antique"], spectacles:["spectacles","gear",46,"antique"], chirurgeon_kit:["syringe","gear",-52,"antique"], oilcloth_coat:["jacket","armour",-28,"antique"], brigandine:["mail","armour",28,"antique"], wax_tablet:["book","gear",-56,"antique"], iron_manacles:["manacles","gear",52,"antique"], /* ---- MODERN: agency issue, already covered above, plus ---- */ revolver:["revolver","weapon",-30], carbine:["rifle","weapon",-24], gas_mask:["mask_gas","gear",-60], evidence_tape:["tape","gear",56], entrenching_tool:["handaxe_tool","melee",-34], dictaphone:["radio","gear",60], /* ---- FUTURE: recovered from somewhere ahead ---- */ gauss_pistol:["gauss","weapon",-40,"future"], gauss_rifle:["gauss","weapon",44,"future"], monoblade:["blade","melee",40,"future"], survey_drone:["drone","gear",-66,"future"], optic_visor:["visor","gear",66,"future"], data_wafer:["chip","gear",-70,"future"], breather:["mask_gas","gear",70,"future"], sealed_cannister:["cannister","gear",-74,"future"], hardsuit:["suit","armour",-34,"future"], field_net:["net","gear",74,"future"], /* ---- ANOMALOUS: should not exist ---- */ threshold_key:["aperture","device",-32,"anomalous"], quiet_ledger:["ledger","device",34,"anomalous"], /* ---- POWERS: the Quiet Arts ---- */ power_thread:["thread","power",0], power_echo:["echo","power",14], power_hollow:["hollow","power",-14], power_witness:["witness","power",28], power_unmake:["unmake","power",-28], power_ledger:["ledger","power",42], // armour jacket:["jacket","armour",-10], stab_vest:["vest","armour",-4], soft_armour:["vest","armour",4], hide:["jacket","armour",12,"antique"], mail:["mail","armour",-16,"antique"], plate:["plate","armour",16,"antique"], impact_vest:["vest","armour",10], breach_suit:["suit","armour",-20], envsuit:["suit","armour",20], salvage_plate:["plate","device",8,"anomalous"], // gear field_kit:["flask","gear",-12], handset:["radio","gear",8], trauma_unit:["kit","gear",-20], fieldmedic:["syringe","gear",14], medkit:["kit","gear",0], toolkit:["cog","gear",-6], scanner:["scanner","gear",20], power_cell:["cell","gear",-26], cover_id:["folder","gear",26], anchor:["ring","talent",0], key:["key","device",20,"anomalous"], torch:["bolt","gear",34], rope:["rope","gear",-32], rations:["pack","gear",30], water:["flask","gear",24], camera:["camera","gear",-16], sample_case:["vial","gear",-24], restraints:["manacles","gear",16], beacon:["radio","gear",-30], binocs:["binocs","gear",32], notebook:["book","gear",4], geiger:["geiger","gear",28], climbing_kit:["bolt","gear",-8], spare_cells:["cell","gear",12], survey_kit:["cog","gear",34], ward:["aperture","device",-24,"anomalous"], // device crossing_regulator:["regulator","device",-8,"anomalous"], // skills, by category skill_melee:["blade","skill",-14], skill_ranged:["target","skill",-7], skill_phys:["boot","skill",0], skill_manip:["hand","skill",7], skill_mental:["brain","skill",14], skill_percep:["eye","skill",21], skill_comm:["wave","skill",28], // talents talent_generic:["thread","talent",0], talent_species:["triune","talent",18], talent_agency:["ledger","talent",-18], talent_field:["compass","talent",9], portrait_b0:["figure","actor",-330], portrait_b1:["figure","actor",-300], portrait_b2:["figure","actor",-270], portrait_b3:["figure","actor",-210], portrait_b4:["figure","actor",-155], portrait_b5:["figure","actor",-120], portrait_b6:["figure","actor",-80], portrait_b7:["figure","actor",-40], portrait_b8:["figure","actor",-10], portrait_b9:["figure","actor",15], portrait_v0:["mask","actor",-315], portrait_v1:["mask","actor",-240], portrait_v2:["mask","actor",-170], portrait_v3:["mask","actor",-100], portrait_v4:["mask","actor",-30], portrait_c0:["triune","actor",-285], portrait_c1:["triune","actor",-195], portrait_c2:["triune","actor",-130], portrait_c3:["triune","actor",-65], portrait_c4:["triune","actor",5], portrait_n0:["mask","threat",-355], portrait_n1:["mask","threat",-315], portrait_n2:["mask","threat",-275], portrait_n3:["mask","threat",-155], portrait_n4:["mask","threat",-75], // actors + misc actor_pc:["figure","actor",0], actor_npc:["mask","threat",0], actor_case:["folder","case",0], table:["disc","case",18], journal:["book","case",-18], discovery:["lens","device",30], project:["book","device",-30], material:["ring","armour",0], group:["mask","actor",20], door:["door","device",0], /* ---- stores: standing issue and the rest ---- */ warrant_card:["folder","gear",8], dressings:["kit","gear",-4], chalk:["bolt","gear",44], whistle:["wave","gear",-38], carbon_book:["book","gear",-12], date_stamp:["disc","gear",18], seals:["ring","gear",-18], cordon_kit:["tape","gear",22], clipboard:["folder","gear",-22], uv_lamp:["lens","gear",-44], signal_mirror:["disc","gear",-30], probe:["bar","gear",38], thermometer:["vial","gear",26], stopwatch:["pocketwatch","gear",14], specimen_jars:["vial","gear",-26], swab_kit:["kit","gear",34], lock_rakes:["key","gear",-14], bolt_croppers:["handaxe_tool","gear",-34], master_keys:["key","gear",20], door_wedges:["door","gear",30], groundsheet:["pack","gear",-40], vacuum_flask:["flask","gear",10], blanket:["pack","gear",42], analgesics:["syringe","gear",6], wake_tablets:["vial","gear",48], barrier_gloves:["hand","gear",-48], ear_defenders:["ear","gear",16], site_overalls:["suit","gear",-10], /* ---- antique stores ---- */ tinderbox:["candle","gear",-50,"antique"], quill_ink:["book","gear",50,"antique"], sealing_wax:["ring","gear",-54,"antique"], spyglass:["binocs","gear",54,"antique"], lamp_oil:["flask","gear",-58,"antique"], laudanum:["vial","gear",58,"antique"], lodestone:["compass","gear",-62,"antique"], sand_glass:["pocketwatch","gear",62,"antique"], /* ---- future stores ---- */ // shields — a disc for the round ones, a bar for the big square ones buckler:["disc","armour",22,"antique"], targe:["disc","armour",-14,"antique"], heater:["shield","armour",6,"antique"], pavise:["shield","armour",-26,"antique"], riot_shield:["shield","armour",30], ballistic_shield:["shield","armour",-8], barrier_field:["shield","armour",44,"future"], wound_foam:["kit","gear",-16,"future"], cold_light:["bolt","gear",-20,"future"], // Fitted to the weapon. Lenses for the three optical sights, so they read as a set; // the thermal one is a future-era lens and the lamp is a bolt like the other lights. sight_irons:["bar","gear",26], sight_reflex:["lens","gear",8], sight_scope:["lens","gear",-8], sight_thermal:["lens","gear",44,"future"], weapon_lamp:["bolt","gear",12], field_slate:["chip","gear",24,"future"], locator_tags:["target","gear",-24,"future"], density_scanner:["scanner","gear",28,"future"], seal_foam:["cannister","gear",-28,"future"], assist_sleeve:["hand","gear",32,"future"], /* ---- anomalous stores: transposed, and priced ---- */ black_mirror:["aperture","device",36,"anomalous"], wrong_compass:["compass","device",-36,"anomalous"], returning_coin:["disc","device",40,"anomalous"], attendance_register:["ledger","device",-40,"anomalous"], handbell:["wave","device",44,"anomalous"], /* ---- transport ---- */ pool_car:["disc","gear",-6], pool_van:["pack","gear",-2], land_rover:["cog","gear",6], site_lorry:["cannister","gear",-32], motorcycle:["bolt","gear",-44], launch:["wave","gear",12], helicopter:["drone","gear",-12], hand_cart:["bar","gear",-60,"antique"], trap:["rope","gear",60,"antique"], flycycle:["drone","gear",36,"future"], lifter:["pack","gear",40,"future"], crawler:["suit","gear",-44,"future"], stepping_frame:["door","device",48,"anomalous"], wrong_carriage:["disc","device",-48,"anomalous"], /* ---- transport stores ---- */ tow_line:["rope","gear",18], jack_plates:["bar","gear",-38], jerry_can:["flask","gear",-42], vehicle_spares:["cog","gear",-50], wheel_clamps:["manacles","gear",44], vehicle_log:["book","gear",30], roof_lamp:["lens","gear",52], recovery_strop:["rope","gear",-52], /* ---- the forward stores ---- */ stepping_disc:["aperture","device",-56,"future"], stasis_box:["cannister","gear",56,"future"], autodoc:["kit","gear",-60,"future"], impact_suit:["vest","armour",44,"future"], shadow_cloth:["jacket","gear",-64,"future"], grav_harness:["rope","gear",64,"future"], sonic_probe:["wave","gear",-68,"future"], pressure_tent:["pack","gear",68,"future"], cell_stack:["cell","gear",-72,"future"], translator_pin:["ear","gear",72,"future"], medical_ram:["syringe","gear",-76,"future"], hull_patch:["kit","gear",76,"future"], beacon_hard:["radio","gear",-80,"future"], sensor_stakes:["target","gear",80,"future"], /* ---- further out, and worse for you ---- */ general_hull:["aperture","device",-20,"anomalous"], pleasure_tap:["brain","device",20,"anomalous"], long_ledger:["ledger","device",-44,"anomalous"], /* ---- borrowed authority ---- */ authority:["folder","device",0], authority_flagged:["folder","device",26], authority_burned:["folder","device",-26], /* ---- the historical range: medieval ---- */ arming_sword:["sword","melee",-4,"antique"], longsword:["sword","melee",-12,"antique"], falchion:["sword","melee",20,"antique"], war_hammer:["club","melee",-30,"antique"], mace:["club","melee",30,"antique"], flail:["club","melee",-36,"antique"], poleaxe:["axe","melee",-18,"antique"], halberd:["spear","melee",-26,"antique"], billhook:["axe","melee",26,"antique"], pike:["spear","melee",34,"antique"], quarterstaff:["bar","melee",-22,"antique"], dirk:["blade","melee",-16,"antique"], longbow:["bow","weapon",-30,"antique"], arbalest:["crossbow","weapon",-24,"antique"], sling:["rope","weapon",38,"antique"], javelin:["spear","weapon",18,"antique"], /* ---- early modern ---- */ rapier:["sword","melee",-40,"antique"], main_gauche:["blade","melee",40,"antique"], matchlock:["musket","weapon",-34,"antique"], wheellock:["flintlock","weapon",28,"antique"], blunderbuss:["shotgun","weapon",-44,"antique"], boarding_pike:["spear","melee",-32,"antique"], /* ---- Napoleonic, Victorian, and the Great War ---- */ sabre:["sword","melee",44,"antique"], smallsword:["sword","melee",-48,"antique"], cutlass:["sword","melee",48,"antique"], brown_bess:["musket","weapon",36,"antique"], baker_rifle:["musket","weapon",-38,"antique"], bayonet:["blade","melee",32,"antique"], martini:["rifle","weapon",-42,"antique"], webley:["revolver","weapon",42,"antique"], lee_enfield:["rifle","weapon",46,"antique"], trench_club:["club","melee",22,"antique"], /* ---- historical armour ---- */ gambeson:["jacket","armour",-16,"antique"], maille_shirt:["mail","armour",-22,"antique"], coat_of_plates:["vest","armour",-30,"antique"], cuirass:["plate","armour",16,"antique"], harness:["plate","armour",-36,"antique"], buff_coat:["jacket","armour",34,"antique"], sallet:["mask","armour",-42,"antique"], lobster_pot:["mask","armour",42,"antique"], jack_of_plate:["vest","armour",24,"antique"], cuirassier:["plate","armour",-48,"antique"], brodie:["mask","armour",30,"antique"], flak_jacket:["vest","armour",-24,"antique"], /* ---- spacecraft ---- */ cutter_ship:["drone","gear",-8,"future"], picket:["drone","gear",14,"future"], lighter:["cannister","gear",-14,"future"], revenue_boat:["drone","gear",22,"future"], long_hull:["aperture","device",-52,"anomalous"] }; /** Skill category -> icon key. */ export const SKILL_ICON = { melee:"skill_melee", ranged:"skill_ranged", phys:"skill_phys", manip:"skill_manip", mental:"skill_mental", percep:"skill_percep", comm:"skill_comm" };