Advertisement
Guest User

Untitled

a guest
Dec 27th, 2016
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. // laser pistol
  2. function LaserPistol.init(gun)
  3. gun.spreadAngle = 0.0
  4. gun.crosshairDistance = 350.0
  5. ShootTimer.initGun(gun, 0.25)
  6. SpreadHelper.initGun(gun)
  7. end
  8.  
  9.  
  10. function LaserPistol.onTick(gun)
  11. SpreadHelper.onTick(gun)
  12. if gun.isTriggered then
  13. if ShootTimer.checkGun(gun) then
  14. SpreadHelper.onShoot(gun)
  15. gun:addBullet()
  16. end
  17. end
  18. end
  19.  
  20. // rocket launcher
  21. function RocketLauncher.init(gun)
  22. gun.spreadAngle = 0.0
  23. gun.crosshairDistance = 350.0
  24. ShootTimer.initGun(gun, 0.5)
  25. end
  26.  
  27.  
  28. function RocketLauncher.onTick(gun)
  29. if gun.isTriggered then
  30. if ShootTimer.checkGun(gun) then
  31. local bullet = gun:addBullet()
  32. bullet.damage = math.floor(110 + math.random() * 40)
  33. bullet:addTrailParticle("RocketSmokeParticle", Vec2.new(0.0, -8.0), 4.0, {})
  34. bullet.moveSpeed = 50
  35. bullet.radius = 6
  36. bullet.data.moveAngle = bullet.moveAngle
  37. bullet.data.moveSpeed = bullet.moveSpeed
  38. bullet.data.lateralSpeedDir = player.moveSpeedDir - (player.moveDir * player.moveSpeedDir:dot(player.aimDir))
  39. bullet.data.lateralSpeed = bullet.data.lateralSpeedDir:safeNormalize() * 0.3
  40. bullet.data.lifeTime = 2.5
  41. bullet.meshRotation = bullet.moveAngle
  42. end
  43. end
  44. end
  45.  
  46. function RocketLauncher.onBulletHit(gun, bullet, monster)
  47. addExplosion(bullet.position, 60.0, 120.0, 70, 130)
  48. end
  49.  
  50. function RocketLauncher.onBulletTick(gun, bullet)
  51. local data = bullet.data
  52. data.lifeTime = data.lifeTime - dt
  53.  
  54. if data.lifeTime < 0.0 then
  55. RocketLauncher.onBulletHit(gun, bullet, nil)
  56. bullet:removeSelf()
  57. end
  58. data.moveSpeed = data.moveSpeed + dt * 250
  59. if data.moveSpeed > 250.0 then
  60. data.moveSpeed = 250.0
  61. end
  62.  
  63. data.lateralSpeed = data.lateralSpeed - dt * 0.5
  64.  
  65. if data.lateralSpeed < 0.0 then
  66. data.lateralSpeed = 0.0
  67. end
  68.  
  69. local defaultSpeed = Vec2.new(0.0, 0.0)
  70. defaultSpeed:setAngle(data.moveAngle)
  71. defaultSpeed = defaultSpeed * data.moveSpeed
  72.  
  73. local finalSpeed = defaultSpeed + data.lateralSpeedDir * data.lateralSpeed
  74.  
  75. bullet.moveSpeed = finalSpeed:length()
  76. bullet.moveAngle = finalSpeed:getAngle()
  77. end
  78.  
  79. // shotgun
  80.  
  81. function Shotgun.init(gun)
  82. gun.spreadAngle = 0.15
  83. gun.crosshairDistance = 350.0
  84. ShootTimer.initGun(gun, 0.85)
  85. end
  86.  
  87.  
  88. function Shotgun.onTick(gun)
  89. if gun.isTriggered then
  90. if ShootTimer.checkGun(gun) then
  91. for i = 1, 6 do
  92. local bullet = gun:addBullet()
  93. local particle = bullet:addTrailParticle("BulletTrailParticle", Vec2.new(0.0, 14.0), 15.0, {})
  94. particle.args.initialScale = 2.5
  95. particle.args.fadeOutSpeed = 1.6
  96. bullet.moveSpeed = bullet.moveSpeed * (math.random() * 0.3 + 0.7)
  97. end
  98. end
  99. end
  100. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement