hoshimi-venus 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +17 -0
  3. package/out/concert/concert.d.ts +69 -0
  4. package/out/concert/concert.js +161 -0
  5. package/out/concert/concert.js.map +1 -0
  6. package/out/concert/consts/chart_consts.d.ts +41 -0
  7. package/out/concert/consts/chart_consts.js +65 -0
  8. package/out/concert/consts/chart_consts.js.map +1 -0
  9. package/out/concert/consts/eff_grades.d.ts +1191 -0
  10. package/out/concert/consts/eff_grades.js +221 -0
  11. package/out/concert/consts/eff_grades.js.map +1 -0
  12. package/out/concert/consts/efficacy_list.d.ts +9 -0
  13. package/out/concert/consts/efficacy_list.js +50 -0
  14. package/out/concert/consts/efficacy_list.js.map +1 -0
  15. package/out/concert/efficacy_analyze.d.ts +11 -0
  16. package/out/concert/efficacy_analyze.js +82 -0
  17. package/out/concert/efficacy_analyze.js.map +1 -0
  18. package/out/concert/efficacy_proc.d.ts +0 -0
  19. package/out/concert/efficacy_proc.js +1 -0
  20. package/out/concert/efficacy_proc.js.map +1 -0
  21. package/out/concert/partial/a_migration.d.ts +2 -0
  22. package/out/concert/partial/a_migration.js +36 -0
  23. package/out/concert/partial/a_migration.js.map +1 -0
  24. package/out/concert/partial/actions/action.d.ts +24 -0
  25. package/out/concert/partial/actions/action.js +130 -0
  26. package/out/concert/partial/actions/action.js.map +1 -0
  27. package/out/concert/partial/actions/active_skill_chance_assignment.d.ts +2 -0
  28. package/out/concert/partial/actions/active_skill_chance_assignment.js +14 -0
  29. package/out/concert/partial/actions/active_skill_chance_assignment.js.map +1 -0
  30. package/out/concert/partial/actions/cool_time_increase.d.ts +4 -0
  31. package/out/concert/partial/actions/cool_time_increase.js +43 -0
  32. package/out/concert/partial/actions/cool_time_increase.js.map +1 -0
  33. package/out/concert/partial/actions/cool_time_reduction.d.ts +4 -0
  34. package/out/concert/partial/actions/cool_time_reduction.js +43 -0
  35. package/out/concert/partial/actions/cool_time_reduction.js.map +1 -0
  36. package/out/concert/partial/actions/dance_boost.d.ts +2 -0
  37. package/out/concert/partial/actions/dance_boost.js +35 -0
  38. package/out/concert/partial/actions/dance_boost.js.map +1 -0
  39. package/out/concert/partial/actions/dance_down.d.ts +2 -0
  40. package/out/concert/partial/actions/dance_down.js +35 -0
  41. package/out/concert/partial/actions/dance_down.js.map +1 -0
  42. package/out/concert/partial/actions/dance_up.d.ts +2 -0
  43. package/out/concert/partial/actions/dance_up.js +35 -0
  44. package/out/concert/partial/actions/dance_up.js.map +1 -0
  45. package/out/concert/partial/actions/fix_stamina_recovery.d.ts +2 -0
  46. package/out/concert/partial/actions/fix_stamina_recovery.js +35 -0
  47. package/out/concert/partial/actions/fix_stamina_recovery.js.map +1 -0
  48. package/out/concert/partial/actions/live_ability_cool_time_reduction.d.ts +2 -0
  49. package/out/concert/partial/actions/live_ability_cool_time_reduction.js +14 -0
  50. package/out/concert/partial/actions/live_ability_cool_time_reduction.js.map +1 -0
  51. package/out/concert/partial/actions/stamina_consumption.d.ts +2 -0
  52. package/out/concert/partial/actions/stamina_consumption.js +34 -0
  53. package/out/concert/partial/actions/stamina_consumption.js.map +1 -0
  54. package/out/concert/partial/actions/strength_effect_assignment.d.ts +2 -0
  55. package/out/concert/partial/actions/strength_effect_assignment.js +14 -0
  56. package/out/concert/partial/actions/strength_effect_assignment.js.map +1 -0
  57. package/out/concert/partial/actions/strength_effect_assignment_all.d.ts +2 -0
  58. package/out/concert/partial/actions/strength_effect_assignment_all.js +40 -0
  59. package/out/concert/partial/actions/strength_effect_assignment_all.js.map +1 -0
  60. package/out/concert/partial/actions/strength_effect_count_increase.d.ts +2 -0
  61. package/out/concert/partial/actions/strength_effect_count_increase.js +40 -0
  62. package/out/concert/partial/actions/strength_effect_count_increase.js.map +1 -0
  63. package/out/concert/partial/actions/strength_effect_erasing.d.ts +2 -0
  64. package/out/concert/partial/actions/strength_effect_erasing.js +41 -0
  65. package/out/concert/partial/actions/strength_effect_erasing.js.map +1 -0
  66. package/out/concert/partial/actions/strength_effect_erasing_all.d.ts +2 -0
  67. package/out/concert/partial/actions/strength_effect_erasing_all.js +34 -0
  68. package/out/concert/partial/actions/strength_effect_erasing_all.js.map +1 -0
  69. package/out/concert/partial/actions/strength_effect_migration_before_active_skill.d.ts +2 -0
  70. package/out/concert/partial/actions/strength_effect_migration_before_active_skill.js +47 -0
  71. package/out/concert/partial/actions/strength_effect_migration_before_active_skill.js.map +1 -0
  72. package/out/concert/partial/actions/strength_effect_migration_before_special_skill.d.ts +2 -0
  73. package/out/concert/partial/actions/strength_effect_migration_before_special_skill.js +47 -0
  74. package/out/concert/partial/actions/strength_effect_migration_before_special_skill.js.map +1 -0
  75. package/out/concert/partial/actions/strength_effect_value_increase.d.ts +2 -0
  76. package/out/concert/partial/actions/strength_effect_value_increase.js +55 -0
  77. package/out/concert/partial/actions/strength_effect_value_increase.js.map +1 -0
  78. package/out/concert/partial/actions/target_stamina_recovery.d.ts +2 -0
  79. package/out/concert/partial/actions/target_stamina_recovery.js +36 -0
  80. package/out/concert/partial/actions/target_stamina_recovery.js.map +1 -0
  81. package/out/concert/partial/actions/visual_boost.d.ts +2 -0
  82. package/out/concert/partial/actions/visual_boost.js +35 -0
  83. package/out/concert/partial/actions/visual_boost.js.map +1 -0
  84. package/out/concert/partial/actions/visual_down.d.ts +2 -0
  85. package/out/concert/partial/actions/visual_down.js +35 -0
  86. package/out/concert/partial/actions/visual_down.js.map +1 -0
  87. package/out/concert/partial/actions/visual_up.d.ts +2 -0
  88. package/out/concert/partial/actions/visual_up.js +35 -0
  89. package/out/concert/partial/actions/visual_up.js.map +1 -0
  90. package/out/concert/partial/actions/vocal_boost.d.ts +2 -0
  91. package/out/concert/partial/actions/vocal_boost.js +35 -0
  92. package/out/concert/partial/actions/vocal_boost.js.map +1 -0
  93. package/out/concert/partial/actions/vocal_down.d.ts +2 -0
  94. package/out/concert/partial/actions/vocal_down.js +35 -0
  95. package/out/concert/partial/actions/vocal_down.js.map +1 -0
  96. package/out/concert/partial/actions/vocal_up.d.ts +2 -0
  97. package/out/concert/partial/actions/vocal_up.js +35 -0
  98. package/out/concert/partial/actions/vocal_up.js.map +1 -0
  99. package/out/concert/partial/actions/weakness_effect_inversion.d.ts +2 -0
  100. package/out/concert/partial/actions/weakness_effect_inversion.js +60 -0
  101. package/out/concert/partial/actions/weakness_effect_inversion.js.map +1 -0
  102. package/out/concert/partial/actions/weakness_effect_recovery.d.ts +2 -0
  103. package/out/concert/partial/actions/weakness_effect_recovery.js +34 -0
  104. package/out/concert/partial/actions/weakness_effect_recovery.js.map +1 -0
  105. package/out/concert/partial/apply_continuous_effects.d.ts +2 -0
  106. package/out/concert/partial/apply_continuous_effects.js +22 -0
  107. package/out/concert/partial/apply_continuous_effects.js.map +1 -0
  108. package/out/concert/partial/b_check_existence.d.ts +2 -0
  109. package/out/concert/partial/b_check_existence.js +37 -0
  110. package/out/concert/partial/b_check_existence.js.map +1 -0
  111. package/out/concert/partial/c_check_act_skill_stamina.d.ts +2 -0
  112. package/out/concert/partial/c_check_act_skill_stamina.js +28 -0
  113. package/out/concert/partial/c_check_act_skill_stamina.js.map +1 -0
  114. package/out/concert/partial/d_check_act_skill_cool_time.d.ts +2 -0
  115. package/out/concert/partial/d_check_act_skill_cool_time.js +24 -0
  116. package/out/concert/partial/d_check_act_skill_cool_time.js.map +1 -0
  117. package/out/concert/partial/e_check_act_skill_possibility.d.ts +2 -0
  118. package/out/concert/partial/e_check_act_skill_possibility.js +21 -0
  119. package/out/concert/partial/e_check_act_skill_possibility.js.map +1 -0
  120. package/out/concert/partial/f_determine_act_skill_privilege.d.ts +2 -0
  121. package/out/concert/partial/f_determine_act_skill_privilege.js +28 -0
  122. package/out/concert/partial/f_determine_act_skill_privilege.js.map +1 -0
  123. package/out/concert/partial/handle_combo.d.ts +16 -0
  124. package/out/concert/partial/handle_combo.js +44 -0
  125. package/out/concert/partial/handle_combo.js.map +1 -0
  126. package/out/concert/partial/impl_efficacy.d.ts +7 -0
  127. package/out/concert/partial/impl_efficacy.js +19 -0
  128. package/out/concert/partial/impl_efficacy.js.map +1 -0
  129. package/out/concert/partial/init_concert.d.ts +7 -0
  130. package/out/concert/partial/init_concert.js +114 -0
  131. package/out/concert/partial/init_concert.js.map +1 -0
  132. package/out/concert/partial/perform_beat.d.ts +2 -0
  133. package/out/concert/partial/perform_beat.js +19 -0
  134. package/out/concert/partial/perform_beat.js.map +1 -0
  135. package/out/concert/partial/perform_skill.d.ts +15 -0
  136. package/out/concert/partial/perform_skill.js +166 -0
  137. package/out/concert/partial/perform_skill.js.map +1 -0
  138. package/out/concert/partial/prepare_p_skill.d.ts +5 -0
  139. package/out/concert/partial/prepare_p_skill.js +68 -0
  140. package/out/concert/partial/prepare_p_skill.js.map +1 -0
  141. package/out/concert/partial/rotate_ct.d.ts +2 -0
  142. package/out/concert/partial/rotate_ct.js +24 -0
  143. package/out/concert/partial/rotate_ct.js.map +1 -0
  144. package/out/concert/partial/rotate_remains.d.ts +2 -0
  145. package/out/concert/partial/rotate_remains.js +14 -0
  146. package/out/concert/partial/rotate_remains.js.map +1 -0
  147. package/out/concert/target_analyze.d.ts +4 -0
  148. package/out/concert/target_analyze.js +32 -0
  149. package/out/concert/target_analyze.js.map +1 -0
  150. package/out/concert/target_proc.d.ts +3 -0
  151. package/out/concert/target_proc.js +200 -0
  152. package/out/concert/target_proc.js.map +1 -0
  153. package/out/concert/trigger_analyze.d.ts +4 -0
  154. package/out/concert/trigger_analyze.js +38 -0
  155. package/out/concert/trigger_analyze.js.map +1 -0
  156. package/out/concert/trigger_proc.d.ts +5 -0
  157. package/out/concert/trigger_proc.js +334 -0
  158. package/out/concert/trigger_proc.js.map +1 -0
  159. package/out/database/Card.json +7641 -0
  160. package/out/database/CardParameter.json +4682 -0
  161. package/out/database/CardRarity.json +62 -0
  162. package/out/database/LiveAbility.json +26906 -0
  163. package/out/database/LiveBonus.json +464 -0
  164. package/out/database/LiveBonusGroup.json +466 -0
  165. package/out/database/Music.json +20282 -0
  166. package/out/database/MusicChartPattern.json +99842 -0
  167. package/out/database/Quest.json +95671 -0
  168. package/out/database/Setting.json +280 -0
  169. package/out/database/Skill.json +94030 -0
  170. package/out/database/SkillEfficacy.json +37042 -0
  171. package/out/database/SkillTarget.json +212 -0
  172. package/out/database/SkillTrigger.json +511 -0
  173. package/out/db/dao/card_dao.d.ts +5 -0
  174. package/out/db/dao/card_dao.js +27 -0
  175. package/out/db/dao/card_dao.js.map +1 -0
  176. package/out/db/dao/quest_dao.d.ts +8 -0
  177. package/out/db/dao/quest_dao.js +49 -0
  178. package/out/db/dao/quest_dao.js.map +1 -0
  179. package/out/db/dao/setting_dao.d.ts +3 -0
  180. package/out/db/dao/setting_dao.js +13 -0
  181. package/out/db/dao/setting_dao.js.map +1 -0
  182. package/out/db/dao/skill_dao.d.ts +6 -0
  183. package/out/db/dao/skill_dao.js +42 -0
  184. package/out/db/dao/skill_dao.js.map +1 -0
  185. package/out/db/repository/card_repository.d.ts +6 -0
  186. package/out/db/repository/card_repository.js +39 -0
  187. package/out/db/repository/card_repository.js.map +1 -0
  188. package/out/db/repository/quest_repository.d.ts +2 -0
  189. package/out/db/repository/quest_repository.js +17 -0
  190. package/out/db/repository/quest_repository.js.map +1 -0
  191. package/out/db/repository/setting_repository.d.ts +2 -0
  192. package/out/db/repository/setting_repository.js +9 -0
  193. package/out/db/repository/setting_repository.js.map +1 -0
  194. package/out/db/repository/skill_repository.d.ts +2 -0
  195. package/out/db/repository/skill_repository.js +31 -0
  196. package/out/db/repository/skill_repository.js.map +1 -0
  197. package/out/db/wrapper/card_wrapper.d.ts +2 -0
  198. package/out/db/wrapper/card_wrapper.js +30 -0
  199. package/out/db/wrapper/card_wrapper.js.map +1 -0
  200. package/out/db/wrapper/quest_wrapper.d.ts +2 -0
  201. package/out/db/wrapper/quest_wrapper.js +47 -0
  202. package/out/db/wrapper/quest_wrapper.js.map +1 -0
  203. package/out/db/wrapper/skill_wrapper.d.ts +5 -0
  204. package/out/db/wrapper/skill_wrapper.js +34 -0
  205. package/out/db/wrapper/skill_wrapper.js.map +1 -0
  206. package/out/index.d.ts +3 -0
  207. package/out/index.js +18 -0
  208. package/out/index.js.map +1 -0
  209. package/out/main.d.ts +1 -0
  210. package/out/main.js +67 -0
  211. package/out/main.js.map +1 -0
  212. package/out/satomi/card.d.ts +4 -0
  213. package/out/satomi/card.js +36 -0
  214. package/out/satomi/card.js.map +1 -0
  215. package/out/satomi/deck.d.ts +3 -0
  216. package/out/satomi/deck.js +28 -0
  217. package/out/satomi/deck.js.map +1 -0
  218. package/out/satomi/live.d.ts +4 -0
  219. package/out/satomi/live.js +14 -0
  220. package/out/satomi/live.js.map +1 -0
  221. package/out/types/card_types.d.ts +40 -0
  222. package/out/types/card_types.js +3 -0
  223. package/out/types/card_types.js.map +1 -0
  224. package/out/types/concert_types.d.ts +134 -0
  225. package/out/types/concert_types.js +3 -0
  226. package/out/types/concert_types.js.map +1 -0
  227. package/out/types/misc_types.d.ts +15 -0
  228. package/out/types/misc_types.js +3 -0
  229. package/out/types/misc_types.js.map +1 -0
  230. package/out/types/proto/proto_api.d.ts +4353 -0
  231. package/out/types/proto/proto_api.js +4 -0
  232. package/out/types/proto/proto_api.js.map +1 -0
  233. package/out/types/proto/proto_enum.d.ts +1607 -0
  234. package/out/types/proto/proto_enum.js +1744 -0
  235. package/out/types/proto/proto_enum.js.map +1 -0
  236. package/out/types/proto/proto_master.d.ts +1963 -0
  237. package/out/types/proto/proto_master.js +4 -0
  238. package/out/types/proto/proto_master.js.map +1 -0
  239. package/out/types/proto/proto_transaction.d.ts +395 -0
  240. package/out/types/proto/proto_transaction.js +4 -0
  241. package/out/types/proto/proto_transaction.js.map +1 -0
  242. package/out/types/trans_types.d.ts +23 -0
  243. package/out/types/trans_types.js +3 -0
  244. package/out/types/trans_types.js.map +1 -0
  245. package/out/types/wap/card_waps.d.ts +9 -0
  246. package/out/types/wap/card_waps.js +3 -0
  247. package/out/types/wap/card_waps.js.map +1 -0
  248. package/out/types/wap/misc_waps.d.ts +11 -0
  249. package/out/types/wap/misc_waps.js +3 -0
  250. package/out/types/wap/misc_waps.js.map +1 -0
  251. package/out/types/wap/quest_waps.d.ts +12 -0
  252. package/out/types/wap/quest_waps.js +3 -0
  253. package/out/types/wap/quest_waps.js.map +1 -0
  254. package/out/types/wap/skill_waps.d.ts +24 -0
  255. package/out/types/wap/skill_waps.js +3 -0
  256. package/out/types/wap/skill_waps.js.map +1 -0
  257. package/out/utils/calc_utils.d.ts +20 -0
  258. package/out/utils/calc_utils.js +137 -0
  259. package/out/utils/calc_utils.js.map +1 -0
  260. package/out/utils/chart_utils.d.ts +49 -0
  261. package/out/utils/chart_utils.js +218 -0
  262. package/out/utils/chart_utils.js.map +1 -0
  263. package/out/utils/console_utils.d.ts +1 -0
  264. package/out/utils/console_utils.js +9 -0
  265. package/out/utils/console_utils.js.map +1 -0
  266. package/out/utils/skill_utils.d.ts +9 -0
  267. package/out/utils/skill_utils.js +86 -0
  268. package/out/utils/skill_utils.js.map +1 -0
  269. package/package.json +32 -0
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports._performSkill = exports.performStageSkill = exports.performPSkill = exports.performASPSkill = void 0;
27
+ const proto_enum_1 = require("../../types/proto/proto_enum");
28
+ const calc = __importStar(require("../../utils/calc_utils"));
29
+ const chart_utils_1 = require("../../utils/chart_utils");
30
+ const target_proc_1 = require("../target_proc");
31
+ const trigger_proc_1 = require("../trigger_proc");
32
+ const handle_combo_1 = require("./handle_combo");
33
+ /**
34
+ * Performs A, SP skill and return a flag refers to performing info.
35
+ * @param this
36
+ * @param actables
37
+ * @returns A number which refers to which side performed this skill, or Zero(failed).
38
+ */
39
+ function performASPSkill(actables) {
40
+ if (actables.length) {
41
+ if (actables[0].skills.length) {
42
+ const { index, skills } = actables[0];
43
+ const card = this.liveDeck.getCard(index);
44
+ const skill = card.getSkill(skills[0]);
45
+ const cardStat = this.current.getCardStatus(index);
46
+ const skillStat = cardStat.getSkillStatus(skills[0]);
47
+ const actSkill = this._performSkill(index, skills[0], skill, skillStat, index > 5, false, card, cardStat);
48
+ if (actSkill) {
49
+ this.current.actSkill = actSkill;
50
+ skillStat.used = true;
51
+ return index > 5 ? handle_combo_1.ComboType.AddOpponent : handle_combo_1.ComboType.AddAlly;
52
+ }
53
+ }
54
+ }
55
+ // skill failed
56
+ const isAllyBuffed = this.current
57
+ .getCardStatus(this.current.actPosition)
58
+ .getEffects(proto_enum_1.SkillEfficacyType.ComboContinuation).length > 0;
59
+ if (isAllyBuffed) {
60
+ return handle_combo_1.ComboType.KeepAllyBreakOpponent;
61
+ }
62
+ // FIXME(delayed): keep opponent
63
+ return handle_combo_1.ComboType.Break;
64
+ }
65
+ exports.performASPSkill = performASPSkill;
66
+ function performPSkill(cardIndex, skillIndex, isBeforeBeat) {
67
+ const card = this.liveDeck.getCard(cardIndex);
68
+ const skill = card.getSkill(skillIndex);
69
+ const cardStat = this.current.getCardStatus(cardIndex);
70
+ const skillStat = cardStat.getSkillStatus(skillIndex);
71
+ const actSkill = this._performSkill(cardIndex, skillIndex, skill, skillStat, cardIndex > 5, isBeforeBeat, card, cardStat);
72
+ if (actSkill) {
73
+ this.current.actPSkills.push(actSkill);
74
+ skillStat.used = true;
75
+ return true;
76
+ }
77
+ return false;
78
+ }
79
+ exports.performPSkill = performPSkill;
80
+ function performStageSkill(cardIndex, skillIndex, isBeforeBeat) {
81
+ const skillStat = this.current.getStageStatus(cardIndex, skillIndex);
82
+ const actSkill = this._performSkill(skillStat.cardIndex, skillStat.skillIndex, this.live.quest.liveBonuses[skillIndex].skill, skillStat, cardIndex !== 101, isBeforeBeat);
83
+ if (actSkill) {
84
+ this.current.actPSkills.push(actSkill);
85
+ skillStat.used = true;
86
+ return true;
87
+ }
88
+ return false;
89
+ }
90
+ exports.performStageSkill = performStageSkill;
91
+ function _performSkill(cardIndex, skillIndex, skill, skillStat, isOpponentSide, isBeforeBeat, card, cardStat) {
92
+ var _a;
93
+ // rolling
94
+ if (!calc.roll(skill.probabilityPermil)) {
95
+ return;
96
+ }
97
+ // check stamina
98
+ let stamina = skill.stamina;
99
+ if (card && cardStat) {
100
+ stamina = calc.calcSkillStaminaConsumption(skill, card, cardStat, this.live.quest.skillStaminaWeightPermil);
101
+ if (cardStat.stamina < stamina) {
102
+ return; // stamina shortages
103
+ }
104
+ }
105
+ // get triggered indexes
106
+ const triggeredIndexes = (0, trigger_proc_1.getTriggeredIndexes)(skill.trigger, skill.categoryType, skillStat, this.live, this.current, cardIndex, isOpponentSide, this.actables, cardStat, card);
107
+ if (!triggeredIndexes) {
108
+ // TODO: notify new triggers
109
+ console.error("New trigger hasn't been implemented.");
110
+ return; // unhandled triggers
111
+ }
112
+ if (triggeredIndexes.length === 0) {
113
+ return; // not triggered
114
+ }
115
+ // SKILL ACTIVATION COMFIRMED
116
+ this.order += 1;
117
+ // critical or not
118
+ const isCritical = (0, chart_utils_1.getCritical)((_a = cardStat === null || cardStat === void 0 ? void 0 : cardStat.technique) !== null && _a !== void 0 ? _a : 0, this.live.quest.difficultyLevel);
119
+ // calculate stamina consumption
120
+ if (card && cardStat) {
121
+ stamina = calc.calcSkillStaminaConsumption(skill, card, cardStat, this.live.quest.skillStaminaWeightPermil);
122
+ // consume stamina
123
+ cardStat.stamina -= stamina;
124
+ }
125
+ // create a new ActSkill
126
+ const actSkill = {
127
+ cardIndex: cardIndex,
128
+ skillIndex: skillIndex,
129
+ order: this.order,
130
+ stamina: stamina,
131
+ details: [],
132
+ isCritical: isCritical,
133
+ isComboBreak: false,
134
+ };
135
+ for (const [index, detail] of skill.wapSkillDetails.entries()) {
136
+ const detailTriggeredIndexes = (0, trigger_proc_1.getTriggeredIndexes)(detail.trigger, skill.categoryType, skillStat, this.live, this.current, cardIndex, isOpponentSide, this.actables, cardStat, card);
137
+ if (!detailTriggeredIndexes) {
138
+ // TODO: notify new triggers
139
+ console.error("New trigger hasn't been implemented.");
140
+ continue; // unhandled triggers
141
+ }
142
+ if (detailTriggeredIndexes.length === 0) {
143
+ continue; // not triggered
144
+ }
145
+ // get target indexes
146
+ const targetIndexes = (0, target_proc_1.getTargetIndexes)(detail.efficacy.skillTarget, skillStat, this.live, this.current, cardIndex, isOpponentSide, triggeredIndexes, detailTriggeredIndexes);
147
+ // implement to CardStatus
148
+ const { value, grade, maxGrade } = this.implementEfficacy(detail.efficacy, targetIndexes !== null && targetIndexes !== void 0 ? targetIndexes : [], cardIndex, skillIndex, isBeforeBeat);
149
+ actSkill.details.push({
150
+ name: detail.efficacy.name,
151
+ description: detail.efficacy.description,
152
+ grade: grade,
153
+ maxGrade: maxGrade,
154
+ efficacyIndex: index,
155
+ efficacyType: detail.efficacy.type,
156
+ targetIndexes: targetIndexes,
157
+ value: value,
158
+ });
159
+ // set SkillStatus
160
+ skillStat.coolTime = skill.coolTime;
161
+ skillStat.remainCount && skillStat.remainCount--;
162
+ }
163
+ return actSkill;
164
+ }
165
+ exports._performSkill = _performSkill;
166
+ //# sourceMappingURL=perform_skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perform_skill.js","sourceRoot":"","sources":["../../../concert/partial/perform_skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Concert } from "../concert";
2
+ export declare function preparePSkill(this: Concert, isBefore: boolean): Generator<{
3
+ cardIndex: number;
4
+ skillIndex: number;
5
+ }, void, unknown>;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preparePSkill = void 0;
4
+ const proto_enum_1 = require("../../types/proto/proto_enum");
5
+ const efficacy_list_1 = require("../consts/efficacy_list");
6
+ function* preparePSkill(isBefore) {
7
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
8
+ // stage skills
9
+ for (const it of (_a = this.current.stageSkillStatuses) !== null && _a !== void 0 ? _a : []) {
10
+ if (!it.hasTimes()) {
11
+ continue; // 无剩余次数
12
+ }
13
+ if (it.coolTime) {
14
+ continue; // 在 CT 中
15
+ }
16
+ const stageSkill = this.live.quest.liveBonuses[it.skillIndex].skill;
17
+ if (isBefore) {
18
+ if (!efficacy_list_1.TriggerBeforeList.includes((_c = (_b = stageSkill.trigger) === null || _b === void 0 ? void 0 : _b.type) !== null && _c !== void 0 ? _c : proto_enum_1.SkillTriggerType.Unknown)
19
+ && it.used) {
20
+ continue; // 不在当前发动时间点(beat前)
21
+ }
22
+ }
23
+ if (!isBefore) {
24
+ if (efficacy_list_1.TriggerBeforeList.includes((_e = (_d = stageSkill.trigger) === null || _d === void 0 ? void 0 : _d.type) !== null && _e !== void 0 ? _e : proto_enum_1.SkillTriggerType.Unknown)) {
25
+ continue; // 不在当前发动时间点(beat后)
26
+ }
27
+ }
28
+ yield {
29
+ cardIndex: it.cardIndex,
30
+ skillIndex: it.skillIndex,
31
+ };
32
+ }
33
+ // characters p-skills
34
+ for (const it of this.pSkills) {
35
+ const cardStat = this.current.getCardStatus(it.cardIndex);
36
+ const skillStat = cardStat.getSkillStatus(it.skillIndex);
37
+ if (!skillStat.hasTimes()) {
38
+ continue; // 无剩余次数
39
+ }
40
+ if (skillStat.coolTime) {
41
+ continue; // 在 CT 中
42
+ }
43
+ if (cardStat.getEffects(proto_enum_1.SkillEfficacyType.SkillImpossible).length) {
44
+ continue; // 不调中
45
+ }
46
+ if (this.pSkillPerformed.some(performed => performed.cardIndex === it.cardIndex && performed.skillIndex === it.skillIndex)) {
47
+ continue; // 本回合已发动过P技能
48
+ }
49
+ const skill = this.liveDeck.getCard(it.cardIndex).getSkill(it.skillIndex);
50
+ if (isBefore) {
51
+ if (!efficacy_list_1.TriggerBeforeList.includes((_g = (_f = skill.trigger) === null || _f === void 0 ? void 0 : _f.type) !== null && _g !== void 0 ? _g : proto_enum_1.SkillTriggerType.Unknown)
52
+ && skillStat.used) {
53
+ continue; // 不在当前发动时间点(beat前)
54
+ }
55
+ }
56
+ if (!isBefore) {
57
+ if (efficacy_list_1.TriggerBeforeList.includes((_j = (_h = skill.trigger) === null || _h === void 0 ? void 0 : _h.type) !== null && _j !== void 0 ? _j : proto_enum_1.SkillTriggerType.Unknown)) {
58
+ continue; // 不在当前发动时间点(beat后)
59
+ }
60
+ }
61
+ yield {
62
+ cardIndex: it.cardIndex,
63
+ skillIndex: it.skillIndex,
64
+ };
65
+ }
66
+ }
67
+ exports.preparePSkill = preparePSkill;
68
+ //# sourceMappingURL=prepare_p_skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prepare_p_skill.js","sourceRoot":"","sources":["../../../concert/partial/prepare_p_skill.ts"],"names":[],"mappings":";;;AAAA,6DAAmF;AAEnF,2DAA4D;AAE5D,QAAe,CAAC,CAAC,aAAa,CAE5B,QAAiB;;IAEjB,eAAe;IACf,KAAK,MAAM,EAAE,IAAI,MAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,mCAAI,EAAE,EAAE;QACtD,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;YAClB,SAAQ,CAAC,QAAQ;SAClB;QACD,IAAI,EAAE,CAAC,QAAQ,EAAE;YACf,SAAQ,CAAC,SAAS;SACnB;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAY,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,KAAK,CAAA;QACpE,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,iCAAiB,CAAC,QAAQ,CAAC,MAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,IAAI,mCAAI,6BAAgB,CAAC,OAAO,CAAC;mBAChF,EAAE,CAAC,IAAI,EAAE;gBACZ,SAAQ,CAAC,mBAAmB;aAC7B;SACF;QACD,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,iCAAiB,CAAC,QAAQ,CAAC,MAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,IAAI,mCAAI,6BAAgB,CAAC,OAAO,CAAC,EAAE;gBACpF,SAAQ,CAAC,mBAAmB;aAC7B;SACF;QACD,MAAM;YACJ,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,UAAU,EAAE,EAAE,CAAC,UAAU;SAC1B,CAAA;KACF;IAED,sBAAsB;IACtB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,CAAA;QACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;QACxD,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE;YACzB,SAAQ,CAAC,QAAQ;SAClB;QACD,IAAI,SAAS,CAAC,QAAQ,EAAE;YACtB,SAAQ,CAAC,SAAS;SACnB;QACD,IAAI,QAAQ,CAAC,UAAU,CAAC,8BAAiB,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE;YACjE,SAAQ,CAAC,MAAM;SAChB;QACD,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CACxC,SAAS,CAAC,SAAS,KAAK,EAAE,CAAC,SAAS,IAAI,SAAS,CAAC,UAAU,KAAK,EAAE,CAAC,UAAU,CAAC,EAC/E;YACA,SAAQ,CAAC,aAAa;SACvB;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;QACzE,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,iCAAiB,CAAC,QAAQ,CAAC,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,mCAAI,6BAAgB,CAAC,OAAO,CAAC;mBAC3E,SAAS,CAAC,IAAI,EAAE;gBACnB,SAAQ,CAAC,mBAAmB;aAC7B;SACF;QACD,IAAI,CAAC,QAAQ,EAAE;YACb,IAAI,iCAAiB,CAAC,QAAQ,CAAC,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,mCAAI,6BAAgB,CAAC,OAAO,CAAC,EAAE;gBAC/E,SAAQ,CAAC,mBAAmB;aAC7B;SACF;QACD,MAAM;YACJ,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,UAAU,EAAE,EAAE,CAAC,UAAU;SAC1B,CAAA;KACF;AACH,CAAC;AAjED,sCAiEC"}
@@ -0,0 +1,2 @@
1
+ import { Concert } from "../concert";
2
+ export declare function rotateCT(this: Concert): void;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rotateCT = void 0;
4
+ function rotateCT() {
5
+ var _a;
6
+ // reduce card skill CT
7
+ this.current.cardStatuses.forEach(cardStat => {
8
+ cardStat.skillStatuses.forEach(skillStat => {
9
+ if (skillStat.coolTime) {
10
+ skillStat.coolTime -= 1;
11
+ }
12
+ });
13
+ });
14
+ // reduce stage skill CT
15
+ (_a = this.current.stageSkillStatuses) === null || _a === void 0 ? void 0 : _a.forEach(stageSkillStat => {
16
+ if (stageSkillStat.coolTime) {
17
+ stageSkillStat.coolTime -= 1;
18
+ }
19
+ });
20
+ // reduce photo CT
21
+ //...
22
+ }
23
+ exports.rotateCT = rotateCT;
24
+ //# sourceMappingURL=rotate_ct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rotate_ct.js","sourceRoot":"","sources":["../../../concert/partial/rotate_ct.ts"],"names":[],"mappings":";;;AAEA,SAAgB,QAAQ;;IAGtB,uBAAuB;IACvB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3C,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACzC,IAAI,SAAS,CAAC,QAAQ,EAAE;gBACtB,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAA;aACxB;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,wBAAwB;IACxB,MAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,0CAAE,OAAO,CAAC,cAAc,CAAC,EAAE;QACxD,IAAI,cAAc,CAAC,QAAQ,EAAE;YAC3B,cAAc,CAAC,QAAQ,IAAI,CAAC,CAAA;SAC7B;IACH,CAAC,CAAC,CAAA;IACF,kBAAkB;IAClB,KAAK;AACP,CAAC;AAnBD,4BAmBC"}
@@ -0,0 +1,2 @@
1
+ import { Concert } from "../concert";
2
+ export declare function rotateRemains(this: Concert): void;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rotateRemains = void 0;
4
+ function rotateRemains() {
5
+ this.current.cardStatuses.forEach(cardStat => {
6
+ cardStat.effects.forEach(eff => {
7
+ if (eff.remain) {
8
+ eff.remain -= 1;
9
+ }
10
+ });
11
+ });
12
+ }
13
+ exports.rotateRemains = rotateRemains;
14
+ //# sourceMappingURL=rotate_remains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rotate_remains.js","sourceRoot":"","sources":["../../../concert/partial/rotate_remains.ts"],"names":[],"mappings":";;;AAEA,SAAgB,aAAa;IAG3B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,IAAI,GAAG,CAAC,MAAM,EAAE;gBACd,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;aAChB;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAVD,sCAUC"}
@@ -0,0 +1,4 @@
1
+ import { SkillEfficacyType } from "../types/proto/proto_enum";
2
+ export declare function getTargetStatusType(targetId: string): [SkillEfficacyType, number] | undefined;
3
+ export declare function getTargetLastNum(targetId: string): number | undefined;
4
+ export declare function getTargetSecondLastNum(targetId: string): number | undefined;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTargetSecondLastNum = exports.getTargetLastNum = exports.getTargetStatusType = void 0;
4
+ const chart_consts_1 = require("./consts/chart_consts");
5
+ function getTargetStatusType(targetId) {
6
+ let matched = targetId.match(/target-status-(\w+)-(\d)/);
7
+ if (matched) {
8
+ let targetStatusStr = matched[1];
9
+ let effectType = chart_consts_1.Str2EfficacyType[targetStatusStr];
10
+ let amount = +matched[2];
11
+ return [effectType, amount];
12
+ }
13
+ return undefined;
14
+ }
15
+ exports.getTargetStatusType = getTargetStatusType;
16
+ function getTargetLastNum(targetId) {
17
+ let matched = targetId.match(/\d+$/);
18
+ if (matched) {
19
+ return +matched[0];
20
+ }
21
+ return undefined;
22
+ }
23
+ exports.getTargetLastNum = getTargetLastNum;
24
+ function getTargetSecondLastNum(targetId) {
25
+ let matched = targetId.match(/\d+(?=-\d+$)/);
26
+ if (matched) {
27
+ return +matched[0];
28
+ }
29
+ return undefined;
30
+ }
31
+ exports.getTargetSecondLastNum = getTargetSecondLastNum;
32
+ //# sourceMappingURL=target_analyze.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target_analyze.js","sourceRoot":"","sources":["../../concert/target_analyze.ts"],"names":[],"mappings":";;;AACA,wDAAwD;AAExD,SAAgB,mBAAmB,CACjC,QAAgB;IAEhB,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IACxD,IAAI,OAAO,EAAE;QACX,IAAI,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAChC,IAAI,UAAU,GAAG,+BAAgB,CAAC,eAAe,CAAC,CAAA;QAClD,IAAI,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACxB,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;KAC5B;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAXD,kDAWC;AAED,SAAgB,gBAAgB,CAC9B,QAAgB;IAEhB,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACpC,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;KACnB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AARD,4CAQC;AAED,SAAgB,sBAAsB,CACpC,QAAgB;IAEhB,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAC5C,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;KACnB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AARD,wDAQC"}
@@ -0,0 +1,3 @@
1
+ import { Chart, Live, SkillStatus } from "../types/concert_types";
2
+ import { SkillTarget } from "../types/proto/proto_master";
3
+ export declare function getTargetIndexes(target: SkillTarget | undefined, skillStatus: SkillStatus, live: Live, current: Chart, deckPosition: number, isOpponentSide: boolean, skillTriggerIdx: number[], detailTriggerIdx: number[]): number[] | undefined;
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTargetIndexes = void 0;
4
+ const proto_enum_1 = require("../types/proto/proto_enum");
5
+ const chart_consts_1 = require("./consts/chart_consts");
6
+ const target_analyze_1 = require("./target_analyze");
7
+ function getTargetIndexes(target, skillStatus, live, current, deckPosition, isOpponentSide, skillTriggerIdx, detailTriggerIdx) {
8
+ return _getTargetIndexes(target, skillStatus, live, current, deckPosition, isOpponentSide, skillTriggerIdx, detailTriggerIdx);
9
+ }
10
+ exports.getTargetIndexes = getTargetIndexes;
11
+ // returns undefined if trigger logic hasn't been implemented
12
+ function _getTargetIndexes(target, skillStatus, live, current, deckPosition, isOpponentSide, skillTriggerIdx, detailTriggerIdx) {
13
+ if (target) {
14
+ // let targetList: number[] = []
15
+ var isOpponentTarget = false;
16
+ var targetNum = 1;
17
+ const targetList = (() => {
18
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
19
+ switch (target.type) {
20
+ case proto_enum_1.SkillTargetType.Self: {
21
+ return [deckPosition];
22
+ }
23
+ case proto_enum_1.SkillTargetType.All: {
24
+ targetNum = 5; // PTI
25
+ return current.cardStatuses.map(stat => stat.cardIndex);
26
+ }
27
+ case proto_enum_1.SkillTargetType.Center: {
28
+ return [1, 6];
29
+ }
30
+ case proto_enum_1.SkillTargetType.DanceHigher: {
31
+ targetNum = (_a = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _a !== void 0 ? _a : 1;
32
+ return current.cardStatuses.slice()
33
+ .sort((a, b) => b.dance - a.dance)
34
+ .map(stat => stat.cardIndex);
35
+ }
36
+ case proto_enum_1.SkillTargetType.DanceLower: {
37
+ targetNum = (_b = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _b !== void 0 ? _b : 1;
38
+ return current.cardStatuses.slice()
39
+ .sort((a, b) => a.dance - b.dance)
40
+ .map(stat => stat.cardIndex);
41
+ }
42
+ case proto_enum_1.SkillTargetType.VocalHigher: {
43
+ targetNum = (_c = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _c !== void 0 ? _c : 1;
44
+ return current.cardStatuses.slice()
45
+ .sort((a, b) => b.vocal - a.vocal)
46
+ .map(stat => stat.cardIndex);
47
+ }
48
+ case proto_enum_1.SkillTargetType.VocalLower: {
49
+ targetNum = (_d = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _d !== void 0 ? _d : 1;
50
+ return current.cardStatuses.slice()
51
+ .sort((a, b) => a.vocal - b.vocal)
52
+ .map(stat => stat.cardIndex);
53
+ }
54
+ case proto_enum_1.SkillTargetType.VisualHigher: {
55
+ targetNum = (_e = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _e !== void 0 ? _e : 1;
56
+ return current.cardStatuses.slice()
57
+ .sort((a, b) => b.visual - a.visual)
58
+ .map(stat => stat.cardIndex);
59
+ }
60
+ case proto_enum_1.SkillTargetType.VisualLower: {
61
+ targetNum = (_f = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _f !== void 0 ? _f : 1;
62
+ return current.cardStatuses.slice()
63
+ .sort((a, b) => a.visual - b.visual)
64
+ .map(stat => stat.cardIndex);
65
+ }
66
+ case proto_enum_1.SkillTargetType.StaminaHigher: {
67
+ targetNum = (_g = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _g !== void 0 ? _g : 1;
68
+ return current.cardStatuses.slice()
69
+ .sort((a, b) => b.stamina - a.stamina)
70
+ .map(stat => stat.cardIndex);
71
+ }
72
+ case proto_enum_1.SkillTargetType.StaminaLower: {
73
+ targetNum = (_h = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _h !== void 0 ? _h : 1;
74
+ return current.cardStatuses.slice()
75
+ .sort((a, b) => a.stamina - b.stamina)
76
+ .map(stat => stat.cardIndex);
77
+ }
78
+ case proto_enum_1.SkillTargetType.Status: {
79
+ let [effectType, amount] = (_j = (0, target_analyze_1.getTargetStatusType)(target.id)) !== null && _j !== void 0 ? _j : [proto_enum_1.SkillEfficacyType.Unknown, 0];
80
+ if (effectType !== proto_enum_1.SkillEfficacyType.Unknown && !amount) {
81
+ targetNum = amount;
82
+ return current.cardStatuses.filter(status => {
83
+ var _a;
84
+ (_a = status.effects) === null || _a === void 0 ? void 0 : _a.some(eff => {
85
+ eff.efficacyType === effectType;
86
+ });
87
+ }).map(stat => stat.cardIndex);
88
+ }
89
+ return [];
90
+ }
91
+ case proto_enum_1.SkillTargetType.Trigger: {
92
+ targetNum = (_k = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _k !== void 0 ? _k : 1;
93
+ return skillTriggerIdx;
94
+ }
95
+ case proto_enum_1.SkillTargetType.CardType: {
96
+ let cardType = (_l = (0, target_analyze_1.getTargetSecondLastNum)(target.id)) !== null && _l !== void 0 ? _l : 0;
97
+ targetNum = (_m = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _m !== void 0 ? _m : 1;
98
+ return live.liveDeck.liveCards
99
+ .filter(it => it.liveCard.type === cardType)
100
+ .map(it => it.index);
101
+ }
102
+ case proto_enum_1.SkillTargetType.Neighbor: {
103
+ return chart_consts_1.IndexNeighbor[deckPosition];
104
+ }
105
+ case proto_enum_1.SkillTargetType.Vocal: {
106
+ targetNum = (_o = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _o !== void 0 ? _o : 1;
107
+ return live.liveDeck.liveCards
108
+ .filter(it => it.liveCard.attributeType === proto_enum_1.AttributeType.Vocal)
109
+ .map(it => it.index);
110
+ }
111
+ case proto_enum_1.SkillTargetType.Dance: {
112
+ targetNum = (_p = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _p !== void 0 ? _p : 1;
113
+ return live.liveDeck.liveCards
114
+ .filter(it => it.liveCard.attributeType === proto_enum_1.AttributeType.Dance)
115
+ .map(it => it.index);
116
+ }
117
+ case proto_enum_1.SkillTargetType.Visual: {
118
+ targetNum = (_q = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _q !== void 0 ? _q : 1;
119
+ return live.liveDeck.liveCards
120
+ .filter(it => it.liveCard.attributeType === proto_enum_1.AttributeType.Visual)
121
+ .map(it => it.index);
122
+ }
123
+ case proto_enum_1.SkillTargetType.PositionAttributeVocal:
124
+ case proto_enum_1.SkillTargetType.PositionAttributeDance:
125
+ case proto_enum_1.SkillTargetType.PositionAttributeVisual: {
126
+ let _type = (() => {
127
+ switch (target.type) {
128
+ case proto_enum_1.SkillTargetType.PositionAttributeVocal:
129
+ return proto_enum_1.AttributeType.Vocal;
130
+ case proto_enum_1.SkillTargetType.PositionAttributeDance:
131
+ return proto_enum_1.AttributeType.Dance;
132
+ case proto_enum_1.SkillTargetType.PositionAttributeVisual:
133
+ return proto_enum_1.AttributeType.Visual;
134
+ default:
135
+ return proto_enum_1.AttributeType.Unknown;
136
+ }
137
+ })();
138
+ targetNum = (_r = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _r !== void 0 ? _r : 1;
139
+ let _targetList = [];
140
+ if (live.quest.position1AttributeType === _type) {
141
+ _targetList.push(1, 6);
142
+ }
143
+ if (live.quest.position2AttributeType === _type) {
144
+ _targetList.push(2, 7);
145
+ }
146
+ if (live.quest.position3AttributeType === _type) {
147
+ _targetList.push(3, 8);
148
+ }
149
+ if (live.quest.position4AttributeType === _type) {
150
+ _targetList.push(4, 9);
151
+ }
152
+ if (live.quest.position5AttributeType === _type) {
153
+ _targetList.push(5, 10);
154
+ }
155
+ return _targetList;
156
+ }
157
+ case proto_enum_1.SkillTargetType.OpponentCenter: {
158
+ isOpponentTarget = true;
159
+ if (deckPosition >= 6)
160
+ return 1;
161
+ else
162
+ return 6;
163
+ }
164
+ case proto_enum_1.SkillTargetType.OpponentCardType: {
165
+ isOpponentTarget = true;
166
+ let cardType = (_s = (0, target_analyze_1.getTargetSecondLastNum)(target.id)) !== null && _s !== void 0 ? _s : 0;
167
+ targetNum = (_t = (0, target_analyze_1.getTargetLastNum)(target.id)) !== null && _t !== void 0 ? _t : 1;
168
+ return live.liveDeck.liveCards
169
+ .filter(it => it.liveCard.type === cardType)
170
+ .map(it => it.index);
171
+ }
172
+ case proto_enum_1.SkillTargetType.OpponentAll: {
173
+ isOpponentTarget = true;
174
+ targetNum = 5;
175
+ if (deckPosition <= 5) {
176
+ return [6, 7, 8, 9, 10];
177
+ }
178
+ else {
179
+ return [1, 2, 3, 4, 5];
180
+ }
181
+ }
182
+ case proto_enum_1.SkillTargetType.OpponentSamePosition: {
183
+ isOpponentTarget = true;
184
+ return chart_consts_1.SameLaneOpponent[deckPosition];
185
+ }
186
+ default:
187
+ console.error(`Unimplemented 'TargetType': ${target.type.toString()}.`);
188
+ return [];
189
+ }
190
+ })();
191
+ return ((isOpponentTarget && deckPosition >= 6) || (!isOpponentTarget && deckPosition <= 5)
192
+ // ally side
193
+ ? targetList.filter(it => it <= 5)
194
+ // opponent side
195
+ : targetList.filter(it => it >= 6)).filter((_, index) => {
196
+ return index < targetNum;
197
+ });
198
+ }
199
+ }
200
+ //# sourceMappingURL=target_proc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"target_proc.js","sourceRoot":"","sources":["../../concert/target_proc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { SkillEfficacyType } from "../types/proto/proto_enum";
2
+ export declare function getTriggerLastNum(triggerId: string): number | undefined;
3
+ export declare function getTriggerStatusType(triggerId: string): SkillEfficacyType;
4
+ export declare function getTriggerStatusGroup(triggerId: string): SkillEfficacyType[] | undefined;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTriggerStatusGroup = exports.getTriggerStatusType = exports.getTriggerLastNum = void 0;
4
+ const proto_enum_1 = require("../types/proto/proto_enum");
5
+ const chart_consts_1 = require("./consts/chart_consts");
6
+ function getTriggerLastNum(triggerId) {
7
+ let matched = triggerId.match(/\d+$/);
8
+ if (matched) {
9
+ return +matched[0];
10
+ }
11
+ return undefined;
12
+ }
13
+ exports.getTriggerLastNum = getTriggerLastNum;
14
+ function getTriggerLastStr(triggerId) {
15
+ let matched = triggerId.match(/\w+$/);
16
+ if (matched) {
17
+ return matched[0];
18
+ }
19
+ return undefined;
20
+ }
21
+ function getTriggerStatusType(triggerId) {
22
+ let flag = getTriggerLastStr(triggerId);
23
+ if (flag) {
24
+ let type = chart_consts_1.Str2EfficacyType[flag];
25
+ return type;
26
+ }
27
+ return proto_enum_1.SkillEfficacyType.Unknown;
28
+ }
29
+ exports.getTriggerStatusType = getTriggerStatusType;
30
+ function getTriggerStatusGroup(triggerId) {
31
+ let flag = getTriggerLastStr(triggerId);
32
+ if (flag) {
33
+ let group = chart_consts_1.Str2EfficacyGroup[flag];
34
+ return group;
35
+ }
36
+ }
37
+ exports.getTriggerStatusGroup = getTriggerStatusGroup;
38
+ //# sourceMappingURL=trigger_analyze.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger_analyze.js","sourceRoot":"","sources":["../../concert/trigger_analyze.ts"],"names":[],"mappings":";;;AAAA,0DAA6D;AAC7D,wDAA2E;AAE3E,SAAgB,iBAAiB,CAC/B,SAAiB;IAEjB,IAAI,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,OAAO,EAAE;QACX,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;KACnB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AARD,8CAQC;AAED,SAAS,iBAAiB,CACxB,SAAiB;IAEjB,IAAI,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IACrC,IAAI,OAAO,EAAE;QACX,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;KAClB;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAgB,oBAAoB,CAClC,SAAiB;IAEjB,IAAI,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,IAAI,EAAE;QACR,IAAI,IAAI,GAAG,+BAAgB,CAAC,IAAI,CAAC,CAAA;QACjC,OAAO,IAAI,CAAA;KACZ;IACD,OAAO,8BAAiB,CAAC,OAAO,CAAA;AAClC,CAAC;AATD,oDASC;AAED,SAAgB,qBAAqB,CACnC,SAAiB;IAEjB,IAAI,IAAI,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,IAAI,EAAE;QACR,IAAI,KAAK,GAAG,gCAAiB,CAAC,IAAI,CAAC,CAAA;QACnC,OAAO,KAAK,CAAA;KACb;AACH,CAAC;AARD,sDAQC"}
@@ -0,0 +1,5 @@
1
+ import { LiveCard } from "../types/card_types";
2
+ import { Actable, CardStatus, Chart, Live, SkillStatus } from "../types/concert_types";
3
+ import { SkillCategoryType } from "../types/proto/proto_enum";
4
+ import { SkillTrigger } from "../types/proto/proto_master";
5
+ export declare function getTriggeredIndexes(trigger: SkillTrigger | undefined, skillType: SkillCategoryType, skillStatus: SkillStatus, live: Live, current: Chart, deckPosition: number, isOpponentSide: boolean, actable: Actable[], cardStatus?: CardStatus, deckCard?: LiveCard): number[] | undefined;