blacktrigram 0.7.13 โ 0.7.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +27 -5
- package/COMBAT_ARCHITECTURE.md +21 -8
- package/DATA_MODEL.md +3 -0
- package/SECURITY_ARCHITECTURE.md +23 -0
- package/THREAT_MODEL.md +16 -9
- package/lib/components/screens/intro/IntroScreen3D.js +1 -1
- package/lib/components/shared/ui/SplashScreen.js +2 -2
- package/package.json +9 -9
package/ARCHITECTURE.md
CHANGED
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
## ๐ System Context
|
|
31
31
|
|
|
32
32
|
```mermaid
|
|
33
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#455A64','secondaryColor':'#4CAF50','tertiaryColor':'#FF9800','personBkg':'#1565C0','containerBkg':'#2979FF','componentBkg':'#4CAF50','person_bg':'#1565C0','container_bg':'#2979FF','component_bg':'#4CAF50'}}}%%
|
|
33
34
|
C4Context
|
|
34
35
|
title System Context - Black Trigram (ํ๊ด) Web Application (Q1 2026)
|
|
35
36
|
|
|
@@ -69,6 +70,7 @@ C4Context
|
|
|
69
70
|
## ๐ข Container View
|
|
70
71
|
|
|
71
72
|
```mermaid
|
|
73
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#455A64','secondaryColor':'#4CAF50','tertiaryColor':'#FF9800','personBkg':'#1565C0','containerBkg':'#2979FF','componentBkg':'#4CAF50','person_bg':'#1565C0','container_bg':'#2979FF','component_bg':'#4CAF50'}}}%%
|
|
72
74
|
C4Container
|
|
73
75
|
title Container View - Black Trigram Performance Architecture (Q1 2026)
|
|
74
76
|
|
|
@@ -164,6 +166,7 @@ C4Container
|
|
|
164
166
|
## ๐งฉ Component View
|
|
165
167
|
|
|
166
168
|
```mermaid
|
|
169
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#455A64','secondaryColor':'#4CAF50','tertiaryColor':'#FF9800','personBkg':'#1565C0','containerBkg':'#2979FF','componentBkg':'#4CAF50','person_bg':'#1565C0','container_bg':'#2979FF','component_bg':'#4CAF50'}}}%%
|
|
167
170
|
C4Component
|
|
168
171
|
title Combat System Components - Korean Martial Arts Engine (Q1 2026)
|
|
169
172
|
|
|
@@ -352,6 +355,7 @@ The following Three.js packages are now installed and configured:
|
|
|
352
355
|
### ๐๏ธ Architecture Integration
|
|
353
356
|
|
|
354
357
|
```mermaid
|
|
358
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
355
359
|
graph TD
|
|
356
360
|
subgraph "React 19 Application Layer"
|
|
357
361
|
A[React Components]
|
|
@@ -360,7 +364,7 @@ graph TD
|
|
|
360
364
|
end
|
|
361
365
|
|
|
362
366
|
subgraph "Rendering Layer"
|
|
363
|
-
D[@react-three/fiber Canvas]
|
|
367
|
+
D["@react-three/fiber Canvas"]
|
|
364
368
|
end
|
|
365
369
|
|
|
366
370
|
subgraph "Three.js 3D Scene"
|
|
@@ -404,6 +408,7 @@ graph TD
|
|
|
404
408
|
### ๐ Rendering Pipeline
|
|
405
409
|
|
|
406
410
|
```mermaid
|
|
411
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#455A64','secondaryColor':'#4CAF50','tertiaryColor':'#FF9800','actorBkg':'#1565C0','actorTextColor':'#fff','actorLineColor':'#455A64','signalColor':'#455A64','signalTextColor':'#fff','noteBkgColor':'#FFD600','noteTextColor':'#000','noteBorderColor':'#F57F17'}}}%%
|
|
407
412
|
sequenceDiagram
|
|
408
413
|
participant React as React Component
|
|
409
414
|
participant Canvas as @react-three/fiber Canvas
|
|
@@ -1150,6 +1155,7 @@ src/
|
|
|
1150
1155
|
## ๐ Combat Flow Sequence
|
|
1151
1156
|
|
|
1152
1157
|
```mermaid
|
|
1158
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#455A64','secondaryColor':'#4CAF50','tertiaryColor':'#FF9800','actorBkg':'#1565C0','actorTextColor':'#fff','actorLineColor':'#455A64','signalColor':'#455A64','signalTextColor':'#fff','noteBkgColor':'#FFD600','noteTextColor':'#000','noteBorderColor':'#F57F17'}}}%%
|
|
1153
1159
|
sequenceDiagram
|
|
1154
1160
|
title ๐ Combat Flow โ Fully Frontend (Black Trigram Q1 2026)
|
|
1155
1161
|
|
|
@@ -1207,6 +1213,7 @@ sequenceDiagram
|
|
|
1207
1213
|
### **Three.js-Specific Optimizations**
|
|
1208
1214
|
|
|
1209
1215
|
```mermaid
|
|
1216
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1210
1217
|
graph TD
|
|
1211
1218
|
subgraph PM["๐ Performance Monitoring (Q1 2026)"]
|
|
1212
1219
|
PerfMon[๐ Performance Monitor]
|
|
@@ -1530,6 +1537,7 @@ quadrantChart
|
|
|
1530
1537
|
### Mindmap of Strengths
|
|
1531
1538
|
|
|
1532
1539
|
```mermaid
|
|
1540
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1533
1541
|
mindmap
|
|
1534
1542
|
root((๐ข Strengths Q1 2026))
|
|
1535
1543
|
id1(๐ ๏ธ Zero-Install Web App)
|
|
@@ -1580,6 +1588,7 @@ mindmap
|
|
|
1580
1588
|
### Mindmap of Weaknesses
|
|
1581
1589
|
|
|
1582
1590
|
```mermaid
|
|
1591
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1583
1592
|
mindmap
|
|
1584
1593
|
root((๐ Weaknesses Q1 2026))
|
|
1585
1594
|
id1(๐ No Persistence Session-Only)
|
|
@@ -1600,15 +1609,15 @@ mindmap
|
|
|
1600
1609
|
id4.3[Mobile browser performance gaps]
|
|
1601
1610
|
id5(โ ๏ธ Memory/GC Concerns)
|
|
1602
1611
|
id5.1[Three.js objects need manual disposal]
|
|
1603
|
-
id5.2[Skeletal animation memory overhead
|
|
1604
|
-
id5.3[Particle systems can spike memory
|
|
1612
|
+
id5.2[Skeletal animation memory overhead - 180MB desktop]
|
|
1613
|
+
id5.3[Particle systems can spike memory - 1000+ particles]
|
|
1605
1614
|
id6(โ๏ธ Combat Realism Systems)
|
|
1606
1615
|
id6.1[8/12 systems complete or near-complete - 67%]
|
|
1607
1616
|
id6.2[4 systems remaining: trauma visualization, balance, HUD, movement]
|
|
1608
|
-
id6.3[1 system partially implemented: bone impact audio
|
|
1617
|
+
id6.3[1 system partially implemented: bone impact audio - mapping + selection complete, asset coverage/final mix pending]
|
|
1609
1618
|
id7(โ Incomplete Features)
|
|
1610
1619
|
id7.1[Techniques not yet stance-specific - 4 per archetype vs 3-5 per stance]
|
|
1611
|
-
id7.2[EndScreen3D implemented but missing final UX polish
|
|
1620
|
+
id7.2[EndScreen3D implemented but missing final UX polish - detailed stats, meta-progression hooks]
|
|
1612
1621
|
id7.3[Training mode limited scope]
|
|
1613
1622
|
id8(๐ฑ Mobile Performance)
|
|
1614
1623
|
id8.1[30-45fps on mobile devices - meeting 30fps baseline target]
|
|
@@ -1623,6 +1632,7 @@ mindmap
|
|
|
1623
1632
|
### Mindmap of Opportunities
|
|
1624
1633
|
|
|
1625
1634
|
```mermaid
|
|
1635
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1626
1636
|
mindmap
|
|
1627
1637
|
root((๐ต Opportunities Q1 2026))
|
|
1628
1638
|
id1(๐ก PWA & Offline Caching)
|
|
@@ -1668,6 +1678,7 @@ mindmap
|
|
|
1668
1678
|
### Mindmap of Threats
|
|
1669
1679
|
|
|
1670
1680
|
```mermaid
|
|
1681
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1671
1682
|
mindmap
|
|
1672
1683
|
root((๐ด Threats Q1 2026))
|
|
1673
1684
|
id1(๐ฉ๏ธ CDN Outages / Latency)
|
|
@@ -1737,6 +1748,7 @@ mindmap
|
|
|
1737
1748
|
### Player Archetypes & Combat Philosophy
|
|
1738
1749
|
|
|
1739
1750
|
```mermaid
|
|
1751
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1740
1752
|
mindmap
|
|
1741
1753
|
root((๐ฅ Black Trigram Core))
|
|
1742
1754
|
id1[๐ฎ Player Archetypes]
|
|
@@ -1814,6 +1826,7 @@ mindmap
|
|
|
1814
1826
|
### System Architecture Layers
|
|
1815
1827
|
|
|
1816
1828
|
```mermaid
|
|
1829
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1817
1830
|
mindmap
|
|
1818
1831
|
root((๐๏ธ Architecture))
|
|
1819
1832
|
id1[๐ฅ๏ธ Presentation Layer]
|
|
@@ -1889,6 +1902,7 @@ mindmap
|
|
|
1889
1902
|
### User Journey Through Game
|
|
1890
1903
|
|
|
1891
1904
|
```mermaid
|
|
1905
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1892
1906
|
flowchart TD
|
|
1893
1907
|
Start([๐ฎ Game Load]) --> Loading[โณ Loading Assets]
|
|
1894
1908
|
Loading --> Intro[๐ฎ Intro Screen]
|
|
@@ -1932,6 +1946,7 @@ flowchart TD
|
|
|
1932
1946
|
### Combat System Data Flow
|
|
1933
1947
|
|
|
1934
1948
|
```mermaid
|
|
1949
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1935
1950
|
graph TB
|
|
1936
1951
|
subgraph "๐ฎ Input Layer"
|
|
1937
1952
|
KI[Keyboard Input]
|
|
@@ -1993,6 +2008,7 @@ graph TB
|
|
|
1993
2008
|
### Trigram Advantage Matrix
|
|
1994
2009
|
|
|
1995
2010
|
```mermaid
|
|
2011
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1996
2012
|
graph LR
|
|
1997
2013
|
subgraph "โฏ๏ธ Trigram Relationships"
|
|
1998
2014
|
G[โฐ ๊ฑด Geon]
|
|
@@ -2038,6 +2054,7 @@ graph LR
|
|
|
2038
2054
|
### Resource Loading Pipeline
|
|
2039
2055
|
|
|
2040
2056
|
```mermaid
|
|
2057
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#455A64','secondaryColor':'#4CAF50','tertiaryColor':'#FF9800','actorBkg':'#1565C0','actorTextColor':'#fff','actorLineColor':'#455A64','signalColor':'#455A64','signalTextColor':'#fff','noteBkgColor':'#FFD600','noteTextColor':'#000','noteBorderColor':'#F57F17'}}}%%
|
|
2041
2058
|
sequenceDiagram
|
|
2042
2059
|
participant B as Browser
|
|
2043
2060
|
participant L as Asset Loader
|
|
@@ -2065,6 +2082,7 @@ sequenceDiagram
|
|
|
2065
2082
|
### Memory Management Strategy
|
|
2066
2083
|
|
|
2067
2084
|
```mermaid
|
|
2085
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
2068
2086
|
graph TD
|
|
2069
2087
|
subgraph "๐ง Memory Pools"
|
|
2070
2088
|
PP[Particle Pool<br/>Pre-allocated: 1000]
|
|
@@ -2109,6 +2127,7 @@ graph TD
|
|
|
2109
2127
|
### Frontend Security Architecture
|
|
2110
2128
|
|
|
2111
2129
|
```mermaid
|
|
2130
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
2112
2131
|
graph TB
|
|
2113
2132
|
subgraph "๐ก๏ธ Security Layers"
|
|
2114
2133
|
CSP[Content Security Policy]
|
|
@@ -2149,6 +2168,7 @@ graph TB
|
|
|
2149
2168
|
### CI/CD Pipeline
|
|
2150
2169
|
|
|
2151
2170
|
```mermaid
|
|
2171
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
2152
2172
|
graph LR
|
|
2153
2173
|
subgraph "๐ง Development"
|
|
2154
2174
|
DEV[Local Dev]
|
|
@@ -2200,6 +2220,7 @@ graph LR
|
|
|
2200
2220
|
### Performance Monitoring Dashboard
|
|
2201
2221
|
|
|
2202
2222
|
```mermaid
|
|
2223
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
2203
2224
|
graph TD
|
|
2204
2225
|
subgraph "๐ Client Metrics"
|
|
2205
2226
|
FPS[FPS Counter]
|
|
@@ -2246,6 +2267,7 @@ graph TD
|
|
|
2246
2267
|
### Potential Backend Integration
|
|
2247
2268
|
|
|
2248
2269
|
```mermaid
|
|
2270
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
2249
2271
|
graph TD
|
|
2250
2272
|
subgraph "Current: Frontend Only"
|
|
2251
2273
|
FE[React + Three.js]
|
package/COMBAT_ARCHITECTURE.md
CHANGED
|
@@ -78,6 +78,7 @@ Below, we define the Combat System's architecture in detail.
|
|
|
78
78
|
## ๐ง Core Combat System Architecture
|
|
79
79
|
|
|
80
80
|
```mermaid
|
|
81
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
81
82
|
graph TB
|
|
82
83
|
subgraph "Combat System Controller (src/systems/CombatSystem.ts)"
|
|
83
84
|
CSC[CombatSystemController]:::core
|
|
@@ -152,6 +153,7 @@ graph TB
|
|
|
152
153
|
## โฐ Trigram Combat System (ํ๊ด ๋ฌด์ ์ฒด๊ณ)
|
|
153
154
|
|
|
154
155
|
```mermaid
|
|
156
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
155
157
|
graph LR
|
|
156
158
|
subgraph "Eight Trigram Stances (ํ๊ด)"
|
|
157
159
|
G[โฐ ๊ฑด Geon<br/>Heaven]:::geon
|
|
@@ -241,6 +243,7 @@ interface StanceGuardPose {
|
|
|
241
243
|
### Animation State Integration
|
|
242
244
|
|
|
243
245
|
```mermaid
|
|
246
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
244
247
|
graph LR
|
|
245
248
|
subgraph "Guard Animation States"
|
|
246
249
|
SG1[stance_guard_geon]:::guard
|
|
@@ -681,6 +684,7 @@ The Stance Transition Animation System provides smooth, realistic 600ms transiti
|
|
|
681
684
|
### System Architecture
|
|
682
685
|
|
|
683
686
|
```mermaid
|
|
687
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
684
688
|
graph TB
|
|
685
689
|
subgraph "Transition Matrix (64 Transitions)"
|
|
686
690
|
TM[STANCE_TRANSITIONS Map]:::matrix
|
|
@@ -1194,6 +1198,7 @@ function handleStanceChange(from: TrigramStance, to: TrigramStance) {
|
|
|
1194
1198
|
## ๐ฏ Vital Point Targeting System (๊ธ์ ํ๊ฒฉ ์ฒด๊ณ)
|
|
1195
1199
|
|
|
1196
1200
|
```mermaid
|
|
1201
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1197
1202
|
graph TB
|
|
1198
1203
|
subgraph "70 Vital Points (๊ธ์)"
|
|
1199
1204
|
VPS[VitalPointSystem]:::vital
|
|
@@ -1246,6 +1251,7 @@ graph TB
|
|
|
1246
1251
|
## ๐ค Player Archetype Combat Specializations (๋ฌด์ฌ ์ ํ๋ณ ์ ํฌ ํนํ)
|
|
1247
1252
|
|
|
1248
1253
|
```mermaid
|
|
1254
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1249
1255
|
graph LR
|
|
1250
1256
|
subgraph "Five Player Archetypes (์ค๋ ๋ฌด์ฌ)"
|
|
1251
1257
|
M[๋ฌด์ฌ Musa<br/>Traditional Warrior]:::musa
|
|
@@ -1294,6 +1300,7 @@ graph LR
|
|
|
1294
1300
|
The Dark Ops technique system integrates authentic Korean special operations combat methods into the game, providing 15 specialized techniques focused on silent incapacitation, tactical assassination, and nerve strike warfare.
|
|
1295
1301
|
|
|
1296
1302
|
```mermaid
|
|
1303
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1297
1304
|
graph TB
|
|
1298
1305
|
subgraph "Dark Ops Units (์ํ์์ ๋ถ๋)"
|
|
1299
1306
|
DO[์ํ์์ ๋ถ๋<br/>Dark Operations Unit]:::darkops
|
|
@@ -1453,6 +1460,7 @@ Dark Ops techniques target specific anatomical vulnerable points:
|
|
|
1453
1460
|
The Movement Penalty System implements realistic injury-based movement penalties where leg and body damage reduces movement speed, restricts stance changes, and affects balance. This system creates authentic combat trauma effects based on Korean martial arts principles where targeting legs (๋ค๋ฆฌ) is a fundamental combat strategy.
|
|
1454
1461
|
|
|
1455
1462
|
```mermaid
|
|
1463
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1456
1464
|
graph TB
|
|
1457
1465
|
subgraph "Movement Penalty System (src/systems/bodypart/MovementPenaltySystem.ts)"
|
|
1458
1466
|
MPS[MovementPenaltySystem]:::movement
|
|
@@ -1631,6 +1639,7 @@ if (movementPenaltySystem.shouldEnterHelplessState(health, maxHealth)) {
|
|
|
1631
1639
|
The Physical Attributes System implements authentic biomechanics where each fighter's body dimensions (weight, limb length, muscle/fat mass, age) directly affect combat performance. Based on realistic human physiology and Korean martial arts principles, this system ensures that combat feels authentic and strategic.
|
|
1632
1640
|
|
|
1633
1641
|
```mermaid
|
|
1642
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1634
1643
|
graph TB
|
|
1635
1644
|
subgraph "Physical Attributes System (src/data/archetypePhysicalAttributes.ts)"
|
|
1636
1645
|
PAS[PhysicalAttributesSystem]:::physical
|
|
@@ -1642,11 +1651,11 @@ graph TB
|
|
|
1642
1651
|
|
|
1643
1652
|
subgraph "Archetype Physical Profiles"
|
|
1644
1653
|
APH[ArchetypeProfiles]:::profile
|
|
1645
|
-
APH --> MU[๋ฌด์ฌ
|
|
1646
|
-
APH --> AM[์์ด์
|
|
1647
|
-
APH --> HK[ํด์ปค
|
|
1648
|
-
APH --> JB[์ ๋ณด์์
|
|
1649
|
-
APH --> JJ[์กฐ์งํญ๋ ฅ๋ฐฐ
|
|
1654
|
+
APH --> MU["๋ฌด์ฌ Musa"]:::musa
|
|
1655
|
+
APH --> AM["์์ด์ Amsalja"]:::amsalja
|
|
1656
|
+
APH --> HK["ํด์ปค Hacker"]:::hacker
|
|
1657
|
+
APH --> JB["์ ๋ณด์์ Jeongbo"]:::jeongbo
|
|
1658
|
+
APH --> JJ["์กฐ์งํญ๋ ฅ๋ฐฐ Jojik"]:::jojik
|
|
1650
1659
|
end
|
|
1651
1660
|
|
|
1652
1661
|
subgraph "Combat Physics Engine (src/utils/combatPhysics.ts)"
|
|
@@ -2331,6 +2340,7 @@ Recovery animations follow Black Trigram's Korean martial arts principles:
|
|
|
2331
2340
|
## ๐ฎ Combat Component Architecture
|
|
2332
2341
|
|
|
2333
2342
|
```mermaid
|
|
2343
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
2334
2344
|
graph TB
|
|
2335
2345
|
subgraph "React Components Layer"
|
|
2336
2346
|
CS[CombatScreen]:::react
|
|
@@ -2372,6 +2382,7 @@ graph TB
|
|
|
2372
2382
|
## ๐ Audio System Integration
|
|
2373
2383
|
|
|
2374
2384
|
```mermaid
|
|
2385
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
2375
2386
|
graph LR
|
|
2376
2387
|
subgraph "Traditional Korean Instruments (๊ตญ์
)"
|
|
2377
2388
|
GAY[๊ฐ์ผ๊ธ Gayageum]:::traditional
|
|
@@ -2730,6 +2741,7 @@ AI fighters utilize behavior trees for dynamic combat decision-making based on h
|
|
|
2730
2741
|
### AI Decision Flow
|
|
2731
2742
|
|
|
2732
2743
|
```mermaid
|
|
2744
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
2733
2745
|
graph TB
|
|
2734
2746
|
START[Combat AI Tick]:::start --> ASSESS[Assess Situation]:::process
|
|
2735
2747
|
|
|
@@ -2754,8 +2766,8 @@ graph TB
|
|
|
2754
2766
|
CALC1 --> EXEC[Execute Technique]:::action
|
|
2755
2767
|
GUARD --> WAIT[Wait for Opening]:::action
|
|
2756
2768
|
|
|
2757
|
-
EXEC -->
|
|
2758
|
-
WAIT -->
|
|
2769
|
+
EXEC --> ENDTICK[End AI Tick]:::endState
|
|
2770
|
+
WAIT --> ENDTICK
|
|
2759
2771
|
|
|
2760
2772
|
classDef start fill:#00ff00,stroke:#333,color:#000
|
|
2761
2773
|
classDef process fill:#4da6ff,stroke:#333,color:#fff
|
|
@@ -2764,7 +2776,7 @@ graph TB
|
|
|
2764
2776
|
classDef balanced fill:#ff8c00,stroke:#333,color:#fff
|
|
2765
2777
|
classDef defensive fill:#0066cc,stroke:#333,color:#fff
|
|
2766
2778
|
classDef action fill:#9370db,stroke:#333,color:#fff
|
|
2767
|
-
classDef
|
|
2779
|
+
classDef endState fill:#808080,stroke:#333,color:#fff
|
|
2768
2780
|
```
|
|
2769
2781
|
|
|
2770
2782
|
### Aggression Levels
|
|
@@ -3304,6 +3316,7 @@ The system embodies traditional principles:
|
|
|
3304
3316
|
## ๐ฏ Success Metrics
|
|
3305
3317
|
|
|
3306
3318
|
```mermaid
|
|
3319
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
3307
3320
|
graph LR
|
|
3308
3321
|
subgraph "Combat Effectiveness Metrics"
|
|
3309
3322
|
ACC[์ ํ๋ Accuracy<br/>85%+ hit detection]:::metric
|
package/DATA_MODEL.md
CHANGED
|
@@ -38,6 +38,7 @@ Black Trigram (ํ๊ด) is a frontend-only Korean martial arts combat simulator w
|
|
|
38
38
|
### **Entity Relationship Diagram**
|
|
39
39
|
|
|
40
40
|
```mermaid
|
|
41
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#455A64','secondaryColor':'#4CAF50','tertiaryColor':'#FF9800'}}}%%
|
|
41
42
|
erDiagram
|
|
42
43
|
PLAYER ||--|| PLAYER_ARCHETYPE : "has"
|
|
43
44
|
PLAYER ||--o{ STATUS_EFFECT : "suffers"
|
|
@@ -689,6 +690,7 @@ Black Trigram implements a performance-optimized skeletal animation system with
|
|
|
689
690
|
#### **Core Bone Structure (28 bones)**
|
|
690
691
|
|
|
691
692
|
```mermaid
|
|
693
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
692
694
|
graph TD
|
|
693
695
|
PELVIS[PELVIS - Root]
|
|
694
696
|
|
|
@@ -903,6 +905,7 @@ export enum VitalPointSeverity {
|
|
|
903
905
|
### **Combat State Transitions**
|
|
904
906
|
|
|
905
907
|
```mermaid
|
|
908
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
906
909
|
stateDiagram-v2
|
|
907
910
|
[*] --> IDLE
|
|
908
911
|
|
package/SECURITY_ARCHITECTURE.md
CHANGED
|
@@ -98,6 +98,7 @@ This security architecture implements controls aligned with Hack23 AB's publicly
|
|
|
98
98
|
The following diagram illustrates the layered defense-in-depth architecture for Black Trigram, showing how security controls are organized across infrastructure, application, and development layers.
|
|
99
99
|
|
|
100
100
|
```mermaid
|
|
101
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
101
102
|
graph TD
|
|
102
103
|
subgraph "๐ Defense-in-Depth Security Architecture"
|
|
103
104
|
direction TB
|
|
@@ -165,6 +166,7 @@ graph TD
|
|
|
165
166
|
**Current Status**: โ No Authentication - Client-Side Only Web Application
|
|
166
167
|
|
|
167
168
|
```mermaid
|
|
169
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
168
170
|
flowchart TD
|
|
169
171
|
subgraph "Frontend-Only Architecture (No Authentication)"
|
|
170
172
|
A[๐ค Player] -->|"Direct Access"| B[๐ Web Browser]
|
|
@@ -213,6 +215,7 @@ Black Trigram is a frontend-only web application with:
|
|
|
213
215
|
**Current Status**: โ No Data Auditing - Session-Only Application
|
|
214
216
|
|
|
215
217
|
```mermaid
|
|
218
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
216
219
|
flowchart TD
|
|
217
220
|
subgraph "No Auditing Architecture"
|
|
218
221
|
A[๐ค Player] -->|"Action"| B[โ๏ธ Client Logic]
|
|
@@ -251,6 +254,7 @@ Black Trigram currently has:
|
|
|
251
254
|
**Current Status**: โ No Session Tracking - Client-Side Only
|
|
252
255
|
|
|
253
256
|
```mermaid
|
|
257
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
254
258
|
flowchart TD
|
|
255
259
|
subgraph "No Session Tracking"
|
|
256
260
|
A[๐ค Player] -->|"Interact"| B[๐ฑ๏ธ Game Interface]
|
|
@@ -289,6 +293,7 @@ Black Trigram session handling:
|
|
|
289
293
|
**Current Status**: โ No Security Event Monitoring - Frontend Only
|
|
290
294
|
|
|
291
295
|
```mermaid
|
|
296
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
292
297
|
flowchart TD
|
|
293
298
|
subgraph "No Security Event Monitoring"
|
|
294
299
|
A[๐ No Authentication<br>Events]
|
|
@@ -324,6 +329,7 @@ Black Trigram security monitoring:
|
|
|
324
329
|
**Current Status**: โ
AWS CloudFront + Route53 - Multi-Region with GitHub Pages DR
|
|
325
330
|
|
|
326
331
|
```mermaid
|
|
332
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
327
333
|
graph TD
|
|
328
334
|
subgraph "AWS Network Security Infrastructure"
|
|
329
335
|
A[๐ Internet] -->|"DNS Query"| B[๐ก๏ธ Route53 DNSSEC + Health Checks]
|
|
@@ -433,6 +439,7 @@ Black Trigram network security includes AWS CloudFront + S3 multi-region deploym
|
|
|
433
439
|
### Domain Security Monitoring
|
|
434
440
|
|
|
435
441
|
```mermaid
|
|
442
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
436
443
|
flowchart LR
|
|
437
444
|
subgraph "DNS Security Monitoring"
|
|
438
445
|
A[๐ DNSSEC Validation] --> B[๐ Query Monitoring]
|
|
@@ -455,6 +462,7 @@ flowchart LR
|
|
|
455
462
|
**Current Status**: โ Not Applicable - No AWS Infrastructure
|
|
456
463
|
|
|
457
464
|
```mermaid
|
|
465
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
458
466
|
flowchart LR
|
|
459
467
|
subgraph "No VPC Infrastructure"
|
|
460
468
|
A[๐ซ No Private Subnets]
|
|
@@ -478,6 +486,7 @@ Black Trigram does not use VPC infrastructure:
|
|
|
478
486
|
**Current Status**: โ
Multi-Region AWS + GitHub Pages DR
|
|
479
487
|
|
|
480
488
|
```mermaid
|
|
489
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
481
490
|
graph TD
|
|
482
491
|
subgraph "AWS Multi-Region High Availability"
|
|
483
492
|
A[๐ก Route53 Health Checks] --> B{Primary Healthy?}
|
|
@@ -545,6 +554,7 @@ As a static content application, Black Trigram benefits from inherent resilience
|
|
|
545
554
|
**Current Status**: โ
TLS Encryption + S3 Server-Side Encryption
|
|
546
555
|
|
|
547
556
|
```mermaid
|
|
557
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
548
558
|
flowchart TD
|
|
549
559
|
subgraph "Data Protection Strategy"
|
|
550
560
|
A[๐ค Player] <-->|"๐ TLS 1.3"| B[โ๏ธ CloudFront CDN]
|
|
@@ -594,6 +604,7 @@ Black Trigram data protection:
|
|
|
594
604
|
**Current Status**: โ
Implemented - CloudFront + S3 + Route53
|
|
595
605
|
|
|
596
606
|
```mermaid
|
|
607
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
597
608
|
graph TD
|
|
598
609
|
subgraph "AWS Security Services"
|
|
599
610
|
A[โ๏ธ CloudFront CDN] --> B[๐ก๏ธ AWS Shield Standard]
|
|
@@ -676,6 +687,7 @@ Black Trigram uses AWS infrastructure exclusively for static content hosting and
|
|
|
676
687
|
**Current Status**: โ Not Applicable - No AWS Backend Services
|
|
677
688
|
|
|
678
689
|
```mermaid
|
|
690
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
679
691
|
flowchart TD
|
|
680
692
|
subgraph "No AWS FSBP Implementation"
|
|
681
693
|
A[๐ซ No Config Service]
|
|
@@ -701,6 +713,7 @@ Black Trigram does not implement AWS FSBP (uses AWS only for static hosting via
|
|
|
701
713
|
**Current Status**: โ No Threat Detection - Frontend Only
|
|
702
714
|
|
|
703
715
|
```mermaid
|
|
716
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
704
717
|
flowchart TD
|
|
705
718
|
subgraph "No Threat Detection"
|
|
706
719
|
A[๐ No Threat<br>Detection]
|
|
@@ -731,6 +744,7 @@ Black Trigram threat detection:
|
|
|
731
744
|
**Current Status**: โ No Vulnerability Management - Static Content
|
|
732
745
|
|
|
733
746
|
```mermaid
|
|
747
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
734
748
|
flowchart TD
|
|
735
749
|
subgraph "No Vulnerability Management"
|
|
736
750
|
A[๐ No Vulnerability<br>Scanning]
|
|
@@ -761,6 +775,7 @@ Black Trigram vulnerability management:
|
|
|
761
775
|
**Current Status**: โ No Configuration Management - Static Content
|
|
762
776
|
|
|
763
777
|
```mermaid
|
|
778
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
764
779
|
flowchart TD
|
|
765
780
|
subgraph "No Configuration Management"
|
|
766
781
|
A[โ๏ธ No AWS Config]
|
|
@@ -790,6 +805,7 @@ Black Trigram configuration management:
|
|
|
790
805
|
**Current Status**: โ No Security Monitoring - Frontend Only
|
|
791
806
|
|
|
792
807
|
```mermaid
|
|
808
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
793
809
|
flowchart TD
|
|
794
810
|
subgraph "No Security Monitoring"
|
|
795
811
|
A[๐ No Log Sources]
|
|
@@ -821,6 +837,7 @@ Black Trigram monitoring:
|
|
|
821
837
|
**Current Status**: โ No Automated Security Operations - Static Content
|
|
822
838
|
|
|
823
839
|
```mermaid
|
|
840
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
824
841
|
flowchart TD
|
|
825
842
|
subgraph "No Automated Security Operations"
|
|
826
843
|
A[โฑ๏ธ No Maintenance<br>Windows]
|
|
@@ -850,6 +867,7 @@ Black Trigram automated operations:
|
|
|
850
867
|
**Current Status**: โ
Partial Implementation - Frontend Security Only
|
|
851
868
|
|
|
852
869
|
```mermaid
|
|
870
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
853
871
|
flowchart LR
|
|
854
872
|
subgraph "Frontend Application Security"
|
|
855
873
|
A[๐ก๏ธ Browser<br>Security Model] --> B[๐ HTTPS Only]
|
|
@@ -888,6 +906,7 @@ Black Trigram application security:
|
|
|
888
906
|
**Current Status**: โ No Formal Compliance - Educational Application
|
|
889
907
|
|
|
890
908
|
```mermaid
|
|
909
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
891
910
|
graph TD
|
|
892
911
|
subgraph "No Formal Compliance"
|
|
893
912
|
A[๐๏ธ No Compliance<br>Framework]
|
|
@@ -919,6 +938,7 @@ Black Trigram compliance:
|
|
|
919
938
|
**Current Status**: โ
Simplified Defense Strategy - Minimal Attack Surface
|
|
920
939
|
|
|
921
940
|
```mermaid
|
|
941
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
922
942
|
flowchart TD
|
|
923
943
|
subgraph "Simplified Defense-in-Depth"
|
|
924
944
|
A[๐ Network Layer] --> B[๐ HTTPS/TLS]
|
|
@@ -959,6 +979,7 @@ Black Trigram's simplified defense approach:
|
|
|
959
979
|
**Current Status**: โ No Security Operations - Static Content Only
|
|
960
980
|
|
|
961
981
|
```mermaid
|
|
982
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
962
983
|
flowchart TD
|
|
963
984
|
subgraph "No Security Operations"
|
|
964
985
|
A[๐ No Monitoring]
|
|
@@ -990,6 +1011,7 @@ Black Trigram security operations:
|
|
|
990
1011
|
**Current Status**: โ
Minimal Security Investment - Frontend Only
|
|
991
1012
|
|
|
992
1013
|
```mermaid
|
|
1014
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
993
1015
|
flowchart TD
|
|
994
1016
|
subgraph "Minimal Security Investment"
|
|
995
1017
|
A[๐ฐ Low Cost] --> B[๐ฆ CDN Costs Only]
|
|
@@ -1028,6 +1050,7 @@ Black Trigram security investment:
|
|
|
1028
1050
|
**Current Status**: โ
Comprehensive CI/CD Security - GitHub Actions
|
|
1029
1051
|
|
|
1030
1052
|
```mermaid
|
|
1053
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
1031
1054
|
flowchart TD
|
|
1032
1055
|
subgraph "Security-Hardened CI/CD Pipeline"
|
|
1033
1056
|
A[๐ Source Code<br>Security] --> B[๐ CodeQL Analysis]
|
package/THREAT_MODEL.md
CHANGED
|
@@ -45,6 +45,7 @@ _โ Based on Hack23 AB's commitment to security through transparency and excell
|
|
|
45
45
|
This threat model implements all five strategies defined in [Hack23 AB Threat Modeling Policy ยง4](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Threat_Modeling.md#threat-modeling-strategies):
|
|
46
46
|
|
|
47
47
|
```mermaid
|
|
48
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
48
49
|
mindmap
|
|
49
50
|
root)๐ฏ Black Trigram Threat Modeling(
|
|
50
51
|
(๐๏ธ Attacker-Centric)
|
|
@@ -425,16 +426,20 @@ Following [Risk-Centric Threat Modeling](https://github.com/Hack23/ISMS-PUBLIC/b
|
|
|
425
426
|
### **โ๏ธ Risk Heat Matrix**
|
|
426
427
|
|
|
427
428
|
```mermaid
|
|
428
|
-
%%{
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
429
|
+
%%{init: {
|
|
430
|
+
"theme": "neutral",
|
|
431
|
+
"themeVariables": {
|
|
432
|
+
"quadrant1Fill": "#2E7D32",
|
|
433
|
+
"quadrant2Fill": "#D32F2F",
|
|
434
|
+
"quadrant3Fill": "#1565C0",
|
|
435
|
+
"quadrant4Fill": "#FF9800",
|
|
436
|
+
"quadrantTitleFill": "#ffffff",
|
|
437
|
+
"quadrantPointFill": "#ffffff",
|
|
438
|
+
"quadrantPointTextFill": "#ffffff",
|
|
439
|
+
"quadrantXAxisTextFill": "#ffffff",
|
|
440
|
+
"quadrantYAxisTextFill": "#ffffff"
|
|
436
441
|
}
|
|
437
|
-
}%%
|
|
442
|
+
}}%%
|
|
438
443
|
quadrantChart
|
|
439
444
|
title ๐ฏ Black Trigram Risk Heat Matrix
|
|
440
445
|
x-axis Low Likelihood --> High Likelihood
|
|
@@ -937,6 +942,7 @@ Following [Hack23 AB Threat Modeling Policy โ AI-Enabled Threats](https://gith
|
|
|
937
942
|
#### **๐ก๏ธ AI Threat Countermeasures for Educational Gaming**
|
|
938
943
|
|
|
939
944
|
```mermaid
|
|
945
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
940
946
|
flowchart TD
|
|
941
947
|
A[๐ค AI Threat Detection] --> B{Threat Category}
|
|
942
948
|
B -->|Content Manipulation| C[Cultural Review Gate]
|
|
@@ -974,6 +980,7 @@ Following [Hack23 AB Threat Modeling Policy โ Maturity Framework](https://gith
|
|
|
974
980
|
#### **๐ Maturity Progression Roadmap**
|
|
975
981
|
|
|
976
982
|
```mermaid
|
|
983
|
+
%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#2979FF','primaryTextColor':'#fff','primaryBorderColor':'#0D47A1','lineColor':'#00C853','secondaryColor':'#FFD600','tertiaryColor':'#FF3D00'}}}%%
|
|
977
984
|
graph LR
|
|
978
985
|
L1[Level 1<br/>Ad-hoc<br/>โ
Done] --> L2[Level 2<br/>Repeatable<br/>โ
Done]
|
|
979
986
|
L2 --> L3[Level 3<br/>Defined<br/>โ
Current]
|
|
@@ -21,7 +21,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
|
21
21
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
22
|
import { Canvas } from "@react-three/fiber";
|
|
23
23
|
//#region src/components/screens/intro/IntroScreen3D.tsx
|
|
24
|
-
var APP_VERSION = "0.7.
|
|
24
|
+
var APP_VERSION = "0.7.14";
|
|
25
25
|
var MENU_ITEMS = [
|
|
26
26
|
{
|
|
27
27
|
mode: GameMode.VERSUS,
|
|
@@ -183,7 +183,7 @@ var SplashScreen = ({ onStart, width, height }) => {
|
|
|
183
183
|
}),
|
|
184
184
|
/* @__PURE__ */ jsxs("div", {
|
|
185
185
|
role: "contentinfo",
|
|
186
|
-
"aria-label": `Application version 0.7.
|
|
186
|
+
"aria-label": `Application version 0.7.14`,
|
|
187
187
|
style: {
|
|
188
188
|
position: "absolute",
|
|
189
189
|
bottom: "20px",
|
|
@@ -192,7 +192,7 @@ var SplashScreen = ({ onStart, width, height }) => {
|
|
|
192
192
|
fontSize: "10px",
|
|
193
193
|
zIndex: 1
|
|
194
194
|
},
|
|
195
|
-
children: ["v", "0.7.
|
|
195
|
+
children: ["v", "0.7.14"]
|
|
196
196
|
})
|
|
197
197
|
]
|
|
198
198
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blacktrigram",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.14",
|
|
4
4
|
"description": "Black Trigram (ํ๊ด) - Korean Martial Arts Combat Simulator. Reusable game systems, combat mechanics, animation framework, and Korean martial arts data built with React, Three.js, and TypeScript.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
"three": "^0.183.0"
|
|
187
187
|
},
|
|
188
188
|
"devDependencies": {
|
|
189
|
-
"@aws-sdk/client-bedrock-runtime": "3.
|
|
189
|
+
"@aws-sdk/client-bedrock-runtime": "3.1027.0",
|
|
190
190
|
"@eslint/js": "10.0.1",
|
|
191
191
|
"@react-three/drei": "10.7.7",
|
|
192
192
|
"@react-three/fiber": "9.5.0",
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
"@vitejs/plugin-react": "6.0.1",
|
|
203
203
|
"@vitest/coverage-v8": "4.1.3",
|
|
204
204
|
"@vitest/ui": "4.1.3",
|
|
205
|
-
"cypress": "15.13.
|
|
205
|
+
"cypress": "15.13.1",
|
|
206
206
|
"cypress-junit-reporter": "1.3.1",
|
|
207
207
|
"cypress-multi-reporters": "2.0.5",
|
|
208
208
|
"cypress-wait-until": "3.0.2",
|
|
@@ -214,17 +214,17 @@
|
|
|
214
214
|
"globals": "17.4.0",
|
|
215
215
|
"jest-axe": "10.0.0",
|
|
216
216
|
"jsdom": "29.0.2",
|
|
217
|
-
"knip": "6.3.
|
|
217
|
+
"knip": "6.3.1",
|
|
218
218
|
"license-compliance": "3.0.1",
|
|
219
219
|
"mocha-junit-reporter": "2.2.1",
|
|
220
220
|
"mochawesome": "7.1.4",
|
|
221
221
|
"mochawesome-merge": "5.1.1",
|
|
222
222
|
"mochawesome-report-generator": "6.3.2",
|
|
223
|
-
"openai": "6.
|
|
223
|
+
"openai": "6.34.0",
|
|
224
224
|
"playwright": "1.59.1",
|
|
225
225
|
"postprocessing": "6.39.0",
|
|
226
|
-
"react": "19.2.
|
|
227
|
-
"react-dom": "19.2.
|
|
226
|
+
"react": "19.2.5",
|
|
227
|
+
"react-dom": "19.2.5",
|
|
228
228
|
"start-server-and-test": "3.0.0",
|
|
229
229
|
"three": "0.183.2",
|
|
230
230
|
"ts-morph": "27.0.2",
|
|
@@ -236,8 +236,8 @@
|
|
|
236
236
|
"typedoc-plugin-mermaid": "1.12.0",
|
|
237
237
|
"typedoc-plugin-missing-exports": "4.1.3",
|
|
238
238
|
"typescript": "6.0.2",
|
|
239
|
-
"typescript-eslint": "8.58.
|
|
240
|
-
"vite": "8.0.
|
|
239
|
+
"typescript-eslint": "8.58.1",
|
|
240
|
+
"vite": "8.0.8",
|
|
241
241
|
"vite-bundle-analyzer": "1.3.7",
|
|
242
242
|
"vite-tsconfig-paths": "6.1.1",
|
|
243
243
|
"vitest": "4.1.3"
|