Add Soul Dew item and make various minor changes

This commit is contained in:
Flashfyre 2024-01-09 00:06:11 -05:00
parent 63834858cd
commit 7f1add83c4
11 changed files with 315 additions and 213 deletions

BIN
public/audio/cry/866.ogg Normal file

Binary file not shown.

View File

@ -4924,7 +4924,7 @@
} }
}, },
{ {
"filename": "steelixite", "filename": "soul_dew",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -4945,7 +4945,7 @@
} }
}, },
{ {
"filename": "swampertite", "filename": "steelixite",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -4966,7 +4966,7 @@
} }
}, },
{ {
"filename": "tyranitarite", "filename": "swampertite",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -4987,7 +4987,7 @@
} }
}, },
{ {
"filename": "venusaurite", "filename": "tyranitarite",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -5006,6 +5006,27 @@
"w": 16, "w": 16,
"h": 16 "h": 16
} }
},
{
"filename": "venusaurite",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 32,
"h": 32
},
"spriteSourceSize": {
"x": 8,
"y": 8,
"w": 16,
"h": 16
},
"frame": {
"x": 297,
"y": 289,
"w": 16,
"h": 16
}
} }
] ]
} }
@ -5013,6 +5034,6 @@
"meta": { "meta": {
"app": "https://www.codeandweb.com/texturepacker", "app": "https://www.codeandweb.com/texturepacker",
"version": "3.0", "version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:3d96f166cb04b00665907a39d006b2ef:f182d2a1b46296a49dfc48249c1682fb:110e074689c9edd2c54833ce2e4d9270$" "smartupdate": "$TexturePacker:SmartUpdate:add9eb8b8733956530a2c48ab73c92b3:e3840500ae12890f9d66a76a719ccd1d:110e074689c9edd2c54833ce2e4d9270$"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 241 B

View File

@ -4,13 +4,13 @@
"image": "pokemon_icons_9.png", "image": "pokemon_icons_9.png",
"format": "RGBA8888", "format": "RGBA8888",
"size": { "size": {
"w": 118, "w": 113,
"h": 171 "h": 227
}, },
"scale": 1, "scale": 1,
"frames": [ "frames": [
{ {
"filename": "985", "filename": "985.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -31,7 +31,49 @@
} }
}, },
{ {
"filename": "986", "filename": "1011.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 10,
"y": 4,
"w": 21,
"h": 24
},
"frame": {
"x": 29,
"y": 0,
"w": 21,
"h": 24
}
},
{
"filename": "1011s.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 10,
"y": 4,
"w": 21,
"h": 24
},
"frame": {
"x": 50,
"y": 0,
"w": 21,
"h": 24
}
},
{
"filename": "986.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -45,14 +87,14 @@
"h": 25 "h": 25
}, },
"frame": { "frame": {
"x": 29, "x": 71,
"y": 0, "y": 0,
"w": 25, "w": 25,
"h": 25 "h": 25
} }
}, },
{ {
"filename": "990", "filename": "990.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -66,14 +108,35 @@
"h": 25 "h": 25
}, },
"frame": { "frame": {
"x": 54, "x": 0,
"y": 0, "y": 25,
"w": 30, "w": 30,
"h": 25 "h": 25
} }
}, },
{ {
"filename": "987", "filename": "1022.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 6,
"y": 4,
"w": 28,
"h": 25
},
"frame": {
"x": 30,
"y": 25,
"w": 28,
"h": 25
}
},
{
"filename": "987.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -87,14 +150,14 @@
"h": 26 "h": 26
}, },
"frame": { "frame": {
"x": 84, "x": 58,
"y": 0, "y": 25,
"w": 26, "w": 26,
"h": 26 "h": 26
} }
}, },
{ {
"filename": "991", "filename": "991.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -108,14 +171,14 @@
"h": 26 "h": 26
}, },
"frame": { "frame": {
"x": 0, "x": 84,
"y": 23, "y": 25,
"w": 22, "w": 22,
"h": 26 "h": 26
} }
}, },
{ {
"filename": "984", "filename": "984.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -129,35 +192,14 @@
"h": 27 "h": 27
}, },
"frame": { "frame": {
"x": 22, "x": 0,
"y": 25, "y": 51,
"w": 34, "w": 34,
"h": 27 "h": 27
} }
}, },
{ {
"filename": "982", "filename": "993.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 9,
"y": 1,
"w": 24,
"h": 28
},
"frame": {
"x": 56,
"y": 25,
"w": 24,
"h": 28
}
},
{
"filename": "993",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -171,14 +213,14 @@
"h": 27 "h": 27
}, },
"frame": { "frame": {
"x": 80, "x": 34,
"y": 26, "y": 51,
"w": 32, "w": 32,
"h": 27 "h": 27
} }
}, },
{ {
"filename": "979", "filename": "979.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -192,14 +234,14 @@
"h": 28 "h": 28
}, },
"frame": { "frame": {
"x": 0, "x": 66,
"y": 52, "y": 51,
"w": 29, "w": 29,
"h": 28 "h": 28
} }
}, },
{ {
"filename": "1010", "filename": "982.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -207,20 +249,20 @@
"h": 30 "h": 30
}, },
"spriteSourceSize": { "spriteSourceSize": {
"x": 8, "x": 9,
"y": 1, "y": 1,
"w": 23, "w": 24,
"h": 28 "h": 28
}, },
"frame": { "frame": {
"x": 29, "x": 0,
"y": 52, "y": 79,
"w": 23, "w": 24,
"h": 28 "h": 28
} }
}, },
{ {
"filename": "992", "filename": "992.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -234,14 +276,14 @@
"h": 28 "h": 28
}, },
"frame": { "frame": {
"x": 52, "x": 24,
"y": 53, "y": 79,
"w": 32, "w": 32,
"h": 28 "h": 28
} }
}, },
{ {
"filename": "1009", "filename": "1009.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -255,14 +297,35 @@
"h": 28 "h": 28
}, },
"frame": { "frame": {
"x": 84, "x": 56,
"y": 53, "y": 79,
"w": 34, "w": 34,
"h": 28 "h": 28
} }
}, },
{ {
"filename": "989", "filename": "1010.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 8,
"y": 1,
"w": 23,
"h": 28
},
"frame": {
"x": 90,
"y": 79,
"w": 23,
"h": 28
}
},
{
"filename": "989.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -277,34 +340,13 @@
}, },
"frame": { "frame": {
"x": 0, "x": 0,
"y": 80, "y": 107,
"w": 27, "w": 27,
"h": 29 "h": 29
} }
}, },
{ {
"filename": "1006", "filename": "1005.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 9,
"y": 0,
"w": 24,
"h": 29
},
"frame": {
"x": 27,
"y": 80,
"w": 24,
"h": 29
}
},
{
"filename": "1005",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -318,14 +360,35 @@
"h": 29 "h": 29
}, },
"frame": { "frame": {
"x": 51, "x": 27,
"y": 81, "y": 107,
"w": 34, "w": 34,
"h": 29 "h": 29
} }
}, },
{ {
"filename": "981", "filename": "1006.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 9,
"y": 0,
"w": 24,
"h": 29
},
"frame": {
"x": 61,
"y": 107,
"w": 24,
"h": 29
}
},
{
"filename": "981.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -340,13 +403,13 @@
}, },
"frame": { "frame": {
"x": 85, "x": 85,
"y": 81, "y": 107,
"w": 25, "w": 25,
"h": 30 "h": 30
} }
}, },
{ {
"filename": "983", "filename": "983.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -361,13 +424,13 @@
}, },
"frame": { "frame": {
"x": 0, "x": 0,
"y": 109, "y": 137,
"w": 27, "w": 27,
"h": 30 "h": 30
} }
}, },
{ {
"filename": "988", "filename": "988.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -382,13 +445,13 @@
}, },
"frame": { "frame": {
"x": 27, "x": 27,
"y": 110, "y": 137,
"w": 28, "w": 28,
"h": 30 "h": 30
} }
}, },
{ {
"filename": "994", "filename": "994.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -403,13 +466,13 @@
}, },
"frame": { "frame": {
"x": 55, "x": 55,
"y": 110, "y": 137,
"w": 29, "w": 29,
"h": 30 "h": 30
} }
}, },
{ {
"filename": "995", "filename": "995.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -424,13 +487,76 @@
}, },
"frame": { "frame": {
"x": 84, "x": 84,
"y": 111, "y": 137,
"w": 29, "w": 29,
"h": 30 "h": 30
} }
}, },
{ {
"filename": "1019", "filename": "1018.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 4,
"y": 0,
"w": 33,
"h": 30
},
"frame": {
"x": 0,
"y": 167,
"w": 33,
"h": 30
}
},
{
"filename": "1018s.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 4,
"y": 0,
"w": 33,
"h": 30
},
"frame": {
"x": 33,
"y": 167,
"w": 33,
"h": 30
}
},
{
"filename": "1019.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 7,
"y": 0,
"w": 26,
"h": 30
},
"frame": {
"x": 66,
"y": 167,
"w": 26,
"h": 30
}
},
{
"filename": "1019s.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -445,97 +571,13 @@
}, },
"frame": { "frame": {
"x": 0, "x": 0,
"y": 139, "y": 197,
"w": 26, "w": 26,
"h": 30 "h": 30
} }
}, },
{ {
"filename": "1018", "filename": "1020.png",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 4,
"y": 0,
"w": 33,
"h": 30
},
"frame": {
"x": 26,
"y": 140,
"w": 33,
"h": 30
}
},
{
"filename": "1018s",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 4,
"y": 0,
"w": 33,
"h": 30
},
"frame": {
"x": 59,
"y": 141,
"w": 33,
"h": 30
}
},
{
"filename": "1019s",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 7,
"y": 0,
"w": 26,
"h": 30
},
"frame": {
"x": 92,
"y": 141,
"w": 26,
"h": 30
}
},
{
"filename": "1020",
"rotated": false,
"trimmed": true,
"sourceSize": {
"w": 40,
"h": 30
},
"spriteSourceSize": {
"x": 6,
"y": 0,
"w": 29,
"h": 29
},
"frame": {
"x": 0,
"y": 170,
"w": 29,
"h": 29
}
},
{
"filename": "1021",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -545,18 +587,18 @@
"spriteSourceSize": { "spriteSourceSize": {
"x": 5, "x": 5,
"y": 0, "y": 0,
"w": 30, "w": 31,
"h": 30 "h": 30
}, },
"frame": { "frame": {
"x": 30, "x": 26,
"y": 171, "y": 197,
"w": 30, "w": 31,
"h": 30 "h": 30
} }
}, },
{ {
"filename": "1022", "filename": "1021.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -564,20 +606,20 @@
"h": 30 "h": 30
}, },
"spriteSourceSize": { "spriteSourceSize": {
"x": 7, "x": 4,
"y": 5, "y": 0,
"w": 26, "w": 32,
"h": 23 "h": 30
}, },
"frame": { "frame": {
"x": 61, "x": 57,
"y": 172, "y": 197,
"w": 26, "w": 32,
"h": 23 "h": 30
} }
}, },
{ {
"filename": "1023", "filename": "1023.png",
"rotated": false, "rotated": false,
"trimmed": true, "trimmed": true,
"sourceSize": { "sourceSize": {
@ -585,16 +627,16 @@
"h": 30 "h": 30
}, },
"spriteSourceSize": { "spriteSourceSize": {
"x": 10, "x": 9,
"y": 1, "y": 0,
"w": 20, "w": 22,
"h": 28 "h": 30
}, },
"frame": { "frame": {
"x": 88, "x": 89,
"y": 172, "y": 197,
"w": 20, "w": 22,
"h": 28 "h": 30
} }
} }
] ]
@ -603,6 +645,6 @@
"meta": { "meta": {
"app": "https://www.codeandweb.com/texturepacker", "app": "https://www.codeandweb.com/texturepacker",
"version": "3.0", "version": "3.0",
"smartupdate": "$TexturePacker:SmartUpdate:0d2b456ad5900444d0fb42f803d9b732:eb5f601e7f2aba8618c415451de6f38b:6fb417eff82c0971c86b4818772ba292$" "smartupdate": "$TexturePacker:SmartUpdate:f011c531de0311eb45a48367c0a8f4e6:bd0f13886ac7d25514ed3c9125a8e8d4:6fb417eff82c0971c86b4818772ba292$"
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -204,6 +204,7 @@ export interface TrainerTierPools {
} }
export enum TrainerPartyMemberStrength { export enum TrainerPartyMemberStrength {
WEAKEST,
WEAKER, WEAKER,
WEAK, WEAK,
AVERAGE, AVERAGE,
@ -305,17 +306,20 @@ export const trainerPartyTemplates = {
THREE_AVG: new TrainerPartyTemplate(3, TrainerPartyMemberStrength.AVERAGE), THREE_AVG: new TrainerPartyTemplate(3, TrainerPartyMemberStrength.AVERAGE),
THREE_AVG_SAME: new TrainerPartyTemplate(3, TrainerPartyMemberStrength.AVERAGE, true), THREE_AVG_SAME: new TrainerPartyTemplate(3, TrainerPartyMemberStrength.AVERAGE, true),
THREE_WEAK_BALANCED: new TrainerPartyTemplate(3, TrainerPartyMemberStrength.WEAK, false, true), THREE_WEAK_BALANCED: new TrainerPartyTemplate(3, TrainerPartyMemberStrength.WEAK, false, true),
FOUR_WEAKEST: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAKEST),
FOUR_WEAKER: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAKER), FOUR_WEAKER: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAKER),
FOUR_WEAKER_SAME: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAKER, true), FOUR_WEAKER_SAME: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAKER, true),
FOUR_WEAK: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAK), FOUR_WEAK: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAK),
FOUR_WEAK_SAME: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAK, true), FOUR_WEAK_SAME: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAK, true),
FOUR_WEAK_BALANCED: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAK, false, true), FOUR_WEAK_BALANCED: new TrainerPartyTemplate(4, TrainerPartyMemberStrength.WEAK, false, true),
FIVE_WEAKEST: new TrainerPartyTemplate(5, TrainerPartyMemberStrength.WEAKEST),
FIVE_WEAKER: new TrainerPartyTemplate(5, TrainerPartyMemberStrength.WEAKER), FIVE_WEAKER: new TrainerPartyTemplate(5, TrainerPartyMemberStrength.WEAKER),
FIVE_WEAK: new TrainerPartyTemplate(5, TrainerPartyMemberStrength.WEAK), FIVE_WEAK: new TrainerPartyTemplate(5, TrainerPartyMemberStrength.WEAK),
FIVE_WEAK_BALANCED: new TrainerPartyTemplate(5, TrainerPartyMemberStrength.WEAK, false, true), FIVE_WEAK_BALANCED: new TrainerPartyTemplate(5, TrainerPartyMemberStrength.WEAK, false, true),
SIX_WEAK_SAME: new TrainerPartyTemplate(6, TrainerPartyMemberStrength.WEAKER, true), SIX_WEAKEST: new TrainerPartyTemplate(6, TrainerPartyMemberStrength.WEAKEST),
SIX_WEAKER: new TrainerPartyTemplate(6, TrainerPartyMemberStrength.WEAKER), SIX_WEAKER: new TrainerPartyTemplate(6, TrainerPartyMemberStrength.WEAKER),
SIX_WEAKER_SAME: new TrainerPartyTemplate(6, TrainerPartyMemberStrength.WEAKER, true), SIX_WEAKER_SAME: new TrainerPartyTemplate(6, TrainerPartyMemberStrength.WEAKER, true),
SIX_WEAK_SAME: new TrainerPartyTemplate(6, TrainerPartyMemberStrength.WEAKER, true),
SIX_WEAK_BALANCED: new TrainerPartyTemplate(6, TrainerPartyMemberStrength.WEAK, false, true), SIX_WEAK_BALANCED: new TrainerPartyTemplate(6, TrainerPartyMemberStrength.WEAK, false, true),
GYM_LEADER_1: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, TrainerPartyMemberStrength.STRONG), new TrainerPartyTemplate(1, TrainerPartyMemberStrength.STRONGER)), GYM_LEADER_1: new TrainerPartyCompoundTemplate(new TrainerPartyTemplate(1, TrainerPartyMemberStrength.STRONG), new TrainerPartyTemplate(1, TrainerPartyMemberStrength.STRONGER)),
@ -673,7 +677,7 @@ export const trainerConfigs: TrainerConfigs = {
[TrainerPoolTier.ULTRA_RARE]: [ Species.KUBFU ] [TrainerPoolTier.ULTRA_RARE]: [ Species.KUBFU ]
}), }),
[TrainerType.BREEDER]: new TrainerConfig(++t).setMoneyMultiplier(1.325).setEncounterBgm(TrainerType.POKEFAN).setHasGenders().setDouble() [TrainerType.BREEDER]: new TrainerConfig(++t).setMoneyMultiplier(1.325).setEncounterBgm(TrainerType.POKEFAN).setHasGenders().setDouble()
.setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.FOUR_WEAKER, trainerPartyTemplates.FIVE_WEAKER, trainerPartyTemplates.SIX_WEAKER)), .setPartyTemplateFunc(scene => getWavePartyTemplate(scene, trainerPartyTemplates.FOUR_WEAKEST, trainerPartyTemplates.FIVE_WEAKEST, trainerPartyTemplates.SIX_WEAKEST)),
[TrainerType.CLERK]: new TrainerConfig(++t).setHasGenders().setEncounterBgm(TrainerType.CLERK) [TrainerType.CLERK]: new TrainerConfig(++t).setHasGenders().setEncounterBgm(TrainerType.CLERK)
.setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG) .setPartyTemplates(trainerPartyTemplates.TWO_WEAK, trainerPartyTemplates.THREE_WEAK, trainerPartyTemplates.ONE_AVG, trainerPartyTemplates.TWO_AVG, trainerPartyTemplates.TWO_WEAK_ONE_AVG)
.setSpeciesPools({ .setSpeciesPools({

View File

@ -681,6 +681,8 @@ export const modifierTypes = {
SOOTHE_BELL: () => new PokemonFriendshipBoosterModifierType('Soothe Bell'), SOOTHE_BELL: () => new PokemonFriendshipBoosterModifierType('Soothe Bell'),
SOUL_DEW: () => new PokemonHeldItemModifierType('Soul Dew', 'Increases the influence of a Pokémon\'s nature on its stats by 5% (additive)', (type, args) => new Modifiers.PokemonNatureWeightModifier(type, (args[0] as Pokemon).id)),
AMULET_COIN: () => new ModifierType('Amulet Coin', 'Increases money rewards by 20%', (type, _args) => new Modifiers.MoneyMultiplierModifier(type)), AMULET_COIN: () => new ModifierType('Amulet Coin', 'Increases money rewards by 20%', (type, _args) => new Modifiers.MoneyMultiplierModifier(type)),
GOLDEN_PUNCH: () => new PokemonHeldItemModifierType('Golden Punch', 'Grants 20% of damage inflicted as money', (type, args) => new Modifiers.DamageMoneyRewardModifier(type, (args[0] as Pokemon).id)), GOLDEN_PUNCH: () => new PokemonHeldItemModifierType('Golden Punch', 'Grants 20% of damage inflicted as money', (type, args) => new Modifiers.DamageMoneyRewardModifier(type, (args[0] as Pokemon).id)),
COIN_CASE: () => new ModifierType('Coin Case', 'After every 10th battle, receive 10% of your money in interest', (type, _args) => new Modifiers.MoneyInterestModifier(type)), COIN_CASE: () => new ModifierType('Coin Case', 'After every 10th battle, receive 10% of your money in interest', (type, _args) => new Modifiers.MoneyInterestModifier(type)),
@ -821,6 +823,7 @@ const modifierPool = {
const friendshipBenefitPartyMemberCount = Math.min(party.filter(p => (pokemonEvolutions.hasOwnProperty(p.species.speciesId) && pokemonEvolutions[p.species.speciesId].find(e => e.condition && e.condition instanceof SpeciesFriendshipEvolutionCondition)) || p.moveset.find(m => m.moveId === Moves.RETURN)).length, 3); const friendshipBenefitPartyMemberCount = Math.min(party.filter(p => (pokemonEvolutions.hasOwnProperty(p.species.speciesId) && pokemonEvolutions[p.species.speciesId].find(e => e.condition && e.condition instanceof SpeciesFriendshipEvolutionCondition)) || p.moveset.find(m => m.moveId === Moves.RETURN)).length, 3);
return friendshipBenefitPartyMemberCount * 3; return friendshipBenefitPartyMemberCount * 3;
}), }),
new WeightedModifierType(modifierTypes.SOUL_DEW, 3),
new WeightedModifierType(modifierTypes.GOLDEN_PUNCH, 2), new WeightedModifierType(modifierTypes.GOLDEN_PUNCH, 2),
new WeightedModifierType(modifierTypes.GRIP_CLAW, 2), new WeightedModifierType(modifierTypes.GRIP_CLAW, 2),
new WeightedModifierType(modifierTypes.HEALING_CHARM, 1), new WeightedModifierType(modifierTypes.HEALING_CHARM, 1),

View File

@ -1232,6 +1232,34 @@ export class PokemonFriendshipBoosterModifier extends PokemonHeldItemModifier {
} }
} }
export class PokemonNatureWeightModifier extends PokemonHeldItemModifier {
constructor(type: ModifierTypes.ModifierType, pokemonId: integer, stackCount?: integer) {
super(type, pokemonId, stackCount);
}
matchType(modifier: Modifier): boolean {
return modifier instanceof PokemonNatureWeightModifier;
}
clone(): PersistentModifier {
return new PokemonNatureWeightModifier(this.type, this.pokemonId, this.stackCount);
}
apply(args: any[]): boolean {
const multiplier = args[1] as Utils.IntegerHolder;
if (multiplier.value !== 1) {
multiplier.value += 0.05 * this.getStackCount() * (multiplier.value > 1 ? 1 : -1);
return true;
}
return false;
}
getMaxHeldItemCount(pokemon: Pokemon): integer {
return 5;
}
}
export class MoneyMultiplierModifier extends PersistentModifier { export class MoneyMultiplierModifier extends PersistentModifier {
constructor(type: ModifierType, stackCount?: integer) { constructor(type: ModifierType, stackCount?: integer) {
super(type, stackCount); super(type, stackCount);

View File

@ -7,7 +7,7 @@ import * as Utils from './utils';
import { Type, TypeDamageMultiplier, getTypeDamageMultiplier } from './data/type'; import { Type, TypeDamageMultiplier, getTypeDamageMultiplier } from './data/type';
import { getLevelTotalExp } from './data/exp'; import { getLevelTotalExp } from './data/exp';
import { Stat } from './data/pokemon-stat'; import { Stat } from './data/pokemon-stat';
import { AttackTypeBoosterModifier, DamageMoneyRewardModifier, EnemyDamageBoosterModifier, EnemyDamageReducerModifier, HiddenAbilityRateBoosterModifier, PokemonBaseStatModifier, PokemonHeldItemModifier, ShinyRateBoosterModifier, SurviveDamageModifier, TempBattleStatBoosterModifier } from './modifier/modifier'; import { AttackTypeBoosterModifier, DamageMoneyRewardModifier, EnemyDamageBoosterModifier, EnemyDamageReducerModifier, HiddenAbilityRateBoosterModifier, PokemonBaseStatModifier, PokemonHeldItemModifier, PokemonNatureWeightModifier, ShinyRateBoosterModifier, SurviveDamageModifier, TempBattleStatBoosterModifier } from './modifier/modifier';
import { PokeballType } from './data/pokeball'; import { PokeballType } from './data/pokeball';
import { Gender } from './data/gender'; import { Gender } from './data/gender';
import { initMoveAnim, loadMoveAnimAssets } from './data/battle-anims'; import { initMoveAnim, loadMoveAnimAssets } from './data/battle-anims';
@ -529,9 +529,10 @@ export default abstract class Pokemon extends Phaser.GameObjects.Container {
} }
} else { } else {
value += 5; value += 5;
const natureStatMultiplier = getNatureStatMultiplier(this.nature, s); const natureStatMultiplier = new Utils.NumberHolder(getNatureStatMultiplier(this.nature, s));
if (natureStatMultiplier !== 1) this.scene.applyModifier(PokemonNatureWeightModifier, this.isPlayer(), this, natureStatMultiplier);
value = Math[natureStatMultiplier > 1 ? 'ceil' : 'floor'](value * natureStatMultiplier); if (natureStatMultiplier.value !== 1)
value = Math.max(Math[natureStatMultiplier.value > 1 ? 'ceil' : 'floor'](value * natureStatMultiplier.value), 1);
value = Math.min(value, 99999); value = Math.min(value, 99999);
} }
this.stats[s] = value; this.stats[s] = value;

View File

@ -75,6 +75,9 @@ export default class Trainer extends Phaser.GameObjects.Container {
const strength = partyTemplate.getStrength(i) const strength = partyTemplate.getStrength(i)
switch (strength) { switch (strength) {
case TrainerPartyMemberStrength.WEAKEST:
multiplier = 0.85;
break;
case TrainerPartyMemberStrength.WEAKER: case TrainerPartyMemberStrength.WEAKER:
multiplier = 0.95; multiplier = 0.95;
break; break;