home *** CD-ROM | disk | FTP | other *** search
/ 100 Plus Great Games 2 / 100PLUSV2.BIN / games / BaseDefender.dxr / 00013.ls < prev    next >
Encoding:
Text File  |  2002-01-25  |  4.8 KB  |  106 lines

  1. global particleSO, maxParticles, particle_RefList, particleData, playerViewPoint
  2.  
  3. on initializeParticlereference
  4.   particle_RefList = []
  5.   sequenceNamelist = ["Light Impact 1", "Light Impact 2", "Light Impact 3", "Light Impact 4"]
  6.   add(particle_RefList, [sequenceNamelist, 4, 0, 32])
  7.   sequenceNamelist = ["medium Impact 1", "medium Impact 2", "medium Impact 3", "medium Impact 4"]
  8.   add(particle_RefList, [sequenceNamelist, 4, 0, 32])
  9.   sequenceNamelist = ["heavy Impact 1", "heavy Impact 2", "heavy Impact 3", "heavy Impact 4"]
  10.   add(particle_RefList, [sequenceNamelist, 4, 0, 32])
  11.   sequenceNamelist = ["TBlast 1", "TBlast 2", "TBlast 3", "TBlast 4", "TBlast 5", "TBlast 6", "TBlast 7"]
  12.   add(particle_RefList, [sequenceNamelist, 7, 3, 32])
  13.   sequenceNamelist = ["Star 1", "Star 2", "Star 3", "Star 4", "Star 5"]
  14.   add(particle_RefList, [sequenceNamelist, 5, 0, 33])
  15.   sequenceNamelist = ["Star 1", "Star 2", "Star 3", "Star 4", "Star 5"]
  16.   add(particle_RefList, [sequenceNamelist, 5, 4, 33])
  17.   sequenceNamelist = ["Sparkle 1", "Sparkle 2", "Sparkle 3"]
  18.   add(particle_RefList, [sequenceNamelist, 3, 0, 32])
  19.   sequenceNamelist = ["SBlast 1", "SBlast 2", "SBlast 3", "SBlast 4", "SBlast 5", "SBlast 6", "SBlast 7", "SBlast 8", "SBlast 9", "SBlast 10", "SBlast 11"]
  20.   add(particle_RefList, [sequenceNamelist, 11, 1, 33])
  21.   sequenceNamelist = ["Blast 1", "Blast 2", "Blast 3", "Blast 4", "Blast 5", "Blast 6", "Blast 7", "Blast 8", "Blast 9", "Blast 10", "Blast 11"]
  22.   add(particle_RefList, [sequenceNamelist, 11, 2, 33])
  23.   sequenceNamelist = ["Tag Beam 1"]
  24.   add(particle_RefList, [sequenceNamelist, 1, 10, 32])
  25.   sequenceNamelist = ["Tag Laser 1", "Tag Laser 2", "Tag Laser 1", "Tag Laser 2", "Tag Laser 1", "Tag Laser 2", "Tag Laser 1", "Tag Laser 2", "Tag Laser 1", "Tag Laser 2"]
  26.   add(particle_RefList, [sequenceNamelist, 10, 3, 32])
  27.   sequenceNamelist = ["BFG 1", "BFG 2", "BFG 3", "BFG 4", "BFG 5"]
  28.   add(particle_RefList, [sequenceNamelist, 5, 1, 32])
  29.   sequenceNamelist = ["Purp Spark 1", "Purp Spark 2", "Purp Spark 3", "Purp Spark 4", "Purp Spark 5", "Purp Spark 6"]
  30.   add(particle_RefList, [sequenceNamelist, 6, 2, 32])
  31.   sequenceNamelist = ["Yellow Spark 1", "Yellow Spark 2", "Yellow Spark 3", "Yellow Spark 4", "Yellow Spark 5", "Yellow Spark 6"]
  32.   add(particle_RefList, [sequenceNamelist, 6, 2, 32])
  33.   sequenceNamelist = ["Green Spark 1", "Green Spark 2", "Green Spark 3", "Green Spark 4", "Green Spark 5", "Green Spark 6"]
  34.   add(particle_RefList, [sequenceNamelist, 6, 1, 32])
  35.   sequenceNamelist = ["Ship Shield Effect"]
  36.   add(particle_RefList, [sequenceNamelist, 1, 20, 33])
  37. end
  38.  
  39. on initializeParticles
  40.   particleData = []
  41.   repeat with wPart = 1 to maxParticles
  42.     wSprite = particleSO + wPart
  43.     puppetSprite(wSprite, 1)
  44.     set the loc of sprite wSprite to point(-50, 50)
  45.     set the ink of sprite wSprite to 32
  46.     add(particleData, [0, 0, point(0, 0), point(0, 0), 0, 0])
  47.   end repeat
  48. end
  49.  
  50. on addparticle spawnType, spawnloc, spawnMomentum
  51.   validSlot = 0
  52.   repeat with wSlot = 1 to maxParticles
  53.     if (validSlot = 0) and (particleData[wSlot][1] = 0) then
  54.       validSlot = wSlot
  55.     end if
  56.   end repeat
  57.   if validSlot <> 0 then
  58.     if spawnType = 11 then
  59.       spawnMomentum = point(0, 0)
  60.     end if
  61.     particleData[validSlot] = [1, spawnType, spawnloc, spawnMomentum, 1, 0]
  62.     wSprite = particleSO + validSlot
  63.     set the member of sprite wSprite to particle_RefList[spawnType][1][1]
  64.     set the loc of sprite wSprite to (spawnloc - playerViewPoint) / 10
  65.     set the ink of sprite wSprite to particle_RefList[spawnType][4]
  66.   end if
  67. end
  68.  
  69. on moveParticles
  70.   repeat with wSlot = 1 to maxParticles
  71.     if particleData[wSlot][1] = 1 then
  72.       wSprite = particleSO + wSlot
  73.       pType = particleData[wSlot][2]
  74.       frameNames = particle_RefList[pType][1]
  75.       maxFrames = particle_RefList[pType][2]
  76.       maxDelay = particle_RefList[pType][3]
  77.       canDraw = 0
  78.       if findDistance(playerViewPoint + point(2900, 2200), particleData[wSlot][3]) <= 3800 then
  79.         canDraw = 1
  80.       end if
  81.       particleData[wSlot][6] = particleData[wSlot][6] + 1
  82.       termination = 0
  83.       if particleData[wSlot][6] > maxDelay then
  84.         particleData[wSlot][5] = particleData[wSlot][5] + 1
  85.         particleData[wSlot][6] = 0
  86.         if particleData[wSlot][5] > maxFrames then
  87.           termination = 1
  88.         else
  89.           if canDraw = 1 then
  90.             set the member of sprite wSprite to frameNames[particleData[wSlot][5]]
  91.           end if
  92.         end if
  93.       end if
  94.       if termination = 1 then
  95.         set the loc of sprite wSprite to point(-50, 50)
  96.         particleData[wSlot][1] = 0
  97.         next repeat
  98.       end if
  99.       particleData[wSlot][3] = particleData[wSlot][3] + particleData[wSlot][4]
  100.       if canDraw = 1 then
  101.         set the loc of sprite wSprite to (particleData[wSlot][3] - playerViewPoint) / 10
  102.       end if
  103.     end if
  104.   end repeat
  105. end
  106.