add double points cheat
This commit is contained in:
parent
0934981061
commit
350970b695
89
chi-tor.wren
89
chi-tor.wren
|
@ -28,24 +28,31 @@ class D {
|
|||
static down { 1 }
|
||||
static left { 2 }
|
||||
static right { 3 }
|
||||
|
||||
static toRot(dir) {
|
||||
if (dir == D.up) {
|
||||
return 0
|
||||
}
|
||||
if (dir == D.right) {
|
||||
return 1
|
||||
}
|
||||
if (dir == D.down) {
|
||||
return 2
|
||||
}
|
||||
if (dir == D.left) {
|
||||
return 3
|
||||
}
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
||||
var CheatSeq = [D.up, D.up, D.left, D.right, D.up, D.down]
|
||||
class Cheat {
|
||||
static seq { [D.up, D.up, D.left, D.right, D.up, D.down] }
|
||||
static enabled { __enabled }
|
||||
static enabled=(b) { __enabled = b }
|
||||
|
||||
var DirRot = Fn.new {|dir|
|
||||
if (dir == D.up) {
|
||||
return 0
|
||||
}
|
||||
if (dir == D.right) {
|
||||
return 1
|
||||
}
|
||||
if (dir == D.down) {
|
||||
return 2
|
||||
}
|
||||
if (dir == D.left) {
|
||||
return 3
|
||||
}
|
||||
return -1
|
||||
static doublePoints { __double_points }
|
||||
static doublePoints=(b) { __double_points = b }
|
||||
}
|
||||
|
||||
class Star {
|
||||
|
@ -75,7 +82,7 @@ class HintPlanet {
|
|||
_x = x
|
||||
_y = y
|
||||
_scrollSpeed = scrollSpeed
|
||||
_rot = DirRot.call(dir)
|
||||
_rot = D.toRot(dir)
|
||||
_size = 32
|
||||
}
|
||||
|
||||
|
@ -344,8 +351,8 @@ class World {
|
|||
var mediumTick = (spaceBetween + width) / speed
|
||||
if (_t % mediumTick == 0) {
|
||||
var dir = -1
|
||||
if (_hint_planet_i < CheatSeq.count) {
|
||||
dir = CheatSeq[_hint_planet_i]
|
||||
if (_hint_planet_i < Cheat.seq.count) {
|
||||
dir = Cheat.seq[_hint_planet_i]
|
||||
}
|
||||
_stars.add(HintPlanet.new(W, R.int(16,H-32), speed, dir))
|
||||
_hint_planet_i = _hint_planet_i + 1
|
||||
|
@ -480,7 +487,7 @@ class Game is TIC{
|
|||
_world = World.new()
|
||||
_p_buttons = []
|
||||
_p_index = 0
|
||||
_d_enabled = false
|
||||
_c_index = 0
|
||||
}
|
||||
|
||||
TIC() {
|
||||
|
@ -494,40 +501,49 @@ class Game is TIC{
|
|||
if (TIC.btnp(4)) {
|
||||
_state = Game.game
|
||||
}
|
||||
|
||||
} else if (state == Game.game) {
|
||||
if (TIC.btnp(5)) {
|
||||
_state = Game.pause
|
||||
_p_buttons = List.filled(10, -1)
|
||||
_p_index = 0
|
||||
}
|
||||
|
||||
} else if (state == Game.pause) {
|
||||
if (TIC.btnp(5)) {
|
||||
_state = Game.game
|
||||
}
|
||||
|
||||
for (k in 0..3) {
|
||||
if (TIC.btnp(k)) {
|
||||
_p_buttons[_p_index % _p_buttons.count] = k
|
||||
_p_index = _p_index + 1
|
||||
if (!Cheat.enabled) {
|
||||
for (k in 0..3) {
|
||||
if (TIC.btnp(k)) {
|
||||
_p_buttons[_p_index % _p_buttons.count] = k
|
||||
_p_index = _p_index + 1
|
||||
}
|
||||
}
|
||||
|
||||
if (cheatFound()) {
|
||||
Cheat.enabled = true
|
||||
}
|
||||
} else {
|
||||
if (TIC.btnp(4)) {
|
||||
Cheat.doublePoints = !Cheat.doublePoints
|
||||
}
|
||||
}
|
||||
|
||||
if (cheatFound()) {
|
||||
_d_enabled = true
|
||||
}
|
||||
}
|
||||
|
||||
_world.update(state)
|
||||
}
|
||||
|
||||
cheatFound() {
|
||||
var end = _p_index
|
||||
var start = (end - CheatSeq.count)
|
||||
var start = (end - Cheat.seq.count)
|
||||
if (start < 0) {
|
||||
return false
|
||||
}
|
||||
for (i in 0...CheatSeq.count) {
|
||||
for (i in 0...Cheat.seq.count) {
|
||||
var dir = _p_buttons[(start + i) % _p_buttons.count]
|
||||
var cheat = CheatSeq[i]
|
||||
var cheat = Cheat.seq[i]
|
||||
if (dir != cheat) {
|
||||
return false
|
||||
}
|
||||
|
@ -550,7 +566,7 @@ class Game is TIC{
|
|||
} else if (state == Game.pause) {
|
||||
TIC.print("PAUSE", 90, H/4, Color.white, false, 2)
|
||||
|
||||
if (!_d_enabled) {
|
||||
if (!Cheat.enabled) {
|
||||
TIC.print("debug mode: disabled", 60, H - 10, Color.white)
|
||||
|
||||
var end = _p_index
|
||||
|
@ -558,11 +574,19 @@ class Game is TIC{
|
|||
for (i in start...end) {
|
||||
var pos = i - start
|
||||
var dir = _p_buttons[i % _p_buttons.count]
|
||||
var rot = DirRot.call(dir)
|
||||
var rot = D.toRot(dir)
|
||||
var sprId = 84
|
||||
TIC.spr(sprId, 5 + pos * 10, H - 20, 0, 1, 0, rot)
|
||||
}
|
||||
} else {
|
||||
var h = H/4 + 20
|
||||
TIC.spr(116, 50, h - 1, 0)
|
||||
TIC.print("double points:", 60, h, Color.white)
|
||||
if (Cheat.doublePoints) {
|
||||
TIC.print("ON", 140, h, Color.green)
|
||||
} else {
|
||||
TIC.print("OFF", 140, h, Color.red)
|
||||
}
|
||||
TIC.print("debug mode: enabled", 60, H - 10, Color.white)
|
||||
}
|
||||
}
|
||||
|
@ -600,6 +624,7 @@ class Game is TIC{
|
|||
// 113:2222222222222222222222222222222222222222022222220000222200000000
|
||||
// 114:2222222222222222222222222222222222222222222222202222000000000000
|
||||
// 115:2222200022220000222000002200000020000000000000000000000000000000
|
||||
// 116:00c0000000cc000000ccc00000cccc0000ccc00000cc000000c0000000000000
|
||||
// </TILES>
|
||||
|
||||
// <SPRITES>
|
||||
|
|
Loading…
Reference in a new issue