gotchi-battler-game-logic 2.0.8 → 4.0.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 (74) hide show
  1. package/.cursor/rules/cursor-rules.mdc +67 -0
  2. package/.cursor/rules/directory-structure.mdc +63 -0
  3. package/.cursor/rules/self-improvement.mdc +64 -0
  4. package/.cursor/rules/tech-stack.mdc +99 -0
  5. package/README.md +7 -3
  6. package/eslint.config.js +31 -0
  7. package/game-logic/index.js +2 -5
  8. package/game-logic/v1.4/constants.js +0 -23
  9. package/game-logic/v1.4/index.js +64 -56
  10. package/game-logic/v1.5/constants.js +0 -23
  11. package/game-logic/v1.5/index.js +27 -21
  12. package/game-logic/v1.6/constants.js +0 -23
  13. package/game-logic/v1.6/index.js +27 -21
  14. package/game-logic/v1.7/constants.js +0 -23
  15. package/game-logic/v1.7/helpers.js +18 -3
  16. package/game-logic/v1.7/index.js +24 -18
  17. package/game-logic/v1.8/constants.js +112 -0
  18. package/game-logic/v1.8/helpers.js +628 -0
  19. package/game-logic/v1.8/index.js +832 -0
  20. package/game-logic/v2.0/constants.js +112 -0
  21. package/game-logic/v2.0/helpers.js +713 -0
  22. package/game-logic/v2.0/index.js +782 -0
  23. package/game-logic/v2.0/statuses.json +439 -0
  24. package/package.json +11 -4
  25. package/schemas/crystal.js +14 -0
  26. package/schemas/effect.js +25 -0
  27. package/schemas/gotchi.js +53 -0
  28. package/schemas/ingameteam.js +14 -0
  29. package/schemas/item.js +13 -0
  30. package/schemas/leaderskill.js +15 -0
  31. package/schemas/leaderskillstatus.js +12 -0
  32. package/schemas/special.js +22 -0
  33. package/schemas/team.js +24 -0
  34. package/schemas/team.json +254 -116
  35. package/scripts/balancing/createCSV.js +1 -1
  36. package/scripts/balancing/createTrainingGotchis.js +267 -0
  37. package/scripts/balancing/extractOnchainTraits.js +61 -0
  38. package/scripts/balancing/fixTrainingGotchis.js +41 -41
  39. package/scripts/balancing/processSims.js +6 -6
  40. package/scripts/balancing/sims.js +10 -17
  41. package/scripts/balancing/v1.7/mapGotchi.js +119 -0
  42. package/scripts/balancing/v1.7/setTeamPositions.js +2 -2
  43. package/scripts/balancing/v1.7/training_gotchis_traits.json +520 -0
  44. package/scripts/balancing/v1.7.1/mapGotchi.js +119 -0
  45. package/scripts/balancing/v1.7.1/setTeamPositions.js +2 -2
  46. package/scripts/balancing/v1.7.1/training_gotchis_traits.json +520 -0
  47. package/scripts/balancing/v1.7.2/mapGotchi.js +157 -0
  48. package/scripts/balancing/v1.7.2/setTeamPositions.js +2 -2
  49. package/scripts/balancing/v1.7.2/training_gotchis_traits.json +520 -0
  50. package/scripts/balancing/v1.7.3/class_combos.js +44 -0
  51. package/scripts/balancing/v1.7.3/mapGotchi.js +164 -0
  52. package/scripts/balancing/v1.7.3/setTeamPositions.js +122 -0
  53. package/scripts/balancing/v1.7.3/training_gotchis.json +22402 -0
  54. package/scripts/balancing/v1.7.3/training_gotchis_traits.json +37 -0
  55. package/scripts/balancing/v1.7.3/trait_combos.json +10 -0
  56. package/scripts/data/dungeon_mob_1.json +87 -0
  57. package/scripts/data/dungeon_mob_2.json +87 -0
  58. package/scripts/data/immaterialTeam1.json +374 -0
  59. package/scripts/data/immaterialTeam2.json +365 -0
  60. package/scripts/data/tournaments.json +5 -0
  61. package/scripts/generateAllSpecialsLogs.js +93 -0
  62. package/scripts/generateSpecialLogs.js +94 -0
  63. package/scripts/runCampaignBattles.js +41 -0
  64. package/scripts/runLocalBattle.js +6 -3
  65. package/scripts/runLocalDungeon.js +52 -0
  66. package/scripts/runPvPBattle.js +16 -0
  67. package/scripts/runRealBattle.js +8 -8
  68. package/scripts/simRealBattle.js +8 -8
  69. package/scripts/validateBattle.js +23 -16
  70. package/scripts/validateTournament.js +9 -9
  71. package/tests/getModifiedStats.test.js +78 -0
  72. package/utils/errors.js +13 -13
  73. package/utils/transforms.js +2 -8
  74. package/scripts/output/.gitkeep +0 -0
@@ -0,0 +1,112 @@
1
+ const PASSIVES = ['sharp_blades', 'cloud_of_zen', 'frenzy', 'fortify', 'spread_the_fear', 'cleansing_aura', 'channel_the_coven', 'clan_momentum']
2
+ const DEBUFF_STATUSES = ['bleed', 'stun', 'fear']
3
+ const BUFF_STATUSES = ['taunt']
4
+
5
+ const BUFF_MULT_EFFECTS = {
6
+ cloud_of_zen: {
7
+ magic: 0.138,
8
+ physical: 0.138
9
+ },
10
+ power_up_2: {
11
+ magic: 0.75,
12
+ physical: 0.50
13
+ },
14
+ frenzy: {
15
+ crit: 1.14
16
+ },
17
+ fortify: {
18
+ armor: 1
19
+ },
20
+ taunt: {
21
+ armor: 1.65
22
+ },
23
+ channel_the_coven: {
24
+ magic: 0.18
25
+ },
26
+ clan_momentum: {
27
+ physical: 0.16
28
+ }
29
+ }
30
+
31
+ const BUFF_FLAT_EFFECTS = {
32
+
33
+ }
34
+
35
+ // Combine all buffs
36
+ const BUFFS = [...PASSIVES, ...BUFF_STATUSES, ...Object.keys(BUFF_MULT_EFFECTS), ...Object.keys(BUFF_FLAT_EFFECTS)]
37
+
38
+ const DEBUFF_MULT_EFFECTS = {
39
+ fear: {
40
+ resist: 1
41
+ },
42
+ stun: {
43
+ speed: 0.23
44
+ }
45
+ }
46
+
47
+ const DEBUFF_FLAT_EFFECTS = {
48
+
49
+ }
50
+
51
+ // Combine all debuffs
52
+ const DEBUFFS = [...DEBUFF_STATUSES, ...Object.keys(DEBUFF_MULT_EFFECTS), ...Object.keys(DEBUFF_FLAT_EFFECTS)]
53
+
54
+ const MULTS = {
55
+ // General
56
+ FRONT_ROW_ATK_BONUS: 1.1,
57
+ FRONT_ROW_DEF_NERF: 0.8,
58
+ EXPIRE_LEADERSKILL: 0,
59
+ SPEED_PENALTY: 2.5,
60
+ MAX_STATUSES: 3,
61
+ CRIT_MULTIPLIER_FAST: 2,
62
+ CRIT_MULTIPLIER_SLOW: 2,
63
+ // Ninja
64
+ SHARP_BLADES_BLEED_CHANCE: 0.76,
65
+ BLEED_DAMAGE: 10,
66
+ SPECTRAL_STRIKE_DAMAGE: 1.25,
67
+ // Enlightened
68
+ // Cleaver
69
+ CLEAVE_DAMAGE: 1.55,
70
+ // Tank
71
+ COUNTER_SPEED_MULTIPLIER: 0.5,
72
+ FORTIFY_COUNTER_CHANCE: 32,
73
+ COUNTER_DAMAGE: 1.9,
74
+ FORTIFY_COUNTER_DAMAGE: 1.9,
75
+ // Cursed
76
+ SPREAD_THE_FEAR_CHANCE: 0.84,
77
+ SPREAD_THE_FEAR_SPEED_PENALTY: 0,
78
+ SPREAD_THE_FEAR_CURSE_DAMAGE: 1.3,
79
+ CURSE_DAMAGE: 1.2,
80
+ CURSE_HEAL: 1,
81
+ CURSE_SPEED_PENALTY: 0,
82
+ // Healer
83
+ CLEANSING_AURA_REGEN: 0.2,
84
+ CLEANSING_AURA_NON_HEALER_REGEN: 0.1,
85
+ CLEANSING_AURA_HEAL: 3.4,
86
+ CLEANSING_AURA_HEAL_SPEED_PENALTY: 1,
87
+ BLESSING_HEAL: 2.7,
88
+ BLESSING_HEAL_SPEED_PENALTY: 1,
89
+ BLESSING_HEAL_CRIT_MULTIPLIER: 1.25,
90
+ // Mage
91
+ CHANNEL_THE_COVEN_STUN_CHANCE: 0.9,
92
+ THUNDER_STUN_CHANCE: 0.65,
93
+ THUNDER_DAMAGE: 1,
94
+ // Troll
95
+ CLAN_MOMENTUM_CHANCE: 0.9,
96
+ DEVESTATING_SMASH_X2_CHANCE: 0.65,
97
+ DEVESTATING_SMASH_DAMAGE: 2.5,
98
+ DEVESTATING_SMASH_X2_DAMAGE: 1.9,
99
+ }
100
+
101
+ module.exports = {
102
+ PASSIVES,
103
+ DEBUFF_STATUSES,
104
+ BUFF_STATUSES,
105
+ BUFF_MULT_EFFECTS,
106
+ BUFF_FLAT_EFFECTS,
107
+ BUFFS,
108
+ DEBUFF_MULT_EFFECTS,
109
+ DEBUFF_FLAT_EFFECTS,
110
+ DEBUFFS,
111
+ MULTS
112
+ }