You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

script-json_data.js 8.0 kB

6 years ago
6 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. const dataSourceList = [ //几个不同的游戏服务区
  2. {
  3. code:"ja",
  4. source:"パズル&ドラゴンズ"
  5. },
  6. {
  7. code:"en",
  8. source:"Puzzle & Dragons"
  9. },
  10. {
  11. code:"ko",
  12. source:"퍼즐앤드래곤"
  13. },
  14. ];
  15. //类型和觉醒杀和潜觉杀的对应编号,还有类型可以打什么类型的潜觉杀
  16. const typekiller_for_type = [
  17. {type:0,awoken:39,latent:16,typeKiller:[]}, //0进化
  18. {type:12,awoken:40,latent:17,typeKiller:[]}, //12觉醒
  19. {type:14,awoken:41,latent:18,typeKiller:[]}, //14强化
  20. {type:15,awoken:42,latent:19,typeKiller:[]}, //15卖钱
  21. {type:5,awoken:32,latent:20,typeKiller:[7]}, //5神
  22. {type:4,awoken:31,latent:21,typeKiller:[8,3]}, //4龙
  23. {type:7,awoken:33,latent:22,typeKiller:[5]}, //7恶魔
  24. {type:8,awoken:34,latent:23,typeKiller:[5,1]}, //8机械
  25. {type:1,awoken:35,latent:24,typeKiller:[5,4,7,8,1,6,2,3]}, //1平衡
  26. {type:6,awoken:36,latent:25,typeKiller:[7,2]}, //6攻击
  27. {type:2,awoken:37,latent:26,typeKiller:[8,3]}, //2体力
  28. {type:3,awoken:38,latent:27,typeKiller:[4,6]}, //3回复
  29. {type:9,awoken:null,latent:null,typeKiller:[]}, //特殊保护
  30. ];
  31. //类型允许的潜觉杀
  32. const type_allowable_latent = [];
  33. typekiller_for_type.forEach(t=>
  34. {
  35. t.allowableLatent = t.typeKiller.concat([0,12,14,15]) //补充4种特殊杀
  36. .map(tn=>
  37. typekiller_for_type.find(_t=>_t.type == tn).latent
  38. );
  39. type_allowable_latent[t.type] = t.allowableLatent;
  40. }
  41. );
  42. //一般共同能打的潜觉
  43. const common_allowable_latent = [
  44. 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
  45. 28,29,30,31,32,33,34,35,36,37,38,
  46. 39,40,41, //需要拥有觉醒的才能打,但是有武器
  47. ];
  48. //120级才能打的潜觉
  49. const v120_allowable_latent = [
  50. 42,43,44,45
  51. ];
  52. //等效觉醒列表
  53. const equivalent_awoken = [
  54. {small:10,big:52,times:2}, //防封
  55. {small:11,big:68,times:5}, //防暗
  56. {small:12,big:69,times:5}, //防废
  57. {small:13,big:70,times:5}, //防毒
  58. {small:19,big:53,times:2}, //手指
  59. {small:21,big:56,times:2}, //SB
  60. ];
  61. //官方的觉醒排列顺序
  62. const official_awoken_sorting = [
  63. 21, 19, 43, 45, 10, 11, 12, 13, 49,
  64. 56, 53, 61, 50, 52, 68, 69, 70, 28,
  65. 27, 48, 62, 57, 58, 60, 59, 54, 55,
  66. 14, 15, 16, 17, 18, 29, 20, 44, 51,
  67. 22, 23, 24, 25, 26, 32, 31, 33, 34,
  68. 4, 5, 6, 7, 8, 35, 36, 37, 38,
  69. 1, 2, 3, 46, 47, 39, 40, 41, 42,
  70. 65, 66, 67, 9, 71, 72, 30, 64, 63,
  71. 73, 74, 75, 76, 77, 78];
  72. //pdc的徽章对应数字
  73. const pdcBadgeMap = [
  74. {pdf:0,pdc:10}, //无限cost
  75. {pdf:1,pdc:12}, //小手指
  76. {pdf:2,pdc:9}, //全体攻击
  77. {pdf:3,pdc:5}, //小回复
  78. {pdf:4,pdc:1}, //小血量
  79. {pdf:5,pdc:3}, //小攻击
  80. {pdf:6,pdc:8}, //SB
  81. {pdf:7,pdc:18}, //队长防封
  82. {pdf:8,pdc:19}, //SX
  83. {pdf:9,pdc:7}, //无天降
  84. {pdf:10,pdc:6}, //大回复
  85. {pdf:11,pdc:2}, //大血量
  86. {pdf:12,pdc:4}, //大攻击
  87. {pdf:13,pdc:13}, //大手指
  88. {pdf:14,pdc:11}, //加经验
  89. {pdf:15,pdc:15}, //墨镜
  90. {pdf:16,pdc:17}, //防废
  91. {pdf:17,pdc:16}, //防毒
  92. {pdf:18,pdc:14}, //月卡
  93. ];
  94. //pdc的潜觉对应数字
  95. const pdcLatentMap = [
  96. {pdf:1,pdc:1}, //HP
  97. {pdf:2,pdc:0}, //攻击
  98. {pdf:3,pdc:2}, //回复
  99. {pdf:4,pdc:19}, //手指
  100. {pdf:5,pdc:13}, //自回
  101. {pdf:6,pdc:14}, //火盾
  102. {pdf:7,pdc:15}, //水盾
  103. {pdf:8,pdc:16}, //木盾
  104. {pdf:9,pdc:17}, //光盾
  105. {pdf:10,pdc:18}, //暗盾
  106. {pdf:11,pdc:12}, //防坐
  107. {pdf:12,pdc:3}, //三维
  108. {pdf:13,pdc:35}, //不被换队长
  109. {pdf:14,pdc:37}, //不掉废
  110. {pdf:15,pdc:36}, //不掉毒
  111. {pdf:16,pdc:24}, //进化杀
  112. {pdf:17,pdc:25}, //觉醒杀
  113. {pdf:18,pdc:26}, //强化杀
  114. {pdf:19,pdc:27}, //卖钱杀
  115. {pdf:20,pdc:4}, //神杀
  116. {pdf:21,pdc:5}, //龙杀
  117. {pdf:22,pdc:6}, //恶魔杀
  118. {pdf:23,pdc:7}, //机械杀
  119. {pdf:24,pdc:8}, //平衡杀
  120. {pdf:25,pdc:9}, //攻击杀
  121. {pdf:26,pdc:10}, //体力杀
  122. {pdf:27,pdc:11}, //回复杀
  123. {pdf:28,pdc:20}, //大HP
  124. {pdf:29,pdc:21}, //大攻击
  125. {pdf:30,pdc:22}, //大回复
  126. {pdf:31,pdc:23}, //大手指
  127. {pdf:32,pdc:28}, //大火盾
  128. {pdf:33,pdc:29}, //大水盾
  129. {pdf:34,pdc:30}, //大木盾
  130. {pdf:35,pdc:31}, //大光盾
  131. {pdf:36,pdc:32}, //大暗盾
  132. {pdf:37,pdc:33}, //6色破无效
  133. {pdf:38,pdc:34}, //3色破属吸
  134. {pdf:39,pdc:40}, //C珠破吸
  135. {pdf:40,pdc:39}, //心横解转转
  136. {pdf:41,pdc:38}, //U解禁消
  137. {pdf:42,pdc:41}, //伤害上限解除
  138. {pdf:43,pdc:42}, //HP++
  139. {pdf:44,pdc:43}, //攻击++
  140. {pdf:45,pdc:44}, //回复++
  141. ];
  142. //排序程序列表
  143. const sort_function_list = [
  144. {tag:"sort_none",name:"无",function:()=>0},
  145. {tag:"sort_id",name:"怪物ID",function:(a,b)=>a.id-b.id},
  146. {tag:"sort_attrs",name:"属性",function:(a,b)=>{
  147. let num = a.attrs[0] - b.attrs[0];
  148. if (num === 0) num = a.attrs[1] - b.attrs[1];
  149. return num;
  150. }},
  151. {tag:"sort_evoRootId",name:"进化树",function:(a,b)=>a.evoRootId-b.evoRootId},
  152. {tag:"sort_evoRoot_Attrs",name:"进化根怪物的属性",function:(a,b)=>{
  153. const card_a = Cards[a.evoRootId],card_b = Cards[b.evoRootId];
  154. let num = card_a.attrs[0] - card_b.attrs[0];
  155. if (num === 0) num = card_a.attrs[1] - card_b.attrs[1];
  156. return num;
  157. }},
  158. {tag:"sort_rarity",name:"稀有度",function:(a,b)=>a.rarity-b.rarity},
  159. {tag:"sort_cost",name:"消耗",function:(a,b)=>a.cost-b.cost},
  160. {tag:"sort_skillLv1",name:"技能最大冷却时间",function:(a,b)=>Skills[a.activeSkillId].initialCooldown-Skills[b.activeSkillId].initialCooldown},
  161. {tag:"sort_skillLvMax",name:"技能最小冷却时间",function:(a,b)=>{
  162. const skill_a = Skills[a.activeSkillId],skill_b = Skills[b.activeSkillId];
  163. return (skill_a.initialCooldown - skill_a.maxLevel) - (skill_b.initialCooldown - skill_b.maxLevel);
  164. }},
  165. {tag:"sort_hpMax110",name:"Lv110最大HP",function:(a,b)=>a.hp.max * (1 + a.limitBreakIncr/100) - b.hp.max * (1 + b.limitBreakIncr/100)},
  166. {tag:"sort_atkMax110",name:"Lv110最大攻击",function:(a,b)=>a.atk.max * (1 + a.limitBreakIncr/100) - b.atk.max * (1 + b.limitBreakIncr/100)},
  167. {tag:"sort_rcvMax110",name:"Lv110最大回复",function:(a,b)=>a.rcv.max * (1 + a.limitBreakIncr/100) - b.rcv.max * (1 + b.limitBreakIncr/100)},
  168. {tag:"sort_hpMax110_awoken",name:"Lv110最大攻击(+觉醒)",function:(a,b)=>
  169. {
  170. const abilities_2statusA = calculateAbility_max(a.id, solo, teamsCount),
  171. abilities_2statusB = calculateAbility_max(b.id, solo, teamsCount);
  172. const abA = abilities_2statusA ? abilities_2statusA.withAwoken.atk : 0,
  173. abB = abilities_2statusB ? abilities_2statusB.withAwoken.atk : 0;
  174. return abA - abB;
  175. }
  176. },
  177. {tag:"sort_hpMax110_awoken",name:"Lv110最大HP(+觉醒)",function:(a,b)=>
  178. {
  179. const abilities_2statusA = calculateAbility_max(a.id, solo, teamsCount),
  180. abilities_2statusB = calculateAbility_max(b.id, solo, teamsCount);
  181. const abA = abilities_2statusA ? abilities_2statusA.withAwoken.hp : 0,
  182. abB = abilities_2statusB ? abilities_2statusB.withAwoken.hp : 0;
  183. return abA - abB;
  184. }
  185. },
  186. {tag:"sort_hpMax110_awoken",name:"Lv110最大回复(+觉醒)",function:(a,b)=>
  187. {
  188. const abilities_2statusA = calculateAbility_max(a.id, solo, teamsCount),
  189. abilities_2statusB = calculateAbility_max(b.id, solo, teamsCount);
  190. const abA = abilities_2statusA ? abilities_2statusA.withAwoken.rcv : 0,
  191. abB = abilities_2statusB ? abilities_2statusB.withAwoken.rcv : 0;
  192. return abA - abB;
  193. }
  194. },
  195. {tag:"sort_abilityIndex_awoken",name:"Lv110最大加权能力指数(+觉醒)",function:(a,b)=>
  196. {
  197. const abilities_2statusA = calculateAbility_max(a.id, solo, teamsCount),
  198. abilities_2statusB = calculateAbility_max(b.id, solo, teamsCount);
  199. const abA = abilities_2statusA ? abilities_2statusA.withAwoken.hp / 10 + abilities_2statusA.withAwoken.atk / 5 + abilities_2statusA.withAwoken.rcv / 3 : 0,
  200. abB = abilities_2statusB ? abilities_2statusB.withAwoken.hp / 10 + abilities_2statusB.withAwoken.atk / 5 + abilities_2statusB.withAwoken.rcv / 3 : 0;
  201. return abA - abB;
  202. }
  203. },
  204. ];

智龙迷城队伍图制作工具