-
Notifications
You must be signed in to change notification settings - Fork 0
/
evan.p8
132 lines (113 loc) · 3.33 KB
/
evan.p8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
pico-8 cartridge // http://www.pico-8.com
version 38
__lua__
scoreboard = {
counter=0,
update = function(self)
if flr(time()) > self.counter then
self.counter+=1
points+=1
end
end,
draw = function(self)
spr(192, 0, 0, 2, 2)
print(points, 4, 3)
end
}
function init_evan(objects)
points = 1
add(objects, scoreboard)
end
gates_destroyed = 0
function check_win()
if gates_destroyed >= 5 and not game_over then
win = true
end
if win == true then
rectfill(47,47,82,57,3)
print('you win!', 50,50,10)
points=99
enemy_spawner.chance_to_spawn = 0
bee_giant.chance_to_spawn = 0.8
ostrich.chance_to_spawn = 0.6
elephant.chance_to_spawn = 0.2
monkey.chance_to_spawn = 0.5
blue_whale.chance_to_spawn = 0.02
if frame%5==0 then
for animal in all(ANIMALS) do
if rnd(1)+.0001 <= animal.chance_to_spawn then
local lane = flr(rnd(5))+1
add_in_lane(animal, lane)
end
end
end
end
end
function check_lose()
if game_over==true and win==false then
rectfill(39,47,84,57,0)
print('game over!',43,50,8)
enemy_spawner.chance_to_spawn = 0
enemy.dmg = 9999
-- enemy_spawner.spawn_speed = 1
function enemy:update()
local can_move = true
for k,v in pairs(self.collider.colliding_with) do
self.do_damage(self, k)
if k.is_friendly then
can_move = false
end
if not k.is_friendly and k.x<self.x and not k.is_gate then
can_move = false
end
end
self.collider:update()
self.show_health = false
end
function enemy:jump()
local y = get_lane_y(self.lane_index)+3
if self.y <= y-15 then
self.desc = true
self.flipped = true
end
if self.desc == true and self.y != y then
self.y += 1
elseif self.desc and self.y == y then
self.jumped = false
self.desc = false
self.flipped = false
else
self.y -= 1
end
end
function enemy:draw()
spr(self.sprite, self.x, self.y, 2, 2, self.flipped)
self.sprite_timer += 1
if self.sprite_timer > 10 then
if self.sprite == self.sprite_1 then
self.sprite = self.sprite_2
elseif self.sprite == self.sprite_2 then
self.sprite = self.sprite_1
end
self.sprite_timer = 0
end
if frame%60 == 0 then
if rnd(1) > .2 then
self.jumped = true
end
end
if self.jumped == true then
self:jump()
else
self.y = get_lane_y(self.lane_index)+3
end
end
function add_in_lane()
end
for obj in all(objects) do
if obj.is_friendly then
obj.health = 0
end
end
end
end