<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ZAKO戦術シミュレータ</title>
<script>
// ZAKOのパーソナルデータ
const ZAKO_DATA = [
{
type: "701",
name: "はるか",
style: "メイド",
facialFeatures: "ツインテール",
hairStyle: "ロングヘアー",
bodyType: "スリム",
personality: "天真爛漫"
},
{
type: "702",
name: "みお",
style: "バニーガール",
facialFeatures: "ウインク",
hairStyle: "ショートヘアー",
bodyType: "グラマー",
personality: "元気"
},
{
type: "703",
name: "あかね",
style: "チアリーダー",
facialFeatures: "笑顔",
hairStyle: "ツインテール",
bodyType: "マッチョ",
personality: "元気"
}
];
let currentZako = {};
let currentMission = 0;
let currentMissionSuccessRate = 0;
let currentMissionEmotion = "";
function createZako() {
const rand = Math.floor(Math.random() * ZAKO_DATA.length);
currentZako = ZAKO_DATA[rand];
// パーソナルデータを画面に表示
const personalDataEl = document.getElementById('personal_data');
personalDataEl.innerHTML =
"型式: " + currentZako.type + "<br>"
+ "名前: " + currentZako.name + "<br>"
+ "スタイル: " + currentZako.style + "<br>"
+ "顔立: " + currentZako.facialFeatures + "<br>"
+ "髪型: " + currentZako.hairStyle + "<br>"
+ "体型: " + currentZako.bodyType + "<br>"
+ "性格: " + currentZako.personality;
}
function startMission() {
currentMission++;
// ランダムにミッションの成功率を設定(0〜100%)
currentMissionSuccessRate = Math.floor(Math.random() * 101);
// ミッションの種類に合わせてZAKOの感情を変化させる(興奮、安楽、恐怖など)
switch (currentMission) {
case 1:
currentMissionEmotion = "興奮";
break;
case 2:
currentMissionEmotion = "安楽";
break;
case 3:
currentMissionEmotion = "恐怖";
break;
}
// 画面にミッションの詳細を表示
const missionEl = document.getElementById('mission');
missionEl.innerHTML = `任務${currentMission}: 成功率${currentMissionSuccessRate}%<br>感情: ${currentMissionEmotion}`;
}
function completeMission() {
if (Math.random() * 100 > currentMissionSuccessRate) {
currentZako.health--;
// 体力が0になったら退役
if (currentZako.health <= 0) {
alert(`${currentZako.name}は退役しました`);
createZako();
currentMission = 0;
currentZako.health = 10;
} else {
alert(`任務${currentMission}に失敗し、${currentZako.name}の体力が${currentZako.health}に減りました`);
}
} else {
currentZako.health++;
// 体力が10以上になったら最大値に調整
if (currentZako.health > 10) {
currentZako.health = 10;
}
alert(`任務${currentMission}に成功し、${currentZako.name}の体力が${currentZako.health}に増えました`);
}
// 感情パラメータを表示
const emotionEl = document.getElementById('emotion');
emotionEl.innerHTML = `${currentZako.name}の感情: ${currentMissionEmotion}`;
}
function createNewZako() {
createZako();
currentMission = 0;
currentZako.health = 10;
alert("新しいZAKOが製造されました!");
}
</script>
</head>
<body>
<h1>ZAKO戦術シミュレータ</h1>
<div>
<button onclick="createZako()">ZAKOを製造する</button>
<div id="personal_data"></div>
</div>
<div>
<button onclick="startMission()">出撃</button>
<div id="mission"></div>
</div>
<div>
<button onclick="completeMission()">任務完了</button>
<div id="emotion"></div>
</div>
<div>
<button onclick="createNewZako()">新しいZAKOを製造する</button>
</div>
</body>
</html>