Skip to content

Commit 1ad4e6a

Browse files
committed
0.2.0a
MAJOR UPDATE - full rebalance: class curves, weapons, armours, enemies, exp and gold all regenerated from one model. a same level creature now takes 6 to 9 rounds to kill - world creation: population (normal / goblin mode / monster world / empty world / zombie apocalypse) and magic level (normal / severed / unbound), locked in once at creation - heat level: the police only chase you if you have a bounty, they spot you by line of sight, and the heat fades over four hours of sleeping, waiting or travelling - letters can be sent between parties, in this world and in every other world on your machine, with money and goods enclosed and a delivery date of your choosing - new card game: 3x3 board duels, a collection, booster packs, and enemies that can be captured as cards in the middle of a fight (in heavy WIP, you can try it also from minigames) - new creature classes are selectable at creation, and a non sentient character growls and barks instead of talking in empathize menu with NPC interactions - the ONU assembly: a party member takes a seat for a hyperpower or a faction and debates, votes and vetoes once a game week, for their own standing and their own stipend, it can be accessed via Kofi Annan preset character of with Diplomatic scenario - augments moved out of the biologics menu into their own register, listing everything the party wears and the whole catalogue of 232 - field surgery: fit and remove augments out in the field, with the odds shown before you cut - augments can now slow, stop or even reverse how fast a need drains - new augmented starting scenario, and a skeleton key at character creation - bologna is in the game: a real city rasterised from openstreetmap, 14x9 cells with no seam between them, shops, inns and houses behind every door - 92 tower floors below ground - dreams are endless now: no fixed dream maps, a world that loops in every direction and a stack of levels that never stops going up - 23 procedural structures reachable from 64 biomes instead of five, each with its own layout, palette, ornaments and a generated name in the map banner - alien biomes reworked with 40 new tileset - petrodemons: procedural bosses that you can encounter on oil rigs in North Africa - every enemy has different movements now: they telegraph, hunt, graze, ambush, flee, and lose you if you break line of sight - starting a fight next to other monsters drags up to three of them in - you pick which monster a single target action hits, marked with a chevron over its head - tp renamed to ap everywhere - new convoker class, with a lost convoker starting scenario - new states for martial arts and new skill effects - the party walks loose by default: they live their own lives around you, wash, eat, play and talk to the locals and to each other. sprint for two seconds to form the column - if you save a game with a party in a specifc location, the party will idle there an can be encountered when visiting that location with another party. - shops, furniture, animals, plants, hives, real estate, rentals, doors and the bestiary are now shared by every savegame of a world - item storage and throwing items now remember items between savegames so you can share item between savegames in same world. - real estate system synchronized between all savegames in same world - the skill encyclopedia is an atlas of alchemistry seals now, one school a page, pannable and zoomable - knowledge prices rewritten: esoteric skills cost ten times, forbidden a hundred - a class only studies its own six schools - sold out items leave the shelf, key items can no longer be sold, and selling is multi select with a counter - chess, pool, the horse race and the slot machine are 3d now - the hypernet browser draws its own chrome instead of borrowing the page's - who wrote the music shows as a procedural cassette the first time you hear a track - the 53 joined character sheets were cut into 386 single ones, so famous people no longer turn up as random npcs - bashed and picked doors stay open - a warning on the title screen when a build is too big for the patch to carry - fixed the crash when using world skills, unusable selected skills, the character selector, common event calls, npc pathfinding in corridors, the title screen fade in, and transfers coming out at the omega tower - cleaned up tileset tags and passability up to tileset 167, and added new city tilesets - a party diary: everything the party does is written down as it happens and kept in the world folder, so a later playthrough of the same world can read what the people before them did - alchemistry reworked, with many of new recipes - every disease now has a real treatment: a course of drugs that cures it, a window of days before it can even be diagnosed, and a late stage it turns into if you leave it alone - 84 new medicines, each curing a named list of illnesses over a set number of daily doses - the party doses itself automatically every morning at 8 AM, and tells you what it is missing - an illness left to run genuinely gets worse: its stat penalties, its drain on your needs and its daily damage all grow with the days it went untreated - every disease has a vial you can buy, carry and use on somebody, on the map or in the middle of a fight - diseases can be picked freely at character creation on their own tab, and cost none of your four traits - illnesses now show on the party hud, the status screen and in the archive - public payphones: outgoing calls only, sharing the hexphone's contacts and credit (WIP) - npcs have new things to say once 2012 has happened - buses: inteact with a bus stop on any procedural city and ride it - grave robbing is now a crime, and the graves are worth robbing - farms keep livestock now: a ploughed procedural square is dealt up to three head that graze, grow and produce, the same in every savegame of the world - new shop maps, bigger shop inventories, railroad graphics and reworked city pieces and shadows - procedural cities are tagged and named as real destinations in fast travel with bus - mac and linux build scripts - fixed the travel modal, the stranded arena session, city passability and tileset 303 tagging - 32 new hand made city prefabs placed in procedural cities - fixed the build and the steam upload scripts - new plague spreader starting scenario: a case of sealed vials off the disease shelf and the pharmacy to survive owning them - infect somebody from the empathize panel by opening a vial on them. the odds of not being seen are your int and dex, and getting caught is bioterrorism, a 10,000 euro charge and the end of that friendship - every skill, state, trait, weapon, armour, class and enemy tagged magical or mundane; mundane skills spend ap, not mp - 12 real blood types, with donor/recipient compatibility, on the biologics sheet - empathize wiki: political party and ideology pages - new diplomatic origin starting scenario - naguka added as a joke ui language - tutorial can open straight into the pre-made dossier picker - footsteps rewritten: sound comes from what the tile tag, not the tileset number, for now this works fully on procedural maps but will be added to other maps. - terrain interaction also checks the tile underfoot, not just the one faced - fixed missing empathize option on npcs across dozens of maps - replaced empty enter building sound with door sound fx - procedural city streets connect with adiacent city biomes - fixed a broken downtown tileset, dungeon generation, mountain biomes, bunker respawn and empty-world spawn points - more tileset tag and passability cleanup
1 parent ad3c84e commit 1ad4e6a

1,482 files changed

Lines changed: 266637 additions & 84093 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

css/game.css

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,16 @@ body {
370370
color: var(--text-success-active);
371371
font-weight: 700;
372372
}
373+
#map-info-hud .mih-eta {
374+
padding-bottom: 6px;
375+
}
376+
#map-info-hud .mih-eta .mih-region-lbl {
377+
color: var(--text-primary-hover);
378+
}
379+
#map-info-hud .mih-eta .mih-region-val {
380+
color: var(--text-primary-hover);
381+
font-weight: 700;
382+
}
373383
#map-info-hud .mih-temp .mih-region-val {
374384
font-weight: 700;
375385
}
@@ -378,6 +388,14 @@ body {
378388
#map-info-hud .mih-temp-mild { color: var(--text-primary-hover); }
379389
#map-info-hud .mih-temp-warm { color: #ffb74d; }
380390
#map-info-hud .mih-temp-hot { color: var(--text-blood-red); }
391+
/* How long the party has gone without sleeping, drawn only once the sleep
392+
meter is empty (see MapInfoHUD._insomnia). Reads as a warning, then as a
393+
wound: past two days awake the mind starts giving way. */
394+
#map-info-hud .mih-insomnia .mih-region-val {
395+
font-weight: 700;
396+
}
397+
#map-info-hud .mih-insomnia-warn { color: #ffb74d; }
398+
#map-info-hud .mih-insomnia-bad { color: var(--text-blood-red); }
381399
#map-info-hud .mih-temp-drain {
382400
font-size: 12px;
383401
font-weight: 600;
@@ -431,3 +449,181 @@ body {
431449
#map-info-hud .mih-fuel { background: #d4a017; }
432450
#map-info-hud .mih-amber { background: var(--text-primary-hover); }
433451
#map-info-hud .mih-red { background: var(--text-blood-red); }
452+
453+
/* ==========================================================================
454+
Party HUD (js/plugins/UI/PartyHud.js)
455+
One row per party member in the top-left corner: the bordered card carries
456+
name, state icons, HP and MP, and the urgent-need chips stand to the right
457+
of it, outside the box. Position and card width are written inline by the
458+
plugin from its parameters (the width as --phud-card-w). Never use the
459+
`inset` shorthand here: the game runtime does not honour it (see the bar
460+
fills below).
461+
========================================================================== */
462+
#party-hud {
463+
position: fixed;
464+
z-index: 200;
465+
pointer-events: none;
466+
font-family: 'Lora', serif;
467+
display: flex;
468+
flex-direction: column;
469+
gap: 6px;
470+
opacity: 0;
471+
transform: translateY(-6px);
472+
transition: opacity 0.35s ease-out, transform 0.35s ease-out;
473+
}
474+
#party-hud.phud-visible {
475+
opacity: 1;
476+
transform: translateY(0);
477+
}
478+
#party-hud .phud-row {
479+
display: flex;
480+
align-items: flex-start;
481+
gap: 6px;
482+
}
483+
#party-hud .phud-card {
484+
width: var(--phud-card-w, 224px);
485+
flex: 0 0 auto;
486+
box-sizing: border-box;
487+
background: var(--bg-secondary-hover);
488+
border: 2px solid var(--text-primary-hover);
489+
border-radius: 5px;
490+
box-shadow: 0 6px 18px var(--shadow-black-translucent-55);
491+
padding: 5px 8px 6px;
492+
}
493+
#party-hud .phud-card.phud-down {
494+
filter: grayscale(0.7);
495+
border-color: var(--text-blood-red);
496+
}
497+
#party-hud .phud-head {
498+
display: flex;
499+
align-items: center;
500+
justify-content: space-between;
501+
gap: 6px;
502+
margin-bottom: 4px;
503+
}
504+
#party-hud .phud-name {
505+
font-size: 15px;
506+
font-weight: 700;
507+
color: var(--text-primary-hover);
508+
letter-spacing: 0.3px;
509+
white-space: nowrap;
510+
overflow: hidden;
511+
text-overflow: ellipsis;
512+
}
513+
#party-hud .phud-card.phud-down .phud-name {
514+
color: var(--text-blood-red);
515+
}
516+
#party-hud .phud-states {
517+
display: flex;
518+
flex-shrink: 0;
519+
gap: 2px;
520+
}
521+
#party-hud .phud-state-icon {
522+
display: block;
523+
width: 20px;
524+
height: 20px;
525+
background-repeat: no-repeat;
526+
image-rendering: pixelated;
527+
}
528+
#party-hud .phud-bar {
529+
position: relative;
530+
height: 14px;
531+
margin-top: 3px;
532+
border: 1px solid var(--shadow-black-translucent-55);
533+
border-radius: 3px;
534+
background: var(--shadow-black-translucent-55);
535+
overflow: hidden;
536+
}
537+
#party-hud .phud-fill {
538+
position: absolute;
539+
left: 0;
540+
top: 0;
541+
bottom: 0;
542+
width: 0;
543+
transition: width 0.2s ease-out;
544+
}
545+
#party-hud .phud-hp .phud-fill {
546+
background: linear-gradient(to right, #7a1420, #d94a4a);
547+
}
548+
#party-hud .phud-mp .phud-fill {
549+
background: linear-gradient(to right, #16386e, #4a86d9);
550+
}
551+
#party-hud .phud-bar-low .phud-fill {
552+
background: linear-gradient(to right, #7a4a10, #e0a63a);
553+
}
554+
#party-hud .phud-bar-critical .phud-fill {
555+
background: linear-gradient(to right, #7a1420, #ff5a5a);
556+
animation: phud-pulse 0.9s ease-in-out infinite;
557+
}
558+
@keyframes phud-pulse {
559+
0%, 100% { filter: brightness(1); }
560+
50% { filter: brightness(1.7); }
561+
}
562+
#party-hud .phud-flash {
563+
position: absolute;
564+
left: 0;
565+
top: 0;
566+
right: 0;
567+
bottom: 0;
568+
opacity: 0;
569+
background: #ffffff;
570+
}
571+
#party-hud .phud-flash-hit {
572+
animation: phud-flash 0.42s ease-out;
573+
}
574+
#party-hud .phud-flash-heal {
575+
background: #8cff9a;
576+
animation: phud-flash 0.42s ease-out;
577+
}
578+
@keyframes phud-flash {
579+
0% { opacity: 0.55; }
580+
100% { opacity: 0; }
581+
}
582+
#party-hud .phud-bar-lbl,
583+
#party-hud .phud-bar-val {
584+
position: absolute;
585+
top: 0;
586+
font-size: 11px;
587+
font-weight: 700;
588+
line-height: 14px;
589+
color: #f4ecd8;
590+
text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.85);
591+
}
592+
#party-hud .phud-bar-lbl {
593+
left: 5px;
594+
color: var(--text-primary-hover);
595+
}
596+
#party-hud .phud-bar-val {
597+
right: 5px;
598+
}
599+
#party-hud .phud-alerts {
600+
display: flex;
601+
flex-direction: column;
602+
align-items: flex-start;
603+
gap: 3px;
604+
max-width: 200px;
605+
padding-top: 4px;
606+
}
607+
#party-hud .phud-alerts.phud-alerts-empty {
608+
display: none;
609+
}
610+
#party-hud .phud-alert {
611+
font-size: 11px;
612+
font-weight: 700;
613+
letter-spacing: 0.2px;
614+
padding: 1px 6px;
615+
border-radius: 8px;
616+
white-space: nowrap;
617+
color: #1a1206;
618+
background: var(--text-primary-hover);
619+
box-shadow: 0 2px 6px var(--shadow-black-translucent-55);
620+
}
621+
#party-hud .phud-alert-critical {
622+
color: #ffe9e9;
623+
background: var(--text-blood-red);
624+
animation: phud-chip 1.1s ease-in-out infinite;
625+
}
626+
@keyframes phud-chip {
627+
0%, 100% { opacity: 1; }
628+
50% { opacity: 0.55; }
629+
}

0 commit comments

Comments
 (0)