Guest User

Untitled

a guest
Dec 15th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.89 KB | None | 0 0
  1. // GUN DEFINITIONS
  2. const dfltskl = exports.dfltskl = 7;
  3. exports.combineStats = function(arr) {
  4. try {
  5. // Build a blank array of the appropiate length
  6. let data = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1];
  7. arr.forEach(function(component) {
  8. for (let i=0; i<data.length; i++) {
  9. data[i] = data[i] * component[i];
  10. }
  11. });
  12. return {
  13. reload: data[0],
  14. recoil: data[1],
  15. shudder: data[2],
  16. size: data[3],
  17. health: data[4],
  18. damage: data[5],
  19. pen: data[6],
  20. speed: data[7],
  21. maxSpeed: data[8],
  22. range: data[9],
  23. density: data[10],
  24. spray: data[11],
  25. resist: data[12],
  26. };
  27. } catch(err) {
  28. console.log(err);
  29. console.log(JSON.stringify(arr));
  30. }
  31. };
  32. exports.skillSet = (() => {
  33. let config = require('../../../config.json');
  34. let skcnv = {
  35. rld: 0,
  36. pen: 1,
  37. str: 2,
  38. dam: 3,
  39. spd: 4,
  40.  
  41. shi: 5,
  42. atk: 6,
  43. hlt: 7,
  44. rgn: 8,
  45. mob: 9,
  46. };
  47. return args => {
  48. let skills = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  49. for (let s in args) {
  50. if (!args.hasOwnProperty(s)) continue;
  51. skills[skcnv[s]] = Math.round(config.MAX_SKILL * args[s]);
  52. }
  53. return skills;
  54. };
  55. })();
  56.  
  57. exports.g = { // Gun info here
  58. droneDominator: [1.25, 1, 1, 0.9, 1.25, 1.5, 1.5, 1.05, 0.9, 1, 2, 1, 1],
  59. destroyDominator: [4, 0, 1, 0.975, 8, 8, 6.25, 0.5, 1, 1.5, 1, 0.5, 1],
  60. gunnerDominator: [0.65, 0, 1, 0.5, 1, 1, 1.2, 1.0, 1, 1, 1, 1.25, 1],
  61. trapperDominator: [0.85, 0, 0.25, 1.1, 1, 1.2, 1.2, 0.7, 2, 2, 1, 0.5, 1],
  62. trap: [36, 1, 0.25, 0.6, 1, 0.75, 1, 5, 1, 1, 1, 15, 3],
  63. swarm: [18, 0.25, 0.05, 0.4, 1, 0.75, 1, 4, 1, 1, 1, 5, 1],
  64. drone: [50, 0.25, 0.1, 0.6, 1, 1, 1, 2, 1, 1, 1, 0.1, 1],
  65. factory: [60, 1, 0.1, 0.7, 1, 0.75, 1, 3, 1, 1, 1, 0.1, 1],
  66. basic: [18, 1.4, 0.1, 1, 1, 0.75, 1, 4.5, 1, 1, 1, 15, 1],
  67. /***************** RELOAD RECOIL SHUDDER SIZE HEALTH DAMAGE PEN SPEED MAX RANGE DENSITY SPRAY RESIST */
  68. blank: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  69. spam: [1.1, 1, 1, 1.05, 1, 1.1, 1, 0.9, 0.7, 1, 1, 1, 1.05],
  70. minion: [1, 1, 2, 1, 0.4, 0.4, 1.2, 1, 1, 0.75, 1, 2, 1],
  71. single: [1.05, 1, 1, 1, 1, 1, 1, 1.05, 1, 1, 1, 1, 1],
  72. sniper: [1.35, 1, 0.25, 1, 1, 0.8, 1.1, 1.5, 1.5, 1, 1.5, 0.2, 1.15],
  73. rifle: [0.8, 0.8, 1.5, 1, 0.8, 0.8, 0.9, 1, 1, 1, 1, 2, 1],
  74. assass: [1.65, 1, 0.25, 1, 1.15, 1, 1.1, 1.18, 1.18, 1, 3, 1, 1.3],
  75. hunter: [1.5, 0.7, 1, 0.95, 1, 0.9, 1, 1.1, 0.8, 1, 1.2, 1, 1.15],
  76. hunter2: [1, 1, 1, 0.9, 1, 0.5, 1.0, 1, 1, 1, 1.2, 1, 1.1],
  77. preda: [1.4, 0.8, 1, 0.8, 0.7, 0.9, 1.0, 0.9, 0.9, 1.5, 1, 1, 1],
  78. snake: [0.4, 1, 4, 1, 1.5, 0.9, 1.2, 0.2, 0.35, 1, 3, 6, 0.5],
  79. sidewind: [1.5, 2, 1, 1, 1.5, 0.9, 1, 0.15, 0.5, 1, 1, 1, 1],
  80. snakeskin: [0.6, 1, 2, 1, 0.5, 0.5, 1, 1, 0.2, 0.4, 1, 5, 1],
  81. mach: [0.5, 0.8, 1.7, 1, 0.7, 0.7, 1, 1, 0.8, 1, 1, 2.5, 1],
  82. blaster: [1, 1.2, 1.25, 1.1, 1.5, 1, 0.6, 0.8, 0.33, 0.6, 0.5, 1.5, 0.8],
  83. chain: [1.25, 1.33, 0.8, 1, 0.8, 1, 1.1, 1.25, 1.25, 1.1, 1.25, 0.5, 1.1],
  84. mini: [1.25, 0.6, 1, 0.8, 0.55, 0.45, 1.25, 1.33, 1, 1, 1.25, 0.5, 1.1],
  85. stream: [1.1, 0.6, 1, 1, 1, 0.65, 1, 1.24, 1, 1, 1, 1, 1],
  86. shotgun: [8, 0.4, 1, 1.5, 1, 0.4, 0.8, 1.8, 0.6, 1, 1.2, 1.2, 1],
  87. flank: [1, 1.2, 1, 1, 1.02, 0.81, 0.9, 1, 0.85, 1, 1.2, 1, 1],
  88. tri: [1, 0.9, 1, 1, 0.9, 1, 1, 0.8, 0.8, 0.6, 1, 1, 1],
  89. trifront: [1, 0.2, 1, 1, 1, 1, 1, 1.3, 1.1, 1.5, 1, 1, 1],
  90. thruster: [1, 1.5, 2, 1, 0.5, 0.5, 0.7, 1, 1, 1, 1, 0.5, 0.7],
  91. auto: /*pure*/ [1.8, 0.75, 0.5, 0.8, 0.9, 0.6, 1.2, 1.1, 1, 0.8, 1.3, 1, 1.25],
  92. five: [1.15, 1, 1, 1, 1, 1, 1, 1.05, 1.05, 1.1, 2, 1, 1],
  93. autosnipe: [1, 1, 1, 1.4, 2, 1, 1, 1, 1, 1, 1, 1, 1],
  94. /***************** RELOAD RECOIL SHUDDER SIZE HEALTH DAMAGE PEN SPEED MAX RANGE DENSITY SPRAY RESIST */
  95. pound: [2, 1.6, 1, 1, 1, 2, 1, 0.85, 0.8, 1, 1.5, 1, 1.15],
  96. destroy: [2.2, 1.8, 0.5, 1, 2, 2, 1.2, 0.65, 0.5, 1, 2, 1, 3],
  97. anni: [0.8, 1.25, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  98. hive: [1.5, 0.8, 1, 0.8, 0.7, 0.3, 1, 1, 0.6, 1, 1, 1, 1],
  99. arty: [1.2, 0.7, 1, 0.9, 1, 1, 1, 1.15, 1.1, 1, 1.5, 1, 1],
  100. mortar: [1.2, 1, 1, 1, 1.1, 1, 1, 0.8, 0.8, 1, 1, 1, 1],
  101. spreadmain: [0.78125, 0.25, 0.5, 1, 0.5, 1, 1, 1.5/0.78, 0.9/0.78,1, 1, 1, 1],
  102. spread: [1.5, 1, 0.25, 1, 1, 1, 1, 0.7, 0.7, 1, 1, 0.25, 1],
  103. skim: [1, 0.8, 0.8, 0.9, 1.35, 0.8, 2, 0.3, 0.3, 1, 1, 1, 1.1],
  104. twin: [1, 0.5, 0.9, 1, 0.9, 0.7, 1, 1, 1, 1, 1, 1.2, 1],
  105. bent: [1.1, 1, 0.8, 1, 0.9, 1, 0.8, 1, 1, 1, 0.8, 0.5, 1],
  106. triple: [1.2, 0.667, 0.9, 1, 0.85, 0.85, 0.9, 1, 1, 1, 1.1, 0.9, 0.95],
  107. quint: [1.5, 0.667, 0.9, 1, 1, 1, 0.9, 1, 1, 1, 1.1, 0.9, 0.95],
  108. dual: [2, 1, 0.8, 1, 1.5, 1, 1, 1.3, 1.1, 1, 1, 1, 1.25],
  109. double: [1, 1, 1, 1, 1, 0.9, 1, 1, 1, 1, 1, 1, 1],
  110. hewn: [1.25, 1.5, 1, 1, 0.9, 0.85, 1, 1, 0.9, 1, 1, 1, 1],
  111. puregunner: [1, 0.25, 1.5, 1.2, 1.35, 0.25, 1.25, 0.8, 0.65, 1, 1.5, 1.5, 1.2],
  112. machgun: [0.66, 0.8, 2, 1, 1, 0.75, 1, 1.2, 0.8, 1, 1, 2.5, 1],
  113. gunner: [1.25, 0.25, 1.5, 1.1, 1, 0.35, 1.35, 0.9, 0.8, 1, 1.5, 1.5, 1.2],
  114. power: [1, 1, 0.6, 1.2, 1, 1, 1.25, 2, 1.7, 1, 2, 0.5, 1.5],
  115. nail: [0.85, 2.5, 1, 0.8, 1, 0.7, 1, 1, 1, 1, 2, 1, 1],
  116. fast: [1, 1, 1, 1, 1, 1, 1, 1.2, 1, 1, 1, 1, 1],
  117. turret: [2, 1, 1, 1, 0.8, 0.6, 0.7, 1, 1, 1, 0.1, 1, 1],
  118. /***************** RELOAD RECOIL SHUDDER SIZE HEALTH DAMAGE PEN SPEED MAX RANGE DENSITY SPRAY RESIST */
  119. battle: [1, 1, 1, 1, 1.25, 1.15, 1, 1, 0.85, 1, 1, 1, 1.1],
  120. bees: [1.3, 1, 1, 1.4, 1, 1.5, 0.5, 3, 1.5, 1, 0.25, 1, 1],
  121. carrier: [1.5, 1, 1, 1, 1, 0.8, 1, 1.3, 1.2, 1.2, 1, 1, 1],
  122. hexatrap: [1.3, 1, 1.25, 1, 1, 1, 1, 0.8, 1, 0.5, 1, 1, 1],
  123. block: [1.1, 2, 0.1, 1.5, 2, 1, 1.25, 1.5, 2.5, 1.25, 1, 1, 1.25],
  124. construct: [1.3, 1, 1, 0.9, 1, 1, 1, 1, 1.1, 1, 1, 1, 1],
  125. boomerang: [0.8, 1, 1, 1, 0.5, 0.5, 1, 0.75, 0.75, 1.333, 1, 1, 1],
  126. over: [1.25, 1, 1, 0.85, 0.7, 0.8, 1, 1, 0.9, 1, 2, 1, 1],
  127. meta: [1.333, 1, 1, 1, 1, 0.667, 1, 1, 1, 1, 1, 1, 1],
  128. weak: [2, 1, 1, 1, 0.6, 0.6, 0.8, 0.5, 0.7, 0.25, 0.3, 1, 1],
  129. master: [3, 1, 1, 0.7, 0.4, 0.7, 1, 1, 1, 0.1, 0.5, 1, 1],
  130. sunchip: [5, 1, 1, 1.4, 0.5, 0.4, 0.6, 1, 1, 1, 0.8, 1, 1],
  131. babyfactory: [1.5, 1, 1, 1, 1, 1, 1, 1, 1.35, 1, 1, 1, 1],
  132. lowpower: [1, 1, 2, 1, 0.5, 0.5, 0.7, 1, 1, 1, 1, 0.5, 0.7],
  133. zerorecoil: [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  134. halfrecoil: [1, 0.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  135. morerecoil: [1, 1.15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  136. muchmorerecoil: [1, 1.35, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  137. lotsmorrecoil: [1, 1.8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  138. tonsmorrecoil: [1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  139. doublereload: [0.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  140. morereload: [0.75, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  141. halfreload: [2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  142. lessreload: [1.5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  143. threequartersrof: [1.333, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
  144. morespeed: [1, 1, 1, 1, 1, 1, 1, 1.3, 1.3, 1, 1, 1, 1],
  145. bitlessspeed: [1, 1, 1, 1, 1, 1, 1, 0.93, 0.93, 1, 1, 1, 1],
  146. slow: [1, 1, 1, 1, 1, 1, 1, 0.7, 0.7, 1, 1, 1, 1],
  147. halfspeed: [1, 1, 1, 1, 1, 1, 1, 0.5, 0.5, 1, 1, 1, 1],
  148. notdense: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.1, 1, 1],
  149. halfrange: [1, 1, 1, 1, 1, 1, 1, 1, 1, 0.5, 1, 1, 1],
  150. fake: [1, 1, 1, 0.00001, 0.0001, 1, 1, 0.00001, 2, 0, 1, 1, 1],
  151. /***************** RELOAD RECOIL SHUDDER SIZE HEALTH DAMAGE PEN SPEED MAX RANGE DENSITY SPRAY RESIST */
  152. op: [0.5, 1.3, 1, 1, 4, 4, 4, 3, 2, 1, 5, 2, 1],
  153. protectorswarm: [5, 0.000001, 1, 1, 100, 1, 1, 1, 1, 0.5, 5, 1, 10],
  154. };
  155.  
  156.  
  157. exports.gunCalcNames = {
  158. default: 0,
  159. bullet: 1,
  160. drone: 2,
  161. swarm: 3,
  162. fixedReload: 4,
  163. thruster: 5,
  164. sustained: 6,
  165. necro: 7,
  166. trap: 8,
  167. };
  168.  
  169. // ENTITY DEFINITIONS
  170. exports.genericEntity = {
  171. NAME: '',
  172. LABEL: 'Unknown Entity',
  173. TYPE: 'unknown',
  174. DAMAGE_CLASS: 0, // 0: def, 1: food, 2: tanks, 3: obstacles
  175. DANGER: 0,
  176. VALUE: 0,
  177. SHAPE: 0,
  178. COLOR: 16,
  179. INDEPENDENT: false,
  180. CONTROLLERS: ['doNothing'],
  181. HAS_NO_MASTER: false,
  182. MOTION_TYPE: 'glide', // motor, swarm, chase
  183. FACING_TYPE: 'toTarget', // turnWithSpeed, withMotion, looseWithMotion, toTarget, looseToTarget
  184. DRAW_HEALTH: false,
  185. DRAW_SELF: true,
  186. DAMAGE_EFFECTS: true,
  187. RATEFFECTS: true,
  188. MOTION_EFFECTS: true,
  189. INTANGIBLE: false,
  190. ACCEPTS_SCORE: true,
  191. GIVE_KILL_MESSAGE: false,
  192. CAN_GO_OUTSIDE_ROOM: false,
  193. HITS_OWN_TYPE: 'normal', // hard, repel, never, hardWithBuffer
  194. DIE_AT_LOW_SPEED: false,
  195. DIE_AT_RANGE: false,
  196. CLEAR_ON_MASTER_UPGRADE: false,
  197. PERSISTS_AFTER_DEATH: false,
  198. VARIES_IN_SIZE: false,
  199. HEALTH_WITH_LEVEL: true,
  200. CAN_BE_ON_LEADERBOARD: true,
  201. HAS_NO_RECOIL: false,
  202. AUTO_UPGRADE: 'none',
  203. BUFF_VS_FOOD: false,
  204. OBSTACLE: false,
  205. CRAVES_ATTENTION: false,
  206. NECRO: false,
  207. UPGRADES_TIER_1: [],
  208. UPGRADES_TIER_2: [],
  209. UPGRADES_TIER_3: [],
  210. SKILL: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
  211. LEVEL: 0,
  212. SKILL_CAP: [dfltskl, dfltskl, dfltskl, dfltskl, dfltskl, dfltskl, dfltskl, dfltskl, dfltskl, dfltskl],
  213. GUNS: [],
  214. MAX_CHILDREN: 0,
  215. BODY: {
  216. ACCELERATION: 1,
  217. SPEED: 0,
  218. HEALTH: 1,
  219. RESIST: 1,
  220. SHIELD: 0,
  221. REGEN: 0,
  222. DAMAGE: 1,
  223. PENETRATION: 1,
  224.  
  225. RANGE: 0,
  226. FOV: 1,
  227. DENSITY: 1,
  228. STEALTH: 1,
  229. PUSHABILITY: 1,
  230. HETERO: 2,
  231. },
  232. FOOD: {
  233. LEVEL: -1,
  234. },
  235. };
  236.  
  237. // FOOD
  238. exports.food = {
  239. TYPE: 'food',
  240. DAMAGE_CLASS: 1,
  241. CONTROLLERS: ['moreFoodWhenDie'],
  242. HITS_OWN_TYPE: 'repel',
  243. MOTION_TYPE: 'drift',
  244. FACING_TYPE: 'turnWithSpeed',
  245. VARIES_IN_SIZE: true,
  246. BODY: {
  247. ACCELERATION: 0.1,
  248. STEALTH: 30,
  249. PUSHABILITY: 1,
  250. },
  251. DAMAGE_EFFECTS: false,
  252. RATEFFECTS: false,
  253. HEALTH_WITH_LEVEL: false,
  254. };
  255. exports.base = base = {
  256. ACCEL: 1.6,
  257. SPEED: 5.25,
  258. HEALTH: 20,
  259. DAMAGE: 3,
  260. RESIST: 1,
  261. PENETRATION: 1.05,
  262. SHIELD: 8,
  263. REGEN: 0.025,
  264. FOV: 1,
  265. DENSITY: 0.5,
  266. };
  267. exports.genericTank = {
  268. LABEL: 'Unknown Class',
  269. TYPE: 'tank',
  270. DAMAGE_CLASS: 2,
  271. DANGER: 5,
  272. MOTION_TYPE: 'motor',
  273. FACING_TYPE: 'toTarget',
  274. SIZE: 12,
  275. MAX_CHILDREN: 0,
  276. DAMAGE_EFFECTS: false,
  277. CONTROLLERS: [],
  278. BODY: { // def
  279. ACCELERATION: base.ACCEL,
  280. SPEED: base.SPEED,
  281. HEALTH: base.HEALTH,
  282. DAMAGE: base.DAMAGE,
  283. PENETRATION: base.PENETRATION,
  284. SHIELD: base.SHIELD,
  285. REGEN: base.REGEN,
  286. FOV: base.FOV,
  287. DENSITY: base.DENSITY,
  288. PUSHABILITY: 0.9,
  289. HETERO: 3,
  290. },
  291. GUNS: [],
  292. TURRETS: [],
  293. GIVE_KILL_MESSAGE: true,
  294. DRAW_HEALTH: true,
  295. };
  296. exports.basePolygonDamage = 1;
  297. exports.basePolygonHealth = 1;
  298. exports.wepHealthFactor = wepHealthFactor = 0.5;
  299. exports.wepDamageFactor = wepDamageFactor = 1.5;
  300. exports.bullet = {
  301. LABEL: 'Bullet',
  302. TYPE: 'bullet',
  303. ACCEPTS_SCORE: false,
  304. BODY: {
  305. PENETRATION: 1,
  306. SPEED: 3.75,
  307. RANGE: 90,
  308. DENSITY: 1.25,
  309. HEALTH: 0.33 * wepHealthFactor,
  310. DAMAGE: 4 * wepDamageFactor,
  311. PUSHABILITY: 0.3,
  312. },
  313. FACING_TYPE: 'smoothWithMotion',
  314. CAN_GO_OUTSIDE_ROOM: true,
  315. HITS_OWN_TYPE: 'never',
  316. // DIE_AT_LOW_SPEED: true,
  317. DIE_AT_RANGE: true,
  318. };
  319. exports.trap = {
  320. LABEL: 'Thrown Trap',
  321. TYPE: 'trap',
  322. ACCEPTS_SCORE: false,
  323. SHAPE: -3,
  324. MOTION_TYPE: 'glide', // def
  325. FACING_TYPE: 'turnWithSpeed',
  326. HITS_OWN_TYPE: 'push',
  327. DIE_AT_RANGE: true,
  328. BODY: {
  329. HEALTH: 1 * wepHealthFactor,
  330. DAMAGE: 2 * wepDamageFactor,
  331. RANGE: 450,
  332. DENSITY: 2.5,
  333. RESIST: 2.5,
  334. SPEED: 0,
  335. },
  336. };
  337. exports.drone = {
  338. LABEL: 'Drone',
  339. TYPE: 'drone',
  340. ACCEPTS_SCORE: false,
  341. DANGER: 2,
  342. CONTROL_RANGE: 0,
  343. SHAPE: 3,
  344. MOTION_TYPE: 'chase',
  345. FACING_TYPE: 'smoothToTarget',
  346. CONTROLLERS: [
  347. 'nearestDifferentMaster',
  348. 'canRepel',
  349. 'mapTargetToGoal',
  350. 'hangOutNearMaster'
  351. ],
  352. AI: { BLIND: true, },
  353. BODY: {
  354. PENETRATION: 1.2,
  355. PUSHABILITY: 0.6,
  356. ACCELERATION: 0.05,
  357. HEALTH: 0.6 * wepHealthFactor,
  358. DAMAGE: 1.25 * wepDamageFactor,
  359. SPEED: 3.8,
  360. RANGE: 200,
  361. DENSITY: 0.03,
  362. RESIST: 1.5,
  363. FOV: 0.8,
  364. },
  365. HITS_OWN_TYPE: 'hard',
  366. DRAW_HEALTH: false,
  367. CLEAR_ON_MASTER_UPGRADE: true,
  368. BUFF_VS_FOOD: true,
  369. };
Add Comment
Please, Sign In to add comment