Repository navigation
Expand file tree
/
Copy pathpatchnotes-v0.2.3.html
More file actions
335 lines (325 loc) · 20.5 KB
/
Copy pathpatchnotes-v0.2.3.html
File metadata and controls
335 lines (325 loc) · 20.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>SpaceCorps 2027 0.2.3 · Patch notes</title>
<meta name="description" content="SpaceCorps 2027 0.2.3: Makes shields, shield cells, thrusters and laser amps work the way the item cards say: your absorbance now decides how much of each hit your shields take.">
<meta name="color-scheme" content="dark">
<meta name="theme-color" content="#141312">
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large">
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large">
<meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large">
<meta name="author" content="SpaceCorps">
<link rel="canonical" href="https://spacecorps.github.io/play/patchnotes-v0.2.3.html">
<link rel="sitemap" type="application/xml" href="https://spacecorps.github.io/play/sitemap.xml">
<link rel="alternate" type="text/markdown" href="https://spacecorps.github.io/play/patchnotes/v0.2.3.md">
<link rel="alternate" type="application/json" href="https://spacecorps.github.io/play/patchnotes.json">
<link rel="help" href="https://spacecorps.github.io/play/llms.txt">
<link rel="icon" href="favicon.ico" sizes="32x32">
<link rel="icon" type="image/svg+xml" href="img/favicon.svg">
<link rel="icon" type="image/png" sizes="48x48" href="img/favicon-48.png">
<link rel="icon" type="image/png" sizes="96x96" href="img/favicon-96.png">
<link rel="icon" type="image/png" sizes="32x32" href="img/favicon-32.png">
<link rel="icon" type="image/png" sizes="16x16" href="img/favicon-16.png">
<link rel="apple-touch-icon" sizes="180x180" href="img/apple-touch-icon.png">
<link rel="manifest" href="site.webmanifest">
<meta property="og:type" content="article">
<meta property="og:site_name" content="SpaceCorps">
<meta property="og:title" content="SpaceCorps 2027 0.2.3 · Patch notes">
<meta property="og:description" content="SpaceCorps 2027 0.2.3: Makes shields, shield cells, thrusters and laser amps work the way the item cards say: your absorbance now decides how much of each hit your shields take.">
<meta property="og:url" content="https://spacecorps.github.io/play/patchnotes-v0.2.3.html">
<meta property="og:image" content="https://spacecorps.github.io/play/img/og.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="SpaceCorps 2027 0.2.3 · Patch notes">
<meta name="twitter:image" content="https://spacecorps.github.io/play/img/og.jpg">
<link rel="stylesheet" href="style.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "SpaceCorps",
"item": "https://spacecorps.github.io/"
},
{
"@type": "ListItem",
"position": 2,
"name": "SpaceCorps 2027",
"item": "https://spacecorps.github.io/play/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Patch Notes",
"item": "https://spacecorps.github.io/play/patchnotes.html"
},
{
"@type": "ListItem",
"position": 4,
"name": "0.2.3",
"item": "https://spacecorps.github.io/play/patchnotes-v0.2.3.html"
}
]
},
{
"@type": "WebPage",
"@id": "https://spacecorps.github.io/play/patchnotes-v0.2.3.html#webpage",
"url": "https://spacecorps.github.io/play/patchnotes-v0.2.3.html",
"name": "SpaceCorps 2027 0.2.3 Patch Notes",
"description": "SpaceCorps 2027 0.2.3: Makes shields, shield cells, thrusters and laser amps work the way the item cards say: your absorbance now decides how much of each hit your shields take.",
"publisher": {
"@type": "Organization",
"name": "SpaceCorps",
"url": "https://spacecorps.github.io/",
"logo": "https://spacecorps.github.io/play/img/icon-128.png"
},
"isPartOf": {
"@id": "https://spacecorps.github.io/play/patchnotes.html#webpage"
},
"datePublished": "2026-09-26"
}
]
}
</script>
<script>
if (new URLSearchParams(window.location.search).get('mode') === 'agent') {
window.location.href = 'patchnotes/v0.2.3.md';
}
</script>
<!-- The releases below are written by the game repository's scripts/release/patchnotes.py at
each release (between the patchnotes:list markers), from its docs/releases/v<version>.md;
patchnotes.json holds the same, and patchnotes.md is the Markdown mirror. -->
<script src="i18n.js"></script>
<script src="app.js" defer></script>
<!-- patchnotes:head -->
<style>
/* patchnotes-site 1: the patch notes page's list of releases and its release pages. Written
between the patchnotes:head markers by scripts/release/patchnotes.py from
scripts/marketing/patchnotes-site/notes.css in the game repository: edit it there, not on the
site. Colours and sizes come from style.css. */
.note-index { padding: 14px 8px 8px; min-width: 0; }
.note-index > h2 { font-size: 14px; font-weight: 600; color: var(--text-2); letter-spacing: 0.02em; margin: 0 16px 8px; }
.note-index-list { list-style: none; margin: 0; padding: 0; }
.note-index-list > li { border-top: 1px solid var(--separator); }
.note-index-list > li:first-child { border-top: 0; }
/* style.css already keeps 72px (scroll-padding-top) clear of the top bar. */
.note-index-list details[id] { scroll-margin-top: 16px; }
.note-index-list summary, .note-index-list a.note-row {
list-style: none; cursor: pointer; display: grid; grid-template-columns: 14px 4.4em 9.2em minmax(0, 1fr);
gap: 2px 12px; align-items: baseline; padding: 11px 16px; border-radius: var(--radius-control);
color: var(--text-2); font-size: 14.5px; line-height: 1.45; text-decoration: none;
}
.note-index-list summary::-webkit-details-marker { display: none; }
.note-index-list summary::before { content: ""; width: 7px; height: 7px; justify-self: center; align-self: center; border-right: 1.8px solid currentColor; border-bottom: 1.8px solid currentColor; transform: rotate(-45deg); transition: transform 150ms ease; }
.note-index-list details[open] > summary::before { transform: rotate(45deg) translate(-2px, -2px); }
.note-index-list a.note-row::before { content: "\2191"; justify-self: center; color: var(--text-3); }
.note-index-list summary:hover, .note-index-list a.note-row:hover { background: rgba(255, 255, 255, 0.04); color: var(--text); }
.note-index-list details[open] > summary { color: var(--text); }
/* Once the notes are in, they start with the lead the summary is the first sentence of. */
.note-index-list details[open][data-state="done"] > summary .note-s { display: none; }
.note-v { color: var(--text); font-weight: 600; font-variant-numeric: tabular-nums; }
.note-d { color: var(--text-3); font-size: 13.5px; white-space: nowrap; }
.note-s { min-width: 0; overflow-wrap: anywhere; }
.note-old-body { padding: 6px 16px 20px 42px; }
.note-old-body > a { color: var(--accent); font-weight: 600; font-size: 14.5px; }
.note-old-body > a:hover { color: var(--accent-hover); }
.note-old-body .note-lead { font-size: 15.5px; }
.note-old-body .note-meta { margin-top: 14px; }
.note-index-list details[data-state="loading"] .note-old-body { opacity: 0.6; transition: opacity 150ms ease; }
.note-index-list details[data-state="failed"] .note-old-body > a::after { content: " \26A0"; }
.note-pager { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; font-size: 14.5px; font-variant-numeric: tabular-nums; }
.note-pager a { color: var(--text-2); }
.note-pager a:hover { color: var(--text); }
.note-pager > :nth-child(2) { margin-inline: auto; }
@media (max-width: 640px) {
.note-index { padding: 12px 0 4px; }
.note-index-list summary, .note-index-list a.note-row { grid-template-columns: 14px auto minmax(0, 1fr); padding: 12px 16px; }
.note-s { grid-column: 2 / -1; }
.note-old-body { padding: 4px 16px 18px; }
}
@media (prefers-reduced-motion: reduce) {
.note-index-list summary::before, .note-index-list details[data-state="loading"] .note-old-body { transition: none; }
}
</style>
<!-- /patchnotes:head -->
</head>
<body>
<a class="skip" href="#main" data-i18n="skip">Skip to content</a>
<svg width="0" height="0" class="sprite" aria-hidden="true" focusable="false">
<symbol id="i-download" viewBox="0 0 24 24"><path d="M12 4v11m0 0-4.5-4.5M12 15l4.5-4.5M5 19.5h14"/></symbol>
<symbol id="i-check" viewBox="0 0 24 24"><path d="m5 12.5 4.5 4.5L19 7.5"/></symbol>
<symbol id="i-globe" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c2.5 2.5 3.8 5.5 3.8 9s-1.3 6.5-3.8 9c-2.5-2.5-3.8-5.5-3.8-9S9.5 5.5 12 3z"/></symbol>
<symbol id="i-chevron" viewBox="0 0 24 24"><path d="m7 10 5 5 5-5"/></symbol>
</svg>
<header class="topbar">
<div class="topbar-inner">
<a class="brand" href="./" aria-label="SpaceCorps 2027, back to the top" data-i18n-aria-label="nav.home">
<img src="img/icon-128.png" width="28" height="28" alt="">
<span class="brand-name">SpaceCorps <span class="brand-year">2027</span></span>
</a>
<nav class="nav" aria-label="Sections" data-i18n-aria-label="nav.label">
<a href="./#screenshots" data-i18n="nav.screenshots">Screenshots</a>
<a href="./#features" data-i18n="nav.features">Features</a>
<a href="./#download" data-i18n="nav.download">Download</a>
<a href="./#help" data-i18n="nav.help">Help</a>
<a href="wiki.html" data-i18n="nav.wiki">Wiki</a>
<a href="patchnotes.html" aria-current="page" data-i18n="nav.patchnotes">Patch notes</a>
</nav>
<a class="status" href="./#server" data-status="checking" title="Game server status" data-i18n-title="status.title">
<span class="status-dot" aria-hidden="true"></span>
<span class="status-text" role="status" aria-live="polite" data-i18n="status.pill.checking">Server</span>
</a>
<details class="lang" id="lang">
<summary class="lang-button" aria-label="Language: English">
<svg class="icon" aria-hidden="true"><use href="#i-globe"/></svg>
<span class="lang-name" aria-hidden="true">English</span>
<span class="lang-code" aria-hidden="true">EN</span>
<svg class="icon lang-chevron" aria-hidden="true"><use href="#i-chevron"/></svg>
</summary>
<ul class="lang-menu" role="list">
<li><a href="?lang=en" hreflang="en" lang="en" aria-current="true">English<svg class="icon" aria-hidden="true"><use href="#i-check"/></svg></a></li>
<li><a href="?lang=de" hreflang="de" lang="de">Deutsch<svg class="icon" aria-hidden="true"><use href="#i-check"/></svg></a></li>
<li><a href="?lang=es" hreflang="es" lang="es">Español<svg class="icon" aria-hidden="true"><use href="#i-check"/></svg></a></li>
<li><a href="?lang=fr" hreflang="fr" lang="fr">Français<svg class="icon" aria-hidden="true"><use href="#i-check"/></svg></a></li>
<li><a href="?lang=pt-BR" hreflang="pt-BR" lang="pt-BR">Português (Brasil)<svg class="icon" aria-hidden="true"><use href="#i-check"/></svg></a></li>
<li><a href="?lang=sv" hreflang="sv" lang="sv">Svenska<svg class="icon" aria-hidden="true"><use href="#i-check"/></svg></a></li>
<li><a href="?lang=ru" hreflang="ru" lang="ru">Русский<svg class="icon" aria-hidden="true"><use href="#i-check"/></svg></a></li>
<li><a href="?lang=ja" hreflang="ja" lang="ja">日本語<svg class="icon" aria-hidden="true"><use href="#i-check"/></svg></a></li>
<li><a href="?lang=ko" hreflang="ko" lang="ko">한국어<svg class="icon" aria-hidden="true"><use href="#i-check"/></svg></a></li>
<li><a href="?lang=zh-CN" hreflang="zh-CN" lang="zh-CN">简体中文<svg class="icon" aria-hidden="true"><use href="#i-check"/></svg></a></li>
</ul>
</details>
</div>
</header>
<main id="main">
<section class="section notes-page" aria-labelledby="notes-title">
<div class="section-head">
<h1 id="notes-title" data-i18n="patchnotes.heading">Patch notes</h1>
</div>
<p class="notes-cta">
<a class="btn btn-secondary" href="./#download">
<svg class="icon" aria-hidden="true"><use href="#i-download"/></svg><span data-i18n="patchnotes.download">Download the latest version</span>
</a>
</p>
<div class="notes">
<!-- patchnotes:list -->
<article class="card note" id="v0.2.3" aria-labelledby="v0.2.3-title">
<header class="note-head">
<h2 class="note-title" id="v0.2.3-title">0.2.3</h2>
<p class="note-meta"><time datetime="2026-09-26" data-date>26 September 2026</time> <span aria-hidden="true">·</span> <a href="https://github.com/SpaceCorps/play/releases/tag/v0.2.3">GitHub</a></p>
</header>
<p class="note-lead" lang="en">SpaceCorps 2027 0.2.3 makes shields, shield cells, thrusters and laser amps work the way the item cards say: your absorbance now decides how much of each hit your shields take.</p>
<div class="note-body" lang="en">
<h3>Absorbance decides the damage split</h3>
<ul><li>Until now every hit went 80% to your shields and 20% to your hull, whatever your absorbance. Now your absorbance is your shields' share of each hit, and the hull takes the rest.</li><li>Your absorbance is the average of your shields, each with the shield cells fitted into it, at most 100%. A Light Shield Core alone is 70%, a Basic Shield Core 80%, a Heavy Shield Core 85%. Shield cells add 2%, 4% or 6% each. A Basic Shield Core with two Advanced cells is 88%, so your hull takes 12% instead of 20%.</li><li>When your shields run out, the hull takes the whole hit, as before.</li><li>Aliens still split every hit 80/20. Company pilots fly two Light Shield Cores, so their hull takes 30%.</li><li>The hangar's combat stats show the split under the tiles ("Each hit: shields 88% · hull 12%"). In flight, the Ship window shows your shields' share on its bottom line, after Speed (hover it for the split).</li></ul>
<h3>Modules</h3>
<ul><li>Adaptive Cores now take shield cells and thrusters, one per slot, of either kind. Their squares on the hangar board are real slots.</li><li>Clicking a shield cell or thruster fits it into the first shield or engine with room, then into an Adaptive Core. If nothing has room, it goes to an ability slot, and the game now tells you it gives an ability there, not shield stats or speed.</li><li>Only shields take a share of a hit. A shield cell in an Adaptive Core adds shield points, but with no shield equipped they go unused: the hangar says so, and a clicked cell prefers an ability slot on a ship without a shield.</li><li>An item's tooltip lists its module slots, what is fitted and what each module adds, and the item's own totals with them. A module's tooltip says what it fits into.</li><li>A refused fit says why: no free module slot, or the item doesn't take that kind of module.</li><li>Fusing items now works when the items fused away hold modules. Those modules go back to your inventory. The item you keep keeps its own.</li><li>Your modules count in flight exactly as the hangar shows, after a launch, a respawn, a reconnect and a configuration swap. Swapping configurations in flight now also switches Shield Regen and Speed Boost to the new configuration's ability slots, and a booster you add in flight counts at once.</li></ul>
<h3>Balance changes you will notice</h3>
<ul><li>Adaptive Cores now give their bonuses: AC-I +5% shields and +3% speed, AC-II +8% and +4%, AC-III +15% and +5% (times the slot's share). Before, they added nothing and even halved your absorbance.</li><li>Shields slow your ship again, as the item cards always said: Light Shield Core −1%, Basic −3%, Heavy −5% speed each (times the slot's share). Company pilots fly at 202 instead of 206.</li></ul>
</div>
</article>
<nav class="note-pager" aria-label="Patch notes" data-i18n-aria-label="patchnotes.heading">
<a href="patchnotes-v0.2.2.html" rel="prev">← 0.2.2</a>
<a href="patchnotes.html" data-i18n="patchnotes.all">All patch notes</a>
<a href="patchnotes-v0.3.0.html" rel="next">0.3.0 →</a>
</nav>
<!-- /patchnotes:list -->
</div>
</section>
</main>
<footer class="footer">
<div class="footer-inner">
<div class="footer-brand">
<img src="img/icon-128.png" width="24" height="24" alt="">
<span>SpaceCorps © 2026</span>
</div>
<nav class="footer-links" aria-label="Elsewhere" data-i18n-aria-label="footer.label">
<a href="https://discord.gg/VjW67tkrTb">Discord</a>
<a href="wiki.html" data-i18n="nav.wiki">Wiki</a>
<a href="https://github.com/SpaceCorps/play/releases" data-i18n="footer.releases">Releases</a>
<a href="https://github.com/SpaceCorps/play/issues" data-i18n="footer.issues">Report a problem</a>
<a href="patchnotes.md">patchnotes.md</a>
<a href="patchnotes.json">patchnotes.json</a>
<a href="https://spacecorps.github.io/">SpaceCorps Hub</a>
</nav>
<p class="footer-note" data-i18n="footer.note">Built on the Space3d engine. No cookies, no trackers: this page only remembers your language on your device and asks the game server whether it is up.</p>
</div>
</footer>
<!-- patchnotes:script -->
<script>
/* patchnotes-site 1: opens a release of the patch notes page's list in place. Written between the
patchnotes:script markers by scripts/release/patchnotes.py from
scripts/marketing/patchnotes-site/notes.js in the game repository: edit it there, not on the site.
Every release but the newest is a <details id="v0.4.8"> whose notes are not in the page: the
first time it opens, its fragment (v0.4.8.part.html) is fetched and put in. The page opened at
#v0.4.8 opens and loads that release. Without JavaScript (or when the fetch fails) the link
inside the entry opens the release's own page, v0.4.8.html. Where the fragments are comes from
the list (data-parts: the folder of the page itself in the patchnotes/ folder, "patchnotes/"
on the older layout, whose lists have no such attribute). */
(function () {
'use strict';
var list = document.querySelector('.note-index-list');
if (!list || !window.fetch) return;
function load(d) {
var state = d.getAttribute('data-state');
var body = d.querySelector('.note-old-body');
if (!body || state === 'loading' || state === 'done') return Promise.resolve();
d.setAttribute('data-state', 'loading');
d.setAttribute('aria-busy', 'true');
var base = list.getAttribute('data-parts');
if (base === null) base = 'patchnotes/';
return fetch(base + d.id + '.part.html')
.then(function (r) { return r.ok ? r.text() : Promise.reject(new Error(String(r.status))); })
.then(function (html) { body.innerHTML = html; d.setAttribute('data-state', 'done'); })
.catch(function () { d.setAttribute('data-state', 'failed'); })
.then(function () { d.removeAttribute('aria-busy'); });
}
// The site scrolls smoothly; a visitor who followed a link to a release wants to be there.
function jump(d) {
try { d.scrollIntoView({ behavior: 'instant' }); } catch (e) { d.scrollIntoView(); }
}
function remember(hash) {
try { history.replaceState(null, '', hash || location.pathname + location.search); } catch (e) { /* keep the address */ }
}
// A release opened by the visitor is in the address, so that the link can be shared.
list.addEventListener('toggle', function (e) {
var d = e.target;
if (!d || d.tagName !== 'DETAILS' || !d.id) return;
if (d.open) {
load(d);
remember('#' + d.id);
} else if (location.hash === '#' + d.id) {
remember('');
}
}, true);
// The address names a release: open it, load it and scroll to it (again once its notes are in,
// unless the visitor has scrolled meanwhile).
function follow() {
var id = '';
try { id = decodeURIComponent(location.hash.slice(1)); } catch (e) { return; }
var d = id ? document.getElementById(id) : null;
if (!d || d.tagName !== 'DETAILS' || !list.contains(d)) return;
var moved = false;
function stop() { moved = true; }
['wheel', 'touchmove', 'keydown', 'mousedown'].forEach(function (name) { addEventListener(name, stop, { once: true, passive: true }); });
d.open = true;
jump(d);
load(d).then(function () { if (!moved) jump(d); });
}
addEventListener('hashchange', follow);
follow();
// An entry that is open in the page (a newest release too long to be in the page itself).
Array.prototype.forEach.call(list.querySelectorAll('details[open][id]'), load);
})();
</script>
<!-- /patchnotes:script -->
</body>
</html>