home *** CD-ROM | disk | FTP | other *** search
/ GQ - Louise, World Cup, …remy Clarkson, Armageddon / GQCD.iso / files / game.dxr / 00005_shipScript.ls < prev    next >
Encoding:
Text File  |  1998-05-21  |  3.2 KB  |  115 lines

  1. property ancestor, posX, posY, myHyp, myShipAngle, myMouseAngle, rocketNum, myVelocity, weaponName, weaponReload, weaponPower, timerStart, weaponSound
  2. global CURSORSTART, gGameObj
  3.  
  4. on new me, startAngle, hyp
  5.   set ancestor to new(script "spriteGenerator")
  6.   set timerStart to the timer
  7.   set myShipAngle to startAngle
  8.   set myHyp to hyp
  9.   append(the actorList, me)
  10.   return me
  11. end
  12.  
  13. on stepFrame me
  14.   if getnukesArmed(gGameObj) then
  15.     cursor(-1)
  16.     set myMouseAngle to 45.0
  17.   else
  18.     locateMouse(me)
  19.   end if
  20.   setVelocity(me)
  21.   moveShip(me)
  22.   turnShip(me)
  23. end
  24.  
  25. on locateMouse me
  26.   set posX to float(the mouseH)
  27.   set posY to float(480 - the mouseV)
  28.   if (posY > 0) and (posX > 0) then
  29.     set myMouseAngle to getDegrees(atan(posX / posY))
  30.   else
  31.     if posY < 0.0001 then
  32.       set myMouseAngle to 90.0
  33.     else
  34.       if posX < 0.0001 then
  35.         set myMouseAngle to 0.0
  36.       end if
  37.     end if
  38.   end if
  39. end
  40.  
  41. on setVelocity me
  42.   set myVelocity to abs(myMouseAngle - myShipAngle) / 4.0
  43.   if myVelocity < 1.0 then
  44.     set myVelocity to 1.0
  45.   end if
  46. end
  47.  
  48. on moveShip me
  49.   if (myMouseAngle > myShipAngle) and (myMouseAngle > (myShipAngle + myVelocity)) then
  50.     if not getnukesArmed(gGameObj) then
  51.       cursor([CURSORSTART + 2, CURSORSTART + 3])
  52.     end if
  53.     set myShipAngle to myShipAngle + myVelocity
  54.     if myShipAngle > 90.0 then
  55.       set myShipAngle to 90.0
  56.     end if
  57.     set the loc of sprite the spriteNum of me to getLoc(myShipAngle, myHyp)
  58.   else
  59.     if (myMouseAngle < myShipAngle) and (myMouseAngle < (myShipAngle - myVelocity)) then
  60.       if not getnukesArmed(gGameObj) then
  61.         cursor([CURSORSTART + 2, CURSORSTART + 3])
  62.       end if
  63.       set myShipAngle to myShipAngle - myVelocity
  64.       if myShipAngle < 0.0 then
  65.         set myShipAngle to 0.0
  66.       end if
  67.       set the loc of sprite the spriteNum of me to getLoc(myShipAngle, myHyp)
  68.     else
  69.       if not getnukesArmed(gGameObj) then
  70.         cursor([CURSORSTART, CURSORSTART + 1])
  71.       end if
  72.       set myShipAngle to myMouseAngle
  73.       set the loc of sprite the spriteNum of me to getLoc(myShipAngle, myHyp)
  74.     end if
  75.   end if
  76. end
  77.  
  78. on turnShip me
  79.   set myMemberNum to integer(abs(myShipAngle - 90))
  80.   if myMemberNum = 0 then
  81.     set myMemberNum to 1
  82.   end if
  83.   set myMemberNum to myMemberNum + the memberNum of member "firstShip" - 1
  84.   set the memberNum of sprite the spriteNum of me to myMemberNum
  85. end
  86.  
  87. on launchRocket me
  88.   if (the timer > (timerStart + weaponReload)) and (rocketNum < 21) then
  89.     logShot(gGameObj)
  90.     set timerStart to the timer
  91.     set rocketNum to rocketNum + 1
  92.     set newHyp to myHyp + 20
  93.     set newRocket to new(script "rocketScript", myShipAngle, newHyp, weaponPower)
  94.     set myMemNum to integer(abs(myShipAngle))
  95.     if myMemNum = 0 then
  96.       set myMemNum to 1
  97.     end if
  98.     appear(newRocket, getLoc(myShipAngle, newHyp), myMemNum + weaponName, 255, 0, 100)
  99.     playSound(1, weaponSound)
  100.   end if
  101. end
  102.  
  103. on depleteRocketNum me
  104.   if rocketNum > 0 then
  105.     set rocketNum to rocketNum - 1
  106.   end if
  107. end
  108.  
  109. on changeWeapon me, newName, newReload, newPower, newSound
  110.   set weaponName to the memberNum of member newName - 1
  111.   set weaponReload to newReload * 60.0
  112.   set weaponPower to newPower
  113.   set weaponSound to newSound
  114. end
  115.