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.
- package/.cursor/rules/cursor-rules.mdc +67 -0
- package/.cursor/rules/directory-structure.mdc +63 -0
- package/.cursor/rules/self-improvement.mdc +64 -0
- package/.cursor/rules/tech-stack.mdc +99 -0
- package/README.md +7 -3
- package/eslint.config.js +31 -0
- package/game-logic/index.js +2 -5
- package/game-logic/v1.4/constants.js +0 -23
- package/game-logic/v1.4/index.js +64 -56
- package/game-logic/v1.5/constants.js +0 -23
- package/game-logic/v1.5/index.js +27 -21
- package/game-logic/v1.6/constants.js +0 -23
- package/game-logic/v1.6/index.js +27 -21
- package/game-logic/v1.7/constants.js +0 -23
- package/game-logic/v1.7/helpers.js +18 -3
- package/game-logic/v1.7/index.js +24 -18
- package/game-logic/v1.8/constants.js +112 -0
- package/game-logic/v1.8/helpers.js +628 -0
- package/game-logic/v1.8/index.js +832 -0
- package/game-logic/v2.0/constants.js +112 -0
- package/game-logic/v2.0/helpers.js +713 -0
- package/game-logic/v2.0/index.js +782 -0
- package/game-logic/v2.0/statuses.json +439 -0
- package/package.json +11 -4
- package/schemas/crystal.js +14 -0
- package/schemas/effect.js +25 -0
- package/schemas/gotchi.js +53 -0
- package/schemas/ingameteam.js +14 -0
- package/schemas/item.js +13 -0
- package/schemas/leaderskill.js +15 -0
- package/schemas/leaderskillstatus.js +12 -0
- package/schemas/special.js +22 -0
- package/schemas/team.js +24 -0
- package/schemas/team.json +254 -116
- package/scripts/balancing/createCSV.js +1 -1
- package/scripts/balancing/createTrainingGotchis.js +267 -0
- package/scripts/balancing/extractOnchainTraits.js +61 -0
- package/scripts/balancing/fixTrainingGotchis.js +41 -41
- package/scripts/balancing/processSims.js +6 -6
- package/scripts/balancing/sims.js +10 -17
- package/scripts/balancing/v1.7/mapGotchi.js +119 -0
- package/scripts/balancing/v1.7/setTeamPositions.js +2 -2
- package/scripts/balancing/v1.7/training_gotchis_traits.json +520 -0
- package/scripts/balancing/v1.7.1/mapGotchi.js +119 -0
- package/scripts/balancing/v1.7.1/setTeamPositions.js +2 -2
- package/scripts/balancing/v1.7.1/training_gotchis_traits.json +520 -0
- package/scripts/balancing/v1.7.2/mapGotchi.js +157 -0
- package/scripts/balancing/v1.7.2/setTeamPositions.js +2 -2
- package/scripts/balancing/v1.7.2/training_gotchis_traits.json +520 -0
- package/scripts/balancing/v1.7.3/class_combos.js +44 -0
- package/scripts/balancing/v1.7.3/mapGotchi.js +164 -0
- package/scripts/balancing/v1.7.3/setTeamPositions.js +122 -0
- package/scripts/balancing/v1.7.3/training_gotchis.json +22402 -0
- package/scripts/balancing/v1.7.3/training_gotchis_traits.json +37 -0
- package/scripts/balancing/v1.7.3/trait_combos.json +10 -0
- package/scripts/data/dungeon_mob_1.json +87 -0
- package/scripts/data/dungeon_mob_2.json +87 -0
- package/scripts/data/immaterialTeam1.json +374 -0
- package/scripts/data/immaterialTeam2.json +365 -0
- package/scripts/data/tournaments.json +5 -0
- package/scripts/generateAllSpecialsLogs.js +93 -0
- package/scripts/generateSpecialLogs.js +94 -0
- package/scripts/runCampaignBattles.js +41 -0
- package/scripts/runLocalBattle.js +6 -3
- package/scripts/runLocalDungeon.js +52 -0
- package/scripts/runPvPBattle.js +16 -0
- package/scripts/runRealBattle.js +8 -8
- package/scripts/simRealBattle.js +8 -8
- package/scripts/validateBattle.js +23 -16
- package/scripts/validateTournament.js +9 -9
- package/tests/getModifiedStats.test.js +78 -0
- package/utils/errors.js +13 -13
- package/utils/transforms.js +2 -8
- 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
|
+
}
|