summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sfx/bonus_level.wavbin0 -> 265770 bytes
-rw-r--r--shockwave.bb52
2 files changed, 37 insertions, 15 deletions
diff --git a/sfx/bonus_level.wav b/sfx/bonus_level.wav
new file mode 100644
index 0000000..282cdc3
--- /dev/null
+++ b/sfx/bonus_level.wav
Binary files differ
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