summaryrefslogtreecommitdiff
path: root/include/constants
diff options
context:
space:
mode:
Diffstat (limited to 'include/constants')
-rw-r--r--include/constants/battle.h6
-rw-r--r--include/constants/contest.h44
-rw-r--r--include/constants/item_effects.h92
-rw-r--r--include/constants/pokemon.h4
4 files changed, 146 insertions, 0 deletions
diff --git a/include/constants/battle.h b/include/constants/battle.h
index 5aa1772d1..658f9ad6f 100644
--- a/include/constants/battle.h
+++ b/include/constants/battle.h
@@ -81,6 +81,7 @@
// These persist remain outside of battle and after switching out
#define STATUS1_NONE 0x0
#define STATUS1_SLEEP 0x7
+#define STATUS1_SLEEP_TURN(num) ((num) << 0)
#define STATUS1_POISON 0x8
#define STATUS1_BURN 0x10
#define STATUS1_FREEZE 0x20
@@ -93,12 +94,16 @@
// Volatile status ailments
// These are removed after exiting the battle or switching out
#define STATUS2_CONFUSION 0x00000007
+#define STATUS2_CONFUSION_TURN(num) ((num) << 0)
#define STATUS2_FLINCHED 0x00000008
#define STATUS2_UPROAR 0x00000070
+#define STATUS2_UPROAR_TURN(num) ((num) << 4)
#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
#define STATUS2_LOCK_CONFUSE 0x00000C00
+#define STATUS2_LOCK_CONFUSE_TURN(num) ((num) << 10)
#define STATUS2_MULTIPLETURNS 0x00001000
#define STATUS2_WRAPPED 0x0000E000
+#define STATUS2_WRAPPED_TURN(num) ((num) << 13)
#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler
#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16)
#define STATUS2_FOCUS_ENERGY 0x00100000
@@ -205,6 +210,7 @@
#define MOVE_EFFECT_BURN 0x3
#define MOVE_EFFECT_FREEZE 0x4
#define MOVE_EFFECT_PARALYSIS 0x5
+#define PRIMARY_STATUS_MOVE_EFFECT MOVE_EFFECT_TOXIC // All above move effects apply primary status
#define MOVE_EFFECT_TOXIC 0x6
#define MOVE_EFFECT_CONFUSION 0x7
#define MOVE_EFFECT_FLINCH 0x8
diff --git a/include/constants/contest.h b/include/constants/contest.h
new file mode 100644
index 000000000..e960809cc
--- /dev/null
+++ b/include/constants/contest.h
@@ -0,0 +1,44 @@
+#ifndef POKERUBY_CONSTANTS_CONTEST_H
+#define POKERUBY_CONSTANTS_CONTEST_H
+
+
+#define CONTEST_AI_CHECK_BAD_MOVE (1 << 0)
+#define CONTEST_AI_CHECK_COMBO (1 << 1)
+#define CONTEST_AI_CHECK_BORING (1 << 2)
+#define CONTEST_AI_CHECK_EXCITEMENT (1 << 3)
+#define CONTEST_AI_CHECK_ORDER (1 << 4)
+#define CONTEST_AI_CHECK_GOOD_MOVE (1 << 5)
+#define CONTEST_AI_ERRATIC (1 << 6)
+#define CONTEST_AI_DUMMY_1 (1 << 7)
+#define CONTEST_AI_DUMMY_2 (1 << 8)
+#define CONTEST_AI_DUMMY_3 (1 << 9)
+#define CONTEST_AI_DUMMY_4 (1 << 10)
+#define CONTEST_AI_DUMMY_5 (1 << 11)
+#define CONTEST_AI_DUMMY_6 (1 << 12)
+#define CONTEST_AI_DUMMY_7 (1 << 13)
+#define CONTEST_AI_DUMMY_8 (1 << 14)
+#define CONTEST_AI_DUMMY_9 (1 << 15)
+#define CONTEST_AI_DUMMY_10 (1 << 16)
+#define CONTEST_AI_DUMMY_11 (1 << 17)
+#define CONTEST_AI_DUMMY_12 (1 << 18)
+#define CONTEST_AI_DUMMY_13 (1 << 19)
+#define CONTEST_AI_DUMMY_14 (1 << 20)
+#define CONTEST_AI_DUMMY_15 (1 << 21)
+#define CONTEST_AI_DUMMY_16 (1 << 22)
+#define CONTEST_AI_DUMMY_17 (1 << 23)
+#define CONTEST_AI_DUMMY_18 (1 << 24)
+#define CONTEST_AI_DUMMY_19 (1 << 25)
+#define CONTEST_AI_DUMMY_20 (1 << 26)
+#define CONTEST_AI_DUMMY_21 (1 << 27)
+#define CONTEST_AI_DUMMY_22 (1 << 28)
+#define CONTEST_AI_DUMMY_23 (1 << 29)
+#define CONTEST_AI_DUMMY_24 (1 << 30)
+#define CONTEST_AI_DUMMY_25 (1 << 31)
+
+// The below scripts are used by every AI contest opponent
+// It includes every non-dummy script
+#define CONTEST_AI_COMMON (CONTEST_AI_CHECK_BAD_MOVE | CONTEST_AI_CHECK_COMBO | CONTEST_AI_CHECK_BORING | \
+ CONTEST_AI_CHECK_EXCITEMENT | CONTEST_AI_CHECK_ORDER | CONTEST_AI_CHECK_GOOD_MOVE | CONTEST_AI_ERRATIC | \
+ CONTEST_AI_DUMMY_1 | CONTEST_AI_DUMMY_2 | CONTEST_AI_DUMMY_3 | CONTEST_AI_DUMMY_4 | CONTEST_AI_DUMMY_5)
+
+#endif //POKERUBY_CONSTANTS_CONTEST_H
diff --git a/include/constants/item_effects.h b/include/constants/item_effects.h
new file mode 100644
index 000000000..5086b28e6
--- /dev/null
+++ b/include/constants/item_effects.h
@@ -0,0 +1,92 @@
+#ifndef POKERUBY_CONSTANTS_ITEM_EFFECTS_H
+#define POKERUBY_CONSTANTS_ITEM_EFFECTS_H
+
+// field 0 masks
+#define ITEM0_X_ATTACK 0x0F
+#define ITEM0_DIRE_HIT 0x30 // Works the same way as the move Focus Energy.
+#define ITEM0_SACRED_ASH 0x40
+#define ITEM0_INFATUATION 0x80
+
+// field 1 masks
+#define ITEM1_X_SPEED 0x0F
+#define ITEM1_X_DEFEND 0xF0
+
+// field 2 masks
+#define ITEM2_X_SPATK 0x0F
+#define ITEM2_X_ACCURACY 0xF0
+
+// field 3 masks
+#define ITEM3_CONFUSION 0x1
+#define ITEM3_PARALYSIS 0x2
+#define ITEM3_FREEZE 0x4
+#define ITEM3_BURN 0x8
+#define ITEM3_POISON 0x10
+#define ITEM3_SLEEP 0x20
+#define ITEM3_LEVEL_UP 0x40
+#define ITEM3_GUARD_SPEC 0x80 // Works the same way as the move Mist.
+
+#define ITEM3_STATUS_ALL (ITEM3_CONFUSION | ITEM3_PARALYSIS | ITEM3_FREEZE | ITEM3_BURN | ITEM3_POISON | ITEM3_SLEEP)
+
+// field 4 masks
+#define ITEM4_EV_HP 0x1
+#define ITEM4_EV_ATK 0x2
+#define ITEM4_HEAL_HP 0x4
+#define ITEM4_HEAL_PP 0x8
+#define ITEM4_HEAL_PP_ONE 0x10
+#define ITEM4_PP_UP 0x20
+#define ITEM4_REVIVE 0x40
+#define ITEM4_EVO_STONE 0x80
+
+// field 5 masks
+#define ITEM5_EV_DEF 0x1
+#define ITEM5_EV_SPEED 0x2
+#define ITEM5_EV_SPDEF 0x4
+#define ITEM5_EV_SPATK 0x8
+#define ITEM5_PP_MAX 0x10
+#define ITEM5_FRIENDSHIP_LOW 0x20
+#define ITEM5_FRIENDSHIP_MID 0x40
+#define ITEM5_FRIENDSHIP_HIGH 0x80
+
+#define ITEM5_FRIENDSHIP_ALL (ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID | ITEM5_FRIENDSHIP_HIGH)
+
+// fields 6 and onwards are item-specific arguments
+#define ITEM_EFFECT_ARG_START 6
+
+// Special HP recovery amounts for ITEM4_HEAL_HP
+#define ITEM6_HEAL_HP_FULL ((u8) -1)
+#define ITEM6_HEAL_HP_HALF ((u8) -2)
+#define ITEM6_HEAL_HP_LVL_UP ((u8) -3)
+
+// Special PP recovery amounts for ITEM4_HEAL_PP
+#define ITEM6_HEAL_PP_FULL 0x7F
+
+// Amount of EV modified by ITEM4_EV_HP, ITEM4_EV_ATK, ITEM5_EV_DEF, ITEM5_EV_SPEED, ITEM5_EV_SPDEF and ITEM5_EV_SPATK
+#define ITEM6_ADD_EV 10
+#define ITEM6_SUBTRACT_EV -10
+
+// Used for GetItemEffectType.
+#define ITEM_EFFECT_X_ITEM 0
+#define ITEM_EFFECT_RAISE_LEVEL 1
+#define ITEM_EFFECT_HEAL_HP 2
+#define ITEM_EFFECT_CURE_POISON 3
+#define ITEM_EFFECT_CURE_SLEEP 4
+#define ITEM_EFFECT_CURE_BURN 5
+#define ITEM_EFFECT_CURE_FREEZE 6
+#define ITEM_EFFECT_CURE_PARALYSIS 7
+#define ITEM_EFFECT_CURE_CONFUSION 8
+#define ITEM_EFFECT_CURE_INFATUATION 9
+#define ITEM_EFFECT_SACRED_ASH 10
+#define ITEM_EFFECT_CURE_ALL_STATUS 11
+#define ITEM_EFFECT_ATK_EV 12
+#define ITEM_EFFECT_HP_EV 13
+#define ITEM_EFFECT_SPATK_EV 14
+#define ITEM_EFFECT_SPDEF_EV 15
+#define ITEM_EFFECT_SPEED_EV 16
+#define ITEM_EFFECT_DEF_EV 17
+#define ITEM_EFFECT_EVO_STONE 18
+#define ITEM_EFFECT_PP_UP 19
+#define ITEM_EFFECT_PP_MAX 20
+#define ITEM_EFFECT_HEAL_PP 21
+#define ITEM_EFFECT_NONE 22
+
+#endif // POKERUBY_CONSTANTS_ITEM_EFFECTS_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index f5a9f4a6e..d1cec4461 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -141,6 +141,10 @@
#define NUM_STATS 6
#define UNOWN_FORM_COUNT 28
+#define MIN_STAT_STAGE 0
+#define DEFAULT_STAT_STAGE 6
+#define MAX_STAT_STAGE 12
+
#define PLAYER_HAS_TWO_USABLE_MONS 0
#define PLAYER_HAS_ONE_MON 1
#define PLAYER_HAS_ONE_USABLE_MON 2