1
0
forked from x/icebergs
icebergs/core/chat/tutor.js
2024-05-14 00:02:33 +08:00

48 lines
1.7 KiB
JavaScript

Volcanos(chat.ONIMPORT, {
_init: function(can, msg) {
if (can.Option(mdb.ZONE) == "_current") {
can._root.Footer.db.tutor.Table(function(value) { msg.Push(value) }), msg.PushAction("show")
}
msg.Dump(can)
},
})
Volcanos(chat.ONACTION, {
play: function(can) {
can.core.Next(can._msg.Table(), function(value, next, index, list) { var delay = 3000
if (list[index+1]) { delay = (Date.parse(list[index+1].time)-Date.parse(value.time)) }
can.onaction.show(can, value.type, value.text, delay), can.onmotion.delay(can, next, delay)
can.onmotion.select(can, can.page.SelectOne(can, can._output, "tbody"), html.TR, index)
}, function() {
can.user.toastSuccess(can, "play done")
})
},
show: function(can, type, text, delay) {
switch (type) {
case "theme":
can._root.Header.onimport.theme(can._root.Header, text, {})
break
case "storm": var ls = text.split(",")
can._root.River.onaction.action({}, can._root.River, ls[0], ls[1])
break
case "click":
can.page.Select(can, document.body, text, function(target) {
can.core.Next([1, 2, 3, 4, 5], function(value, next, index) { can.page.ClassList.add(can, target, "picker")
can.onmotion.delay(can, function() { can.page.ClassList.del(can, target, "picker"), can.onmotion.delay(can, function() { next() }, delay/20) }, delay/20)
}, function() {
target.click()
})
})
break
case "item": var ls = text.split(",")
can.page.Select(can, document.body, ls[0], function(target) {
can.onmotion.delay(can, function() { target._can.sub.ui[ls[1]].click() })
})
break
case "remove":
can.page.Select(can, document.body, text, function(target) {
can.page.Remove(can, target)
})
break
}
},
})