Spaces:
Running
Running
Agent World Studio — 11 WebMCP tools over a splat editor and a battle simulator
Browse files- index.html +1 -1
- static/battlefield/index.html +10 -8
index.html
CHANGED
|
@@ -8,7 +8,7 @@
|
|
| 8 |
<link rel="stylesheet" href="./index.css">
|
| 9 |
<link rel="shortcut icon" href="#">
|
| 10 |
<meta http-equiv="Cache-Control" content="no-store" />
|
| 11 |
-
<meta name="aws-build" content="
|
| 12 |
<meta name="description" content="SuperSplat is an advanced browser-based editor for manipulating and optimizing 3D Gaussian Splats. It is open source and engine agnostic." />
|
| 13 |
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />
|
| 14 |
|
|
|
|
| 8 |
<link rel="stylesheet" href="./index.css">
|
| 9 |
<link rel="shortcut icon" href="#">
|
| 10 |
<meta http-equiv="Cache-Control" content="no-store" />
|
| 11 |
+
<meta name="aws-build" content="20260901110421" />
|
| 12 |
<meta name="description" content="SuperSplat is an advanced browser-based editor for manipulating and optimizing 3D Gaussian Splats. It is open source and engine agnostic." />
|
| 13 |
<meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0" />
|
| 14 |
|
static/battlefield/index.html
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
<!doctype html>
|
| 2 |
<html lang="ko">
|
| 3 |
-
<head>
|
| 4 |
<meta charset="utf-8">
|
| 5 |
<meta name="viewport" content="width=device-width,initial-scale=1">
|
| 6 |
<title>BattleArray — 전열이 전투를 결정한다</title>
|
|
@@ -134,8 +134,8 @@
|
|
| 134 |
<label data-i18n="timeLimit">전투 제한 시간</label>
|
| 135 |
<select id="limitSel">
|
| 136 |
<option value="300" data-i18n="lim5">5분 — 짧은 접전</option>
|
| 137 |
-
<option value="900"
|
| 138 |
-
<option value="1800" data-i18n="lim30">30분 —
|
| 139 |
<option value="0" data-i18n="limNone">무제한 — 한쪽이 무너질 때까지</option>
|
| 140 |
</select>
|
| 141 |
|
|
@@ -837,8 +837,8 @@ const I18N = {
|
|
| 837 |
subDefault:'백년전쟁 1337–1420 · 화약 병기 이전',
|
| 838 |
myMen:'내 병력', foeMen:'상대 병력', archerDeploy:'궁수 배치',
|
| 839 |
phaseDeploy:'배치', phaseBattle:'전투', inBattle:'전투 중', phasePursuit:'추격',
|
| 840 |
-
timeLimit:'전투 제한 시간', lim5:'5분 — 짧은 접전', lim15:'15분
|
| 841 |
-
lim30:'30분 —
|
| 842 |
g_decisive:'결정적 승리', g_victory:'승리', g_pyrrhic:'신승', g_draw:'무승부',
|
| 843 |
how_rout:'적군이 무너져 달아났다',
|
| 844 |
how_timeout:'공격이 제한 시간 안에 끝내지 못했다 — 제한을 늘리면 결판까지 간다',
|
|
@@ -884,8 +884,8 @@ const I18N = {
|
|
| 884 |
subDefault:'Hundred Years War 1337\u20131420 \u00b7 before gunpowder',
|
| 885 |
myMen:'My strength', foeMen:'Enemy strength', archerDeploy:'archer deployment',
|
| 886 |
phaseDeploy:'Deploy', phaseBattle:'Battle', inBattle:'In battle', phasePursuit:'Pursuit',
|
| 887 |
-
timeLimit:'Battle time limit', lim5:'5 min — short clash', lim15:'15 min
|
| 888 |
-
lim30:'30 min —
|
| 889 |
g_decisive:'decisive victory', g_victory:'victory', g_pyrrhic:'pyrrhic victory', g_draw:'Draw',
|
| 890 |
how_rout:'the enemy broke and ran',
|
| 891 |
how_timeout:'the attack ran out of time — raise the limit to fight it out',
|
|
@@ -970,7 +970,9 @@ let menMine = 500, menFoe = 500, stakes = true, SPEED = 1;
|
|
| 970 |
// 🔴 300초는 너무 짧았다 — 칸나에 13,600명이 698초에 사상자 2%로 시간만료됐다.
|
| 971 |
// 대회전은 실제로 반나절이 걸렸다. 기본을 15분으로 두고 화면에서 고르게 한다.
|
| 972 |
const PURSUIT_SECONDS = 45;
|
| 973 |
-
let BATTLE_LIMIT =
|
|
|
|
|
|
|
| 974 |
let stage = 'battle', routedTeam = -1, pursuitStart = 0, contactAt = -1;
|
| 975 |
let atRout = { a:0, b:0 }, verdict = null;
|
| 976 |
|
|
|
|
| 1 |
<!doctype html>
|
| 2 |
<html lang="ko">
|
| 3 |
+
<head>
|
| 4 |
<meta charset="utf-8">
|
| 5 |
<meta name="viewport" content="width=device-width,initial-scale=1">
|
| 6 |
<title>BattleArray — 전열이 전투를 결정한다</title>
|
|
|
|
| 134 |
<label data-i18n="timeLimit">전투 제한 시간</label>
|
| 135 |
<select id="limitSel">
|
| 136 |
<option value="300" data-i18n="lim5">5분 — 짧은 접전</option>
|
| 137 |
+
<option value="900" data-i18n="lim15">15분</option>
|
| 138 |
+
<option value="1800" selected data-i18n="lim30">30분 — 기본</option>
|
| 139 |
<option value="0" data-i18n="limNone">무제한 — 한쪽이 무너질 때까지</option>
|
| 140 |
</select>
|
| 141 |
|
|
|
|
| 837 |
subDefault:'백년전쟁 1337–1420 · 화약 병기 이전',
|
| 838 |
myMen:'내 병력', foeMen:'상대 병력', archerDeploy:'궁수 배치',
|
| 839 |
phaseDeploy:'배치', phaseBattle:'전투', inBattle:'전투 중', phasePursuit:'추격',
|
| 840 |
+
timeLimit:'전투 제한 시간', lim5:'5분 — 짧은 접전', lim15:'15분',
|
| 841 |
+
lim30:'30분 — 기본', limNone:'무제한 — 대회전 권장',
|
| 842 |
g_decisive:'결정적 승리', g_victory:'승리', g_pyrrhic:'신승', g_draw:'무승부',
|
| 843 |
how_rout:'적군이 무너져 달아났다',
|
| 844 |
how_timeout:'공격이 제한 시간 안에 끝내지 못했다 — 제한을 늘리면 결판까지 간다',
|
|
|
|
| 884 |
subDefault:'Hundred Years War 1337\u20131420 \u00b7 before gunpowder',
|
| 885 |
myMen:'My strength', foeMen:'Enemy strength', archerDeploy:'archer deployment',
|
| 886 |
phaseDeploy:'Deploy', phaseBattle:'Battle', inBattle:'In battle', phasePursuit:'Pursuit',
|
| 887 |
+
timeLimit:'Battle time limit', lim5:'5 min — short clash', lim15:'15 min',
|
| 888 |
+
lim30:'30 min — default', limNone:'No limit — best for the big battles',
|
| 889 |
g_decisive:'decisive victory', g_victory:'victory', g_pyrrhic:'pyrrhic victory', g_draw:'Draw',
|
| 890 |
how_rout:'the enemy broke and ran',
|
| 891 |
how_timeout:'the attack ran out of time — raise the limit to fight it out',
|
|
|
|
| 970 |
// 🔴 300초는 너무 짧았다 — 칸나에 13,600명이 698초에 사상자 2%로 시간만료됐다.
|
| 971 |
// 대회전은 실제로 반나절이 걸렸다. 기본을 15분으로 두고 화면에서 고르게 한다.
|
| 972 |
const PURSUIT_SECONDS = 45;
|
| 973 |
+
let BATTLE_LIMIT = 1800; // 0 = 무제한
|
| 974 |
+
// 🔴 실측: 칸나에(13,600명)는 1,800초에도 결판이 안 났다 —
|
| 975 |
+
// 로마 88%·카르타고 60% 잔존. 대회전은 무제한이 필요하다.
|
| 976 |
let stage = 'battle', routedTeam = -1, pursuitStart = 0, contactAt = -1;
|
| 977 |
let atRout = { a:0, b:0 }, verdict = null;
|
| 978 |
|