aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Sound Effects Index.txt50
-rw-r--r--bullets.lua41
-rw-r--r--draw.lua3
-rw-r--r--enemies.lua147
-rw-r--r--miniboss.wavbin11993132 -> 0 bytes
-rw-r--r--objects.lua2
-rw-r--r--particles.lua8
-rw-r--r--pico-bhell.p842
-rw-r--r--players.lua7
-rw-r--r--ui.lua13
10 files changed, 181 insertions, 132 deletions
diff --git a/Sound Effects Index.txt b/Sound Effects Index.txt
index 4caf651..930b3e1 100644
--- a/Sound Effects Index.txt
+++ b/Sound Effects Index.txt
@@ -7,33 +7,33 @@ CHANNELS
SOUNDS
------
-00 RESERVED INSRUMENT
-01 RESERVED INSRUMENT
-02 RESERVED INSRUMENT
-03 RESERVED INSRUMENT
-04 RESERVED INSRUMENT
-05 RESERVED INSRUMENT
-06 RESERVED INSRUMENT
-07 RESERVED INSRUMENT
-08 RESERVED INSRUMENT
+00
+01
+02
+03
+04
+05
+06
+07
+08
09 Player Shoot
10 Player Hit
11 Player Killed
12 Triple Shot
13 Intro Transition
-14
+14 Rocket Shoot / Thruster Loop
15 Basic Enemy Shoot
16 Basic Enemy Hit
17 Basic Enemy Killed
18 Wall Crawl Shoot
-19 Circular/Wall Boss Shoot
-20 Circular/Wall Boss Kill
-21
-22
+19 Ball Shooter/Bomb Shoot
+20 Ball Shooter/Bomb Kill
+21 Boss Kill
+22 Bomb Charge (8 seconds)
23 Laser Charge (1.5 Seconds)
24 Laser Loop
25 Laser Finished
-26 Laser Killed
+26 Laser Killed (scrapped)
27 Light Respawn
28 Respawn
29 Rewind Checkpoint
@@ -61,13 +61,13 @@ SOUNDS
51 MUSIC
52 MUSIC
53 MUSIC
-54
-55
-56
-57
-58 Rocket Shoot / Thruster Loop sfx(21, 3) (channel 4 for longer sounds)
-59 Rocket Projectile Explosion
-60 Rocket Boss Killed
-61 Kamikaze Charge (8 seconds)
-62 Kamikaze Ignite
-63 Kamikaze Denied \ No newline at end of file
+54 MUSIC
+55 MUSIC
+56 MUSICMUSIC
+57 MUSIC
+58 MUSICMUSIC
+59 MUSIC
+60 MUSIC
+61 MUSIC
+62 MUSIC
+63 MUSIC \ No newline at end of file
diff --git a/bullets.lua b/bullets.lua
index fa7ac04..a758f02 100644
--- a/bullets.lua
+++ b/bullets.lua
@@ -47,6 +47,7 @@ function addbullet(x, y, velx, vely, evil, sprite)
add(obj, bullet)
end
+--ERROR Sticks around after boss dies
function addlaser(x, y, r)
local laser = {
--lasers!!!!!!!!!!!!!!!
@@ -102,7 +103,6 @@ function addlaser(x, y, r)
--delete laser once its done
if laser.timer > 4 then
del(obj, laser)
- sfx(24, -2)
sfx(25, 3)
for i = 1, 16, 1 do
addcircle(rnd(laser.x), laser.y-laser.r/2+rnd(laser.r), -0.5, -0.5, rnd(3), rnd(2), rnd({11,14,3}), 0)
@@ -111,5 +111,42 @@ function addlaser(x, y, r)
end
add(obj, laser)
- sfx(23)
+ sfx(23,3)
+end
+
+
+function addmissile(x, y, target) --basic small weak enemy
+ local enemy = {
+ target = target,
+ x = x,
+ y = y,
+ w = 16,
+ h = 8,
+ inv = -1,
+ health = 3,
+ speed = 0.3,
+ shootcooldown = 0,
+ shot = enemyshot,
+ collide = enemycollide
+ }
+
+ function enemy.draw(enemy)
+ if enemy.inv < 0 or ceil(enemy.inv*10%2) == 1 then
+ spr(42, enemy.x, enemy.y, 2, 1)
+ end
+ end
+
+ function enemy.update()
+ enemy.x -= enemy.speed
+ enemy.speed += 0.015
+ enemy.y += (players[enemy.target].y - enemy.y)/30
+ addcircle(enemy.x+12, enemy.y+rnd(8), 0, rnd()/8, 2.1, 0.6, rnd({9,5}), 0)
+ enemymisc(enemy)
+ if enemy.health <= 0 then -- die!!!!!
+ enemydie(enemy,17,2)
+ end
+ end
+
+ sfx(14,3) --missle launch/thruster loop
+ add(enemies, enemy, 1)
end \ No newline at end of file
diff --git a/draw.lua b/draw.lua
index 65e6e69..ee7df3c 100644
--- a/draw.lua
+++ b/draw.lua
@@ -15,6 +15,7 @@ drawbg()
drawobjs()
if gamerunning then
+ currentscore("000000","000000",2,2)
if gameover then --gameover timer, it does a cute spinny! 😵
printdropshadow(ceil(respawntimer),63+sin(t())*3,55+cos(t())*3,6,5)
elseif players[1].health <=0 then
@@ -41,7 +42,7 @@ if not gamerunning or menuscroll < 1 then
--main screen items
mainmenutext(24-menuscroll*150,53)
- titlehighscores(52-menuscroll*110,82)
+ titlehighscores("000000","000000",52-menuscroll*110,82)
credits(10-menuscroll*140,108)
--intro acid effect
diff --git a/enemies.lua b/enemies.lua
index 196bcaa..4477cfe 100644
--- a/enemies.lua
+++ b/enemies.lua
@@ -1,3 +1,6 @@
+--REDUCE TOKENS BY
+--merge new bullet sfx() to addbullet() ? (exception would be for the wallshooter)
+
enemies = {}
--universal functions:
@@ -19,7 +22,7 @@ function enemycollide(enemy, object) --f this enemy collides with something, do
end
end
-function enemydie(enemy, sound)
+function enemydie(enemy, sound, soundchannel)
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
@@ -29,7 +32,7 @@ function enemydie(enemy, sound)
if shake < 3 then
shake = enemy.h/2
end
- sfx(sound, 2)
+ sfx(sound, soundchannel)
explosion(enemy.x, enemy.y, enemy.w, enemy.h)
del(enemies, enemy)
end
@@ -45,6 +48,12 @@ function enemymisc(enemy) --misc stuff every enemy needs
end
end
+
+
+
+
+
+
function addbasicenemy(x, y, speed) --basic small weak enemy
local enemy = {
x = x,
@@ -75,14 +84,14 @@ function addbasicenemy(x, y, speed) --basic small weak enemy
enemy.y += sin(time()*speed)*speed
if enemy.shootcooldown < 0 then
enemy.shootcooldown = 0.5 + rnd(1.5)
- if enemy.x < 129 then
+ if enemy.x < 124 and enemy.x > 5 then
addbullet(enemy.x-3, enemy.y, -1, 0, true, 2) -- shoot if on screen
sfx(15, 2) -- play shoot sound if on screen
end
end
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,17)
+ enemydie(enemy,17,2)
end
end
@@ -114,6 +123,9 @@ function addwallshooter(x, shootup, health, speed, offset, bulletspeed)
end
function enemy.draw(enemy)
+ if enemy.health < enemy.health*0.25 then
+ damagesmoke(enemy)
+ end
if enemy.inv < 0 or ceil(enemy.inv*10%2) == 1 then
spr(enemy.sprite+t()*10%2, enemy.x, enemy.y)
end
@@ -123,23 +135,23 @@ function addwallshooter(x, shootup, health, speed, offset, bulletspeed)
enemy.x -= speed
if enemy.shootcooldown < 0 then
if (t()+enemy.offset)%1>0.5/enemy.bulletspeed then
- if not enemy.shoottoggle then --implemented a toggle so that the sound effect for firing gets played only once.
- enemy.shoottoggle = true
- if enemy.x < 128 then
- sfx(18, 3)
- end
- end
enemy.shootcooldown = 0.08/enemy.bulletspeed
local vely = -1
if shootup then vely = 1 end
- addbullet(enemy.x, enemy.y, -enemy.speed, enemy.bulletspeed*vely, true, 2)
+ if enemy.x < 120 and enemy.x > 20 then
+ addbullet(enemy.x, enemy.y, -enemy.speed, enemy.bulletspeed*vely, true, 2)
+ if not enemy.shoottoggle then --implemented a toggle so that the sound effect for firing gets played only once.
+ enemy.shoottoggle = true
+ sfx(18, 3)
+ end
+ end
else
enemy.shoottoggle = false
end
end
enemymisc(enemy)
if enemy.health <= 0 then
- enemydie(enemy,17)
+ enemydie(enemy,17,2)
end
end
@@ -166,7 +178,10 @@ function addballshooter(x, y, speed)
function enemy.draw(enemy)
if enemy.inv < 0 or ceil(enemy.inv*10%2) == 1 then
local sprite = 11
- if enemy.health < 7 then sprite = 27 end
+ if enemy.health < 4 then
+ damagesmoke(enemy)
+ sprite = 27
+ end
spr(sprite, enemy.x, enemy.y, 3, 1, false, true)
spr(sprite, enemy.x, enemy.y+8, 3, 1)
end
@@ -176,7 +191,7 @@ function addballshooter(x, y, speed)
enemy.x -= speed
if enemy.shootcooldown < 0 then
enemy.shootcooldown = 2
- if enemy.x < 128 then
+ if enemy.x < 126 and enemy.x > 0 then
for i = 1, 48, 1 do --shoot ring of bullets if on screen
if sin(i/48) < 0.3 and sin((i+currentwavetime)/8) < 0.4 then
addbullet(enemy.x+4, enemy.y+4, sin(i/48)/2, cos(i/48)/2, true, 2)
@@ -186,11 +201,8 @@ function addballshooter(x, y, speed)
end
end
enemymisc(enemy)
- if enemy.health < 8 then --smokes when damaged!
- addcircle(enemy.x+20+rnd(8), enemy.y+4+rnd(8), -0.5, -0.2, rnd(8), rnd(1)+0.7, 5, 0)
- end
if enemy.health <= 0 then
- enemydie(enemy,20)
+ enemydie(enemy,20,3)
end
end
@@ -213,6 +225,9 @@ function addtargetingenemy(x, y, speed)
}
function enemy.draw(enemy)
+ if enemy.health < 2 then
+ damagesmoke(enemy)
+ end
if enemy.inv < 0 or ceil(enemy.inv*10%2) == 1 then
spr(58, enemy.x, enemy.y, 2, 1)
end
@@ -224,7 +239,7 @@ function addtargetingenemy(x, y, speed)
enemy.shootcooldown = 0.1
enemy.bulletcounter += 1
local p = enemy.bulletcounter%#players+1
- if enemy.x < 129 and players[p].x < enemy.x+30 then --math involving a distance check to get the proper velocity for aiming
+ if enemy.x < 126 and players[p].x < enemy.x+30 then --math involving a distance check to get the proper velocity for aiming
local distance = sqrt((players[p].x - enemy.x)^2+(players[p].y - enemy.y)^2)
local velx = (players[p].x - enemy.x)/distance
local vely = (players[p].y - enemy.y)/distance
@@ -234,7 +249,7 @@ function addtargetingenemy(x, y, speed)
end
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,17)
+ enemydie(enemy,17,2)
end
end
@@ -250,7 +265,7 @@ function addlasershooter(x, y, speed, stay)
speed = speed,
stay = stay,
inv = -1,
- health = 36 * #players, -- double health if 2 player
+ health = 36 * #players, -- double health if 2 player --36
lasertimer = 0,
firedlaser = false,
shootcooldown = 0,
@@ -264,7 +279,10 @@ function addlasershooter(x, y, speed, stay)
function enemy.draw(enemy)
if enemy.inv < 0 or ceil(enemy.inv*10%2) == 1 then
local sprite = 64
- if enemy.health < 12 then sprite = 96 end
+ if enemy.health < 10 then
+ damagesmoke(enemy)
+ sprite = 96
+ end
spr(sprite,enemy.x+0,enemy.y+4,4,2)
spr(sprite,enemy.x+0,enemy.y+20,4,2,false,true)
end
@@ -285,7 +303,7 @@ function addlasershooter(x, y, speed, stay)
if enemy.shootcooldown < 0 then
enemy.shootcooldown = 0.18
addbullet(enemy.x+6, enemy.y+20, -1, rnd(2)-1, true, 2) --shoooot!!!!!
- sfx(15, 2) -- play shoot sound if on screen
+ sfx(15, 2)
end
end
@@ -306,14 +324,13 @@ function addlasershooter(x, y, speed, stay)
end
end
- if enemy.health < 8 then --smokes when damaged! copy pasted from ball shooter!
- addcircle(enemy.x+12+rnd(8), enemy.y+12+rnd(8), -0.5, -0.2, rnd(8), rnd(1)+0.7, 5, 0)
- end
-
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,26)
+ 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))
@@ -323,6 +340,8 @@ function addlasershooter(x, y, speed, stay)
add(enemies, enemy)
end
+
+--ERROR damage model has incorrect tiling (also it doesnt work??)
function addwallboss(x, y, length, speed, stay, move)
local enemy = {
stay = stay or false,
@@ -330,10 +349,10 @@ function addwallboss(x, y, length, speed, stay, move)
x = x,
y = y,
length = mid(4,length,16),
- w = 24,
+ w = 16,
h = 8*length,
inv = -1,
- health = 10*length*#players,
+ health = 1*length*#players, --10
shootcooldown = 3,
speed = speed,
bulletfired = {},
@@ -347,7 +366,8 @@ function addwallboss(x, y, length, speed, stay, move)
function enemy.draw(enemy)
local dmg = 0
- if enemy.health < length * 4 then
+ if enemy.health < enemy.health*0.25 then
+ damagesmoke(enemy)
dmg = 16
end
if enemy.inv < 0 or ceil(enemy.inv*10%2) == 1 then
@@ -405,6 +425,7 @@ function addwallboss(x, y, length, speed, stay, move)
local bulletspeed = -1-rnd(0.2)
if enemy.move > 2 then bulletspeed = -1 end
addbullet(enemy.x, enemy.y-8+i*8, bulletspeed, 0, true, 2)
+ sfx(15, 2)
enemy.bulletfired[i] = 1
else
enemy.bulletfired[i] = 0
@@ -414,7 +435,8 @@ function addwallboss(x, y, length, speed, stay, move)
end
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,17)
+ 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))
@@ -440,9 +462,12 @@ function addbomb(x, y, delay) --BIG BOMB!!!! KILL IIT QUICKLY!!!!
function enemy.draw(enemy)
local sprite = 73
if everysecondtimer > 0.5 then sprite = 75 end
- if enemy.health < 6 then sprite += 32 end
+ if enemy.health < 7 then
+ damagesmoke(enemy)
+ sprite += 32
+ end
if enemy.inv < 0 or ceil(enemy.inv*10%2) == 1 then
- circfill(enemy.x+16, enemy.y+16, sin(enemy.shootcooldown^2)*3-enemy.shootcooldown, 7)
+ circfill(enemy.x+15, enemy.y+16, sin(enemy.shootcooldown^2)*3-enemy.shootcooldown, rnd({7,11,3}))
local offset = mid(0, -enemy.shootcooldown-2, 3)
spr(sprite, enemy.x, enemy.y-offset, 2, 2)
spr(sprite, enemy.x, enemy.y+16+offset, 2, 2, false, true)
@@ -456,55 +481,23 @@ function addbomb(x, y, delay) --BIG BOMB!!!! KILL IIT QUICKLY!!!!
enemy.x = enemy.x + 0.02 * (80 - enemy.x);
end
enemy.y += sin(time()/3)/8
- if enemy.shootcooldown < -8 then
+ if enemy.shootcooldown < -8 then -- detonation
for i = 1, 60, 1 do
addbullet(enemy.x+16, enemy.y+16, sin(i/60), cos(i/60), true, 2)
enemy.health = 0
+ sfx(19,2)
end
end
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,17)
+ enemydie(enemy,20,3)
end
end
+ sfx(62,3) --charge
add(enemies, enemy)
end
-function addmissile(x, y, target) --basic small weak enemy
- local enemy = {
- target = target,
- x = x,
- y = y,
- w = 16,
- h = 8,
- inv = -1,
- health = 3,
- speed = 0.3,
- shootcooldown = 0,
- shot = enemyshot,
- collide = enemycollide
- }
-
- function enemy.draw(enemy)
- if enemy.inv < 0 or ceil(enemy.inv*10%2) == 1 then
- spr(42, enemy.x, enemy.y, 2, 1)
- end
- end
-
- function enemy.update()
- enemy.x -= enemy.speed
- enemy.speed += 0.015
- enemy.y += (players[enemy.target].y - enemy.y)/30
- addcircle(enemy.x+12, enemy.y+rnd(8), 0, rnd()/8, 2.1, 0.6, rnd({9,5}), 0)
- enemymisc(enemy)
- if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,17)
- end
- end
-
- add(enemies, enemy, 1)
-end
function addmissileboss(x, y) --boss that shoots missiles!!!
local enemy = {
@@ -516,7 +509,7 @@ function addmissileboss(x, y) --boss that shoots missiles!!!
w = 32,
h = 32,
inv = -1,
- health = 40*#players,
+ health = 40*#players, --40
shootcooldown = 1.8,
speed = 0.04,
shot = enemyshot,
@@ -525,7 +518,10 @@ function addmissileboss(x, y) --boss that shoots missiles!!!
function enemy.draw(enemy)
local sprite = 68
- if enemy.health < 15 then sprite = 100 end
+ if enemy.health < 21 then
+ sprite = 100
+ damagesmoke(enemy)
+ end
if enemy.inv < 0 or ceil(enemy.inv*10%2) == 1 then
spr(sprite, enemy.x, enemy.y, 4, 2)
spr(sprite, enemy.x, enemy.y+16, 4, 2, false, true)
@@ -557,15 +553,18 @@ function addmissileboss(x, y) --boss that shoots missiles!!!
if currentwavetime%2 > 1 then offset = 30 end
addmissile(enemy.x, enemy.y+offset, playertarget)
if enemy.health < 12 then
+ sfx(15, 2)
addbullet(enemy.x,enemy.y+16,(players[playertarget].x-enemy.x)/70,(players[playertarget].y-enemy.y-16)/70,true)
+ -- ERROR attempting to find a non existant player
end
enemy.speed += 0.001
- sfx(15, 2) -- play shoot sound if on screen
end
end
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
- enemydie(enemy,17)
+ 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))
diff --git a/miniboss.wav b/miniboss.wav
deleted file mode 100644
index d70fbcb..0000000
--- a/miniboss.wav
+++ /dev/null
Binary files differ
diff --git a/objects.lua b/objects.lua
index 4990280..e2bcfd4 100644
--- a/objects.lua
+++ b/objects.lua
@@ -6,8 +6,8 @@ gameover = false
gamerunning = false
function startgame()
- wave[currentwave].start()
music(0, 0, 3)
+ wave[currentwave].start()
gamerunning = true
end
diff --git a/particles.lua b/particles.lua
index 3d28184..72e090f 100644
--- a/particles.lua
+++ b/particles.lua
@@ -38,4 +38,12 @@ function explosion(x,y, w, h)
for i = 1, w/2, 1 do
addcircle(x+rnd(w), y+rnd(h), -0.4, 0, rnd(8), rnd(1)+0.5, 9, 0)
end
+end
+
+function damagesmoke(object)
+ --smokes when damaged!
+ addcircle(object.x+rnd(object.w*0.5), object.y+rnd(object.w*0.5), -0.5, -0.2, rnd(6), rnd(1.5)+1, 5, 0)
+ if ceil(rnd(2)) == 1 then
+ addcircle(object.x+rnd(object.w*0.5), object.y+rnd(object.w*0.5), -0.4, -0.2, rnd(6), rnd(1)+0.5, 9, 0)
+ end
end \ No newline at end of file
diff --git a/pico-bhell.p8 b/pico-bhell.p8
index ba0dd54..e796556 100644
--- a/pico-bhell.p8
+++ b/pico-bhell.p8
@@ -324,18 +324,18 @@ __sfx__
c00217002f0103202034021360313703138031390313a0313b0313b0313b0313b0313b0313a0313a02139021370113601135011330112f0112b015270151a001180011500113001100010e0010b0010c0011f001
50011800190122c5323502230522310222a52224022210221a5221802213522130220e522075220b1220c0220a1220a0220712208022061220701204112070120610201602016020160201602016020160201602
9108000022614286102d6103061033610356103661037610376103561034610326102e6102b610286102661022610206101d610186101661013610116100f6100c61009610066100461003610016100161000615
-000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+910219202f67112773356761977338676197733a676157533765312740316330f7402265012740166300e6200c6300a6200963009620056200663003620046300762005620066200662007620086200862008620
90020e0016321215311b3312a53117331113210f32105621240010462100001036212a00100611000012c0012d0012d001000012d0012d0012b0012a00127001220011e001180011600114001130011300113001
9001110000070040703661012650191301363024140136300f62000020000100c6000001000000015100000001510000000000000000000000000000000000000000000000000000000000000000000000000000
94021400116711b37110671026710e561193510e6410e6210b5210d6110d621006210862105621026010261101611006110061100611006010060100001000000000000000000000000000000000000000000000
90031400153311052112341185311033117541143411d53114321215211533120511193112151109511065110451102511005110e5012d0012b0012a00127001220011e001180011600114001130011300113001
900516000c373093630635305343053430534305343043430334302343013330033300323003230031300313003130031300303003130030300313003030030301303013030230302303023032e3030000300003
92051d002e6732f673306732c66320553165331c54300673016730807300653060430064307653190330864315043026430f03304023016130101300613000130010300613012030020300613001030010300103
-900200002f60012700356001970038600197003a600157003760012700316000f7002260012700166000e6000c6000a6000960009600056000660003600046000760005600066000660007600086000860008600
+990800000c6741f4730e676214730e676191730e6761617302070186700166015660050600d650006500515002040041300001100610000000001100605006150010000010006000000000615003000001500000
9102001f0860007600076000760006600076000660005600076000660003600066000660004600066000660006600076000560005600056000660003600026000760004600066000660007600086000860008600
9f06000002613076132c0112c0510661107623076510661306653056232c0112c05107633076330864108623096430a6432c0112c0510c6130d6430e6110203312613136532c0112c051020231d6730304123673
5f011d201137322373104730837310473103730c36308463063530464303353016530244301651014510065100451016510044101651014510065102451026410245101651024510163102421014530262301453
-d60600000303300043104130304310453020130c34301043063330463303323016230242301621014110061100411016010041101601014010061102401026010240101611024010160102411014030260301403
+d60600000242101453026230145310463020730c37301043063330463303323016230242301621014110061100411016010041101601014010061102401026010240101611024010160102411014030260301403
d60a00002f6732b67312673030730e673020730966301043063330463303323016230242301621014110061100411026130261306601006110260101613076010161306603016130660107603006130060301611
a4040e0010014107121101214722267121a03226732220322673228032260322c032260122f015267022670200002267020000200002000020000200002000020000200002000020000200002000020000200002
a1050e0010034107421104214752267521a05226752220522675228052260522c042260322f015267022670200002267020000200002000020000200002000020000200002000020000200002000020000200002
@@ -343,7 +343,7 @@ a1050e0010034107421104214752267521a05226752220522675228052260522c042260322f01526
90040900243363234637066110261f126264262e136374463b0260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
d01c00081f011220161a0161f0162b0112e016260162b016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-490e00081006334615346253461510063346153462534615000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+490e00101000334615346253461510073346153462534615100033461534625346151007334615346253461500000000000000000000000000000000000000000000000000000000000000000000000000000000
110e00080030207755077550775500700077550775507755000000000500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
09380000221212212229121291222912500100001000f1021b1211b1222812128122281250010000100281021d1211d1222112121122211250010000100211021f1211f122221212212222125221002210000000
a71c0010373272e327373272e327373122d312223120c3122b327223272b327223272b31221312163120031200000000000000000000000000000000000000000000000000000000000000000000000000000000
@@ -353,15 +353,15 @@ d11c000821011240161c016210162d01130016280162d01621000180001c000210002d0002400028
4d0e002012053093250c4250b3251e655093250e4250c32512053093250c4250b3251e655093250e4251032512053093250c4250b3251e655093250e4250c32512053093250c4250b3251e655093250242504325
4d0e00200e0530532508425073251a655053250a425083250e0530532508425073251a655053250a4250c3250e0530532508425073251a655053250a425083250e0530532508425073251a655053250042500325
d11c000821011240161c016210162d01130016280162d0161f000220001a0001f0002b0002e000260002b00000000000000000000000000000000000000000000000000000000000000000000000000000000000
-001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-010400000860008600086000860008600076000860008600086000860007600076000760007600076000760007600076000760007600086000860008600086000860008600086000860008600076000760007600
+d10e00201f42222422264222e4021f42222422264222e4021f42222422264222e4021f42222422264222e40225422284222c4222840225422284222c4222840225422284222c4222840225422284222c42234402
+911c02042b311133212b3211331100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+490e000021600156002160021600216003960039600396002162515600216002160021625396003960039600156252160521625240002d625396053962500000156251560521625216052d625396253962539625
+5d0e0020100730715407252071521c675071440c1420a14210073071540a152091521c675071540c3520e152160730d1540d2510d253226750d154121521015216073160731607316073226750d3541946425474
+5d0e0020100730715407252071521c675071440c1420a14210073071540a152091521c675071540c3520e152100730715407251072531c675071540c1520a15210073071540a152091521c675071540035202452
+5d0e0020100730725407252072521c675073440c4420a34210073073540a452093521c675073540c4520e352100730725407251072531c675073540c4520a35210073073540a452093521c675073540045202352
+5d0e0020100730725407252072521c675073440c4420a34210073073540a452093521c675073540c4520e352160730d2540d2510d253226750d3541245210352160730d354104520f352226750d3540645208352
+5d0e0020120730925409252092521e675093440e4420c34212073093540c4520b3521e675093540e45210352180730f2540f2510f253246750f3541445212352180730f3541245211352246750f354084520a352
+d10e002021422244222842230402214222442228422304022142224422284223040221422244222842230402274222a4222e4222a402274222a4222e4222a402274222a4222e4222a402274222a4222e42236402
9508000022614286102d6103061033610356103661037610376103561034610326102e6102b610286102661022610206101d610186101661013610116100f6100c61009610066100461003610016100161000615
000300220813400104000040000407144071540000406104001040615400004061340615401104011040010407124061240010400104051540513400104000040010407144071340010400104061240612400004
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
@@ -379,14 +379,14 @@ __music__
00 20266144
00 27286144
02 2a296144
-00 41424344
-00 41424344
-00 41424344
-00 41424344
-00 41424344
-00 41424344
-00 41424344
-00 41424344
+00 2c6b4344
+00 2c2f4344
+00 2c304344
+00 2b2e6161
+00 33326161
+00 2d2e6161
+01 21316161
+02 21326161
00 41424344
00 41424344
00 41424344
diff --git a/players.lua b/players.lua
index 39dae69..608fb08 100644
--- a/players.lua
+++ b/players.lua
@@ -100,12 +100,9 @@ function addplayer(x, y, sprite, bulletsprite)
addcircle(player.x-1, player.y, -0.5, 0, 1.5, 0.5, 9, 0)
addcircle(player.x-1, player.y+7, -0.5, 0, 1.5, 0.5, 9, 0)
if player.health < 3 then
- addcircle(player.x+rnd(8), player.y+rnd(8), -0.5, -0.2, rnd(8), rnd(1.5)+1, 5, 0)
+ addcircle(player.x+rnd(8), player.y+rnd(8), rnd(1.5)-0.75, -1.5, 1, rnd(1)+0.5, 9, -0.1)
if player.health < 2 then
- addcircle(player.x+rnd(8), player.y+rnd(8), rnd(1.5)-0.75, -1.5, 1, rnd(1)+0.5, 9, -0.1)
- if ceil(rnd(2)) == 1 then
- addcircle(player.x+rnd(8), player.y+rnd(8), -0.4, -0.2, rnd(8), rnd(1)+0.5, 9, 0)
- end
+ damagesmoke(player)
end
end
player.particlecooldown = 0.1
diff --git a/ui.lua b/ui.lua
index a4ac84c..3669aa5 100644
--- a/ui.lua
+++ b/ui.lua
@@ -64,14 +64,21 @@ function mainmenutext(x,y)
printdropshadow("(\151) - companion",x+15,y+18,6,5)
end
-function titlehighscores(x,y)
+function titlehighscores(highscore0,highscore1,x,y)
-- default values
-- 52
-- 110
- printdropshadow("000000",x-20,y,12,15) --1P high score
+ printdropshadow(highscore0,x-20,y,12,15) --1P high score
printdropshadow("-",x+10,y,6,5)
- printdropshadow("000000",x+20,y,9,2) --2P high score
+ printdropshadow(highscore1,x+20,y,9,2) --2P high score
+end
+
+function currentscore(currentscore0,currentscore1,x,y)
+ printdropshadow(currentscore0,x+2,y+2,12,15) --1P current score
+ if #players != 1 then
+ printdropshadow(currentscore1,x+2,y+117,9,2) --2P current score
+ end
end
function credits(x,y)