-- Written by Forge/AuthorCompile.singe. Edit by hand or in the editor; either is fine. return { types = { gun = { behaviours = { { ammo = 6, kind = "gun", player = 1, reload = "offscreen" } }, look = { kind = "none" }, vars = { ammo = 6 } }, hand = { behaviours = { { kind = "hitbox", track = "hand" } }, look = { kind = "none" }, vars = {} }, readout = { look = { b = 245, g = 235, kind = "text", r = 235, text = "score 0" } }, target = { behaviours = { { kind = "hitbox", track = "target" }, { kind = "health", max = 1 } }, look = { kind = "none" }, vars = { health = 1 } } }, layers = { { file = "Forge/kit/clip.mkv", kind = "disc" }, { kind = "overlay" } }, rooms = { { entities = { { id = "readout", type = "readout", x = 12, y = 12 }, { id = "gun", type = "gun", x = 30, y = 450 }, { id = "target", type = "target", x = 450, y = 210 }, { id = "hand", type = "hand", x = 600, y = 210 } }, name = "start", tracks = { { boxes = { { at = 150, h = 90, w = 90, x = 405, y = 165 }, { at = 210, h = 90, w = 90, x = 405, y = 165 } }, key = "frame", name = "target" }, { boxes = { { at = 220, h = 105, w = 240, x = 480, y = 157 }, { at = 260, h = 105, w = 240, x = 480, y = 157 } }, key = "frame", name = "hand" } } } }, rules = { { act = { { "setText", entity = "readout", text = "\"score \" .. score .. \" ammo \" .. gun.ammo .. \" misses \" .. misses" } }, note = "The readout, every frame", on = "frame" }, { act = { { "addScore", amount = 100 }, { "damage", amount = 1, entity = "self" }, { "playSound", file = "Forge/kit/hit.wav" } }, type = "target", note = "The target is hit", on = "hit", when = {} }, { act = { { "addScore", amount = -200 }, { "flash", b = 40, g = 40, r = 255, seconds = 0.3 } }, type = "hand", note = "The hand is hit", on = "hit", when = {} }, { act = { { "addVar", amount = 1, name = "misses" }, { "playSound", file = "Forge/kit/shot.wav" } }, note = "A shot at nothing", on = "miss", when = { { "test", expr = "not event.offscreen" } } }, { act = { { "say", seconds = 1, text = "\"DRAW!\"" } }, frame = 150, note = "Draw!", on = "frameReached", when = {} } }, title = "Draw", vars = { misses = 0, score = 0 } }