-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Hey, this is where you'd find surskitty's feature branches.
Please file an issue if you have any issues; I'm not very thorough about bug-testing.
git remote add surskitty https://github.com/surskitty/pokeemerald
Make NPCs that are able to fly you around, similar to the SwSh Corviknight cabbies.
Help wanted for the animations; look in src/field_effect.c and please PR if you work something out that's nicer.
How to use: In the script for a cabbie NPC, call Common_EventScript_FlyingTaxi.
This is an updated version of Slawter666's custom surfing pokemon branch. The PokeCommunity thread has more information.
Sprites needed:
- Dratini, Krabby, Pichu, Pikachu, Raichu, Smeargle
- Aggron, Barboach, Carvanha, Clamperl, Corphish, Crawdaunt, Feebas, Gorebyss, Huntail, Latias, Latios, Luvdisc, Milotic, Rayquaza, Relicanth, Sharpedo, Wailmer, Wailord, Whiscash
- All gens 4-8, except Primal Kyogre
Provides control over most aspects of NPC trainers and homogenizes party types.
How to use: edit src/data/trainer_parties.h, make sure all relevant structs are simply TrainerMon, and add each qualifier you desire.
.nickname = _("Nickname")-
.ivs[NUM_STATS]OR.ivUse.ivto assign all IVs to the same number..ivsneeds an array of six stats, in order of HP ATK DEF SPEED SPATK SPDEF; many optimal IV spreads are pre-defined ininclude/constants/pokemon.h -
.heldItemand.moves[MAX_MON_MOVES]are as in vanilla. -
.abilityshould be set to ABILITY_SLOT_1, ABILITY_SLOT_2, or ABILITY_HIDDEN for future-proofing. -
evs[NUM_STATS]again uses the stat order. The constants provided are not player-legal. -
.ballwill still allow trainer-class balls to function when unset. -
.shiny = TRUEif you want shinies :) -
.friendshipshould be set to TRAINER_MON_FRIENDLY or TRAINER_MON_UNFRIENDLY to adjust Return/Frustration.
As above, but with certain changes. This version does not permit setting IVs and EVs manually. Instead, you set .build, .hiddenPower, and .difficulty to get an effort and IV setup that does roughly what you want.
-
.buildcan be TRAINER_MON_DEFENSES, TRAINER_MON_SPEED_PHYS, TRAINER_MON_SPEED_SPEC, TRAINER_MON_HP_DEF, TRAINER_MON_HP_SPDEF, TRAINER_MON_PHYS, TRAINER_MON_SPEC, and determines EV allocation. Both of the speed options raise the corresponding attack stat. A default build at high difficulty allocates effort points evenly. -
.difficultyTRAINER_EASIEST, TRAINER_EASY, TRAINER_MEDIUM only decide amount of IVs; TRAINER_MEDIUM is maxed. TRAINER_HARD, TRAINER_HARDER, and TRAINER_HARDEST allocate EVs and have maxed IVs. TRAINER_MAX is not player legal and assigns 255 EVs to each stat. -
.hiddenPowertakes TYPE_ constants. TYPE_NORMAL is default and gives either worst, best, or average IVs, depending on difficulty. The IV spreads used can be found ininclude/pokemon_iv_spreads.h
At the beginning of an NPC's script, set VAR_MOVE_MANAGER to MOVE_REMINDER, MOVE_REMINDER_LEARN_ALL_MOVES, MOVE_TUTOR_EGG_MOVES, or MOVE_DELETER, then call Common_EventScript_MoveManager for a genericised NPC with the appropriate functionality. By default, the egg move tutor wants a Tiny Mushroom and the gen 7 style move reminder wants a Heart Scale. The logic handling for the NPC is in data/scripts/move_manager.pory, helpfully already compiled into data/scripts/move_manager.inc in case you don't have poryscript. The poryscript version is much easier to read and edit, though.