diff options
| author | RibbonCable <ambiguousmachine@gmail.com> | 2022-02-17 21:29:10 -0800 |
|---|---|---|
| committer | RibbonCable <ambiguousmachine@gmail.com> | 2022-02-17 21:29:10 -0800 |
| commit | b15a0c077587ddf748d34556524416435c01ec17 (patch) | |
| tree | 8d6b651465404426e1fb3eb4e9ba5c29a7c7158d | |
| parent | 8b53a5ee4a55f455c7b1d1dd02d67778b1ec31f8 (diff) | |
lots of stuff, check desc
Updated planet art
adjusted sprites in sheet
added boss sprites
added some boss graphic code
added score system
added ending score screen w/ cart reset
reduced wave loss from 2 to 1
reduced pickup amount to just bosses and specific waves only
reduced tokens by grouping similar math
made acid transition able to be reversed
planet seed for babymode
and a bunch of other stuff I forget sry its late
used a lot of tokens today x.x;
| -rw-r--r-- | background.lua | 5 | ||||
| -rw-r--r-- | bullets.lua | 8 | ||||
| -rw-r--r-- | draw.lua | 52 | ||||
| -rw-r--r-- | enemies.lua | 88 | ||||
| -rw-r--r-- | objects.lua | 11 | ||||
| -rw-r--r-- | pickups.lua | 48 | ||||
| -rw-r--r-- | pico-bhell.p8 | 186 | ||||
| -rw-r--r-- | players.lua | 4 | ||||
| -rw-r--r-- | ui.lua | 120 | ||||
| -rw-r--r-- | update.lua | 43 | ||||
| -rw-r--r-- | waves.lua | 22 |
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 @@ -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 @@ -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 @@ -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 @@ -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) |
