ForbodingAngel

Untitled

Aug 27th, 2015
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.63 KB | None | 0 0
  1. local unitName = "ufo"
  2.  
  3. unitDef = {
  4. --Internal settings
  5. objectName = "ufo.dae",
  6. name = "UFO",
  7. unitName = unitName,
  8. script = unitName .. ".lua",
  9. sfxtypes = {
  10. explosiongenerators = {
  11. [[custom:ufoblast]],
  12. },
  13. },
  14.  
  15. -- Movement
  16. acceleration = 0.9,
  17. --airHoverFactor = 0.1, -- How much the unit moves while hovering on the spot
  18. airHoverFactor = -1, --allows it to land
  19. brakeRate = 0.6,
  20. maxVelocity = 400,
  21. cruiseAlt = 350,
  22. verticalSpeed = 20,
  23. turnRate = 0, -- Implement turning in script
  24. footprintX = 2,
  25. footprintZ = 2,
  26.  
  27. useSmoothmesh = false, -- Broken, do not use it.
  28. bankingAllowed = false,
  29. canFly = true,
  30. floater = true,
  31. hoverAttack = true,
  32. canSubmerge = false,
  33. turnInPlaceAngleLimit = 180,
  34.  
  35. customParams = {
  36. modelradius = "18",
  37. midposoffset = "0 0 0",
  38. },
  39.  
  40. -- Abiltiies
  41. firestate = 0,
  42. builder = false,
  43. canAttack = true,
  44. canGuard = true,
  45. canMove = true,
  46. canPatrol = true,
  47. canStop = true,
  48. collide = true,
  49. upright = true,
  50.  
  51. category = "ufo",
  52.  
  53. -- Hitbox
  54. collisionVolumeOffsets = "0 0 0",
  55. collisionVolumeScales = "180 20 180",
  56. collisionVolumeType = "cylY",
  57.  
  58. -- Attributes
  59. mass = 200,
  60. maxDamage = 2000,
  61. -- small auto heal; additionally we'll use shields?
  62. autoHeal = 5,
  63. idleAutoHeal = 0,
  64. idleTime = 1,
  65.  
  66. -- Economy
  67. buildCostEnergy = 100,
  68. buildCostMetal = 100,
  69. buildTime = 100,
  70.  
  71. weapons = {
  72. {
  73. def = "incendiaryBeamLaser",
  74. onlyTargetCategory = "land",
  75. },
  76. {
  77. def = "incendiaryBeamLasersilent",
  78. onlyTargetCategory = "land",
  79. },
  80. {
  81. def = "incendiaryBeamLasersilent",
  82. onlyTargetCategory = "land",
  83. },
  84. {
  85. def = "incendiaryBeamLasersilent",
  86. onlyTargetCategory = "land",
  87. },
  88. {
  89. def = "gravityBeam",
  90. onlyTargetCategory = "land",
  91. },
  92. {
  93. def = "gravityBeamsilent",
  94. onlyTargetCategory = "land",
  95. },
  96. {
  97. def = "gravityBeamsilent",
  98. onlyTargetCategory = "land",
  99. },
  100. {
  101. def = "gravityBeamsilent",
  102. onlyTargetCategory = "land",
  103. },
  104. {
  105. def = "independenceDayGun",
  106. onlyTargetCategory = "land",
  107. },
  108. {
  109. def = "independenceDayGunsilent",
  110. onlyTargetCategory = "land",
  111. },
  112. {
  113. def = "independenceDayGunsilent",
  114. onlyTargetCategory = "land",
  115. },
  116. {
  117. def = "independenceDayGunsilent",
  118. onlyTargetCategory = "land",
  119. },
  120. {
  121. def = "pointDefense",
  122. },
  123. {
  124. def = "pointDefensesilent",
  125. },
  126. {
  127. def = "pointDefensesilent",
  128. },
  129. {
  130. def = "pointDefensesilent",
  131. },
  132. {
  133. def = "blackHoleGun",
  134. onlyTargetCategory = "land",
  135. },
  136. {
  137. def = "empBomb",
  138. onlyTargetCategory = "land",
  139. },
  140. {
  141. def = "pulseLaser",
  142. onlyTargetCategory = "land",
  143. },
  144. {
  145. def = "shield",
  146. },
  147. },
  148.  
  149. weaponDefs = {
  150. incendiaryBeamLaser = {
  151. name = "Incendiary Beam Laser",
  152. areaOfEffect = 128,
  153. avoidFeature = false,
  154. avoidFriendly = false,
  155. avoidNeutral = false,
  156. avoidGround = false,
  157.  
  158. collideFriendly = false,
  159.  
  160. beamTime = 0.01,
  161. beamTtl = 1,
  162. coreThickness = 0.2,
  163. craterBoost = 0,
  164. craterMult = 0,
  165.  
  166. customParams = {
  167. area_damage = 1,
  168. area_damage_radius = 40,
  169. area_damage_dps = 200,
  170. area_damage_duration = 5,
  171. area_damage_range_falloff = 0.1,
  172. area_damage_time_falloff = 0.6,
  173. },
  174.  
  175. damage = {
  176. default = 2,
  177. },
  178. explosionGenerator = [[custom:fireflash]],
  179. interceptedByShieldType = 1,
  180. largeBeamLaser = true,
  181. laserFlareSize = 0.1,
  182. minIntensity = 1,
  183. noSelfDamage = true,
  184. range = 10000,
  185. reloadtime = 0.01,
  186. rgbColor = "0.6 0.1 0.1",
  187. scrollSpeed = 10,
  188. soundTrigger = true,
  189. sweepfire = false,
  190. thickness = 20,
  191. tileLength = 10000,
  192. tolerance = 5000,
  193. turret = true,
  194. weaponType = "BeamLaser",
  195. weaponVelocity = 100,
  196. pulseSpeed = 0.1,
  197. soundstart = "firemono.wav",
  198. },
  199. incendiaryBeamLasersilent = {
  200. name = "Incendiary Beam Laser",
  201. areaOfEffect = 128,
  202. avoidFeature = false,
  203. avoidFriendly = false,
  204. avoidNeutral = false,
  205. avoidGround = false,
  206.  
  207. collideFriendly = false,
  208.  
  209. beamTime = 0.01,
  210. beamTtl = 1,
  211. coreThickness = 0.2,
  212. craterBoost = 0,
  213. craterMult = 0,
  214.  
  215. customParams = {
  216. area_damage = 1,
  217. area_damage_radius = 40,
  218. area_damage_dps = 200,
  219. area_damage_duration = 5,
  220. area_damage_range_falloff = 0.1,
  221. area_damage_time_falloff = 0.6,
  222. },
  223.  
  224. damage = {
  225. default = 2,
  226. },
  227. explosionGenerator = [[custom:fireflash]],
  228. interceptedByShieldType = 1,
  229. largeBeamLaser = true,
  230. laserFlareSize = 0.1,
  231. minIntensity = 1,
  232. noSelfDamage = true,
  233. range = 10000,
  234. reloadtime = 0.01,
  235. rgbColor = "0.6 0.1 0.1",
  236. scrollSpeed = 10,
  237. soundTrigger = true,
  238. sweepfire = false,
  239. thickness = 20,
  240. tileLength = 10000,
  241. tolerance = 5000,
  242. turret = true,
  243. weaponType = "BeamLaser",
  244. weaponVelocity = 100,
  245. pulseSpeed = 0.1,
  246. },
  247. gravityBeam = {
  248. name = "Gravity Beam",
  249. areaOfEffect = 400,
  250. avoidFeature = false,
  251. avoidFriendly = false,
  252. avoidNeutral = false,
  253. avoidGround = false,
  254. beamTime = 0.01,
  255. beamTtl = 1,
  256. coreThickness = 0,
  257. craterBoost = 0,
  258. craterMult = 0,
  259.  
  260. customParams = {
  261. impulse = "-30",
  262. normaldamage = "0",
  263. },
  264.  
  265. damage = {
  266. default = 2,
  267. },
  268.  
  269. interceptedByShieldType = 1,
  270. largeBeamLaser = true,
  271. laserFlareSize = 0,
  272. minIntensity = 1,
  273. noSelfDamage = true,
  274. range = 10000,
  275. reloadtime = 0.02,
  276. rgbColor = "0.2 0.2 0.2",
  277. scrollSpeed = 10,
  278. soundTrigger = true,
  279. sweepfire = false,
  280. thickness = 7,
  281. tileLength = 100,
  282. tolerance = 5000,
  283. turret = true,
  284. weaponType = "BeamLaser",
  285. weaponVelocity = 500,
  286. soundstart = "firemono.wav",
  287. },
  288. gravityBeamsilent = {
  289. name = "Gravity Beam",
  290. areaOfEffect = 400,
  291. avoidFeature = false,
  292. avoidFriendly = false,
  293. avoidNeutral = false,
  294. avoidGround = false,
  295. beamTime = 0.01,
  296. beamTtl = 1,
  297. coreThickness = 0,
  298. craterBoost = 0,
  299. craterMult = 0,
  300.  
  301. customParams = {
  302. impulse = "-30",
  303. normaldamage = "0",
  304. },
  305.  
  306. damage = {
  307. default = 2,
  308. },
  309.  
  310. interceptedByShieldType = 1,
  311. largeBeamLaser = true,
  312. laserFlareSize = 0,
  313. minIntensity = 1,
  314. noSelfDamage = true,
  315. range = 10000,
  316. reloadtime = 0.02,
  317. rgbColor = "0.2 0.2 0.2",
  318. scrollSpeed = 10,
  319. soundTrigger = true,
  320. sweepfire = false,
  321. thickness = 7,
  322. tileLength = 100,
  323. tolerance = 5000,
  324. turret = true,
  325. weaponType = "BeamLaser",
  326. weaponVelocity = 500,
  327. },
  328. pointDefense = {
  329. name = "Point Defense Laser",
  330.  
  331. avoidFeature = false,
  332. avoidFriendly = false,
  333. avoidNeutral = false,
  334. avoidGround = false,
  335. beamTime = 0.01,
  336. beamTtl = 10,
  337. burnBlow = true,
  338. coreThickness = 0,
  339. craterBoost = 0,
  340. craterMult = 0,
  341.  
  342. collisionsize = 5,
  343. interceptor = 1,
  344. coverage = 400,
  345. interceptsolo = true,
  346. accuracy = 0,
  347. predictboost = 0,
  348.  
  349. damage = {
  350. default = 2,
  351. },
  352.  
  353. interceptedByShieldType = 1,
  354. largeBeamLaser = true,
  355. laserFlareSize = 0,
  356. minIntensity = 1,
  357. noSelfDamage = true,
  358. range = 10000,
  359. reloadtime = 20,
  360. rgbColor = "0.2 1.0 0.2",
  361. scrollSpeed = 10,
  362. soundTrigger = true,
  363. sweepfire = false,
  364. thickness = 7,
  365. tileLength = 100,
  366. tolerance = 5000,
  367. turret = true,
  368. weaponType = "BeamLaser",
  369. weaponVelocity = 500,
  370. soundstart = "pointDefense.wav",
  371. },
  372. pointDefensesilent = {
  373. name = "Point Defense Laser",
  374.  
  375. avoidFeature = false,
  376. avoidFriendly = false,
  377. avoidNeutral = false,
  378. avoidGround = false,
  379. beamTime = 0.01,
  380. beamTtl = 10,
  381. burnBlow = true,
  382. coreThickness = 0,
  383. craterBoost = 0,
  384. craterMult = 0,
  385.  
  386. collisionsize = 5,
  387. interceptor = 1,
  388. coverage = 400,
  389. interceptsolo = true,
  390. accuracy = 0,
  391. predictboost = 0,
  392.  
  393. damage = {
  394. default = 2,
  395. },
  396.  
  397. interceptedByShieldType = 1,
  398. largeBeamLaser = true,
  399. laserFlareSize = 0,
  400. minIntensity = 1,
  401. noSelfDamage = true,
  402. range = 10000,
  403. reloadtime = 20,
  404. rgbColor = "0.2 1.0 0.2",
  405. scrollSpeed = 10,
  406. soundTrigger = true,
  407. sweepfire = false,
  408. thickness = 7,
  409. tileLength = 100,
  410. tolerance = 5000,
  411. turret = true,
  412. weaponType = "BeamLaser",
  413. weaponVelocity = 500,
  414. },
  415. pulseLaser = {
  416. name = "Pulse laser",
  417. areaOfEffect = 128,
  418. avoidFeature = false,
  419. avoidFriendly = false,
  420. avoidNeutral = false,
  421. avoidGround = false,
  422. coreThickness = 0,
  423. craterBoost = 0,
  424. craterMult = 0,
  425.  
  426. damage = {
  427. default = 200,
  428. },
  429.  
  430. explosionGenerator = [[custom:pulseflash]],
  431. interceptedByShieldType = 1,
  432. noSelfDamage = true,
  433. range = 10000,
  434. reloadtime = 0.01,
  435. rgbColor = "0.2 0.5 0.2",
  436. soundTrigger = true,
  437. thickness = 5,
  438. tolerance = 5000,
  439. turret = true,
  440. weaponType = "LaserCannon",
  441. weaponVelocity = 2500,
  442. soundstart = "pulse.wav",
  443. },
  444. pulseLasersilent = {
  445. name = "Pulse laser",
  446. areaOfEffect = 128,
  447. avoidFeature = false,
  448. avoidFriendly = false,
  449. avoidNeutral = false,
  450. avoidGround = false,
  451. coreThickness = 0,
  452. craterBoost = 0,
  453. craterMult = 0,
  454.  
  455. damage = {
  456. default = 200,
  457. },
  458.  
  459. explosionGenerator = [[custom:pulseflash]],
  460. interceptedByShieldType = 1,
  461. noSelfDamage = true,
  462. range = 10000,
  463. reloadtime = 0.01,
  464. rgbColor = "0.2 0.5 0.2",
  465. soundTrigger = true,
  466. thickness = 5,
  467. tolerance = 5000,
  468. turret = true,
  469. weaponType = "LaserCannon",
  470. weaponVelocity = 2500,
  471. },
  472. blackHoleGun = {
  473. name = "Black Hole",
  474. areaOfEffect = 500,
  475. avoidFeature = false,
  476. avoidFriendly = false,
  477. avoidNeutral = false,
  478. avoidGround = false,
  479. collideFeature = false,
  480. collideFriendly = false,
  481. craterBoost = 10,
  482. craterMult = 2,
  483.  
  484. customParams = {
  485. falldamageimmunity = [[120]],
  486.  
  487. area_damage = 1,
  488. area_damage_radius = 250,
  489. area_damage_dps = 7000,
  490. area_damage_is_impulse = 1,
  491. area_damage_duration = 8,
  492. area_damage_range_falloff = 0.4,
  493. area_damage_time_falloff = 0.6,
  494. },
  495.  
  496. impulseBoost = 150,
  497. impulseFactor = -2.5,
  498.  
  499. damage = {
  500. default = 0,
  501. },
  502.  
  503. alphaDecay = 0.2,
  504. size = 50,
  505. interceptedByShieldType = 1,
  506. noSelfDamage = true,
  507. range = 10000,
  508. reloadtime = 1,
  509. rgbColor = "0 0 0",
  510. soundTrigger = true,
  511. tolerance = 5000,
  512. turret = true,
  513. weaponType = "Cannon",
  514. weaponVelocity = 4500,
  515. soundstart = "blackHole.wav",
  516. },
  517. empBomb = {
  518. name = "EMP Bomb",
  519. areaOfEffect = 128,
  520. avoidFeature = false,
  521. avoidFriendly = false,
  522. avoidNeutral = false,
  523. avoidGround = false,
  524. craterBoost = 0,
  525. craterMult = 0,
  526.  
  527. damage = {
  528. default = 20,
  529. },
  530.  
  531. alphaDecay = 0.2,
  532. size = 15,
  533. interceptedByShieldType = 1,
  534. noSelfDamage = true,
  535. range = 10000,
  536. reloadtime = 5,
  537. rgbColor = "0 0 0.7",
  538. soundTrigger = true,
  539. tolerance = 5000,
  540. turret = true,
  541. weaponType = "Cannon",
  542. weaponVelocity = 4500,
  543. --soundstart = "pulse.wav",
  544. },
  545. independenceDayGun = {
  546. name = "Independence Day Gun",
  547. cameraShake = 400,
  548. areaOfEffect = 128,
  549. avoidFeature = false,
  550. avoidFriendly = false,
  551. avoidNeutral = false,
  552. avoidGround = false,
  553. beamTime = 0.01,
  554. beamTtl = 1,
  555. coreThickness = 0.3,
  556. craterBoost = 20,
  557. craterMult = 15,
  558.  
  559. damage = {
  560. default = 10000,
  561. },
  562. -- This makes it much less epic, but using the default makes FPS drop because of the smoke
  563. explosionGenerator = [[custom:genericshellexplosion-large-blue]],
  564. interceptedByShieldType = 1,
  565. largeBeamLaser = true,
  566. laserFlareSize = 0.1,
  567. minIntensity = 1,
  568. noSelfDamage = true,
  569. range = 10000,
  570. reloadtime = 0.01,
  571. rgbColor = "0.2 0.3 0.5",
  572. scrollSpeed = 10,
  573. soundTrigger = true,
  574. sweepfire = false,
  575. thickness = 200,
  576. tileLength = 10000,
  577. tolerance = 5000,
  578. turret = true,
  579. weaponType = "BeamLaser",
  580. weaponVelocity = 100,
  581. pulseSpeed = 0.1,
  582. soundstart = "godgun.wav",
  583. },
  584. independenceDayGunsilent = {
  585. name = "Independence Day Gun",
  586. cameraShake = 400,
  587. areaOfEffect = 128,
  588. avoidFeature = false,
  589. avoidFriendly = false,
  590. avoidNeutral = false,
  591. avoidGround = false,
  592. beamTime = 0.01,
  593. beamTtl = 1,
  594. coreThickness = 0.3,
  595. craterBoost = 20,
  596. craterMult = 15,
  597.  
  598. damage = {
  599. default = 10000,
  600. },
  601. -- This makes it much less epic, but using the default makes FPS drop because of the smoke
  602. explosionGenerator = [[custom:genericshellexplosion-large-blue]],
  603. interceptedByShieldType = 1,
  604. largeBeamLaser = true,
  605. laserFlareSize = 0.1,
  606. minIntensity = 1,
  607. noSelfDamage = true,
  608. range = 10000,
  609. reloadtime = 0.01,
  610. rgbColor = "0.2 0.3 0.5",
  611. scrollSpeed = 10,
  612. soundTrigger = true,
  613. sweepfire = false,
  614. thickness = 200,
  615. tileLength = 10000,
  616. tolerance = 5000,
  617. turret = true,
  618. weaponType = "BeamLaser",
  619. weaponVelocity = 100,
  620. pulseSpeed = 0.1,
  621. },
  622. shield = {
  623. name = "Shield",
  624.  
  625. damage = {
  626. default = 10,
  627. },
  628.  
  629. exteriorShield = true,
  630. shieldAlpha = 1.0,
  631. shieldBadColor = [[1 0.1 0.1]],
  632. shieldGoodColor = [[0.1 0.1 1]],
  633. shieldInterceptType = 3,
  634. shieldPower = 1000,
  635. shieldPowerRegen = 0, -- we'll do regen in a gadget
  636. shieldPowerRegenEnergy = 0,
  637. shieldRadius = 120,
  638. shieldRepulser = false,
  639. shieldStartingPower = 1000,
  640. smartShield = true,
  641. smart = true,
  642. -- texture1 = [[shield3mist]],
  643. visibleShield = true,
  644. visibleShieldHitFrames = 20,
  645. visibleShieldRepulse = true,
  646. weaponType = "Shield",
  647. },
  648. },
  649. }
  650.  
  651. return lowerkeys({[unitName] = unitDef})
Advertisement
Add Comment
Please, Sign In to add comment