This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

FLOZi

By: a guest on Dec 15th, 2009  |  syntax: Lua  |  size: 1.48 KB  |  views: 92  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. -- Arm Medium Tank (Stumpy)
  2. local base, flare, turret = piece ("base", "flare", "turret")
  3.  
  4. -- constants
  5. local SIG_AIM = 2
  6. local RESTORE_DELAY = Spring.UnitScript.GetLongestReloadTime(unitID) * 2
  7.  
  8. -- includes
  9. include "rockunit.lua"
  10. include "smokeunit.lua"
  11.  
  12. function script.Create(unitID)
  13.         Hide(flare)
  14.         StartThread(SmokeUnit)
  15. end
  16.  
  17. local function RestoreAfterDelay(unitID)
  18.         Sleep(RESTORE_DELAY)
  19.         Turn(turret, y_axis, 0, math.rad(90))
  20.         Turn(barrel, x_axis, 0, math.rad(50))
  21. end
  22.  
  23. function script.AimWeapon(weaponID, heading, pitch)
  24.         Signal(SIG_AIM)
  25.         SetSignalMask(SIG_AIM)
  26.         Turn(turret, y_axis, heading, math.rad(90))
  27.         Turn(barrel, x_axis, -pitch, math.rad(50))
  28.         WaitForTurn(turret, y_axis)
  29.         WaitForTurn(barrel, x_axis)
  30.         StartThread(RestoreAfterDelay)
  31.         return true
  32. end
  33.  
  34. function script.FireWeapon(weaponID)
  35.         Show(flare)
  36.         Move(barrel, z_axis, -2.4, 500)
  37.         Sleep(150)
  38.         Hide(flare)
  39.         WaitForMove(barrel, z_axis)
  40.         Move(barrel, z_axis, 0, 3)
  41. end
  42.  
  43. function script.AimFromWeapon() return turret end
  44.  
  45. function script.QueryWeapon() return flare end
  46.        
  47. function script.Killed(recentDamage, maxHealth)
  48.         local severity = recentDamage / maxHealth * 100
  49.         Hide(flare)
  50.         if severity <= 25 then
  51.                 Explode(barrel, math.bit_or({SFX.BITMAPONLY, SFX.BITMAP1}))
  52.                 return 1
  53.         elseif severity <= 50 then
  54.                 Explode(barrel, math.bit_or({SFX.FALL, SFX.BITMAP1}))
  55.                 return 2
  56.         else
  57.                 Explode(barrel, math.bit_or({SFX.FALL, SFX.SMOKE, SFX.FIRE, SFX.EXPLODE_ON_HIT, SFX.BITMAP1}))
  58.                 return 3
  59.         end
  60. end
clone this paste RAW Paste Data