OW Poison configs (#2884)
This commit is contained in:
commit
a870883610
4 changed files with 19 additions and 0 deletions
|
@ -4,6 +4,9 @@
|
||||||
// Movement config
|
// Movement config
|
||||||
#define OW_RUNNING_INDOORS GEN_LATEST // In Gen4+, players are allowed to run indoors.
|
#define OW_RUNNING_INDOORS GEN_LATEST // In Gen4+, players are allowed to run indoors.
|
||||||
|
|
||||||
|
// Other settings
|
||||||
|
#define OW_POISON_DAMAGE GEN_LATEST // In Gen4, Pokémon no longer faint from Poison in the overworld. In Gen5+, they no longer take damage at all.
|
||||||
|
|
||||||
// Overworld flags
|
// Overworld flags
|
||||||
// To use the following features in scripting, replace the 0s with the flag ID you're assigning it to.
|
// To use the following features in scripting, replace the 0s with the flag ID you're assigning it to.
|
||||||
// Eg: Replace with FLAG_UNUSED_0x264 so you can use that flag to toggle the feature.
|
// Eg: Replace with FLAG_UNUSED_0x264 so you can use that flag to toggle the feature.
|
||||||
|
|
|
@ -565,11 +565,13 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior)
|
||||||
|
|
||||||
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior))
|
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_FORCED_MOVE) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior))
|
||||||
{
|
{
|
||||||
|
#if OW_POISON_DAMAGE < GEN_5
|
||||||
if (UpdatePoisonStepCounter() == TRUE)
|
if (UpdatePoisonStepCounter() == TRUE)
|
||||||
{
|
{
|
||||||
ScriptContext_SetupScript(EventScript_FieldPoison);
|
ScriptContext_SetupScript(EventScript_FieldPoison);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
if (ShouldEggHatch())
|
if (ShouldEggHatch())
|
||||||
{
|
{
|
||||||
IncrementGameStat(GAME_STAT_HATCHED_EGGS);
|
IncrementGameStat(GAME_STAT_HATCHED_EGGS);
|
||||||
|
|
|
@ -44,7 +44,9 @@ static void FaintFromFieldPoison(u8 partyIdx)
|
||||||
struct Pokemon *pokemon = &gPlayerParty[partyIdx];
|
struct Pokemon *pokemon = &gPlayerParty[partyIdx];
|
||||||
u32 status = STATUS1_NONE;
|
u32 status = STATUS1_NONE;
|
||||||
|
|
||||||
|
#if OW_POISON_DAMAGE < GEN_4
|
||||||
AdjustFriendship(pokemon, FRIENDSHIP_EVENT_FAINT_FIELD_PSN);
|
AdjustFriendship(pokemon, FRIENDSHIP_EVENT_FAINT_FIELD_PSN);
|
||||||
|
#endif
|
||||||
SetMonData(pokemon, MON_DATA_STATUS, &status);
|
SetMonData(pokemon, MON_DATA_STATUS, &status);
|
||||||
GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1);
|
GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1);
|
||||||
StringGet_Nickname(gStringVar1);
|
StringGet_Nickname(gStringVar1);
|
||||||
|
@ -53,7 +55,11 @@ static void FaintFromFieldPoison(u8 partyIdx)
|
||||||
static bool32 MonFaintedFromPoison(u8 partyIdx)
|
static bool32 MonFaintedFromPoison(u8 partyIdx)
|
||||||
{
|
{
|
||||||
struct Pokemon *pokemon = &gPlayerParty[partyIdx];
|
struct Pokemon *pokemon = &gPlayerParty[partyIdx];
|
||||||
|
#if OW_POISON_DAMAGE < GEN_4
|
||||||
if (IsMonValidSpecies(pokemon) && GetMonData(pokemon, MON_DATA_HP) == 0 && GetAilmentFromStatus(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
|
if (IsMonValidSpecies(pokemon) && GetMonData(pokemon, MON_DATA_HP) == 0 && GetAilmentFromStatus(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
|
||||||
|
#else
|
||||||
|
if (IsMonValidSpecies(pokemon) && GetMonData(pokemon, MON_DATA_HP) == 1 && GetAilmentFromStatus(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
|
||||||
|
#endif
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
@ -127,7 +133,11 @@ s32 DoPoisonFieldEffect(void)
|
||||||
{
|
{
|
||||||
// Apply poison damage
|
// Apply poison damage
|
||||||
hp = GetMonData(pokemon, MON_DATA_HP);
|
hp = GetMonData(pokemon, MON_DATA_HP);
|
||||||
|
#if OW_POISON_DAMAGE < GEN_4
|
||||||
if (hp == 0 || --hp == 0)
|
if (hp == 0 || --hp == 0)
|
||||||
|
#else
|
||||||
|
if (hp == 1 || --hp == 1)
|
||||||
|
#endif
|
||||||
numFainted++;
|
numFainted++;
|
||||||
|
|
||||||
SetMonData(pokemon, MON_DATA_HP, &hp);
|
SetMonData(pokemon, MON_DATA_HP, &hp);
|
||||||
|
|
|
@ -1191,7 +1191,11 @@ const u8 gText_PsychUp48BP[] = _("PSYCH UP{CLEAR_TO 0x4E}48BP");
|
||||||
const u8 gText_IcePunch48BP[] = _("ICE PUNCH{CLEAR_TO 0x4E}48BP");
|
const u8 gText_IcePunch48BP[] = _("ICE PUNCH{CLEAR_TO 0x4E}48BP");
|
||||||
const u8 gText_ThunderPunch48BP[] = _("THUNDERPUNCH{CLEAR_TO 0x4E}48BP");
|
const u8 gText_ThunderPunch48BP[] = _("THUNDERPUNCH{CLEAR_TO 0x4E}48BP");
|
||||||
const u8 gText_FirePunch48BP[] = _("FIRE PUNCH{CLEAR_TO 0x4E}48BP");
|
const u8 gText_FirePunch48BP[] = _("FIRE PUNCH{CLEAR_TO 0x4E}48BP");
|
||||||
|
#if OW_POISON_DAMAGE < GEN_4
|
||||||
const u8 gText_PkmnFainted_FldPsn[] = _("{STR_VAR_1} fainted…\p\n");
|
const u8 gText_PkmnFainted_FldPsn[] = _("{STR_VAR_1} fainted…\p\n");
|
||||||
|
#else
|
||||||
|
const u8 gText_PkmnFainted_FldPsn[] = _("{STR_VAR_1} survived the poisoning.\nThe poison faded away!\p");
|
||||||
|
#endif
|
||||||
const u8 gText_Marco[] = _("MARCO");
|
const u8 gText_Marco[] = _("MARCO");
|
||||||
const u8 gText_TrainerCardName[] = _("NAME: ");
|
const u8 gText_TrainerCardName[] = _("NAME: ");
|
||||||
const u8 gText_TrainerCardIDNo[] = _("IDNo.");
|
const u8 gText_TrainerCardIDNo[] = _("IDNo.");
|
||||||
|
|
Loading…
Reference in a new issue