This commit is contained in:
33333-33333 2026-07-20 14:36:59 +09:00
commit f6d7412744
94 changed files with 3836 additions and 1226 deletions

View file

@ -170,6 +170,7 @@
<label><input type="checkbox" data-robot-target="grass"> \u8349</label>
<label><input type="checkbox" data-robot-target="grass_bed"> \u304b\u3093\u305f\u3093\u30d9\u30c3\u30c9</label>
<label><input type="checkbox" data-robot-target="water"> \u6c34\u6ef4</label>
<label><input type="checkbox" data-robot-target="grave"> \u5893</label>
</div>
<div class="robot-cleaner-targets robot-cleaner-target-scan">
<label><input id="robotCleanerHighSpeed" type="checkbox"> \u9ad8\u901f\u30e2\u30fc\u30c9</label>
@ -741,7 +742,7 @@
}
if (item.type === "robot_cleaner") {
const mask = Number(data.robotCleanerMask);
item.robotCleanerMask = Number.isFinite(mask) ? Math.max(0, Math.min(0x3f, mask | 0)) : (global.TarinaiItemDynamicToolSystem?.robotCleanerDefaultMask?.() ?? 3);
item.robotCleanerMask = Number.isFinite(mask) ? Math.max(0, Math.min(0x7f, mask | 0)) : (global.TarinaiItemDynamicToolSystem?.robotCleanerDefaultMask?.() ?? 3);
item.robotCleanerHighSpeed = Boolean(data.robotCleanerHighSpeed);
item.robotCleanerSpeed = global.TarinaiItemDynamicToolSystem?.robotCleanerEffectiveSpeed?.(item) ?? (item.robotCleanerHighSpeed ? 120 : 60);
item.robotCleanerTargetId = "";
@ -891,7 +892,7 @@
const timeEnd = dialog.querySelector("#pressureSwitchTimeEnd");
const timeStartLabel = dialog.querySelector("#pressureSwitchTimeStartLabel");
const timeEndLabel = dialog.querySelector("#pressureSwitchTimeEndLabel");
const normalizeMinute = (value, fallback) => Math.max(0, Math.min(1435, Math.round((Number.isFinite(Number(value)) ? Number(value) : fallback) / 5) * 5));
const normalizeMinute = global.TarinaiSignalSystem.normalizeMinute;
const formatMinute = value => { const minute = normalizeMinute(value, 0); return `${String(Math.floor(minute / 60)).padStart(2, "0")}:${String(minute % 60).padStart(2, "0")}`; };
const targetDef = () => DETECTOR_TARGETS[target.value] || DETECTOR_TARGETS.tarinai;
const normalizeValue = (value, fallback, def = targetDef()) => {
@ -1513,7 +1514,7 @@
handleClick(x, y) {
const tool = this.tool;
if (!isPlacementTool(tool) && !["delete", "area_delete", "copy", "poke", "pinch", "water_hose", "rope", "rod", "spring", "wire", "insulated_wire", "new"].includes(tool)) {
if (!isPlacementTool(tool) && !["delete", "area_delete", "copy", "poke", "pinch", "water_hose", "rope", "rod", "spring", "wire", "insulated_wire", "new", "bell"].includes(tool)) {
const editable = findEditableItemAt(this, x, y);
if (editable && openEditableItemEditor(editable, this)) {
global.TarinaiCommands.setSelection(this, null) || (this.selected = null);
@ -1588,6 +1589,13 @@
return;
}
if (tool === "bell") {
const size = this.toolSizeFor?.("bell") || "medium";
global.TarinaiAchievements?.recordIntervention?.({ world: this, tool: "bell", x, y });
global.TarinaiMemorialBellSystem?.ringAt?.(this, x, y, size);
return;
}
if (tool === "new") {
const spot = this.edgeSpawnPoint(x, y, 42, true);
const t = this.addTarinai({ x: spot.x, y: spot.y, vx: spot.vx, vy: spot.vy, generation: 1, entryTimer: 2.0 });