可信源码风险提示:保存或下载前请阅读源码和权限声明。
ui.showHeader(false)
let u
let m = ["", "???", "成步堂", "千寻", "矢张", "亚内", "裁判长", "山野"]
function c(q1) {
let q = [
"#ffffff",
"#aaffaa",
"#aaddff",
]
return q[q1]
}
let z = 1
let zj = [0, 3]
function zcd() {
ui.render(() => [
ui.column([
ui.text(),
ui.row([
ui.heading("逆转", { width: 155, size: 36, color: "#88bbdd", align: "right" }),
ui.heading("裁判", { width: 91, size: 36, color: "#aaddff" })
], { background: "#" }),
ui.text("成步堂 龙一的冒险\n ", { align: "center", color: "#ffffaa" }),
ui.spacer(60),
ui.spacer(100),
ui.row([
ui.button("游玩第" + z + "章", j, { color: "#", background: "#131313", size: 36 }),
], { background: "#131313" }),
ui.text(),
], { background: "#111111", radius: 45 })
])
}
function die() {
ui.render(() => [
ui.column([
ui.text("\n你失败了\n\n\n\n\n\n ", { align: "center", size: 36 }),
ui.spacer(5),
ui.button("主页面 ", zcd, { tone: "danger", size: 36 }),
ui.text("")
], { background: "#ff5566", radius: 45 })
])
}
function x(q3, q1, q2) {
for (let i = 0; i < q1.length; i += 1) {
q1[i] = { label: q1[i], value: i }
}
dialog.select({ title: " ", message: q3, items: q1 })
.then(q => {
console.log(q)
if (q == null) { x(q3, q1, q2) }
a(["你选择了" + q1[q.value].label], q2[q.value])
})
}
function a(q, q1, q2, qm, qc, qa) {
let q4 = 0
if (q2 == u) {
q2 = 0
qc = c(0)
qm = ""
}
if (typeof q[q2] == "number") {
qm = m[q[q2]]
return a(q, q1, q2 + 1, qm, qc, qa)
}
if (typeof q[q2] == "string" && q[q2][0] == "#") {
qc = q[q2]
return a(q, q1, q2 + 1, qm, qc, qa)
}
let qt = [""]
let qz = ""
for (let i = 0; i < q[q2].length; i += 1) {
if (q[q2][i] != "|") {
if (q[q2][i] != "{" && q[q2][i] != "}") {
qz += q[q2][i]
}
} else {
for (let o = 0; o < 5; o++) {
qt.push(qz)
}
}
qt.push(qz)
if (q[q2][i] == "}") qz = ""
}
let q3 = () => {
let zd = () => {
if (qt[q4] != qt[q4 - 1] && q[q2][q4] != "{" && q[q2][q4] != "\n") {
system.vibration.vibrate({ mode: "short" })
}
}
let b = ui.button("", "", { background: "#ffffff" })
ui.render(() => [
ui.column([
ui.spacer(100),
ui.spacer(25),
ui.text("\n\n\n " + qm, { color: "#005599", size: 36, align: "cnter" }),
ui.column([
ui.text(qt[q4], { align: "ceter", color: qc, size: 20 }),
], { background: "#30353a", padding: 16, radius: 0 }),
b,
], { background: "#ffffff", radius: 45 })
])
zd()
if (q[q2][q4] == "{") {
system.vibration.vibrate({ mode: "long" })
}
setTimeout(() => {
if (q4 < qt.length - 1) {
q4++
q3()
} else {
q2++
b = ui.row([
ui.button("[ 确认 ]", () => {
if (q2 < q.length) {
a(q, q1, q2, qm, qc, qa)
} else if (q1 !== u) {
console.log(q)
q1()
} else {
ui.render([
ui.text("第一章结束。")
])
}
}, { size: 30, background: "#ffffff", color: "#cdcdff" })
])
ui.refresh()
}
}, 70)
}
q3()
}
function j() {
let q = (q2) => { q1[q2]() }
let q1 = [
() => {
a([
0,
"鲜血从一只沾满了鲜血的凶器——小型雕像上滴下,||}一只可怕的手正握着这雕像……",
"#aaddff",
1,
"……混蛋,为什么我会碰到这种事……||}……我可不能被抓住……所以……||}一定要找个人嫁祸,可是找谁呢!",
"……对了,就找那家伙……",
0,
"男子的脑海中浮现出一个身影",
"#aaddff",
1,
"如果嫁祸给他的话……",
0,
"#aaffaa",
"8月3日上午9点47分,地方法院被告人第二候客室中",
"#ffffff",
2,
"呼啊……呼啊……",
c(0),
"(我叫成步堂龙一。)",
"(是一名新人律师。)",
"(今天……是我第一次出庭。)",
0,
"成步堂龙一和所长寒喧几句。||}主角因为是第一次登上法庭,所以十分紧张。||}并表示这次的辩护,也是因为十分想帮助委托人。",
0,
"这时传来一阵喧哗……",
4,
"我……我不想活了……||}失去了最心爱的女友,我还活着干什么……",
0,
"一个叫矢张的人哭闹着来到主角面前,他一心想死,因为失去了最心爱的女友。",
0,
"#aaffaa",
"8月3日上午10点整,地方法院第二法庭",
"#ffffff",
5,
"本次开庭,现在开始!",
6,
"首先,请说出这次事件的被告人名字。",
2,
"矢张政志",
6,
"下一个问题,现在审理的是杀人事件,请说出被害人的名字。",
2,
"高日美佳",
6,
"被害者的死因是什么?",
2,
"被不尖利的凶器所杀",
6,
"检察官,我有问题想问你,正如成步堂所说,被害者是被钝物所杀,||}那钝物到底是什么样子的?",
5,
"是一个\"思想者\"的摆设,就横放在死者的旁边。",
5,
"被告,你是否最近被死者甩了?",
4,
"什么!我们可是本世纪最合适的一对恋人,||}只是最近不打电话也不见面了而已。||}太小看我了!",
5,
"我们通常把这种情况称作\"被甩了\",死者根本就是玩弄你,把你甩在一边,||}被害前一天也是刚从海外旅游回来。",
5,
"法官大人,这是死者的护照,死者||}在被害前一天,还在纽约。",
5,
"死者虽然是模特,但是收入并不多。||}好象有很多给她小费的老头子,||}死者应该是以这种援助交际的形式来取得钱,并且去海外旅游的,||}被害者就是这样一个女人。现在请问被告,你认为死者是怎样一个人呢?",
4,
"混蛋,那臭女人竟敢耍我,我要宰了她!!!||}去天国问那臭女人吧!",
5,
"被告,事件发生当日,你去过死者房间吗?",
0,
"无论怎么选,亚内都会表示有证人目击被告从现场逃离",
5,
"那么,传唤第一位证人。",
0,
"证人 山野星雄 入场。",
"#aaddff",
7,
"我在进行报纸推销,这时从某个房间走出一个男人。||}这男人慌慌张张,门半开着人就走了。||}觉得有些古怪,我去偷偷看了一下房间。||}一看,噢哟,有个女人死在房里!||}我吓得腰都软了,没敢进入那房间。||}我想这事得立即向警察通报。||}但是,屋里的电话无法使用。||}所以我只得到附近的公用电话处通报。||}时间我记得很清楚,是下午2点。||}逃走的男人,就是站在那儿的被告,完全没错。",
0,
"#aaffaa",
"山野星雄证词 第二次·关于尸体发现的时间",
"#ffffff",
7,
"发现尸体的时候,我是听到时间的。||}那声音像是电台报时……大概、是电视里的报时吧。||}啊、但是、如果是报时,不可能相差2个小时的。||}我想很可能是被害人在看录像什么的吧。||}我听到后,就以为当时时间是2点。||}对不起,给大家添麻烦了……",
0,
"#aaffaa",
"山野星雄证词 第三次·关于听到时间",
"#ffffff",
7,
"(关于听到报时的证词)",
0,
"#aaffaa",
"最终反驳",
"#ffffff",
2,
"这钟只有拿起那摆设仔细看,才能发现。||}但你没有进屋子,你又是怎么知道那是一个钟的?||}而且还看了时间?这不是天大的矛盾吗?||}一定是因为你事发当日,进入了那房间。||}为什么你会知道那个摆设是钟呢?||}那一定是因为||}你当天进入了那间屋子。所以说,||}那天用时钟摆设打倒死者的人就是你!!!",
"一定是因为当时正好那个钟响了,而且你听到了那钟声!||}山野君……你因为被惊吓了,所以那摆设就从手上滑了下来。||}而那时候的响声,给你留下了很深的印象,所以你只对时间记得如此的清楚。",
7,
"我当时……确实……听到了……不……是看到了……啊……||}真烦人,竟然对这些细小的事抓住不放。||}就是那家伙,我看见他了,处死他,把他处死……",
5,
"法官大人,辩护人还没有拿出什么证据呢。",
6,
"辩护人,你为什么说证人听到的就是这个摆设中时钟的报时声呢?",
2,
"这是非常简单就能知道的事。",
0,
"试着让时钟报时",
2,
"众人听到的声音是9:25。但现在的时间却是11:25,||}那正好证明了山野听到的声音也是晚了2小时的钟,||}和这个摆设的时钟一模一样。",
7,
"虽然这钟也晚了两小时,但是你又怎么知道这摆设在事发当时也是晚了2小时呢?……",
2,
"就是那护照!死者那天从纽约刚回日本,而纽约和日本的时差是14小时。||}那也就是说,纽约凌晨2点的时候,日本正好是下午4点。||}死者在回国后,没有把时钟的时差调整过来!||}所以你听到的时间就差了两个小时。||}怎么样,山野……",
0,
"#aaffaa",
"判决",
"#ffffff",
6,
"成步堂,你竟然那么直截了当,让我吃惊不小,||}竟然在那么短的时间里就让你的委托人解困,并让犯人显出原形。||}现在我就开始判决,被告人矢张政志,无罪!!!",
0,
"法庭上下顿时一片欢呼,这时法官宣布审理结束。",
0,
"#aaffaa",
"庭审后",
"#ffffff",
2,
"叫做山野的男人,好象是趁家中无人,而去行窃的惯犯。||}一边卖报纸,一边以无人的家庭作为目标。||}那一天,矢张去拜访的时候,死者不在家,||}等他走了后,山野就潜入房中。||}正在行窃时,死者回家了,勃然大怒的山野就拿起身边的摆设……",
4,
"(认为死去的美佳在玩弄他的感情)",
2,
"(以美佳带着矢张制作的摆设一起去了纽约为证据,说明美佳还是想着矢张的)",
3,
"成步堂君,证物就是这样一种东西,从不同的角度看,它的意义是完全不同的。||}人也是这样,我们并不知道被告是有罪还是无罪。||}但是作为辩护人,我们需要做的就是相信他,相信委托人,就是相信自己。||}成步堂君……变的更强吧……||}自己坚信的东西,即使到最后也不能放弃。",
0,
"第一章 完",
], () => q(1))
},
() => {
ui.render([
ui.text("第一章结束。\n\n等待第二章...")
])
}
]
ui.render([ui.text("Loading...")])
setTimeout(() => { q(zj[z - 1]) }, 200)
}
zcd()