diff options
Diffstat (limited to 'shockwave.bb')
-rw-r--r-- | shockwave.bb | 52 |
1 files changed, 37 insertions, 15 deletions
diff --git a/shockwave.bb b/shockwave.bb index 02286ca..6bc9d59 100644 --- a/shockwave.bb +++ b/shockwave.bb @@ -1,7 +1,7 @@ ; ; SHOCKWAVE (c) COPYRIGHT Ian Cowburn 2004 ; -; $Id: shockwave.bb,v 1.2 2005-02-21 23:29:37 ianc Exp $ +; $Id: shockwave.bb,v 1.3 2005-03-04 01:38:16 ianc Exp $ ; Include "gfx/font.bb" @@ -91,8 +91,8 @@ Const ASTTYPE=3 Const POWNONE=0 Const POWSPLIT=1 -Const POWSHIELD=2 -Const POWTURBOTURN=3 +Const POWTURBOTURN=2 +Const POWSHIELD=3 ; ============================================ ; STATICS @@ -137,6 +137,7 @@ Global radar_spr=CreateSprite(camera) Global hud_spr=CreateSprite(camera) Global start_sfx=LoadSound("sfx/start.wav") +Global bonus_level_sfx=LoadSound("sfx/bonus_level.wav") Global laugh_sfx=LoadSound("sfx/laugh.wav") Global explode_sfx=LoadSound("sfx/explode.wav") Global pop_sfx=LoadSound("sfx/pop.wav") @@ -183,6 +184,7 @@ Global hit_count=0 Global hit_timer=0 Global turbo_count=0 Global turn_count=0 +Global is_bonus_level=False LoadHighScore() @@ -237,9 +239,18 @@ Repeat new_level=True end_level=False + FlushKeys + While (Not dead) And (Not done) And (Not KeyHit(1)) If new_level + + If (level Mod 5)=0 + is_bonus_level=True + Else + is_bonus_level=False + EndIf + ClearText() ResetPowerUps() @@ -257,17 +268,24 @@ Repeat NewAsteroid(ASTLARGE,Rand(-FIELDSIZE,FIELDSIZE),Rand(-FIELDSIZE,FIELDSIZE)) Next - For f=30 To 50 Step 4 - NewCameraSpriteText("LEVEL "+Str$(level),$ffffff,0,0,EntityZ(camera)+f,-0.4,1,0.01) - Next - - PlaySound start_sfx + If is_bonus_level + For f=30 To 50 Step 4 + NewCameraSpriteText("BONUS LEVEL "+Str$(level),$ffffff,0,0,EntityZ(camera)+f,-0.4,1,0.01) + Next + + PlaySound bonus_level_sfx + Else + For f=30 To 50 Step 4 + NewCameraSpriteText("LEVEL "+Str$(level),$ffffff,0,0,EntityZ(camera)+f,-0.4,1,0.01) + Next + + PlaySound start_sfx + EndIf total_chain=0 + hit_count=0 turn_count=0 turbo_count=0 - MAX_SPEED=1 - turn=2 new_level=False EndIf @@ -297,7 +315,7 @@ Repeat EndIf If total_chain>0 - bonus=total_chain*10 + bonus=total_chain*17 HudTextCentre(160,"CHAIN BONUS",$ff0000) HudTextCentre(170,Str$(bonus),$ffff00) AddScore(bonus) @@ -305,13 +323,13 @@ Repeat If shield=0 HudTextCentre(190,"SECRET ZERO SHIELD BONUS",$ff0000) - HudTextCentre(200,"50000",$ffff00) - AddScore(50000) + HudTextCentre(200,"99999",$ffff00) + AddScore(99999) SubShield(-MAXSHIELD) ElseIf shield=MAXSHIELD HudTextCentre(190,"PERFECT SHIELD BONUS",$ff0000) - HudTextCentre(200,"10000",$ffff00) - AddScore(10000) + HudTextCentre(200,"20000",$ffff00) + AddScore(20000) ElseIf total_chain>0 bonus=total_chain @@ -1640,6 +1658,10 @@ Function ResetPowerUps() End Function Function PowerUp() + If is_bonus_level + Return POWSPLIT + EndIf + i=Rand(100) For p.PowerUp=Each PowerUp |