aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--background.lua5
-rw-r--r--bullets.lua8
-rw-r--r--draw.lua52
-rw-r--r--enemies.lua88
-rw-r--r--objects.lua11
-rw-r--r--pickups.lua48
-rw-r--r--pico-bhell.p8186
-rw-r--r--players.lua4
-rw-r--r--ui.lua120
-rw-r--r--update.lua43
-rw-r--r--waves.lua22
11 files changed, 348 insertions, 239 deletions
diff --git a/background.lua b/background.lua
index d99ee3b..7fe7c1c 100644
--- a/background.lua
+++ b/background.lua
@@ -25,10 +25,11 @@ function bgplanetmegasprite(x,y)
--y = 50
palt(0,false)
+ palt(13,true)
spr(194,x+10,y+0,7,2)
spr(201,x+10,y+16,7,2)
spr(234,x+2,y+32,6,2)
- palt(0,true)
+ palt()
end
@@ -43,7 +44,7 @@ function drawbg()
--galaxies
spr(120, 20, 30, 1, 1)
- spr(104, 100, 40, 1, 1)
+ spr(104, 108, 40, 1, 1)
spr(104, 42, 74, 1, 1, true, true)
--ringed planet
diff --git a/bullets.lua b/bullets.lua
index 5d22e47..f069036 100644
--- a/bullets.lua
+++ b/bullets.lua
@@ -44,8 +44,7 @@ function addbullet(x, y, velx, vely, good, sprite)
add(obj, bullet)
end
---ERROR Sticks around after boss dies
-function addlaser(x, y, r)
+function addlaser(x, y, r, enemy)
local laser = {
--lasers!!!!!!!!!!!!!!!
}
@@ -98,7 +97,7 @@ function addlaser(x, y, r)
end
--delete laser once its done
- if timer > 4 then
+ if timer > 4 or enemy.health <= 0 then
del(obj, laser)
sfx(25, 3)
for i = 1, 16, 1 do
@@ -106,7 +105,6 @@ function addlaser(x, y, r)
end
end
end
-
add(obj, laser)
sfx(23,3)
end
@@ -140,7 +138,7 @@ function addmissile(x, y, target) --basic small weak enemy
addcircle(enemy.x+12, enemy.y+rnd(8), 0, rnd()/8, 2.1, 0.6, rnd({9,5}))
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,17,2)
+ enemydie(enemy,17,2,10)
end
end
diff --git a/draw.lua b/draw.lua
index aa7c015..77566f7 100644
--- a/draw.lua
+++ b/draw.lua
@@ -16,16 +16,16 @@ drawobjs()
if gamerunning then
if gameover then --gameover timer, it does a cute spinny! 😡
- printdropshadow(ceil(respawntimer),63+sin(t())*3,55+cos(t())*3,6,5)
- currentscore("000000","000000",true,true) --clear score
+ printdropshadow(ceil(respawntimer),63+circletimex,55+circletimey,6,5)
+ runningscore(currentscore,true) --flashes score
elseif players[1].health <=0 then
- printdropshadow(ceil(players[1].inv),players[1].x+sin(t())*3,players[1].y+cos(t())*3,12,15)
- currentscore("000000","696969",true,false) --clear score for P1
+ printdropshadow(ceil(players[1].inv),players[1].x+circletimex,players[1].y+circletimey,12,15)
+ runningscore(currentscore,true) --flashes score
elseif #players > 1 and players[2].health <=0 then
- printdropshadow(ceil(players[2].inv),players[2].x+sin(t())*3,players[2].y+cos(t())*3,9,2)
- currentscore("000420","000000",false,true) --clear score for P2
+ printdropshadow(ceil(players[2].inv),players[2].x+circletimex,players[2].y+circletimey,9,2)
+ runningscore(currentscore,true) --flashes score
else
- currentscore("000420","696969",false,false) --current game score
+ runningscore(currentscore,false) --current game score
end
end
if not gamerunning or menuscroll < 1 then
@@ -46,15 +46,35 @@ if not gamerunning or menuscroll < 1 then
--main screen items
mainmenutext(24-menuscroll*150,53)
- titlehighscores("000000","000000",52-menuscroll*110,82)
+ titlehighscores(52-menuscroll*110,82)
credits(10-menuscroll*140,108)
- --intro acid effect
- if t() < 2 then
- for i = 1, 128, 1 do
- line(i-1,128,i-1,sin((i+0.22-t()*20)/24.357)*2+t()*80-10,11) --cool wavy transition effect!!!!
- line(i-1,128,i-1,sin((i+t()*60)/44.357)*5+t()*80-5,3)
- end
- addcircle(rnd(128), t()*80, 0,rnd(1),rnd(12)+2,1.5,14)
+ --intro acid transtition
+ acidcounter+=ft
+ acidtransition()
+end
+
+--final score screen and outro transition
+if scorescreen then
+ finalscorescreen(0,0)
+
+ --outro acid transition
+ if isoutro then
+ acidcounter-=ft
+ sfx(0,3,3)
+ acidtransition()
end
-end \ No newline at end of file
+ if acidcounter < -0.2 then run() end --resets cart
+end
+
+
+
+
+
+
+-- --final boss portal parts
+-- addportalthruster(70,6)
+-- addportalthruster(70,107,true)
+-- addfinalbossportal(80,10)
+-- addportalthruster(95,6)
+-- addportalthruster(95,107,true) \ No newline at end of file
diff --git a/enemies.lua b/enemies.lua
index 0f2934a..b1cd8b0 100644
--- a/enemies.lua
+++ b/enemies.lua
@@ -1,6 +1,3 @@
---REDUCE TOKENS BY
---merge new bullet sfx() to addbullet() ? (exception would be for the wallshooter)
-
enemies = {}
--universal functions:
@@ -24,16 +21,21 @@ function enemycollide(enemy, object) --f this enemy collides with something, do
end
end
-function enemydie(enemy, sound, soundchannel)
+function enemydie(enemy, sound, soundchannel, points, isboss)
for i = 1, rnd(enemy.h)+6, 1 do
addcircle(enemy.x+rnd(enemy.w), enemy.y+rnd(enemy.h), rnd(4)-2, -rnd(2)-1, 1, 2, rnd({3, 11, 9}), -0.1)
end
- if rnd(100) > 95 then
- addpickup(enemy.x+rnd(enemy.w), enemy.y+rnd(enemy.h))
+ -- if rnd(100) > 95 then
+ -- addpickup(enemy.x+rnd(enemy.w), enemy.y+rnd(enemy.h))
+ -- end
+ if isboss then
+ addpickup(enemy.x+rnd(32), enemy.y+rnd(32), "powerup")
+ addpickup(enemy.x+rnd(32), enemy.y+rnd(32), "health")
end
if shake < 3 then
shake = enemy.h/2
end
+ currentscore += points
sfx(sound, soundchannel)
explosion(enemy.x, enemy.y, enemy.w, enemy.h)
del(enemies, enemy)
@@ -93,7 +95,7 @@ function addbasicenemy(x, y, speed) --basic small weak enemy
end
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,17,2)
+ enemydie(enemy,17,2,10)
end
end
@@ -153,7 +155,7 @@ function addwallshooter(x, shootup, health, speed, offset, bulletspeed)
end
enemymisc(enemy)
if enemy.health <= 0 then
- enemydie(enemy,17,2)
+ enemydie(enemy,17,2,15)
end
end
@@ -204,7 +206,7 @@ function addballshooter(x, y, speed)
end
enemymisc(enemy)
if enemy.health <= 0 then
- enemydie(enemy,20,3)
+ enemydie(enemy,20,3,40)
end
end
@@ -251,14 +253,14 @@ function addtargetingenemy(x, y, speed)
end
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,17,2)
+ enemydie(enemy,17,2,20)
end
end
add(enemies, enemy)
end
-function addlasershooter(x, y, speed, stay)
+function addlasershooter(x, y, points, speed, stay, isboss)
local enemy = {
x = x+128,
y = y,
@@ -311,7 +313,7 @@ function addlasershooter(x, y, speed, stay)
if enemy.x <= 90 then
if not enemy.firedlaser then
- addlaser(enemy.x+6, enemy.y+20, 10)
+ addlaser(enemy.x+6, enemy.y+20, 10, enemy)
enemy.moveoffset = rnd({0,0.5}) --add offset so not moving in same direction each time
enemy.sinspeed = rnd({4,4,4,4,4,4,4,4,4,4,4,4,1,8,2,2,2,2}) --add differing speeds to sin up and down randomly
if enemy.health < 15*#players then
@@ -332,10 +334,7 @@ function addlasershooter(x, y, speed, stay)
if stay then
music(-1, 3000)
end
- enemydie(enemy,21,3)
- addpickup(enemy.x+rnd(32), enemy.y+rnd(32), "health")
- addpickup(enemy.x+rnd(32), enemy.y+rnd(32))
- addpickup(enemy.x+rnd(32), enemy.y+rnd(32))
+ enemydie(enemy,21,3,points,isboss)
end
end
@@ -344,7 +343,7 @@ end
--ERROR damage model has incorrect tiling for endings and lights
-function addwallboss(x, y, length, speed, stay, move)
+function addwallboss(x, y, length, points, speed, stay, move, isboss)
local enemy = {
stay = stay or false,
move = move or 1,
@@ -354,7 +353,7 @@ function addwallboss(x, y, length, speed, stay, move)
w = 16,
h = 8*length,
inv = -1,
- health = 2*length*#players, --10
+ health = 10*length*#players, --10
shootcooldown = 3,
speed = speed,
bulletfired = {},
@@ -437,10 +436,7 @@ function addwallboss(x, y, length, speed, stay, move)
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
music(-1, 3000)
- enemydie(enemy,21,3)
- addpickup(enemy.x+rnd(32), enemy.y+rnd(32), "health")
- addpickup(enemy.x+rnd(32), enemy.y+rnd(32))
- addpickup(enemy.x+rnd(32), enemy.y+rnd(32))
+ enemydie(enemy,21,3,points,isboss)
end
end
@@ -459,10 +455,11 @@ function addbomb(x, y, delay) --BIG BOMB!!!! KILL IIT QUICKLY!!!!
shot = enemyshot,
collide = enemycollide
}
+ local points = 50 --points by default if killed by player
function enemy.draw(enemy)
local sprite = 73
- if everysecondtimer > 0.5 then sprite = 75 end
+ if everysecondtimer > 0.5 then sprite = 75 end --animation
if enemy.health < 7 then
damagesmoke(enemy)
sprite += 32
@@ -483,6 +480,7 @@ function addbomb(x, y, delay) --BIG BOMB!!!! KILL IIT QUICKLY!!!!
for i = 1, 60, 1 do
addbullet(enemy.x+16, enemy.y+16, sin(i/60), cos(i/60))
enemy.health = 0
+ points = -40 --loss of points
sfx(19,2)
sfx(8,-2)
end
@@ -491,7 +489,7 @@ function addbomb(x, y, delay) --BIG BOMB!!!! KILL IIT QUICKLY!!!!
end
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,20,3)
+ enemydie(enemy,20,3,points)
end
--charge sound
if enemy.x < 120 and everysecondtimer > 0.45 then
@@ -507,6 +505,7 @@ function addbomb(x, y, delay) --BIG BOMB!!!! KILL IIT QUICKLY!!!!
end
+--move enemy more towards the centre of the screen to have room for portal
function addmissileboss(x, y) --boss that shoots missiles!!!
local enemy = {
x = x,
@@ -572,12 +571,45 @@ function addmissileboss(x, y) --boss that shoots missiles!!!
if enemy.health <= 0 then -- die!!!!!
music(-1, 3000)
sfx(60,-2) --stop missle sound
- enemydie(enemy,21,3)
- addpickup(enemy.x+rnd(32), enemy.y+rnd(32), "health")
- addpickup(enemy.x+rnd(32), enemy.y+rnd(32))
- addpickup(enemy.x+rnd(32), enemy.y+rnd(32))
+ enemydie(enemy,21,3,300,true)
+
end
end
add(enemies, enemy)
+end
+
+
+
+
+
+
+--FINAL BOSSS!!!! (INCOMPLETE)
+function addfinalbossportal(x,y)
+ speed = 1.5
+ amount = 3
+ sprite = 136
+
+ -- function enemy.draw()
+ spr(sprite, x, (sin(time()*speed)*amount)+y, 4, 3)
+ spr(sprite, x, (-sin(time()*speed)*amount)+y+85, 4, 3, false,true)
+ -- portal
+ ovalfill(x+28,(sin(time()*speed)*amount)+y+24,x+6,(-sin(time()*speed)*amount)+y+84,7)
+ -- end
+end
+
+--thrusters that each fall off once the portal's health is 1/5th depleated
+function addportalthruster(x,y,isflipped)
+ -- function enemy.draw()
+ local sprite = 128
+
+ if isflipped == true then
+ isflipped = -1
+ else
+ isflipped = 1
+ end
+
+ if everysecondtimer%0.1 > 0.05 then sprite = 132 end --animation
+ spr(sprite, x, isflipped*(sin(time()*1.5)*3)+y, 4, 2)
+ --end
end \ No newline at end of file
diff --git a/objects.lua b/objects.lua
index 621f43b..b605fb9 100644
--- a/objects.lua
+++ b/objects.lua
@@ -5,11 +5,22 @@ scrollspeed = 0
respawntimer = 0
gameover = false
gamerunning = false
+menuscroll = 0 --main screens
+menushipscroll = 0
+acidcounter = 0
+scorescreen = false
+isoutro = false --for outro transition
+highscore0 = 0420 --scores (0 is solo - 1 is coop)
+highscore1 = 0690
+currentscore = 0 --used for both gamemodes, but passed into highscore at end of game
+babymode = false --makes game a lot easier
+
function startgame()
music(0, 0, 3)
wave[currentwave].start()
gamerunning = true
+ print(gt,10,10)
end
function updateobjs()
diff --git a/pickups.lua b/pickups.lua
index 0ad9210..f4ad10b 100644
--- a/pickups.lua
+++ b/pickups.lua
@@ -1,29 +1,34 @@
-local randompickups = {}
-pickuptimer = 10
-function randompickups.update()
- pickuptimer -= ft
- if pickuptimer < 0 then
- pickuptimer = 10
- if rnd(100) > 85 then
- addpickup(128, rnd(80)+20)
- end
- end
-end
-function randompickups.draw()
-end
-add(obj, randompickups)
+-- local randompickups = {}
+-- pickuptimer = 10
+-- function randompickups.update()
+-- pickuptimer -= ft
+-- if pickuptimer < 0 then
+-- pickuptimer = 10
+-- if rnd(100) > 85 then
+-- addpickup(128, rnd(80)+20)
+-- end
+-- end
+-- end
+-- function randompickups.draw()
+-- end
+-- add(obj, randompickups)
function addpickup(x, y, type)
local pickup = {}
x = x
y = y
type = type or rnd({"health", "health", "fastshoot", "3shoot"})
- sprite = 4
+ if type == "powerup" then type = rnd({"fastshoot", "3shoot"}) end
+
+ function pickup.draw(pickup)
+ sprite = 4 --had to move these checks into draw or they'd have incorrect sprites
+ if type == "fastshoot" then
+ sprite = 20
+ elseif type == "3shoot" then
+ sprite = 36
+ end
- if type == "fastshoot" then
- sprite = 20
- elseif type == "3shoot" then
- sprite = 36
+ spr(sprite, x, y)
end
function pickup.collide(player)
@@ -50,13 +55,10 @@ function addpickup(x, y, type)
elseif type == "3shoot" then
player.shoot3 = true
end
+ currentscore+=10 --10 points
sfx(30, 1)
end
- function pickup.draw(pickup)
- spr(sprite, x, y)
- end
-
function pickup.update(pickup)
x -= 0.3
y += sin(time()/2)*0.2
diff --git a/pico-bhell.p8 b/pico-bhell.p8
index 7077041..bdcbfaa 100644
--- a/pico-bhell.p8
+++ b/pico-bhell.p8
@@ -4,17 +4,6 @@ __lua__
--β–Ά WIP toxic invaders β—€
--β–Ά 1029chris ribboncable β—€
---pallete replacement
---pal(15,140,1)
---pal(14,3,1)
---pal(13,133,1)
---pal(11,139,1)
---pal(10,137,1)
---pal(8,136,1)
---pal(4,141,1)
---pal(3,131,1)
---pal(0,130,1)
-
#include objects.lua
#include particles.lua
#include players.lua
@@ -49,23 +38,23 @@ __gfx__
01fcccf00fcff1f000fccf00c777c77c7cf7cf7700000000000000000000000000000000000000000000000000733eebebee33e3e3e3ee3a00003eb90003ebea
0fcff1009fcc1fc700000000fc7777cf7f77f77700000000000000000000000000000000000000000000000000067333333000333333333a0003ebea7ebbbe30
9fcc1fc700000000000000000fccccf0577777750000000000000000000000000000000000000000000000000000067776000000003333327ebbbe3000000000
-6a994a9700000000000000000499994057777775000000000b000000000000000000000000000000000000000000000000033000000330000000000000000000
-0a9aa4006a99a997000000004977779477999a7700000000e30000b300000000000000000000000000633333300003eb9e9e9e9999e9e9e900ebbbe900000000
-04a999a00aa444a000499400977977797999a777003e330033000b3300000000000000000000000007bebbbbbe33bba0000330000003300003bbe300033bbbe9
-00a44499049444990097790097799979799999a700bbb0003300e3330000000000000000000000007bbbebbbbbebbb930eeeeee00eeeeee07e3b30007e3b3300
-00a4449904a9999a009779009799977977779a77007e7000330e33330000000000000000000000007bbbebbbbbeebb9003b3bb3003b3bb307e3b30007ebbe300
-04a999a00a9aa44000499400977797797779a77700030300030333330000000000000000000000007bbb3eeeee3eeb930033b3000033b30003bbe30003ebbbe9
-0a9aa4006a994a970000000049777794777a7777000000000003333000000000000000000000000007eebbbbbe33eea0000ee000000ee00000ebbbe900000000
-6a994a9700000000000000000499994057777775000000000000330000000000000000000000000000633333300003eb00077000000770000000000000000000
-223fff22222272220000333333333333000a0000a99a000033333333000000000000000000000000007777e0ebee300000077000000770000000000000000000
-2ffffeb22225222200003bbbbb3bbbb300a9a0009999a0003b3bbbb300000000000000000000000007bbbbb33ebb9a000b0b30b00b0b30b00033bb3000003300
-fff1eddb22d222220000333b333b33b30a999a00aaaaaa003b3b3333003ee30000000000000000007bbebe33b3b3e9000b3b3bb00b3b3bb07ebe33e97eb3bb39
-2f1fdffd200dd0000000003b303b33b3a99999a0a99999a03b3b300000bbbbb3b3b3b3b3b3b3b3b37bebbbbe3330000003e33e3003e33e3000e3bbe000e3bbe0
-f370d70d055507000000003e303e33e3aa99999aaa99999a3e3e3000007b7be3e3e3e3e3e3e3e3e07bebbbbe333000000eeeeee00eeeeee000e3bbe07ebe33e9
-22da9ddbdfcc060d0000003b303b33b30aa999990aaaaaaa3b3b333300eeee3003003003003003007bbebe33b3b3e90033333333333333337ebe33e90033bb30
-229999ae2d0000d20000003e303eeee300aa999900aaaaaa3e3eeee300030030030030030030030007bbbbb33ebb9a00e3e3e3e33e3e3e3e0033bb3000000000
-29999ae22220d2220000003330333333000aa99a000aaaa033333333000030030030030030030030007777e0ebee30003b3b3b3bb3b3b3b30000000000000000
-3bbbbbbbbbbbbbbbbbbbbe3300000000003ebbbebebbeeee3000000000000000000000000000000000a999a000000000000009aa00033333000ee3333eb33330
+6a994a97000000000000000004999940577777750000000000000000000000000000000000000000000000000000000000033000000330000000000000000000
+0a9aa4006a99a997000000004977779477999a77000000000000000000000000000000000000000000633333300003eb9e9e9e9999e9e9e900ebbbe900000000
+04a999a00aa444a000499400977977797999a777000000000000000000000000000000000000000007bebbbbbe33bba0000330000003300003bbe300033bbbe9
+00a44499049444990097790097799979799999a700000000000000000000000000000000000000007bbbebbbbbebbb930eeeeee00eeeeee07e3b30007e3b3300
+00a4449904a9999a009779009799977977779a7700000000000000000000000000000000000000007bbbebbbbbeebb9003b3bb3003b3bb307e3b30007ebbe300
+04a999a00a9aa44000499400977797797779a77700000000000000000000000000000000000000007bbb3eeeee3eeb930033b3000033b30003bbe30003ebbbe9
+0a9aa4006a994a970000000049777794777a7777000000000000000000000000000000000000000007eebbbbbe33eea0000ee000000ee00000ebbbe900000000
+6a994a9700000000000000000499994057777775000000000000000000000000000000000000000000633333300003eb00077000000770000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000007777e0ebee300000077000000770000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000000007bbbbb33ebb9a000b0b30b00b0b30b00033bb3000003300
+000000000000000000000000000000000000000000000000000000000000000000000000000000007bbebe33b3b3e9000b3b3bb00b3b3bb07ebe33e97eb3bb39
+000000000000000000000000000000000000000000000000000000000000000000000000000000007bebbbbe3330000003e33e3003e33e3000e3bbe000e3bbe0
+000000000000000000000000000000000000000000000000000000000000000000000000000000007bebbbbe333000000eeeeee00eeeeee000e3bbe07ebe33e9
+000000000000000000000000000000000000000000000000000000000000000000000000000000007bbebe33b3b3e90033333333333333337ebe33e90033bb30
+0000000000000000000000000000000000000000000000000000000000000000000000000000000007bbbbb33ebb9a00e3e3e3e33e3e3e3e0033bb3000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000000000007777e0ebee30003b3b3b3bb3b3b3b30000000000000000
+3bbbbbbbbbbbbbbbbbbbbe3300000000003ebbbebebbeeee3000000000000000000000000000000000a999a00000000000000a9900033333000ee3333eb33330
bbbbbbbbbbbbbeebbebebbbe33eeeea006ebbeeeeee33333e30000000000000000000000000000000033333e00000000003ee333000dd3ee005663ee3ebeeeea
be3ebe3ebe3ebbbbbbbbbbbbbe3e3e9a07eb3b3b3bbbeee3e30000000000000002222000000000000eebbbbb000000000eebbbbe00d553be006773be3eebbbb9
b33eb33eb33ebe33333333ebbbb33e9907eb3b3b3be33e3ee300000000000000220002000033000ebbbbbb330000000e33bbbbbe005553bb007773bbe3eeeeea
@@ -97,70 +86,70 @@ bebebebebebebebebebebe33bebeb320073b3b3b3beeeee3e3333bebebeb3320000000403eeee3ee
00000000000007e33ebebeb33e33e3e307e33e3eee3ee3eb33e333e30000000004404004eeeeeeee3eeeeeeeeee3eeeeeeeeeee300d553bb006773be33bebe3a
000000000000073e3e33eee33ee3e3e307e33b3ebe3eb3ee33e3333300000000000000403bebebeb3bebebe3beb3bebe33bebeb3000dd3ee005663ee33333332
00000000000007e33ee333e33ee3e3e307e33e3eee3ee3eb33e333e0000000000040400073333333333333373333333377333333000dd33300d5533333333030
-00033333333333333333333333333000000333333333333333333333000000000000000000000000000000000003333333333333333333333333333333333000
-0039aaebbbbbebbbbbbbbbbbbbbebe00003a88ebbbbbebbb3beebeb30000000000000000000000000000000003eebbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee30
-039999aebbbbbebbebeeeeeeebbbeb3003aaaa8ebbbbbebb3b3333b3000000000000000003000000000000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee0
-0399999ebbbbbebbebbeeeeeeebbebe003aaaaaebbbbbebb3beebeb3000000000000000003330000000000003ebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeee3
-3999999aebbbbbebbbbbbbbbbbbbbeb33aaaaaa8ebbbbbeb3b3333b3000000000000000003333000000000003ebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeee3
-3999999aebbbbbebbbbbbbbbbbbbbebe3aaaaaa8ebbbbbeb3beebeb300000000000000000336333000000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-3999999aebbbbbebbbebeeeeeebbbebe3aaaaaa8ebbbbbeb3b3333b300000000000000000336633300000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-3999999aebbbbbebbbebeeeeeebbbebe3aaaaaa8ebbbbbeb3beebeb300000000000000000336663330000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-3999999aeeeeeeeeeeeeeeeeeeeeeeee3aaaaaa8eeeeeeee0000000000000000000000000336667733000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-3999999aebbbbbebbbbbbbbbbbbbbbbe3aaaaaa8ebbbbbeb0000000000000000000000000033667773300000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-3999999aeeeeeeeeeeeeeeeeeeeeeeee3aaaaaa8eeeeeeee0000000000000000000000000033666776330000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-3999999aeeeeeeee3ee3333333eeeee33aaaaaa8eeeeeeee0000000000000000000000000003336666633000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-0399999e33333333333333333333333003aaaaae333333330000000000000000000000000000333366333000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-039999aeeeeeeeee3e3333333eeeee3003aaaa8eeeeeeeee0000000000000000000000000000000333300000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-00399ae3333333333333333333333300003a88e3333333330000000000000000000000000000000000000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-0003333333333333333333333333300000033333333333330000000000000000000000000000000000000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeee3
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ebbbbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeee3
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000eebbbbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee0
-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003eebbbbbbbbbbbbbbbbbbbbbbbbbeeeeeeeee30
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033333333333333333333333333333333333300
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033333333333333333333333333333333333300
-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ebbebeeebebbeeeebebbeeeebebbeeebebbe00
-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000777776d6777776d6777776d6777776d6666600
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077777555777775557777755577777556666600
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067776555677765556777655567776555666500
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007770d5d07770d5d07770d5d07770d5d666000
-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067600d0067600d0067600d0067600d0565000
-00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000007000000070000000700000050000
-00000000000000000000000000000000000000000000000000000000000000000000000000000222222222222220000000022222222200000022222220222000
-02888888888882000000000000000000000000000000000000000000000000000000000002222022222002222222000000222222222200000222222202220000
-28888888888888200000000000000000000000000000000000000000000000000222220022222202220220222222222222222222222200002222222022200000
-88222244422228800000000000000000222222220000000000000000000000022222222022200220222020222222222222222222222200022222220222000000
-88222444222228800000000000000222222222222220000000000000000002222222222222020022002220222222222222222222222000222222202220000000
-88888888888888800000000000022222222222222222200000000000000222222222222222220002222202222222222222222222220002222222022200000000
-88202222222028800022200002222222222222222222220000000000022222202222222202202000000022222222222222222222200022222220222000000000
-22002820282002200222220022002222222222222222222000000000222000000222222200002200000222222222222222222222000222222202220000000000
-00002220222000000220020220220222222000022222222200000022000000000222222200022222222222222222222222222220002222222022200000000000
-00028888888200000220220222020222220222202222222220002000000000002222222200022222222222222222222222222200222222220222000000000000
-00288888888820000222000022220222202220220220022222000000000000002222222200002222222222222222222222222002222222202220000000000000
-02888222228882000022222222202222002202020202202222200000000000022222022200002222222222222222222222200022222222022200000000000000
-02882888882882000000000000022222002202220220202222200000000000222222222000000222222222222222222222000222222202222000000000000000
-28888888888888200000000002222222002220000022202222200000000002222220222000000022222222222222222200022222222022220000000000000000
-28828828288288200002222222222222000222222222022222220000000022222202220000000002222222222222220002222222220222200000000000000000
-28888888888888200022222222222222200002222200222222220000000222222222200000000000222222222222000222222222202220000000000000000000
-28282848282828200002888888882000000000000000000022202220000080000044400000000000000000000000000000222222220000222222222022220000
-28288888888828200028822422288200000000002820000028222820000282000444440000444400000000000000000000002220000022222222202222200000
-28284848282828200088888888888800000000282820000028888820000888004444440044444440000000220000000000000000002222222222022220000000
-28288888888828200022200000022200000000282828200022828222008888204404400444400444000002200000000000000000222222222202222200000000
-28284828282828200028200000028200000028282828200022828282082888804440044440004044000022200000000000000022222222220022220000000000
-28288888888828200028288888828200000028282828200028888882008888824444444400004444000222000000000000002222222222002222000000000000
-28282828284828200022888888882200000028282828200022828222088882880444444000000440002220000000000000222222222200222220000000000000
-28288888888828200028282848488200000028282828200002828200288288020044440000000000022220000000000022222222220022222000000000000000
-28222828482228200028888888888200000028282828200002828200002888800044444440000440022200000000222222222222202222200000000000000000
-28288888888828200288224442228820000002882882000002828200088888880444444444004444222200000022222222222220222220000000000000000000
-28282828282828200288244422228820000000282820000002828200828088284444000444404044222222222222222222220022220000000000000000000000
-28288822288828200288888888888820000000288200000002828200008888804440444044440444222222222222222200002222000000000000000000000000
-28282822282828200282888888282820000000282000000002828200082088204440444404444440222222222222000222222000000000000000000000000000
-28888822288888200288882828888820000000282000000002828200000222004444044400444400222222220022222222200000000000000000000000000000
-28882822282888200282882228282820000200282000200002828202000082000444444400000000022222222222222200000000000000000000000000000000
-28888822288888222288882228888822020220282220202022828222000082000044444000000000002222222222200000000000000000000000000000000000
+00033333333333333333333333333000000333333333333333333333333330000003333333333333333333333333300000033333333333333333333333333000
+0039aaebbbbbebbbbbbbbbbbbbbebe00003a88ebbbbbebbbbbbbbbbbbbbebe0000eebbbbbbbbbbbbbbbbbeeeeeeeee000033eeeeeeeeeeeeeeeee3eeeeeee300
+039999aebbbbbebbebeeeeeeebbbeb3003aaaa8ebbbbbebbebeeeeeeebbbeb300eebbbbbbbbbbbbbbbbbbbeeeeeeeee0033eebebebebebebebebee3e3e3e3330
+0399999ebbbbbebbebbeeeeeeebbebe003aaaaaebbbbbebbebbeeeeeeebbebe03ebbbbbbbbbbbbbbbbbbbbbeeeeeeee333eeeeeeeeeeeeeeeeeeeeeeeeeeee33
+3999999aebbbbbebbbbbbbbbbbbbbeb33aaaaaa8ebbbbbebbbbbbbbbbbbbbeb33ebbbbbbbbbbbbbbbbbbbbbeeeeeeee333ebebebebebebebebebebee333e3333
+3999999aebbbbbebbbbbbbbbbbbbbebe3aaaaaa8ebbbbbebbbbbbbbbbbbbbebeeebbbbbbbbbbbbbbbbbbbbbeeeeeeeee33eeeeeeeeeeeeeeeeeeeeeeeeeeee33
+3999999aebbbbbebbbebeeeeeebbbebe3aaaaaa8ebbbbbebbbebeeeeeebbbebeeebbbbbbbbbbbbbbbbbbbbbeeeeeeee333ebebebebebebebebebebee3e3e3e33
+3999999aebbbbbebbbebeeeeeebbbebe3aaaaaa8ebbbbbebbbebeeeeeebbbebeeebbbbbbbbbbbbbbbbbbbbbeeeeeeeee33eeeeeeeeeeeeeeeeeeeeeeeeeeee33
+3999999aeeeeeeeeeeeeeeeeeeeeeeee3aaaaaa8eeeeeeeeeeeeeeeeeeeeeeeeeebbbbbbbbbbbbbbbbbbbbbeeeeeeeee33ebebebebebebebebebebee333e3333
+3999999aebbbbbebbbbbbbbbbbbbbbbe3aaaaaa8ebbbbbebbbbbbbbbbbbbbbbeeebbbbbbbbbbbbbbbbbbbbbeeeeeeee333eeeeeeeeeeeeeeeeeeeeeeeeeeee33
+3999999aeeeeeeeeeeeeeeeeeeeeeeee3aaaaaa8eeeeeeeeeeeeeeeeeeeeeeeeeebbbbbbbbbbbbbbbbbbbbbeeeeeeeee33ebebebebebebebebebebee3e3e3e33
+3999999aeeeeeeee3ee3333333eeeee33aaaaaa8eeeeeeee3ee3333333eeeee33ebbbbbbbbbbbbbbbbbbbbbeeeeeeee333eeeeeeeeeeeeeeeeeeeee333333333
+0399999e33333333333333333333333003aaaaae3333333333333333333333303ebbbbbbbbbbbbbbbbbbbbbeeeeeeee333ebebebebebebebebebebeeeeeeee33
+039999aeeeeeeeee3e3333333eeeee3003aaaa8eeeeeeeee3e3333333eeeee300eebbbbbbbbbbbbbbbbbbbeeeeeeeee0033eeeeeeeeeeeeeeeeeee3333333330
+00399ae3333333333333333333333300003a88e333333333333333333333330003eebbbbbbbbbbbbbbbbbeeeeeeeee300333eeeeeeeeeeeeeeeee3eeeeeee330
+00033333333333333333333333333000000333333333333333333333333330003333333333333333333333333333333333333333333333333333333333333333
+000333333333333333333333333330000003333333333333333333333333300033ebbeb33ebebbe33ebebbe333ebee33333ee3e333e3ee3333e3ee333e3e3333
+003a883eeeee3eeeeeeeeeeeeee3e3000038223eeeee3eeeeeeeeeeeeee3e3000333333333333333333333333333333003333333333333333333333333333330
+03aaaa83ebebe3ee3e3333333eee3e3003888823ebebe3ee3e3333333eee3e3000777776d6777776d6777776d666660000666665d5666665d5666665d5555500
+03aaaaa3eeeee3ee3ee3333333ee3e3003888883eeeee3ee3ee3333333ee3e30007777755577777555777775566666000066666ddd66666ddd66666dd5555500
+3aaaaaa83ebebe3ebebebebebebeb3e3388888823ebebe3ebebebebebebeb3e3006777655567776555677765556665000056665ddd56665ddd56665ddd555d00
+3aaaaaa83eeeee3eeeeeeeeeeeeee3e3388888823eeeee3eeeeeeeeeeeeee3e30007770d5d07770d5d07770d5d66600000066600d0066600d0066600d0555000
+3aaaaaa83ebebe3ebe3e333333beb3e3388888823ebebe3ebe3e333333beb3e300067600d0067600d0067600d056500000056500000565000005650000d5d000
+3aaaaaa83eeeee3eee3e333333eee3e3388888823eeeee3eee3e333333eee3e300007000000070000000700000050000000060000000600000006000000d0000
+3aaaaaa833333333333333333333333338888882333333333333333333333333222272222222222222fff3220000333333333333000a0000a99a000033333333
+3aaaaaa83eeeee3eeeeeeeeeeeeee3e3388888823eeeee3eeeeeeeeeeeeee3e322252222222828222beffff200003bbbbb3bbbb300a9a0009999a0003b3bbbb3
+3aaaaaa83333333333333333333333333888888233333333333333333333333322d2222222888882bdde1fff0000333b333b33b30a999a00aaaaaa003b3b3333
+3aaaaaa83eeeee3e3ee3333333eee3e3388888823eeeee3e3ee3333333eee3e3200dd00022888882dffdf1f20000003b303b33b3a99999a0a99999a03b3b3000
+03aaaaa3333333333333333333333330038888833333333333333333333333300555070022288822d07d073f0000003e303e33e3aa99999aaa99999a3e3e3000
+03aaaa83eeeee3ee3e3333333eeeee3003888823eeeee3ee3e3333333eeeee30dfcc060d28228222bdd9ad220000003b303b33b30aa999990aaaaaaa3b3b3333
+003aa833333333333333333333333300003822333333333333333333333333002d0000d288822282ea9999220000003e303eeee300aa999900aaaaaa3e3eeee3
+00033333333333333333333333333000000333333333333333333333333330002220d222282222222ea999920000003330333333000aa99a000aaaa033333333
+0000000000000000ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd00002222222222222200000000222222222dddddd2222222d222ddd
+0288888888888200ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd22220222220022222220000002222222222ddddd2222222d222dddd
+2888888888888820ddddddddddddddddddddddddddddddddddddddddddddddddd22222dd222222022202202222222222222222222222dddd2222222d222ddddd
+8822224442222880ddddddddddddddd022222222dddddddddddddddddddddd022222222d2220022022202022222222222222222222220dd2222222d222dddddd
+8822244422222880ddddddddddddd22222222222222ddddddddddddddddd0222222222222202002200222022222222222222222222200d2222222d222ddddddd
+8888888888888880dddddddddd0222222222222222222dddddddddddd00222222222222222220002222202222222222222222222220002222222d222dddddddd
+8820222222202880dd222dddd222222222222222222222ddddddddd002222220222222220220200000002222222222222222222220002222222d222ddddddddd
+2200282028200220d22222d022002222222222222222222ddddddd002220dddd02222222d00022000002222222222222222222220002222222d222dddddddddd
+0000222022200000d2200202202202222220000222222222dddd00220ddddddd02222222d0022222222222222222222222222220002222222d222ddddddddddd
+0002888888820000d22022022202022222022220222222222d0020dddddddddd22222222dd02222222222222222222222222220022222222d222dddddddddddd
+0028888888882000d22200002222022220222022022002222200ddddddddddd022222222dd0022222222222222222222222220022222222d222ddddddddddddd
+0288822222888200d0222222222022220022020202022022222dddddddddddd22222d222dd002222222222222222222222200022222222d222dddddddddddddd
+0288288888288200dd000000000222220022022202202022222ddddddddddd222222222dddd00222222222222222222222000222222202222ddddddddddddddd
+2888888888888820dd0000000222222200222000002220222220ddddddddd222222d222ddd00002222222222222222220002222222202222dddddddddddddddd
+2882882828828820d00222222222222200022222222202222222dddddddd222222d222ddd00000022222222222222200022222222202222ddddddddddddddddd
+2888888888888820d02222222222222220000222220022222222ddddddd2222222222ddd000dd00022222222222200022222222220222ddddddddddddddddddd
+28282848282828200002888888882000000000000000000022202220000080000044400000000000ddddddd000dddd000022222222000022222222202222dddd
+28288888888828200028822422288200000000002820000028222820000282000444440000444400dddddd000dddddd0000022200000222222222022222ddddd
+28284848282828200088888888888800000000282820000028888820000888004444440044444440ddddd022ddddddddd000000000222222222202222ddddddd
+28288888888828200022200000022200000000282828200022828222008888204404400444400444dddd022ddddddddddd0000002222222222022222dddddddd
+28284828282828200028200000028200000028282828200022828282082888804440044440004044ddd0222dddddddddddd0002222222222002222dddddddddd
+28288888888828200028288888828200000028282828200028888882008888824444444400004444dd0222dddddddddddddd2222222222002222dddddddddddd
+28282828284828200022888888882200000028282828200022828222088882880444444000000440d0222ddddddddddddd22222222220022222ddddddddddddd
+28288888888828200028282848488200000028282828200002828200288288020044440000000000d2222ddddddddddd22222222220022222ddddddddddddddd
+282228284822282000288888888882000000282828282000028282000028888000444444400004400222dddddddd2222222222222d22222ddddddddddddddddd
+282888888888282002882244422288200000028828820000028282000888888804444444440044442222dddddd2222222222222d22222ddddddddddddddddddd
+2828282828282820028824442222882000000028282000000282820082808828444400044440404422222222222222222222dd2222dddddddddddddddddddddd
+282888222888282002888888888888200000002882000000028282000088888044404440444404442222222222222222dddd2222dddddddddddddddddddddddd
+28282822282828200282888888282820000000282000000002828200082088204440444404444440222222222222ddd222222ddddddddddddddddddddddddddd
+2888882228888820028888282888882000000028200000000282820000022200444404440044440022222222dd222222222ddddddddddddddddddddddddddddd
+28882822282888200282882228282820000200282000200002828202000082000444444400000000d222222222222222dddddddddddddddddddddddddddddddd
+28888822288888222288882228888822020220282220202022828222000082000044444000000000dd22222222222ddddddddddddddddddddddddddddddddddd
__label__
iiiiittttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
iiiitttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt
@@ -292,23 +281,22 @@ iiiiiiiiiiiiiiiiiiiiiiiiiiij333jiiiiiiii3333333333333333333333333333333333333333
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
__gff__
-0100000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020
-0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000010000000000000000000000000000000000000101
+0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004040000000000000000000000000000000000000000000000000000020000000000000000000000000000000200000000000000000000000000000002000000000000000000000000000000020
+0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001010000
__map__
00000000000000000000000000000000000000000000000000000000be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000009b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-0000780000c2c3c4c500c7c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000780000c2c3c4c5c6c7c80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000d2d3d4d5d6d7d80000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000c9cacbcccdcecf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-0000000000d9dadbdcddde000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-00000000ea00ecedeeef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-00000000fafbfcfd000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000d9dadbdcdddedf0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000eaebecedeeef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000fafbfcfdfeff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000012120000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000202000000001f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000010000000001212000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-3031000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__
a108000022614286102d6103061033610356103661037610376103561034610326102e6102b610286102661022610206101d610186101661013610116100f6100c61009610066100461003610016100161000615
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
diff --git a/players.lua b/players.lua
index 4f7eee3..dc62419 100644
--- a/players.lua
+++ b/players.lua
@@ -23,7 +23,7 @@ function addplayer(x, y, sprite, bulletsprite)
-- print(player.health)
--draw a different sprite when moving, and blink when hurt
- if (player.inv < 0 or ceil(player.inv*10%2) == 1) and player.health > 0 then
+ if (player.inv < 0 or flashtime == 1) and player.health > 0 then
if (player.ymov == 0) then
spr(sprite, player.x, player.y)
elseif (player.ymov == 1) then
@@ -54,6 +54,7 @@ function addplayer(x, y, sprite, bulletsprite)
sfx(11, 3)
sfx(29, 1)
elseif player.health <= 0 then
+ currentscore = ceil(currentscore * 0.5) --halves score if coop
sfx(11, 3)
player.inv = 5
end
@@ -134,6 +135,7 @@ function addplayer(x, y, sprite, bulletsprite)
end
function isgameover()
+ currentscore+=-10 --lose points if hit
for i = 1, #players, 1 do
if players[i].health > 0 then
return
diff --git a/ui.lua b/ui.lua
index 57dd9c8..d30475c 100644
--- a/ui.lua
+++ b/ui.lua
@@ -1,6 +1,3 @@
-menuscroll = 0
-menushipscroll = 0
-
function printdropshadow(text,x,y,colorMain,colorShadow)
print(text,x,y+1,colorShadow)
print(text,x,y,colorMain)
@@ -16,18 +13,6 @@ function invaderslogotext(x,y)
for i = 1, 12, 1 do
print(text, x+i%3-1, y+i%4-1, 3)
end
- -- color(3)
- -- print(text, x, y-1) --ew
- -- print(text, x+1, y)
- -- print(text, x-1, y)
- -- print(text, x-1, y+1)
- -- print(text, x+1, y+1)
- -- print(text, x-1, y-1)
- -- print(text, x+1, y-1)
- -- print(text, x+1, y+1)
- -- print(text, x-1, y+2)
- -- print(text, x+1, y+2)
- -- print(text, x, y+2)
print(text,x,y,14)
clip(x, y, 63, 3)
print(text,x,y,11)
@@ -42,15 +27,15 @@ function drawlogo(x,y)
--this is a horrible way to draw the logo, but I'm doing it anyways. x3
-- muahahahahahahaha!!!!!!
- sspr(16,24,16,8,x-3,y+2,32,16) --to shadow
- sspr(16,24,16,8,x-3,y,32,16) --to
- sspr(48,24,8,8,x+55,y+2,16,16) --ic shadow
- sspr(48,24,8,8,x+55,y,16,16) --ic
+ sspr(88,88,16,8,x-3,y+2,32,16) --to shadow
+ sspr(88,88,16,8,x-3,y,32,16) --to
+ sspr(120,88,8,8,x+55,y+2,16,16) --ic shadow
+ sspr(120,88,8,8,x+55,y,16,16) --ic
--X
- sspr(32,24,8,8,x+26,y-9,16,16)
- sspr(32,24,8,8,x+42,y-9,16,16,true)
- sspr(40,24,8,8,x+26,y+7,16,16,true)
- sspr(40,24,8,8,x+42,y+7,16,16)
+ sspr(104,88,8,8,x+26,y-9,16,16)
+ sspr(104,88,8,8,x+42,y-9,16,16,true)
+ sspr(112,88,8,8,x+26,y+7,16,16,true)
+ sspr(112,88,8,8,x+42,y+7,16,16)
--invaders
invaderslogotext(x+11,y+20)
end
@@ -60,41 +45,42 @@ function mainmenutext(x,y)
-- x = 24
-- y = 62
x -= 1
+ local sintime = sin(t()*0.7)*2
+
if not gamerunning then
- spr(17,x+2,y+4+sin(t()*0.7)*2,1,1) --blue ship
- spr(33,x+2,y+16+sin(t()*0.7)*2,1,1) --orange ship
+ spr(17,x+2,y+6+sintime,1,1) --blue ship
+ spr(33,x+2,y+17+sintime,1,1) --orange ship
end
printdropshadow("(\142) - lone wolf",x+15,y+7,6,5)
printdropshadow("(\151) - companion",x+15,y+18,6,5)
end
-function titlehighscores(highscore0,highscore1,x,y)
+function titlehighscores(x,y)
-- default values
-- 52
-- 110
- printdropshadow(highscore0,x-20,y,12,15) --1P high score
+ printdropshadow(scorewithzeros(tostring(highscore0),4),x-10,y,12,15) --1P high score
printdropshadow("-",x+10,y,6,5)
- printdropshadow(highscore1,x+20,y,9,2) --2P high score
+ printdropshadow(scorewithzeros(tostring(highscore1),4),x+18,y,9,2) --2P high score
end
-function currentscore(currentscore0,currentscore1,isflashing0,isflashing1)
- if #players != 1 then
- if isflashing1 then
- if ceil(t()*10%2) == 1 then
- printdropshadow(currentscore1,2,121,9,4) --2P current score
- end
- else
- printdropshadow(currentscore1,2,121,9,4) --2P current score
- end
+function playerscore()
+ if #players > 1 then
+ printdropshadow(scorewithzeros(tostring(currentscore),4),2,121,9,4) --2P current score
+ else
+ printdropshadow(scorewithzeros(tostring(currentscore),4),2,2,12,15) --1P current score
end
+end
- if isflashing0 then
- if ceil(t()*10%2) == 1 then
- printdropshadow(currentscore0,2,2,12,15) --1P current score
+--shown on edge of screen (blue for solo - orange for coop)
+function runningscore(currentscore,isflashing)
+ if isflashing or gt < 2 then
+ if flashtime == 1 then
+ playerscore()
end
else
- printdropshadow(currentscore0,2,2,12,15) --1P current score
+ playerscore()
end
end
@@ -105,22 +91,62 @@ function credits(x,y)
palt(2,true)
palt(0,false)
- spr(48,x-4,y+6+sin(t())*2,1,1,(t()%2<1)) --duck
- spr(49,x+104,y+6+cos(t())*2,1,1,(t()%2<1)) --bot
+ spr(186,x-4,y+6+sin(t())*2,1,1,(t()%2<1)) --duck
+ spr(184,x+104,y+6+cos(t())*2,1,1,(t()%2<1)) --bot
palt()
printdropshadow("1029chris",x+10,y+5,9,2)
printdropshadow("ribboncable",x+56,y+5,12,15)
printdropshadow("CODE TUNES",x+8,y+12,11,3)
printdropshadow("ART SOUNDS",x+58,y+12,11,3)
+end
+
+--Ending screen
+function finalscorescreen(x,y)
+ local playercolour0 = 12
+ local playercolour1 = 15
+
+ printdropshadow("fINAL sCORE", x+41,y+22,6,5)
+ if #players > 1 then
+ playercolour0 = 9
+ playercolour1 = 2
+ end
- -- print("made in vancouver - 2022", x+6,y+22,0)
- -- print("made in vancouver - 2022", x+6,y+21,4)
+ -- if #players > 1 and currentscore > highscore1 or #players == 1 and currentscore > highscore0 then
+ if flashtime == 1 then
+ printdropshadow("! new high score !", x+27,y+32,11,3)
+ if babymode then
+ printdropshadow("! BABYMODE !", x+40,y+70,9,2)
+ end
+ -- end
+ end
+
+ poke(0x5f58, 0x0 | 0x9 | 0x4) --makes score BIG
+ printdropshadow(scorewithzeros(tostring(currentscore),4),x+48+circletimex,y+50+circletimey,playercolour0,playercolour1) --2P high score
+ poke(0x5f58, 0)
+
+ printdropshadow("THANK YOU FOR PLAYING", x+19,y+80,11,3)
+ printdropshadow("PRESS ❎ ⁙ πŸ…ΎοΈ TO RETRY", x+18,y+88,11,3)
+
+ printdropshadow("MADE WITH β™₯ IN VANCOUVER", x+14,y+110,9,2)
+ printdropshadow("β—† 2022 β—†", x+42,y+118,11,3)
+end
+
+--intro/ending acid effect
+function acidtransition()
+ if acidcounter < 3 then
+ for i = 1, 128, 1 do
+ line(i-1,128,i-1,sin((i+0.22-acidcounter*20)/24.357)*2+acidcounter*80-5,11) --cool wavy transition effect!!!!
+ line(i-1,128,i-1,sin((i+acidcounter*60)/44.357)*5+acidcounter*80,3)
+ end
+ addcircle(rnd(128), acidcounter*80+5, 0,rnd(1),rnd(12)+2,1.5,14)
+ end
end
--sfx for the intro transition
-sfx(0,3)
+sfx(0,3,3)
--this creates menu items that allow players to turn off screenshake, or always fire the ships gun.
doshake = true
menuitem(1, "(\129) screenshake", function() doshake = not doshake end)
-menuitem(2, "(\144) autofire", function() alwaysfire = not alwaysfire end) \ No newline at end of file
+menuitem(2, "(\144) autofire", function() alwaysfire = not alwaysfire end)
+menuitem(3, "(\137) BABYMODE", function() babymode = true end) \ No newline at end of file
diff --git a/update.lua b/update.lua
index 21a3ca4..e006ed6 100644
--- a/update.lua
+++ b/update.lua
@@ -1,11 +1,17 @@
--scrolling and respawn stuff
respawntimer -= ft
+--similar math elements grouped to lower tokens
+flashtime = ceil(t()*10%2) --for flashing elements (ship, score)
+circletimex = sin(t())*3 -- for elements that move in a circle (respawn timer)
+circletimey = cos(t())*3
+
if gameover then
scrollspeed = mid(-1/10,scrollspeed-1/3000,ft)
+ currentscore = 0 --depleats score
if respawntimer < 0 then
gameover = false
foreach(players, function(obj) obj:respawn() end)
- setwave(mid(checkpoint,currentwave-2,#wave))
+ setwave(mid(checkpoint,currentwave-1,#wave)) --goes back one wave
sfx(29, -2)
end
elseif gamerunning then
@@ -14,19 +20,28 @@ elseif gamerunning then
end
gt += scrollspeed + 1/600
-if not gamerunning and t() > 1 then
- if btn(4) then
- addplayer(18, 60, 16, 18)
- startgame()
- elseif btn(5) then
- addplayer(18, 45, 16, 18)
- addplayer(18, 75, 32, 34)
- startgame()
+if scorescreen then --ending screen
+ if btn(4) and btn(5) and not isoutro then --press both buttons to reset cart
+ acidcounter = 2
+ isoutro = true
+ music(-1, 2000) --fades music
+ end
+else --main menu
+ if not gamerunning and t() > 1 then
+ if btn(4) then
+ addplayer(18, 60, 16, 18)
+ startgame()
+ elseif btn(5) then
+ addplayer(18, 45, 16, 18)
+ addplayer(18, 75, 32, 34)
+ startgame()
+ end
end
end
if gamerunning or t() < 1.95 then -- weird if because of freezing bubbles in the menu
updateobjs() --update all objects
+ if currentscore > 9999 then currentscore = 9999 elseif currentscore < 0 then currentscore = 0 end --attempts to avoid hitting the OOM error or being negative
end
--screenshake math
@@ -34,7 +49,9 @@ shake = shake + 0.11 * (0 - shake);
if shake < 1 or not doshake then
shake = 0
end
---add another player if they fire
--- if btn(4, 1) and #players == 1 then
--- addplayer(32, 34)
--- end \ No newline at end of file
+
+--adds zeros to score to look cooler
+function scorewithzeros(string,length)
+ if #string == length then return string end
+ return "0"..scorewithzeros(string, length-1)
+end \ No newline at end of file
diff --git a/waves.lua b/waves.lua
index 7a853f1..c87d088 100644
--- a/waves.lua
+++ b/waves.lua
@@ -1,11 +1,13 @@
wave = {} --store wave functions here
-currentwave = 12 --THIS IS THE CURRENT WAVE, SHOLD BE 1 UNLESS TESTING SOMETHING
+currentwave = 1 --THIS IS THE CURRENT WAVE, SHOLD BE 1 UNLESS TESTING SOMETHING
currentwavetime = 0
delaytimer = 0
everysecondtimer = 0
checkpoint = 1
changedmusic = false
+--NOTE - slow BG during boss waves / make bosses their own checkpoint
+
wave[1] = {
delay = 2,
start = function()
@@ -101,6 +103,7 @@ wave[7] = {
end,
}
+--music doesnt transition yet
wave[8] = {
delay = 1,
start = function()
@@ -109,7 +112,7 @@ wave[8] = {
addbasicenemy(240, 58, 1.1)
addbasicenemy(240, 68, 0.9)
addbasicenemy(240, 63, 1)
- addlasershooter(128, 64, 0.4, true)
+ addlasershooter(128, 64, 100, 0.4, true, true)
end,
everysecond = function()
@@ -166,12 +169,13 @@ wave[11] = {
end,
}
+--music doesnt transition yet
wave[12] = {
delay = 1,
start = function()
music(9, 0, 3)
changedmusic = true
- addwallboss(128,4,15,0.05,true)
+ addwallboss(128,4,15,225,0.05,true,false,true)
end,
everysecond = wave[8].everysecond,
conditions = wave[8].conditions
@@ -183,9 +187,9 @@ wave[13] = {
addbasicenemy(130, 58, 0.6)
addbasicenemy(130, 68, 0.5)
addbasicenemy(130, 63, 0.7)
- addlasershooter(128, -2, 0.1, false)
+ addlasershooter(128, -2, 50, 0.1, false)
addbomb(128,46, 0)
- addlasershooter(128, 90, 0.1, false)
+ addlasershooter(128, 90, 50, 0.1, false)
end,
everysecond = wave[8].everysecond,
}
@@ -231,6 +235,14 @@ wave[16] = {
everysecond = wave[8].everysecond,
}
+--ending score screen
+wave[17] = {
+ delay = 3,
+ start = function()
+ scorescreen = true
+ end
+}
+
--wave[currentwave].start()
--music(0, 0, 3)