dizzyeggg / pokeemerald Goto Github PK
View Code? Open in Web Editor NEWThis project forked from pret/pokeemerald
disassembly of Pokémon Emerald
This project forked from pret/pokeemerald
disassembly of Pokémon Emerald
Rock Polish could use some sort of sound effect when doing the actual polishing (lines being drawn). Right now it sounds a bit empty before the sparkle sound effect.
I'm not sure if this is just because it hasn't been coded yet, but Embargo uses Odor Sleuth's "(Pokemon) identified (other Pokemon)!" message.
atk69_setgravity should check each battler's semi invulnerable status to see if they are currently using Fly or Bounce (and Sky Drop when that gets implemented), and CancelMultiTurnMove if they do.
You can still be hit during the semi-invulnerable turn of Phantom Force. I haven't tested the Protect-bypassing part yet.
As I edited the asm code for custom multi wild battles.
Hi,
¿where is the table of resistainces and etc. of types?
On pret's repo is on src/battle_main.c
, around line 343.
Now, suggestion.
Maybe you could manage all systems by it's own on different branches and then have other one to merge all.
Grass-types should be immune to Effect Spore.
Currently, Flash Cannon lowers special defense by two stages; Flash Cannon is supposed to hit with a secondary effect of having a chance of lowering special defense by one stage.
Should have an ability pop-up upon activation.
If the fast intro toggle is set to TRUE, all encounters in the Safari Zone softlock the game at the "Wild X Appeared!" message.
EDIT: Never mind, this happens even with the toggle set to FALSE. Safari Zone is completely borked.
Now it hits only 2
When using a move that targets both opponents in a wild double battle, the attack does damage to both opponents normally, but the graphics act as if only one Pokemon was targeted instead of going down the middle of both Pokemon like in a trainer battle; this issue is not present in trainer battles (I noticed this when using Bubblebeam if it matters).
EDIT: As huderlem mentions below, I misunderstood the issue. The issue is not that graphics in wild doubles are messed up, but that moves that have been changed to hit multiple opponents need to have their animations changed.
Charge Beam is supposed to deal damage with a chance of raising Special Attack; right now it just boosts Special Attack without dealing damage.
EDIT: I haven't tested it, but looking at how it's defined, I think Fiery Dance has the same issue. Additionally, I have determined that this issue stems from the fact that there is no EFFECT_SPECIAL_ATTACK_UP effect defined (there were no moves that dealt damage and raised Special Attack in Gen 3, so this will need to be added).
If there are two wild Pokemon still on the field in a wild double battle, and one of them uses Teleport, the battle immediately ends, even if the other Pokemon is still on the field.
Effect Spore should have an ability pop-up when activated.
If your opponents use Quick Guard, it still says "Protected your team" Should probably, instead, say "Protected its team"
The game softlocks after selecting which move to replace when the item expansion is installed. This happens both when learning moves by TM and by level up.
Pretty Wing, etc.
I haven't investigated whether the effect itself works or not, but when a Pokemon uses Magnet Rise, it immediately prints the "magnetism has worn off" message after the "Pokemon levitated using magnetism" message before the turn even ends.
Rename BattleScript_MoveUsedIsParalyzedCantAttack to BattleScript_MoveUsedIsInLoveCantAttack
Push to master obviously, since its pokeemerald's misnomer
In the Route 113 desert, a sandstorm does not start in-battle. Similarly, when it's raining on Route 119, battles do not start with rain on the field
If you use Toxic and it gets reflected by an opponent's Synchronize, instead of the opponent's "synchronize" card popping up, YOUR ability card pops up, and whatever string happened to occupy the last string variables gets used instead of the ability; e.g. "{Pokemon} was poisoned by foe {Pokemon's} evasiveness" was an example I got.
ABILITY_IMPOSTER:
check if opposite battler is semi invulnerable
ABILITY_DEFIANT:
ABILITY_COMPETITIVE:
the way these were implemented makes it impossible to check if the battler's stat was lowered by itself/its ally or an opponent (defiant/competitive wont activate in the former case)
ABILITY_CURSED_BODY:
GetBattleMonMoveSlot(&gBattleMons[gBattlerAttacker], gChosenMove) is completely unecessary, just read from gChosenMovePos
also check if the chosen move has pp left
ABILITY_ANGER_POINT:
manually setting sB_ANIM_ARG1 to the chosen stat animation will not be indicative of amount of stages raised, i suggest adding 'setgraphicalstatchangevalues' to the script and setting gBattleScripting.statChanger to '12 - gBattleMons[battler].statStages[STAT_ATK] then | STAT_ATTACK'
nitpick: wrong name for battle script & string: "angrypoint"
ABILITY_JUSTIFIED:
ABILITY_RATTLED:
you forgot to buffer the stat to change, either call ChangeStatBuffs or use PREPARE_STAT_BUFFER
ABILITY_WEAK_ARMOR:
check if the current move is physical (weak armor only activates on physical hits)
speed should raise by 2, not 1
Future Sight seems to always do 0 damage, regardless of types, levels, or stats. Additionally, it can hit through Wonder Guard (though since it does 0 damage, my Shedinja didn't die :P).
This was tested via using Stun Spore on a Grass type. I assume the other moves may have the same issue.
When using Surf against an opposing team of Seaking and Tentacruel, after the first "It's not very effective" message appears, the text disappears and the game is softlocked. I haven't tested other similar situations to this, so I'm not sure exactly what triggers it.
Should lower Defense like newer games.
Taunt does not work correctly. The duration is only 2 turns when it should be 4, and there is no expiry message.
When used by a foe, still says your team is shielded from crits.
Flare Blitz animation leads to graphical errors, and even crashes (here, the mon levelled up right after the move executed and the game froze): https://cdn.discordapp.com/attachments/419214240277200898/562353027722248203/flareblitz.png
at https://github.com/DizzyEggg/pokeemerald/blob/battle_engine_v2/src/battle_script_commands.c#L7058
should be:
gBattleMons[gBattlerTarget].status1 = gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY;
as to not copy the toxic counter (0xF00)
Effects such as Leftovers healing, Sandstorm damage, etc. are executed after the switch-in queue instead of before Pokémon switch in, the latter being the case in later generations.
Also update the behavior where Pokémon switch in prematurely. Example:
Battler A chooses Quiver Dance
Battler B is faster, chooses Double-Edge
Battler B damages Battler A but knocks itself out in the process due to recoil
Battler B then immediately switches in a new Pokémon, cancelling Battler A's Quiver Dance
In later generations, the defending Pokémon's action executes regardless of the opponent's presence.
(Exception: If the opponent has no more Pokémon in their party, cancel action)
Discharge works properly when being used from your own side (albeit it hits Pokemon in a weird order), but when an opponent uses it, it will hit its ally and only one of your own Pokemon.
Tyranitar's Sand Stream is saying it "made it rain" and showing the rainy weather animation.
However, the next turn, it shows the proper graphics and text for Sandstorm. I only noticed it with tyranitar, but there might be others that have the same issue. Most likely caused by the fact that the source of it is a pokemon's ability rather than move.
Psychic-type status moves will display the message "It doesn't affect X..." when missing against Dark-type targets, even though all status moves except Thunder Wave do not check the typechart
When a Pokemon uses Roost, the healing graphics appear behind the Pokemon, rather than in front of it.
Sometimes when using Assist, the game will softlock before it is able to choose a move (the game hangs on "(Pokemon) used ASSIST!" with the music playing and nothing happens beyond that).
Title
Because it has EFFECT_SPECIAL_DEFENSE_DOWN_2, it cannot work as the offensive move that it's supposed to be.
I guess someone will have to make a EFFECT_SPECIAL_DEFENSE_DOWN_HIT_2 or something like that, unless there's already a hold effect here that can cover it.
ITEM_SWEET_HEART
ITEM_BIG_MALASADA
ITEM_OLD_GATEAU
ITEM_X_SP_DEF
ITEM_ABILITY_CAPSULE
ITEM_DAWN_STONE
ITEM_DUSK_STONE
ITEM_SHINY_STONE
ITEM_ICE_STONE
ITEM_RED_APRICORN
ITEM_BLUE_APRICORN
ITEM_YELLOW_APRICORN
ITEM_GREEN_APRICORN
ITEM_PINK_APRICORN
ITEM_WHITE_APRICORN
ITEM_BLACK_APRICORN
ITEM_RED_NECTAR
ITEM_YELLOW_NECTAR
ITEM_PINK_NECTAR
ITEM_PURPLE_NECTAR
ITEM_RARE_BONE
ITEM_OCCA_BERRY
ITEM_PASSHO_BERRY
ITEM_WACAN_BERRY
ITEM_RINDO_BERRY
ITEM_YACHE_BERRY
ITEM_CHOPLE_BERRY
ITEM_KEBIA_BERRY
ITEM_SHUCA_BERRY
ITEM_COBA_BERRY
ITEM_PAYAPA_BERRY
ITEM_TANGA_BERRY
ITEM_CHARTI_BERRY
ITEM_KASIB_BERRY
ITEM_HABAN_BERRY
ITEM_COLBUR_BERRY
ITEM_BABIRI_BERRY
ITEM_CHILAN_BERRY
ITEM_MICLE_BERRY
ITEM_CUSTAP_BERRY
ITEM_JABOCA_BERRY
ITEM_ROWAP_BERRY
ITEM_ROSELI_BERRY
ITEM_KEE_BERRY
ITEM_MARANGA_BERRY
ITEM_OVAL_STONE
ITEM_PROTECTOR
ITEM_ELECTIRIZER
ITEM_MAGMARIZER
ITEM_DUBIOUS_DISC
ITEM_REAPER_CLOTH
ITEM_RAZOR_CLAW
ITEM_RAZOR_FANG
ITEM_PRISM_SCALE
ITEM_WHIPPED_DREAM
ITEM_SACHET
ITEM_POWER_BRACER
ITEM_POWER_BELT
ITEM_POWER_LENS
ITEM_POWER_BAND
ITEM_POWER_ANKLET
ITEM_POWER_WEIGHT
ITEM_ROCKY_HELMET
ITEM_AIR_BALLOON
ITEM_RED_CARD
ITEM_RING_TARGET
ITEM_EJECT_BUTTON
ITEM_ABSORB_BULB
ITEM_CELL_BATTERY
ITEM_LUMINOUS_MOSS
ITEM_SNOWBALL
ITEM_WEAKNESS_POLICY
ITEM_ODD_INCENSE
ITEM_ROCK_INCENSE
ITEM_FULL_INCENSE
ITEM_WAVE_INCENSE
ITEM_ROSE_INCENSE
ITEM_LUCK_INCENSE
ITEM_PURE_INCENSE
ITEM_ODD_KEYSTONE
ITEM_GRACIDEA
ITEM_BUG_MEMORY
ITEM_DARK_MEMORY
ITEM_DRAGON_MEMORY
ITEM_ELECTRIC_MEMORY
ITEM_FAIRY_MEMORY
ITEM_FIGHTING_MEMORY
ITEM_FIRE_MEMORY
ITEM_FLYING_MEMORY
ITEM_GHOST_MEMORY
ITEM_GRASS_MEMORY
ITEM_GROUND_MEMORY
ITEM_ICE_MEMORY
ITEM_POISON_MEMORY
ITEM_PSYCHIC_MEMORY
ITEM_ROCK_MEMORY
ITEM_STEEL_MEMORY
ITEM_WATER_MEMORY
ITEM_ARMOR_FOSSIL
ITEM_SKULL_FOSSIL
ITEM_COVER_FOSSIL
ITEM_PLUME_FOSSIL
ITEM_JAW_FOSSIL
ITEM_SAIL_FOSSIL
And Tms, but this will be done later
After you have defeated Juan, his text starts appearing in a slow auto-scroll way that takes button input away from the player. This does not advance past his last line, and thus you are softlocked and unable to exit the battle when this happens, making Juan impossible to get past.
Powder:
Add a case for CANCELLER_POWDER right before CANCELLER_THAW
effect = 0 to continue the loop in case the user is frozen and a move will thaw it first before executing Powder's damage battle script.
Do not clear Powdered status after checking as it lasts for the duration of the turn!
Protean:
See Discord DMs ;^)
Also note that Psychic Terrain's priority blocking effect needs to be checked in ABE's ABILITYEFFECT_MOVES_BLOCK and not in AtkCanceller_UnableToUseMove to make sure the Protean user gets to transform.
Heal Block:
Add EFFECT_DREAM_EATER in IsHealBlockPreventingMove and fix the message that shows the inability to use a heal blocked move.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.