home *** CD-ROM | disk | FTP | other *** search
- on initializeConstants
- global playerSO, shipSO, maxShips, bulletSO, maxBullets, starfieldSO, maxStars, starDepth, particleSO, maxParticles, powerupSO, maxPowerups, miniMapDotsSO
- playerSO = 100
- shipSO = 110
- bulletSO = 150
- starfieldSO = 200
- particleSO = 250
- powerupSO = 300
- miniMapDotsSO = 310
- maxEnemies = 12
- maxBullets = 50
- maxShips = 25
- maxStars = 15
- maxParticles = 50
- maxPowerups = 3
- starDepth = 10
- end
-
- on initializePowerups
- global powerupData, powerupSO, maxPowerups
- powerupData = []
- repeat with wPowerUp = 1 to maxPowerups
- wSprite = powerupSO + wPowerUp
- add(powerupData, [0, 0, point(0, 0), point(0, 0), 0])
- puppetSprite(wSprite, 1)
- set the ink of sprite wSprite to 33
- set the loc of sprite wSprite to point(-50, 250)
- end repeat
- end
-
- on addPowerup spawnType, spawnPoint, spawnMomentum
- global powerupData, powerupSO, maxPowerups
- validSlot = 0
- repeat with wPowerUp = 1 to count(powerupData)
- if (validSlot = 0) and (powerupData[wPowerUp][1] = 0) then
- validSlot = wPowerUp
- end if
- end repeat
- if validSlot <> 0 then
- wSprite = powerupSO + validSlot
- powerupData[validSlot] = [1, spawnType, spawnPoint, spawnMomentum, 1200]
- if spawnType = 1 then
- set the member of sprite wSprite to "Shield powerup"
- else
- set the member of sprite wSprite to "Weapons powerup"
- end if
- end if
- end
-
- on movePowerups
- global powerupData, powerupSO, maxPowerups, playerViewPoint, shipData, specialPlayerStats
- repeat with wPowerUp = 1 to count(powerupData)
- wSprite = powerupSO + wPowerUp
- if powerupData[wPowerUp][1] = 1 then
- if powerupData[wPowerUp][5] <= 0 then
- set the loc of sprite wSprite to point(-50, 150)
- powerupData[wPowerUp][1] = 0
- next repeat
- end if
- if findDistance(powerupData[wPowerUp][3], shipData[1][4][1]) <= 250 then
- playSound("powerup SFX")
- case powerupData[wPowerUp][2] of
- 1:
- if specialPlayerStats[1] < 100 then
- specialPlayerStats[1] = specialPlayerStats[1] + 20
- end if
- shipData[1][5][1] = 0
- 2:
- specialPlayerStats[2] = specialPlayerStats[2] + 10
- if specialPlayerStats[2] > 45 then
- specialPlayerStats[2] = 45
- end if
- member("Ammo Display 1").text = string(specialPlayerStats[2])
- 3:
- specialPlayerStats[3] = specialPlayerStats[3] + 10
- if specialPlayerStats[3] > 45 then
- specialPlayerStats[3] = 30
- end if
- member("Ammo Display 2").text = string(specialPlayerStats[3])
- 4:
- specialPlayerStats[4] = specialPlayerStats[4] + 30
- if specialPlayerStats[4] > 95 then
- specialPlayerStats[4] = 95
- end if
- member("Ammo Display 3").text = string(specialPlayerStats[4])
- end case
- set the loc of sprite wSprite to point(-50, 150)
- powerupData[wPowerUp][1] = 0
- next repeat
- end if
- if findDistance(powerupData[wPowerUp][3], shipData[1][4][1]) > 6000 then
- set the loc of sprite wSprite to point(-50, 150)
- powerupData[wPowerUp][1] = 0
- next repeat
- end if
- powerupData[wPowerUp][5] = powerupData[wPowerUp][5] - 1
- set the loc of sprite wSprite to (powerupData[wPowerUp][3] - playerViewPoint) / 10
- end if
- end repeat
- end
-