Advertisement
Guest User

Untitled

a guest
Sep 28th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.02 KB | None | 0 0
  1. global _;
  2.  
  3. while(
  4. (_==null?[
  5. debug("Initialisation générale")
  6. setWeapon(WEAPON_GRENADE_LAUNCHER)
  7. _=["":0]
  8. //Arguments, adresse de sortie et résultat de la fonction getReachableCells
  9. _["arg_acc"]=null
  10. _["end_acc"]=null
  11. _["res_acc"]=null
  12. ]&&0:0)
  13. ||
  14. //Création de la fonction
  15. //Fonction getReachableCells
  16. ((_[""]==="fct_acc_init")?[
  17. _["res_acc"]=[_["arg_acc"][0]]
  18. _[0]=0
  19. _[1]=1
  20. _[2]=1
  21. _[3]=_["arg_acc"][1]
  22. _[4]=[_["arg_acc"][0] : 0]
  23. _[5]=null
  24. _[""]="fct_acc_main"
  25. ]&&0:0)
  26. ||
  27. ((_[""]==="fct_acc_main")?
  28. [
  29. (_[3]!==0?
  30. (_[0] < _[1]?[
  31. _["X"]=getCellX(_["res_acc"][_[0]]),
  32. _["Y"]=getCellY(_["res_acc"][_[0]]),
  33. (_[5] = getCellFromXY(_["X"]+1, _["Y"]))===null || isObstacle(_[5]) || _[4][_[5]]!==null ?null:[push(_["res_acc"], _[5]) _[4][_[5]]=1+_["arg_acc"][1]-_[3] _[2]++],
  34. (_[5] = getCellFromXY(_["X"], _["Y"]+1))===null || isObstacle(_[5]) || _[4][_[5]]!==null ?null:[push(_["res_acc"], _[5]) _[4][_[5]]=1+_["arg_acc"][1]-_[3] _[2]++],
  35. (_[5] = getCellFromXY(_["X"]-1, _["Y"]))===null || isObstacle(_[5]) || _[4][_[5]]!==null ?null:[push(_["res_acc"], _[5]) _[4][_[5]]=1+_["arg_acc"][1]-_[3] _[2]++],
  36. (_[5] = getCellFromXY(_["X"], _["Y"]-1))===null || isObstacle(_[5]) || _[4][_[5]]!==null ?null:[push(_["res_acc"], _[5]) _[4][_[5]]=1+_["arg_acc"][1]-_[3] _[2]++],
  37. _[0]+=1
  38. ]
  39. :
  40. [
  41. _[3]--
  42. _[1]=_[2]
  43. ]
  44. )
  45. |1:0)
  46. ||(_[""]=_["end_acc"])|1]
  47. :0
  48. )
  49. //Fin de la fonction
  50. ||
  51. //Initialisation : calcul des variables utiles.
  52. ((_[""]===0)? [
  53. debug("Initialisation des variables")
  54. _[""]++
  55. _["me"]=getLeek()
  56. _["en"]=isSummon(getNearestEnemy())?getSummoner(getNearestEnemy()):getNearestEnemy()
  57. _["myC"]=getCell()
  58. _["enC"]=getCell(_["en"])
  59. _["myStats"]=["life" : getLife(),"MP" : getMP(), "TP":getTP(), "str" : getStrength(), "agi" : getAgility(), "wis" : getWisdom(), "res" : getResistance(), "sci" : getScience(), "mag": getMagic(), "aS" : getAbsoluteShield(), "rS" :getRelativeShield()]
  60. _["myEff"] = getLaunchedEffects()
  61. _["enStats"]=["life": getLife(_["en"]), "MP" : getMP(_["en"]), "TP":getTP(_["en"]), "str" : getStrength(_["en"]), "agi" : getAgility(_["en"]), "wis" : getWisdom(_["en"]), "res" : getResistance(_["en"]), "sci" : getScience(_["en"]), "mag": getMagic(_["en"]), "aS" : getAbsoluteShield(_["en"]), "rS" :getRelativeShield(_["en"])]
  62. _["enEff"] = getLaunchedEffects(_["en"])
  63. _["actions"]=[]
  64. _["dist"]= getCellDistance(_["myC"], _["enC"])
  65. _["chip_rockfall_1"]=201
  66. _["chip_rockfall_2"]=202
  67. _["weapon_LG_1"]=203
  68. _["weapon_LG_2"]=204
  69. ]&&0:0)
  70.  
  71. ||
  72. //Calcul des cases accessibles
  73. ((_[""]===1)?[
  74. debug("Calcul de myAcc")
  75. _["arg_acc"]=[_["myC"],_["myStats"]["MP"]]
  76. _["end_acc"]=2
  77. _["res_acc"]=null
  78. _[""]="fct_acc_init"//Appel à la fonction getReachableCells
  79. ]|1:0)
  80. ||
  81. ((_[""]===2)?[
  82. _["myAcc"]=_["res_acc"]
  83. _["myAccAsso"]=_[4]
  84. _[""]++
  85. ]&&0:0)
  86. ||
  87. ((_[""]===3)?[
  88. debug("Calcul de enAcc")
  89. _["arg_acc"]=[_["enC"],_["enStats"]["MP"]]
  90. _["end_acc"]=4
  91. _["res_acc"]=null
  92. _[""]="fct_acc_init"
  93. ]|1:0)
  94. ||
  95. ((_[""]===4)?[
  96. _["enAcc"]=_["res_acc"]
  97. _["enAccAsso"]=_[4]
  98. _[""]++
  99. ]&&0:0)
  100. ||
  101. //Map des dégats
  102. ((_[""]===5)?[
  103. debug("Calcul des maps de dégats")
  104. _[0]=count(_["myAcc"])
  105. _[1]=count(_["enAcc"])
  106. _[2]=0
  107. _[3]=0
  108. _[4]=getWeapons(_["en"])
  109. _[5]=getChips(_["en"])
  110. _[6]=count(_[4])
  111. _[7]=count(_[5])
  112. _[8]=0
  113. _[9]=[]//Tableau de ses armes et chips de dégats [item : [damage, minRange, maxRange]]
  114. _["enDamItems"]=_[4]//Tableau des ses armes et chips de dégats [item] (tableau simple)
  115. _["mapWeapons"]=[]
  116. _["mapDegats"]=[]
  117. _["l"]=[]
  118. _[""]++
  119. ]&&0:0
  120. )
  121. ||
  122. ((_[""]===6)?
  123. (_[8]<_[6]?[
  124. _[10]=getWeaponEffects(_[4][_[8]])
  125. _[9][_[4][_[8]]]=[max((_[10][0][1]+_[10][0][2])/2 *(1+_["enStats"]["str"]/100)*(1-_["myStats"]["rS"]/100)-_["myStats"]["aS"],0),getWeaponMinRange(_[4][_[8]]),getWeaponMaxRange(_[4][_[8]]), getWeaponCost(_[4][_[8]])]
  126. _[8]++
  127. ]:[
  128. _[8]=0
  129. _[""]++
  130. ])|1:0
  131. )
  132. ||
  133. ((_[""]===7)?
  134. (_[8]<_[7]?[
  135. _[10]=getChipEffects(_[5][_[8]])
  136. _[10][0][0]!==EFFECT_DAMAGE||getCooldown(_[5][_[8]], _["en"])!==0?null:[
  137. _[9][_[5][_[8]]]=[max((_[10][0][1]+_[10][0][2])/2 *(1+_["enStats"]["str"]/100)*(1-_["myStats"]["rS"]/100)-_["myStats"]["aS"],0),getChipMinRange(_[5][_[8]]),getChipMaxRange(_[5][_[8]]), getChipCost(_[5][_[8]])]
  138. push(_["enDamItems"], _[5][_[8]])
  139. ]
  140. _[8]++
  141. ]:[
  142. _[""]++
  143. _[8]=0
  144. _[6]=count(_["enDamItems"])
  145. ])|1:0
  146. )
  147. ||
  148. ((_[""]===8)?
  149. (_[2]<_[0]?
  150. [_["mapWeapons"][_["myAcc"][_[2]]]===null?[_["mapWeapons"][_["myAcc"][_[2]]]=[] _["l"][_[2]]=[]]:null
  151. _[8]<_[6]?
  152. [_["mapDegats"][_["myAcc"][_[2]]][_[8]]===null?_["mapWeapons"][_["myAcc"][_[2]]][_[8]]=40:null
  153. _[3]<_[1]?[
  154. (((_["l"][_[2]][_[3]]===null?(_["l"][_[2]][_[3]]=lineOfSight(_["myAcc"][_[2]], _["enAcc"][_[3]],[_["me"],_["en"]])):_["l"][_[2]][_[3]])||_["enDamItems"][_[8][0]]===CHIP_SPARK)
  155. && getCellDistance(_["myAcc"][_[2]], _["enAcc"][_[3]])<=_[9][_["enDamItems"][_[8]]][2]
  156. && getCellDistance(_["myAcc"][_[2]], _["enAcc"][_[3]])>=_[9][_["enDamItems"][_[8]]][1]
  157. && (isInlineWeapon(_["enDamItems"][_[8]])?isOnSameLine(_["myAcc"][_[2]], _["enAcc"][_[3]]):1))?[
  158. _["mapWeapons"][_["myAcc"][_[2]]][_[8]]=_["enAccAsso"][_["enAcc"][_[3]]]
  159. _[8]++
  160. _[3]=0
  161. ]:[
  162. _[3]++
  163. ]
  164. ]:[
  165. _[8]++
  166. _[3]=0
  167. ]
  168. ]
  169. :[
  170. _[2]++
  171. _[8]=0
  172. ]]
  173. |1:0)
  174. ||((_[""]++)|1):0)
  175.  
  176. ||
  177. (_[""]===9?[
  178. (_[8]<4?[ //Pourquoi 8 ? Parce que _[8] vaut déjà 0, c'est tout !
  179. _["mapDegats"][_["enStats"]["MP"]-_[8]]=[]
  180. _[8]++
  181. ]:[
  182. _[8]=0
  183. _[3]=0
  184. _[2]=0
  185. _[""]++
  186. ]
  187. )
  188. ]|1:0)
  189. ||
  190. (_[""]===10?[
  191. (_[3]<4?
  192. (_[2]<_[0]?
  193. (_[8]<_[6]?[
  194. (_["mapWeapons"][_["myAcc"][_[2]]][_[8]]<=_["enStats"]["MP"]-_[3] && ((_[12]=(isWeapon(_["enDamItems"][_[8]])||getChipCooldown(_["enDamItems"][_[8]])?floor((getTP(_["en"])-(isWeapon(_["enDamItems"][_[8]])&&getWeapon(_["en"])!==_["enDamItems"][_[8]]?1:0))/_[9][_["enDamItems"][_[8]]][3]):1)* _[9][_["enDamItems"][_[8]]][0])>_["mapDegats"][_["enStats"]["MP"]-_[3]][_["myAcc"][_[2]]] || _["mapDegats"][_["enStats"]["MP"]-_[3]][_["myAcc"][_[2]]] ===null)?[
  195. _["mapDegats"][_["enStats"]["MP"]-_[3]][_["myAcc"][_[2]]]=_[12]
  196. ]
  197. :
  198. null),
  199. _[8]++
  200. //debug("J'ai bien pris l'arme " + _["enDamItems"][_[8]] + " en compte sur la case " + _["myAcc"][_[2]])
  201. ]:[
  202. _[8]=0
  203. _[2]++
  204. ])
  205. :[
  206. _[2]=0
  207. ])
  208. :[
  209. _[3]=0
  210. _[""]++
  211. ]
  212. )
  213. ]|1:0)
  214. ||
  215. //Cases de tir
  216. (_[""]===11?[
  217. _["casesTir"]=[]
  218. _[0]=getWeapons()
  219. _[1]=getChips()
  220. _["myDamItems"]=[]
  221. _["myDamItemsAsso"]=[]
  222. _[10]=count(_[0])
  223. _[11]=count(_[1])
  224. _[20]=0
  225. _[21]=0
  226. _[""]++
  227. ]&&0:0)
  228. ||
  229.  
  230. //Cases de tir pour les trucs pas en zone
  231. (_[""]===12?[
  232. (_[20]<_[10]?[
  233. getWeaponArea(_[0][_[20]])===AREA_POINT || getWeaponArea(_[0][_[20]])===AREA_LASER_LINE?[
  234. _["myDamItemsAsso"][_[0][_[20]]]=[getCellToUseWeapon(_[0][_[20]], _["en"]), _["enC"]]
  235. push(_["casesTir"], _["myDamItemsAsso"][_[0][_[20]]][0])
  236. ]:[
  237. _["myDamItemsAsso"][_[0][_[20]]]=[]
  238. ]
  239. push(_["myDamItems"], _[0][_[20]])
  240. _[20]++
  241. ]:[
  242. _[""]++
  243. ])
  244. ]|1:0)
  245. ||
  246. (_[""]===13?[
  247. (_[21]<_[11]?[
  248. _[2]=getChipEffects(_[1][_[21]]),
  249. (_[2][0][0]===EFFECT_DAMAGE || _[1][_[21]]===CHIP_LIBERATION || _[1][_[21]]===CHIP_SLOW_DOWN)&& getCooldown(_[1][_[21]])===0?[
  250. getChipArea(_[1][_[21]])===AREA_POINT || getChipArea(_[1][_[21]])===AREA_LASER_LINE?[
  251. _["myDamItemsAsso"][_[1][_[21]]]=[getCellToUseChip(_[1][_[21]], _["en"]), _["enC"]]
  252. push(_["casesTir"], _["myDamItemsAsso"][_[1][_[21]]][0])
  253. ]:[
  254. _["myDamItemsAsso"][_[1][_[21]]]=[]
  255. ]
  256. push(_["myDamItems"], _[1][_[21]])
  257. ]:null
  258. _[21]++
  259. ]:[
  260. _[""]++
  261. ])
  262. ]|1:0)
  263. ||
  264.  
  265. //Cases de tir pour les trucs en zone (hardcodé, parce que pas le temps)
  266. (_[""]===14?[
  267. pushAll(_["casesTir"],[getCellToUseWeapon(WEAPON_GRENADE_LAUNCHER, _["en"]), getCellToUseChip(CHIP_ROCKFALL, _["en"])])
  268. push(_["myDamItemsAsso"][WEAPON_GRENADE_LAUNCHER], [getCellToUseWeapon(WEAPON_GRENADE_LAUNCHER, _["en"]), _["enC"]])
  269. push(_["myDamItemsAsso"][CHIP_ROCKFALL], [getCellToUseChip(CHIP_ROCKFALL, _["en"]), _["enC"]])
  270. _[101]=[[1,0], [-1,0], [0,1], [0,-1]]
  271. _[111]=0
  272. _["minGL"]=100
  273. _["caseGL"]=null
  274. _["cibleGL"]=null
  275. _["minR"]=100
  276. _["caseR"]=null
  277. _["cibleR"]=null
  278. _["enX"]=getCellX(_["enC"])
  279. _["enY"]=getCellY(_["enC"])
  280. _[""]++
  281. ]&&0:0
  282. )
  283. ||
  284. (_[""]===15?
  285. (_[111]<4?[
  286. _[53]=getCellFromXY(_["enX"]+_[101][_[111]][0], _["enY"]+_[101][_[111]][1])
  287. _[53]!==null&&!isObstacle(_[53])?[
  288. _[54]=getCellToUseWeaponOnCell(WEAPON_GRENADE_LAUNCHER, _[53]),
  289. (_[55]=getPathLength(_["myC"], _[54]))<_["minGL"]?[
  290. _["minGL"]=_[55]
  291. _["caseGL"]=_[54]
  292. _["cibleGL"]=_[53]
  293. ]:null
  294. _[54]=getCellToUseChipOnCell(CHIP_ROCKFALL, _[53]),
  295. (_[55]=getPathLength(_["myC"], _[54]))<_["minR"]?[
  296. _["minR"]=_[55]
  297. _["caseR"]=_[54]
  298. _["cibleR"]=_[53]
  299. ]:null
  300. ]:null
  301. _[111]++
  302. ]:[
  303. push(_["myDamItemsAsso"][WEAPON_GRENADE_LAUNCHER],[_["caseGL"], _["cibleGL"]])
  304. push(_["myDamItemsAsso"][CHIP_ROCKFALL],[_["caseR"], _["cibleR"]])
  305. push(_["casesTir"], _["caseGL"])
  306. push(_["casesTir"], _["caseR"])
  307. _[111]=0
  308. _[101]=[[2,0], [1,1], [0,2], [-1,1], [-2,0], [-1, -1],[0,-2], [1,-1]]
  309. _["minGL"]=100
  310. _["caseGL"]=null
  311. _["cibleGL"]=null
  312. _["minR"]=100
  313. _["caseR"]=null
  314. _["cibleR"]=null
  315. _[""]++
  316. ])|1:0
  317. )
  318. ||
  319. (_[""]===16?
  320. (_[111]<8?[
  321. _[53]=getCellFromXY(_["enX"]+_[101][_[111]][0], _["enY"]+_[101][_[111]][1])
  322. _[53]!==null&&!isObstacle(_[53])?[
  323. _[54]=getCellToUseWeaponOnCell(WEAPON_GRENADE_LAUNCHER, _[53]),
  324. (_[55]=getPathLength(_["myC"], _[54]))<_["minGL"]?[
  325. _["minGL"]=_[55]
  326. _["caseGL"]=_[54]
  327. _["cibleGL"]=_[53]
  328. ]:null
  329. _[54]=getCellToUseChipOnCell(CHIP_ROCKFALL, _[53]),
  330. (_[55]=getPathLength(_["myC"], _[54]))<_["minR"]?[
  331. _["minR"]=_[55]
  332. _["caseR"]=_[54]
  333. _["cibleR"]=_[53]
  334. ]:null
  335. ]:null
  336. _[111]++
  337. ]:[
  338. push(_["myDamItemsAsso"][WEAPON_GRENADE_LAUNCHER],[_["caseGL"], _["cibleGL"]])
  339. push(_["myDamItemsAsso"][CHIP_ROCKFALL],[_["caseR"], _["cibleR"]])
  340. push(_["casesTir"], _["caseGL"])
  341. push(_["casesTir"], _["caseR"])
  342. _["b"]=true
  343. _["accTir"]=[]
  344. _["accTirAsso"]=[]
  345. _[30]=0
  346. _[31]=count(_["casesTir"])
  347. _[""]++
  348. ])|1:0
  349. )
  350. ||
  351. (_[""]===17?[
  352. _[30]<_[31]?[
  353. ((!_["b"])||(_["myAccAsso"][_["casesTir"][_[30]]]!==null))&&_["accTir"][_["casesTir"][_[30]]]===null?[
  354. _["b"]?[
  355. _["arg_acc"]=[_["casesTir"][_[30]],_["myStats"]["MP"]-_["myAccAsso"][_["casesTir"][_[30]]]]
  356. _["end_acc"]=17
  357. _["res_acc"]=null
  358. _[""]="fct_acc_init"
  359. _["b"]=false
  360. ]:[
  361. _["accTir"][_["casesTir"][_[30]]]=_["res_acc"]
  362. _["accTirAsso"][_["casesTir"][_[30]]]=_[4]
  363. _[30]++
  364. _["b"]=true
  365. ]
  366. ]:_[30]++
  367. ]:[
  368. _[""]++
  369. ]
  370. ]|1:0)
  371. ||
  372. (_[""]===18?[
  373. _["combos"]=[
  374. [[CHIP_ROCKFALL, CHIP_BANDAGE, CHIP_SPARK],3,10, CHIP_ROCKFALL],
  375. [[CHIP_ROCKFALL, CHIP_SPARK, CHIP_SPARK],3,11, CHIP_ROCKFALL],
  376. [[CHIP_ROCKFALL, CHIP_SLOW_DOWN, CHIP_SLOW_DOWN], 3, 11, CHIP_ROCKFALL],
  377. [[CHIP_ROCKFALL, CHIP_SLOW_DOWN, CHIP_SPARK], 3, 11, CHIP_ROCKFALL],
  378. [[CHIP_ROCKFALL, CHIP_SLOW_DOWN, CHIP_BANDAGE], 3, 10, CHIP_ROCKFALL],
  379. [[201, CHIP_BANDAGE, CHIP_SPARK],3,10, CHIP_ROCKFALL],
  380. [[201, CHIP_SPARK, CHIP_SPARK],3,11, CHIP_ROCKFALL],
  381. [[201, CHIP_SLOW_DOWN, CHIP_SLOW_DOWN], 3, 11, CHIP_ROCKFALL],
  382. [[201, CHIP_SLOW_DOWN, CHIP_SPARK], 3, 11, CHIP_ROCKFALL],
  383. [[201, CHIP_SLOW_DOWN, CHIP_BANDAGE], 3, 10, CHIP_ROCKFALL],
  384. [[202, CHIP_BANDAGE, CHIP_SPARK],3,10, CHIP_ROCKFALL],
  385. [[202, CHIP_SPARK, CHIP_SPARK],3,11, CHIP_ROCKFALL],
  386. [[202, CHIP_SLOW_DOWN, CHIP_SLOW_DOWN], 3, 11, CHIP_ROCKFALL],
  387. [[202, CHIP_SLOW_DOWN, CHIP_SPARK], 3, 11, CHIP_ROCKFALL],
  388. [[202, CHIP_SLOW_DOWN, CHIP_BANDAGE], 3, 10, CHIP_ROCKFALL],
  389. [[WEAPON_GRENADE_LAUNCHER, CHIP_BANDAGE, CHIP_SLOW_DOWN], 3, 11,WEAPON_GRENADE_LAUNCHER],
  390. [[WEAPON_GRENADE_LAUNCHER, CHIP_ROCKFALL], 2, 11,WEAPON_GRENADE_LAUNCHER],
  391. [[WEAPON_GRENADE_LAUNCHER, 201], 2, 11,WEAPON_GRENADE_LAUNCHER],
  392. [[WEAPON_GRENADE_LAUNCHER, 202], 2, 11,WEAPON_GRENADE_LAUNCHER],
  393. [[WEAPON_GRENADE_LAUNCHER, CHIP_BANDAGE, CHIP_SPARK], 3,11,WEAPON_GRENADE_LAUNCHER],
  394. [[203, CHIP_BANDAGE, CHIP_SLOW_DOWN], 3, 11,WEAPON_GRENADE_LAUNCHER],
  395. [[203, CHIP_ROCKFALL], 2, 11,WEAPON_GRENADE_LAUNCHER],
  396. [[203, 201], 2, 11,WEAPON_GRENADE_LAUNCHER],
  397. [[203, 202], 2, 11,WEAPON_GRENADE_LAUNCHER],
  398. [[203, CHIP_BANDAGE, CHIP_SPARK], 3,11,WEAPON_GRENADE_LAUNCHER],
  399. [[204, CHIP_BANDAGE, CHIP_SLOW_DOWN], 3, 11,WEAPON_GRENADE_LAUNCHER],
  400. [[204, CHIP_ROCKFALL], 2, 11,WEAPON_GRENADE_LAUNCHER],
  401. [[204, 201], 2, 11,WEAPON_GRENADE_LAUNCHER],
  402. [[204, 202], 2, 11,WEAPON_GRENADE_LAUNCHER],
  403. [[204, CHIP_BANDAGE, CHIP_SPARK], 3,11,WEAPON_GRENADE_LAUNCHER],
  404. [[CHIP_SPARK, CHIP_SPARK, CHIP_SPARK, CHIP_BANDAGE], 4, 11, CHIP_SPARK],
  405. [[WEAPON_BROADSWORD, WEAPON_BROADSWORD], 2, 10, WEAPON_BROADSWORD],
  406. [[WEAPON_BROADSWORD, CHIP_SLOW_DOWN, CHIP_SLOW_DOWN], 3, 11, WEAPON_BROADSWORD],
  407. [[WEAPON_BROADSWORD, CHIP_SLOW_DOWN, CHIP_SPARK], 3, 11, WEAPON_BROADSWORD],
  408. [[WEAPON_BROADSWORD, CHIP_SLOW_DOWN, CHIP_BANDAGE],3, 10, WEAPON_BROADSWORD],
  409. [[WEAPON_BROADSWORD, CHIP_BANDAGE, CHIP_SPARK], 3, 10, WEAPON_BROADSWORD],
  410. [[],0,0,null]
  411. ]
  412. getCooldown(CHIP_CURE)?null:[
  413. getCooldown(CHIP_VACCINE)?null:push(_["combos"], [[CHIP_VACCINE, CHIP_CURE],2,10,null])
  414. getCooldown(CHIP_STALACTITE)?null:push(_["combos"], [[CHIP_STALACTITE, CHIP_CURE],2,10, CHIP_STALACTITE])
  415. pushAll(_["combos"],[
  416. [[CHIP_ROCKFALL, CHIP_CURE, CHIP_BANDAGE], 3, 11, CHIP_ROCKFALL],
  417. [[201, CHIP_CURE, CHIP_BANDAGE], 3, 11, CHIP_ROCKFALL],
  418. [[202, CHIP_CURE, CHIP_BANDAGE], 3, 11, CHIP_ROCKFALL],
  419. [[WEAPON_BROADSWORD, CHIP_CURE, CHIP_BANDAGE], 3, 11, WEAPON_BROADSWORD],
  420. [[WEAPON_BROADSWORD, CHIP_CURE], 2, 9, WEAPON_BROADSWORD],
  421. [[WEAPON_GRENADE_LAUNCHER, CHIP_CURE], 2, 10, WEAPON_GRENADE_LAUNCHER],
  422. [[203, CHIP_CURE], 2, 10, WEAPON_GRENADE_LAUNCHER],
  423. [[204, CHIP_CURE], 2, 10, WEAPON_GRENADE_LAUNCHER],
  424. [[CHIP_SPARK, CHIP_SPARK, CHIP_CURE], 3, 10, CHIP_SPARK],
  425. [[CHIP_SLOW_DOWN, CHIP_SPARK, CHIP_CURE], 3, 10, CHIP_SLOW_DOWN],
  426. [[CHIP_SLOW_DOWN, CHIP_SLOW_DOWN, CHIP_CURE], 3, 10, CHIP_SLOW_DOWN]
  427. ])
  428. ]
  429. getCooldown(CHIP_STALACTITE)?null:[
  430. getCooldown(CHIP_LIBERATION)?null:push(_["combos"], [[CHIP_LIBERATION, CHIP_STALACTITE],2,11, CHIP_LIBERATION])
  431. pushAll(_["combos"], [
  432. [[CHIP_STALACTITE, CHIP_ROCKFALL], 2, 11, CHIP_STALACTITE],
  433. [[CHIP_STALACTITE, 201], 2, 11, CHIP_STALACTITE],
  434. [[CHIP_STALACTITE, 202], 2, 11, CHIP_STALACTITE],
  435. [[CHIP_STALACTITE, CHIP_SLOW_DOWN, CHIP_BANDAGE], 3, 11, CHIP_STALACTITE],
  436. [[CHIP_STALACTITE, CHIP_SPARK, CHIP_BANDAGE],3,11, CHIP_STALACTITE]
  437. ])
  438. ]
  439. getCooldown(CHIP_VACCINE)?null:[
  440. pushAll(_["combos"], [
  441. [[CHIP_SLOW_DOWN, CHIP_VACCINE, CHIP_BANDAGE],3,11, CHIP_SLOW_DOWN],
  442. [[CHIP_SPARK, CHIP_VACCINE, CHIP_BANDAGE],3,11, CHIP_SPARK],
  443. [[CHIP_ROCKFALL, CHIP_VACCINE],2,11, CHIP_ROCKFALL],
  444. [[201, CHIP_VACCINE],2,11, CHIP_ROCKFALL],
  445. [[202, CHIP_VACCINE],2,11, CHIP_ROCKFALL]
  446. ])
  447. ]
  448. getCooldown(CHIP_LIBERATION)?null:[
  449. push(_["combos"], [[CHIP_LIBERATION, WEAPON_BROADSWORD],2,11, WEAPON_BROADSWORD])
  450. ]
  451. _[""]++
  452. ]&&0:0)
  453. ||
  454. (_[""]===19?[
  455. _[0]=0
  456. _[1]=count(_["combos"])
  457. _["bestScore"]=-800
  458. _["bestCombo"]=[]
  459. _["score"]=0
  460. _["enTemp"]=["life" : _["enStats"]["life"], "MP" :_["enStats"]["MP"]]
  461. _["meTemp"]=["cell" : _["myC"], "life" : _["myStats"]["life"], "MP" : _["myStats"]["MP"], "acc" : _["myAccAsso"]]
  462. _["b"]=0
  463. _[""]++
  464. ]&&0:0)
  465. ||
  466. (_[""]===20?
  467. (_[0]<_[1]?[
  468. _["b"]===0?[
  469. _["combo"]=_["combos"][_[0]][0]
  470. _[2]=0
  471. _[3]=_["combos"][_[0]][1]
  472. _["c"]=_["combos"][_[0]][2]
  473. _["i"]=_["combos"][_[0]][3]
  474. _["cases"]=_["myDamItemsAsso"][_["i"]]
  475. _["aoe"]=_["i"]!==null&&((isWeapon(_["i"])&&getWeaponArea(_["i"])!==AREA_LASER_LINE&&getWeaponArea(_["i"])!==AREA_POINT)||(isChip(_["i"])&&getChipArea(_["i"])!==AREA_LASER_LINE&&getChipArea(_["i"])!==AREA_POINT))
  476. _["aoe"]?[
  477. _[100]=_["cases"][0]
  478. _[101]=_["cases"][1]
  479. _[102]=_["cases"][2]
  480. ]:null
  481. _["tempCombo"]=[]
  482. _["casesFin"]=_["myAcc"]
  483. _["b"]++
  484. ]:null
  485. _["b"]===1?[
  486. _[2]<_[3]?[
  487. _["item"]=_["combo"][_[2]]
  488. _["item"]===CHIP_BANDAGE?[
  489. push(_["tempCombo"], [_["item"], _["meTemp"]["cell"]])
  490. _["meTemp"]["life"]+=min(round(12.5*(1+_["myStats"]["wis"]/100)),getTotalLife()-_["meTemp"]["life"])
  491. _["score"]+=12.5*(1+_["myStats"]["wis"]/100)*(_["myStats"]["life"]>getTotalLife()-50?0:1)*(_["myStats"]["life"]<200?_["myStats"]["life"]<100?3:2:1)
  492. _[2]++
  493. ]:null
  494. _["item"]===CHIP_CURE?[
  495. push(_["tempCombo"], [_["item"], _["meTemp"]["cell"]])
  496. _["meTemp"]["life"]+=min(round(39*(1+_["myStats"]["wis"]/100)),getTotalLife()-_["meTemp"]["life"])
  497. _["score"]+=_["myStats"]["life"]>getTotalLife()-20?-10:(39*(1+_["myStats"]["wis"]/100)*(_["myStats"]["life"]>getTotalLife()-75?0:1)*(_["myStats"]["life"]<200?_["myStats"]["life"]<100?4:2:1))
  498. _[2]++
  499. ]:null
  500. _["item"]===CHIP_VACCINE?[
  501. push(_["tempCombo"], [_["item"], _["meTemp"]["cell"]])
  502. _["score"]+=_["myStats"]["life"]>getTotalLife()-20?-10:(50*(1+_["myStats"]["wis"]/100)*(_["myStats"]["life"]>getTotalLife()-150?0:1)*(_["myStats"]["life"]<250?3:2))
  503. _[2]++
  504. ]:null
  505. inArray([WEAPON_BROADSWORD, CHIP_STALACTITE, CHIP_SPARK],_["item"])?[
  506. _[158]=_["myDamItemsAsso"][_["item"]]
  507. _["meTemp"]["acc"][_[158][0]]!==null&&_["meTemp"]["acc"][_[158][0]]<=_["meTemp"]["MP"]&&(getWeapon()===WEAPON_BROADSWORD||_["item"]!==WEAPON_BROADSWORD||_["c"]<11)?[
  508. _["dam"]=max((_["item"]===WEAPON_BROADSWORD?40:_["item"]===CHIP_STALACTITE?66:12)*(1+_["myStats"]["str"]/100)*(1-(_["enTemp"]["rS"]===null?_["enStats"]:_["enTemp"])["rS"]/100)-(_["enTemp"]["aS"]===null?_["enStats"]:_["enTemp"])["aS"],0)
  509. _["score"]+=_["dam"]
  510. _["enTemp"]["life"]-=_["dam"]
  511. _["enTemp"]["life"]<=0?_["score"]+=1000:null
  512. _["meTemp"]["MP"]-=_["meTemp"]["acc"][_[158][0]]
  513. _["meTemp"]["acc"]=_["accTirAsso"][_[158][0]]
  514. _["casesFin"]=_["accTir"][_[158][0]]
  515. _["meTemp"]["cell"]=_[158][0]
  516. push(_["tempCombo"], [1012,_[158][0]])
  517. push(_["tempCombo"], [_["item"],_[158][1]])
  518. _[2]++
  519. ]:[
  520. _["score"]=-1000
  521. _[2]=_[3]
  522. ]
  523. ]:null
  524. _["item"]===CHIP_SLOW_DOWN?[
  525. _[158]=_["myDamItemsAsso"][CHIP_SLOW_DOWN]
  526. _["meTemp"]["acc"][_[158][0]]!==null&&_["meTemp"]["acc"][_[158][0]]<=_["meTemp"]["MP"]&&_["enStats"]["sci"]<=10?[
  527. _["meTemp"]["MP"]-=_["meTemp"]["acc"][_[158][0]]
  528. _["meTemp"]["acc"]=_["accTirAsso"][_[158][0]]
  529. _["casesFin"]=_["accTir"][_[158][0]]
  530. _["meTemp"]["cell"]=_[158][0]
  531. _["enTemp"]["MP"]-=1
  532. push(_["tempCombo"], [1012,_[158][0]])
  533. push(_["tempCombo"], [CHIP_SLOW_DOWN,_[158][1]])
  534. _[2]++
  535. ]:[
  536. _["score"]=-1000
  537. _[2]=_[3]
  538. ]
  539. ]:null
  540. _["item"]===CHIP_LIBERATION?[
  541. _[158]=_["myDamItemsAsso"][CHIP_LIBERATION]
  542. _["meTemp"]["acc"][_[158][0]]!==null&&_["meTemp"]["acc"][_[158][0]]<=_["meTemp"]["MP"]?[
  543. _["score"]+=20*count(getLaunchedEffects(_["en"]))
  544. _["meTemp"]["MP"]-=_["meTemp"]["acc"][_[158][0]]
  545. _["meTemp"]["acc"]=_["accTirAsso"][_[158][0]]
  546. _["casesFin"]=_["accTir"][_[158][0]]
  547. _["meTemp"]["cell"]=_[158][0]
  548. _["enTemp"]["rS"]=0
  549. _["enTemp"]["aS"]=0
  550. push(_["tempCombo"], [1012,_[158][0]])
  551. push(_["tempCombo"], [CHIP_LIBERATION,_[158][1]])
  552. _[2]++
  553. ]:[
  554. _["score"]=-1000
  555. _[2]=_[3]
  556. ]
  557. ]:null
  558. inArray([CHIP_ROCKFALL, 201,202], _["item"])?[
  559. _[158]=_["myDamItemsAsso"][CHIP_ROCKFALL][_["item"]===CHIP_ROCKFALL?0:_["item"]===201?1:2]
  560. _["meTemp"]["acc"][_[158][0]]!==null&&_["meTemp"]["acc"][_[158][0]]<=_["meTemp"]["MP"]?[
  561. _["dam"]=max(52*(_["item"]===CHIP_ROCKFALL?1:_["item"]===201?0.75:0.5)*(1+_["myStats"]["str"]/100)*(1-(_["enTemp"]["rS"]===null?_["enStats"]:_["enTemp"])["rS"]/100)-(_["enTemp"]["aS"]===null?_["enStats"]:_["enTemp"])["aS"],0)
  562. _["score"]+=_["dam"]
  563. _["enTemp"]["life"]-=_["dam"]
  564. _["enTemp"]["life"]<=0?_["score"]+=1000:null
  565. _["meTemp"]["MP"]-=_["meTemp"]["acc"][_[158][0]]
  566. _["meTemp"]["acc"]=_["accTirAsso"][_[158][0]]
  567. _["casesFin"]=_["accTir"][_[158][0]]
  568. _["meTemp"]["cell"]=_[158][0]
  569. push(_["tempCombo"], [1012,_[158][0]])
  570. push(_["tempCombo"], [CHIP_ROCKFALL,_[158][1]])
  571. _[2]++
  572. ]:[
  573. _["score"]=-1000
  574. _[2]=_[3]
  575. ]
  576. ]:null
  577. inArray([WEAPON_GRENADE_LAUNCHER, 203, 204],_["item"])?[
  578. _[158]=_["myDamItemsAsso"][WEAPON_GRENADE_LAUNCHER][_["item"]===WEAPON_GRENADE_LAUNCHER?0:_["item"]===203?1:2]
  579. _["meTemp"]["acc"][_[158][0]]!==null&&_["meTemp"]["acc"][_[158][0]]<=_["meTemp"]["MP"]&&(getWeapon()===WEAPON_GRENADE_LAUNCHER||_["c"]<11)?[
  580. _["dam"]=max(49*(_["item"]===WEAPON_GRENADE_LAUNCHER?1:_["item"]===203?0.75:0.5)*(1+_["myStats"]["str"]/100)*(1-(_["enTemp"]["rS"]===null?_["enStats"]:_["enTemp"])["rS"]/100)-(_["enTemp"]["aS"]===null?_["enStats"]:_["enTemp"])["aS"],0)
  581. _["score"]+=_["dam"]
  582. _["enTemp"]["life"]-=_["dam"]
  583. _["enTemp"]["life"]<=0?_["score"]+=1000:null
  584. _["meTemp"]["MP"]-=_["meTemp"]["acc"][_[158][0]]
  585. _["meTemp"]["acc"]=_["accTirAsso"][_[158][0]]
  586. _["casesFin"]=_["accTir"][_[158][0]]
  587. _["meTemp"]["cell"]=_[158][0]
  588. push(_["tempCombo"], [1012,_[158][0]])
  589. push(_["tempCombo"], [WEAPON_GRENADE_LAUNCHER,_[158][1]])
  590. _[2]++
  591. ]:[
  592. _["score"]=-1000
  593. _[2]=_[3]
  594. ]
  595. ]:null
  596. ]:[
  597. _[4]=0
  598. _[5]=count(_["casesFin"])
  599. _["tempCach"]=_["meTemp"]["cell"]
  600. _["scoreCach"]=-1000
  601. _[6]=_["enTemp"]["MP"]
  602. _["b"]++
  603. ]
  604. ]:null
  605. _["b"]===2?[
  606. //Boucle sur les cases restantes à portée pour trouver la meilleure.
  607. _[4]<_[5]?[
  608. _[7]=-_["mapDegats"][_[6]][_["casesFin"][_[4]]]-5*getCellDistance(_["casesFin"][_[4]], _["enC"])
  609. _[7]>_["scoreCach"]?[
  610. _["tempCach"]=_["casesFin"][_[4]]
  611. _["scoreCach"]=_[7]
  612. ]:null
  613. _[4]++
  614. ]:[
  615. _["score"]+=_["scoreCach"]
  616. _["score"]>_["bestScore"]?[
  617. _["bestScore"]=_["score"]
  618. _["bestCombo"]=_["tempCombo"]+[[1012,_["tempCach"]]]
  619. ]:null
  620.  
  621. _["score"]=0
  622. _["enTemp"]=["life" : _["enStats"]["life"], "MP" :_["enStats"]["MP"]]
  623. _["meTemp"]=["cell" : _["myC"], "life" : _["myStats"]["life"], "MP" : _["myStats"]["MP"], "acc" : _["myAccAsso"]]
  624. _[0]++
  625. _["b"]=0
  626. ]
  627. ]:null
  628.  
  629. ]:[
  630. debug("Meilleure combo trouvée "+_["bestCombo"]+ " avec le score " +_["bestScore"])
  631. _[0]=0
  632. _[1]=count(_["bestCombo"])
  633. _[""]++
  634. ])|1:0
  635. )
  636. ||
  637. (_[""]===21?
  638. (_[0]<_[1]?[
  639. _["bestCombo"][_[0]][0]===1012?moveTowardCell(_["bestCombo"][_[0]][1]):
  640. isChip(_["bestCombo"][_[0]][0])?useChipOnCell(_["bestCombo"][_[0]][0], _["bestCombo"][_[0]][1]):[
  641. getWeapon()!==_["bestCombo"][_[0]][0]?setWeapon(_["bestCombo"][_[0]][0]):null
  642. useWeaponOnCell(_["bestCombo"][_[0]][1])
  643. ]
  644. _[0]++
  645. ]:[
  646. debug("Fin de l'IA")
  647. _[""]++
  648. ])|1:0
  649. )
  650. ||
  651. (_[""]=0)
  652. ||
  653. (debug("opérations : "+getOperations() )&&0)
  654. ||
  655. false
  656. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement