Board index Programs with AI or Rules Enforcement Magic: The Gathering - Duels of the Planeswalkers Documentation
DotP2013 LOL files decoded
Moderator: CCGHQ Admins
DotP2013 LOL files decoded
by thefiremind » 23 Jun 2012, 10:17
Thanks to kevlahnota's advices found here, I decoded the LOL files inside the DotP2013 core. KEYWORDS.LOL is always empty so I'm not listing it.
COMPARTMENTIDS.LOL:
COMPARTMENTIDS.LOL:
- Code: Select all
COMPARTMENT_ID_DEFAULT_TARGET = 0
COMPARTMENT_ID_PARAM_TRIGGER_OBJECT = -1000
COMPARTMENT_ID_PARAM_TRIGGER_PLAYER = -1001
COMPARTMENT_ID_PARAM_SECONDARY_CARD = -1002
COMPARTMENT_ID_PARAM_SECONDARY_PLAYER = -1003
COMPARTMENT_ID_PARAM_AMOUNT = -1004
COMPARTMENT_ID_PARAM_FROM_ZONE = -1005
COMPARTMENT_ID_PARAM_TO_ZONE = -1006
COMPARTMENT_ID_COUNTER_TYPE = -1007
COMPARTMENT_ID_FILTERED_CARD = -1008
COMPARTMENT_ID_FILTERED_PLAYER = -1009
COMPARTMENT_ID_DAMAGE = -1010
COMPARTMENT_ID_EFFECT_SOURCE = -1011
COMPARTMENT_ID_STACK_OBJECT = -1012
COMPARTMENT_ID_MULTICHOICE_ANSWER = -1100
COMPARTMENT_ID_COLOUR_ANSWER = -1101
COMPARTMENT_ID_X = -1102
PLAYER_UTILITY_COMPARTMENT_ID_DISCARD_TARGET = 0
PLAYER_UTILITY_COMPARTMENT_ID_CHEAT_TUTOR_TARGET = -2000
PLAYER_UTILITY_COMPARTMENT_ID_PLAYER_DAMAGE_TAKEN_THIS_TURN = -2001
PLAYER_UTILITY_COMPARTMENT_ID_PLAYERS_CREATURES_DIED_THIS_TURN = -2002
DUEL_UTILITY_COMPARTMENT_ID_SPELLS_PLAYED_THIS_TURN = -3000
COMPARTMENT_ID_INT_REGISTER_0 = 1000
COMPARTMENT_ID_INT_REGISTER_1 = 1001
COMPARTMENT_ID_INT_REGISTER_2 = 1002
COMPARTMENT_ID_INT_REGISTER_3 = 1003
COMPARTMENT_ID_OBJ_REGISTER_0 = 2000
COMPARTMENT_ID_OBJ_REGISTER_1 = 2001
COMPARTMENT_ID_OBJ_REGISTER_2 = 2002
COMPARTMENT_ID_OBJ_REGISTER_3 = 2003
COMPARTMENT_ID_PLR_REGISTER_0 = 3000
COMPARTMENT_ID_PLR_REGISTER_1 = 3001
- Code: Select all
ZONE_NOWHERE_YET = 0
ZONE_ANYWHERE = 0
ZONE_IN_PLAY = 1
ZONE_REMOVED_FROM_GAME = 2
ZONE_PHASED_OUT = 3
ZONE_LIBRARY = 4
ZONE_GRAVEYARD = 5
ZONE_HAND = 6
ZONE_STACK = 7
ZONE_CEASED_TO_EXIST = 8
ZONE_COMMAND_SCHEME_DECK = 9
ZONE_COMMAND_SCHEME_ACTIVE = 10
ZONE_COMMAND_PLANE_DECK = 11
ZONE_COMMAND_PLANE_ACTIVE = 12
ZONE_COMMAND_GENERAL = 13
_ZONE_COUNT = 14
PHASE_BEGINNING = 0
PHASE_MAIN_1 = 1
PHASE_COMBAT = 2
PHASE_MAIN_2 = 3
PHASE_END = 4
_PHASE_COUNT = 5
STEP_UNTAP = 0
STEP_UPKEEP = 1
STEP_DRAW = 2
STEP_MAIN_1 = 3
STEP_BEGIN_COMBAT = 4
STEP_DECLARE_ATTACKERS = 5
STEP_DECLARE_BLOCKERS = 6
STEP_COMBAT_DAMAGE = 7
STEP_END_OF_COMBAT = 8
STEP_MAIN_2 = 9
STEP_END_OF_TURN = 10
STEP_CLEANUP = 11
_STEP_COUNT = 12
CHARACTERISTIC_DEATHTOUCH = 0
CHARACTERISTIC_DEFENDER = 1
CHARACTERISTIC_DOUBLE_STRIKE = 2
CHARACTERISTIC_FIRST_STRIKE = 3
CHARACTERISTIC_FLASH = 4
CHARACTERISTIC_FLYING = 5
CHARACTERISTIC_HASTE = 6
CHARACTERISTIC_HEXPROOF = 7
CHARACTERISTIC_INTIMIDATE = 8
CHARACTERISTIC_PLAINSWALK = 9
CHARACTERISTIC_ISLANDWALK = 10
CHARACTERISTIC_SWAMPWALK = 11
CHARACTERISTIC_MOUNTAINWALK = 12
CHARACTERISTIC_FORESTWALK = 13
CHARACTERISTIC_LIFELINK = 14
CHARACTERISTIC_REACH = 15
CHARACTERISTIC_SHROUD = 16
CHARACTERISTIC_TRAMPLE = 17
CHARACTERISTIC_VIGILANCE = 18
CHARACTERISTIC_FLANKING = 19
CHARACTERISTIC_PHASING = 20
CHARACTERISTIC_CHANGELING = 21
CHARACTERISTIC_SHADOW = 22
CHARACTERISTIC_FEAR = 23
CHARACTERISTIC_ANNIHILATOR = 24
CHARACTERISTIC_BATTLE_CRY = 25
CHARACTERISTIC_FADING = 26
CHARACTERISTIC_TOTEM_ARMOUR = 27
CHARACTERISTIC_INFECT = 28
CHARACTERISTIC_WITHER = 29
CHARACTERISTIC_INDESTRUCTIBLE = 30
CHARACTERISTIC_UNBLOCKABLE = 31
CHARACTERISTIC_MUST_ATTACK = 32
CHARACTERISTIC_MUST_ATTACK_EACH_TURN = 33
CHARACTERISTIC_MUST_BLOCK = 34
CHARACTERISTIC_CANT_ATTACK = 35
CHARACTERISTIC_CANT_BLOCK = 36
CHARACTERISTIC_CANNOT_ATTACK_ALONE = 37
CHARACTERISTIC_CANNOT_BLOCK_ALONE = 38
CHARACTERISTIC_MUST_BE_BLOCKED_IF_ABLE = 39
CHARACTERISTIC_ALL_CREATURES_MUST_BLOCK_THIS_IF_ABLE = 40
CHARACTERISTIC_CANT_BE_PLAYED = 41
CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES = 42
CHARACTERISTIC_CANT_BE_COUNTERED = 43
CHARACTERISTIC_CANT_BE_REGENERATED = 44
CHARACTERISTIC_CANT_HAVE_COUNTERS = 45
CHARACTERISTIC_DOESNT_UNTAP = 46
CHARACTERISTIC_COMES_INTO_PLAY_TAPPED = 47
CHARACTERISTIC_DOESNT_DEAL_DAMAGE = 48
CHARACTERISTIC_DOESNT_DEAL_COMBAT_DAMAGE = 49
CHARACTERISTIC_DOESNT_RECEIVE_COMBAT_DAMAGE = 50
CHARACTERISTIC_USE_TOUGHNESS_FOR_COMBAT_DAMAGE = 51
CHARACTERISTIC_WORTHLESS = 52
_CHARACTERISTIC_COUNT = 53
PLAYER_CHARACTERISTIC_DOESNT_DIE_ON_ZERO_LIFE = 0
PLAYER_CHARACTERISTIC_CANT_LOSE = 1
PLAYER_CHARACTERISTIC_CANT_WIN = 2
PLAYER_CHARACTERISTIC_CANT_BE_TARGETTED = 3
PLAYER_CHARACTERISTIC_NO_HAND_LIMIT = 4
PLAYER_CHARACTERISTIC_PLAY_WITH_TOP_CARD_OF_LIBRARY_REVEALED = 5
PLAYER_CHARACTERISTIC_CANT_CAST_SPELLS = 6
PLAYER_CHARACTERISTIC_CANT_ATTACK = 7
PLAYER_CHARACTERISTIC_CANT_TAKE_COMBAT_DAMAGE = 8
PLAYER_CHARACTERISTIC_CANT_TAKE_NONCOMBAT_DAMAGE = 9
PLAYER_CHARACTERISTIC_CREATURES_CANT_TAKE_COMBAT_DAMAGE = 10
PLAYER_CHARACTERISTIC_CREATURES_CANT_TAKE_NONCOMBAT_DAMAGE = 11
PLAYER_CHARACTERISTIC_CREATURES_CANT_DEAL_COMBAT_DAMAGE = 12
PLAYER_CHARACTERISTIC_CREATURES_CANT_DEAL_NONCOMBAT_DAMAGE = 13
PLAYER_CHARACTERISTIC_CREATURES_CANT_BE_SACRIFICED = 14
PLAYER_CHARACTERISTIC_CAN_PLAY_TOP_CARD_OF_LIBRARY = 15
PLAYER_CHARACTERISTIC_PLAY_WITH_TOP_CARD_OF_LIBRARY_REVEALED_TO_ME = 16
PLAYER_CHARACTERISTIC_HAS_HEXPROOF = 17
PLAYER_CHARACTERISTIC_HAS_SHROUD = 18
PLAYER_CHARACTERISTIC_CANT_BE_ATTACKED = 19
PLAYER_CHARACTERISTIC_AI_WORSHIP_HACK = 20
_PLAYER_CHARACTERISTIC_COUNT = 21
PLAYER_INTCHARACTERISTIC_EXTRA_LAND_DROPS = 0
_PLAYER_INTCHARACTERISTIC_COUNT = 1
PLAYER_BADGE_ICON_CHOSEN_PLAYER = 0
PLAYER_BADGE_ICON_FOG = 1
PLAYER_BADGE_ICON_PREVENTION = 2
PLAYER_BADGE_ICON_REPLACEMENT_REDIRECTION = 3
PLAYER_BADGE_ICON_TIME_DISTORTION = 4
_PLAYER_BADGE_ICON_COUNT = 5
DUEL_CHARACTERISTIC_MAX_ONE_ATTACKER = 0
DUEL_CHARACTERISTIC_MAX_ONE_BLOCKER = 1
_DUEL_CHARACTERISTIC_COUNT = 2
PARENT_CHILD_NONE = 0
PARENT_CHILD_ATTACHED = 1
PARENT_CHILD_OTHER = 2
COLOUR_COLOURLESS = 0
COLOUR_WHITE = 1
COLOUR_BLUE = 2
COLOUR_BLACK = 3
COLOUR_RED = 4
COLOUR_GREEN = 5
COLOUR_X = 6
COLOUR_SNOW = 7
_COLOUR_COUNT = 8
CARD_TYPE_ARTIFACT = 0
CARD_TYPE_CREATURE = 1
CARD_TYPE_ENCHANTMENT = 2
CARD_TYPE_INSTANT = 3
CARD_TYPE_LAND = 4
CARD_TYPE_PLANESWALKER = 5
CARD_TYPE_SORCERY = 6
CARD_TYPE_TRIBAL = 7
CARD_TYPE_SCHEME = 8
CARD_TYPE_PLANE = 9
CARD_TYPE_PHENOMENON = 10
SUPERTYPE_BASIC = 0
SUPERTYPE_LEGENDARY = 1
SUPERTYPE_WORLD = 2
SUPERTYPE_SNOW = 3
SUPERTYPE_ONGOING = 4
SIZE_OF_TYPE_BAND = 1000
SUBTYPE_NONE = -1
ARTIFACT_TYPES = SIZE_OF_TYPE_BAND * CARD_TYPE_ARTIFACT
ARTIFACT_TYPE_CONTRAPTION = ARTIFACT_TYPES
ARTIFACT_TYPE_EQUIPMENT = ARTIFACT_TYPE_CONTRAPTION + 1
ARTIFACT_TYPE_FORTIFICATION = ARTIFACT_TYPE_EQUIPMENT + 1
ENCHANTMENT_TYPES = SIZE_OF_TYPE_BAND * CARD_TYPE_ENCHANTMENT
ENCHANTMENT_TYPE_AURA = ENCHANTMENT_TYPES
ENCHANTMENT_TYPE_SHRINE = ENCHANTMENT_TYPE_AURA + 1
ENCHANTMENT_TYPE_CURSE = ENCHANTMENT_TYPE_SHRINE + 1
SPELL_TYPES = SIZE_OF_TYPE_BAND * CARD_TYPE_INSTANT
LAND_TYPES = SIZE_OF_TYPE_BAND * CARD_TYPE_LAND
LAND_TYPE_DESERT = LAND_TYPES
LAND_TYPE_FOREST = LAND_TYPE_DESERT + 1
LAND_TYPE_ISLAND = LAND_TYPE_FOREST + 1
LAND_TYPE_LAIR = LAND_TYPE_ISLAND + 1
LAND_TYPE_LOCUS = LAND_TYPE_LAIR + 1
LAND_TYPE_MINE = LAND_TYPE_LOCUS + 1
LAND_TYPE_MOUNTAIN = LAND_TYPE_MINE + 1
LAND_TYPE_PLAINS = LAND_TYPE_MOUNTAIN + 1
LAND_TYPE_POWER_PLANT = LAND_TYPE_PLAINS + 1
LAND_TYPE_SWAMP = LAND_TYPE_POWER_PLANT + 1
LAND_TYPE_TOWER = LAND_TYPE_SWAMP + 1
LAND_TYPE_URZAS = LAND_TYPE_TOWER + 1
PLANESWALKER_TYPES = SIZE_OF_TYPE_BAND * CARD_TYPE_PLANESWALKER
CREATURE_TYPES = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE
EVASION_INDEX_COLOURLESS = 1
EVASION_INDEX_RED = 2
EVASION_INDEX_GREEN = 4
EVASION_INDEX_BLACK = 8
EVASION_INDEX_BLUE = 16
EVASION_INDEX_WHITE = 32
EVASION_INDEX_X = 64
EVASION_INDEX_SNOW = 128
EVASION_INDEX_MULTICOLOURED = 256
EVASION_INDEX_ARTIFACT = 512
EVASION_INDEX_LEGEND = 1024
EVASION_INDEX_FLYING = 16777216
EVASION_INDEX_SHADOW = 33554432
EVASION_INDEX_UNBLOCKABLE = 67108864
SPECIAL_EFFECT_FLYING = 0
FILTER_TYPE_CARDS = 1
FILTER_TYPE_PLAYERS = 16
FILTER_TYPE_OPPONENTS = 32
FILTER_TYPE_ALL = 4294967295
SUBJECT_NONE = 0
SUBJECT_OBJECT = 1
SUBJECT_PLAYER = 2
SUBJECT_WORLD = 3
FILTER_EXTRA_CREATURE_ATTACKING = 1
FILTER_EXTRA_CREATURE_BLOCKING = 2
FILTER_EXTRA_CREATURE_TAPPED = 4
FILTER_EXTRA_CREATURE_UNTAPPED = 8
FILTER_EXTRA_IS_TOKEN = 16
FILTER_EXTRA_NOT_TOKEN = 32
FILTER_EXTRA_FLIP_CARD_TYPES = 65536
FILTER_EXTRA_FLIP_SECOND_CARD_TYPES = 32768
FILTER_EXTRA_FLIP_SUB_TYPES = 131072
FILTER_EXTRA_FLIP_SUPER_TYPES = 262144
FILTER_EXTRA_FLIP_PLAYER = 524288
FILTER_EXTRA_FLIP_ZONE = 1048576
FILTER_EXTRA_FLIP_COLOUR = 2097152
FILTER_EXTRA_FLIP_CARD_REF = 4194304
FILTER_EXTRA_FLIP_CARD_INSTANCE = 8388608
FILTER_EXTRA_ANY_SUPER_TYPE = 16777216
FILTER_EXTRA_ANY_SUB_TYPE = 33554432
FILTER_EXTRA_FLIP_TEAM = 67108864
FILTER_EXTRA_FLIP_NAMES = 134217728
FILTER_EXTRA_FLIP_CHARACTERISTICS = 268435456
FILTER_EXTRA_FLIP_PLAYER_INSTANCE = 536870912
FILTER_EXTRA_FLIP_COUNTER_TYPE = 1073741824
CREATURE_TYPE_HUMAN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 0
CREATURE_TYPE_ADVISOR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 1
CREATURE_TYPE_ANEMONE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 2
CREATURE_TYPE_ANGEL = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 3
CREATURE_TYPE_ANTEATER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 4
CREATURE_TYPE_ANTELOPE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 5
CREATURE_TYPE_APE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 6
CREATURE_TYPE_ARCHER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 7
CREATURE_TYPE_ARCHON = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 8
CREATURE_TYPE_ARTIFICER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 9
CREATURE_TYPE_ASSASSIN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 10
CREATURE_TYPE_ASSEMBLY_WORKER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 11
CREATURE_TYPE_ATOG = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 12
CREATURE_TYPE_AUROCHS = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 13
CREATURE_TYPE_AVATAR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 14
CREATURE_TYPE_BADGER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 15
CREATURE_TYPE_BARBARIAN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 16
CREATURE_TYPE_BASILISK = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 17
CREATURE_TYPE_BAT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 18
CREATURE_TYPE_BEAR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 19
CREATURE_TYPE_BEAST = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 20
CREATURE_TYPE_BEEBLE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 21
CREATURE_TYPE_BERSERKER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 22
CREATURE_TYPE_BIRD = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 23
CREATURE_TYPE_BLINKMOTH = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 24
CREATURE_TYPE_BOAR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 25
CREATURE_TYPE_BRINGER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 26
CREATURE_TYPE_BRUSHWAGG = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 27
CREATURE_TYPE_CAMARID = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 28
CREATURE_TYPE_CAMEL = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 29
CREATURE_TYPE_CARIBOU = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 30
CREATURE_TYPE_CARRIER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 31
CREATURE_TYPE_CAT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 32
CREATURE_TYPE_CENTAUR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 33
CREATURE_TYPE_CEPHALID = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 34
CREATURE_TYPE_CHIMERA = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 35
CREATURE_TYPE_CITIZEN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 36
CREATURE_TYPE_CLERIC = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 37
CREATURE_TYPE_COCKATRICE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 38
CREATURE_TYPE_CONSTRUCT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 39
CREATURE_TYPE_COWARD = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 40
CREATURE_TYPE_CRAB = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 41
CREATURE_TYPE_CROCODILE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 42
CREATURE_TYPE_CYCLOPS = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 43
CREATURE_TYPE_DAUTHI = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 44
CREATURE_TYPE_DEMON = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 45
CREATURE_TYPE_DESERTER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 46
CREATURE_TYPE_DEVIL = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 47
CREATURE_TYPE_DJINN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 48
CREATURE_TYPE_DRAGON = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 49
CREATURE_TYPE_DRAKE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 50
CREATURE_TYPE_DREADNOUGHT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 51
CREATURE_TYPE_DRONE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 52
CREATURE_TYPE_DRUID = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 53
CREATURE_TYPE_DRYAD = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 54
CREATURE_TYPE_DWARF = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 55
CREATURE_TYPE_EFREET = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 56
CREATURE_TYPE_EGG = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 57
CREATURE_TYPE_ELDER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 58
CREATURE_TYPE_ELEMENTAL = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 59
CREATURE_TYPE_ELEPHANT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 60
CREATURE_TYPE_ELF = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 61
CREATURE_TYPE_ELK = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 62
CREATURE_TYPE_EYE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 63
CREATURE_TYPE_FAERIE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 64
CREATURE_TYPE_FERRET = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 65
CREATURE_TYPE_FISH = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 66
CREATURE_TYPE_FLAGBEARER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 67
CREATURE_TYPE_FOX = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 68
CREATURE_TYPE_FROG = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 69
CREATURE_TYPE_FUNGUS = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 70
CREATURE_TYPE_GARGOYLE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 71
CREATURE_TYPE_GIANT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 72
CREATURE_TYPE_GNOME = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 73
CREATURE_TYPE_GOAT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 74
CREATURE_TYPE_GOBLIN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 75
CREATURE_TYPE_GOLEM = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 76
CREATURE_TYPE_GORGON = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 77
CREATURE_TYPE_GRAVEBORN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 78
CREATURE_TYPE_GREMLIN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 79
CREATURE_TYPE_GRIFFIN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 80
CREATURE_TYPE_HAG = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 81
CREATURE_TYPE_HARPY = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 82
CREATURE_TYPE_HELLION = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 83
CREATURE_TYPE_HIPPO = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 84
CREATURE_TYPE_HOMARID = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 85
CREATURE_TYPE_HOMUNCULUS = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 86
CREATURE_TYPE_HORROR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 87
CREATURE_TYPE_HORSE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 88
CREATURE_TYPE_HOUND = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 89
CREATURE_TYPE_HYDRA = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 90
CREATURE_TYPE_ILLUSION = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 91
CREATURE_TYPE_IMP = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 92
CREATURE_TYPE_INCARNATION = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 93
CREATURE_TYPE_INSECT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 94
CREATURE_TYPE_JELLYFISH = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 95
CREATURE_TYPE_JUGGERNAUT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 96
CREATURE_TYPE_KAVU = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 97
CREATURE_TYPE_KIRIN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 98
CREATURE_TYPE_KITHKIN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 99
CREATURE_TYPE_KNIGHT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 100
CREATURE_TYPE_KOBOLD = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 101
CREATURE_TYPE_KOR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 102
CREATURE_TYPE_KRAKEN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 103
CREATURE_TYPE_LAMMASU = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 104
CREATURE_TYPE_LEECH = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 105
CREATURE_TYPE_LEVIATHAN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 106
CREATURE_TYPE_LHURGOYF = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 107
CREATURE_TYPE_LICID = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 108
CREATURE_TYPE_LIZARD = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 109
CREATURE_TYPE_MANTICORE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 110
CREATURE_TYPE_MASTICORE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 111
CREATURE_TYPE_MERCENARY = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 112
CREATURE_TYPE_MERFOLK = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 113
CREATURE_TYPE_METATHRAN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 114
CREATURE_TYPE_MINION = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 115
CREATURE_TYPE_MINOTAUR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 116
CREATURE_TYPE_MONGER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 117
CREATURE_TYPE_MONGOOSE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 118
CREATURE_TYPE_MONK = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 119
CREATURE_TYPE_MOONFOLK = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 120
CREATURE_TYPE_MUTANT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 121
CREATURE_TYPE_MYR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 122
CREATURE_TYPE_MYSTIC = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 123
CREATURE_TYPE_NAUTILUS = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 124
CREATURE_TYPE_NEPHILIM = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 125
CREATURE_TYPE_NIGHTMARE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 126
CREATURE_TYPE_NIGHTSTALKER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 127
CREATURE_TYPE_NINJA = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 128
CREATURE_TYPE_NOMAD = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 129
CREATURE_TYPE_OCTOPUS = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 130
CREATURE_TYPE_OGRE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 131
CREATURE_TYPE_OOZE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 132
CREATURE_TYPE_ORB = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 133
CREATURE_TYPE_ORC = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 134
CREATURE_TYPE_ORGG = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 135
CREATURE_TYPE_OUPHE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 136
CREATURE_TYPE_OX = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 137
CREATURE_TYPE_OYSTER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 138
CREATURE_TYPE_PEGASUS = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 139
CREATURE_TYPE_PENTAVITE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 140
CREATURE_TYPE_PEST = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 141
CREATURE_TYPE_PHELDDAGRIF = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 142
CREATURE_TYPE_PHOENIX = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 143
CREATURE_TYPE_PINCHER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 144
CREATURE_TYPE_PIRATE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 145
CREATURE_TYPE_PLANT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 146
CREATURE_TYPE_PRISM = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 147
CREATURE_TYPE_RABBIT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 148
CREATURE_TYPE_RAT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 149
CREATURE_TYPE_REBEL = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 150
CREATURE_TYPE_REFLECTION = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 151
CREATURE_TYPE_RHINO = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 152
CREATURE_TYPE_RIGGER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 153
CREATURE_TYPE_ROGUE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 154
CREATURE_TYPE_SALAMANDER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 155
CREATURE_TYPE_SAMURAI = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 156
CREATURE_TYPE_SAND = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 157
CREATURE_TYPE_SAPROLING = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 158
CREATURE_TYPE_SATYR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 159
CREATURE_TYPE_SCARECROW = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 160
CREATURE_TYPE_SCORPION = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 161
CREATURE_TYPE_SCOUT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 162
CREATURE_TYPE_SERF = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 163
CREATURE_TYPE_SERPENT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 164
CREATURE_TYPE_SHADE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 165
CREATURE_TYPE_SHAMAN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 166
CREATURE_TYPE_SHAPESHIFTER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 167
CREATURE_TYPE_SHEEP = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 168
CREATURE_TYPE_SKELETON = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 169
CREATURE_TYPE_SLITH = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 170
CREATURE_TYPE_SLIVER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 171
CREATURE_TYPE_SLUG = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 172
CREATURE_TYPE_SNAKE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 173
CREATURE_TYPE_SOLDIER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 174
CREATURE_TYPE_SOLTARI = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 175
CREATURE_TYPE_SPAWN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 176
CREATURE_TYPE_SPECTER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 177
CREATURE_TYPE_SPELLSHAPER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 178
CREATURE_TYPE_SPHINX = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 179
CREATURE_TYPE_SPIDER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 180
CREATURE_TYPE_SPIKE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 181
CREATURE_TYPE_SPIRIT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 182
CREATURE_TYPE_SPLINTER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 183
CREATURE_TYPE_SPONGE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 184
CREATURE_TYPE_SQUID = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 185
CREATURE_TYPE_SQUIRREL = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 186
CREATURE_TYPE_STARFISH = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 187
CREATURE_TYPE_SURVIVOR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 188
CREATURE_TYPE_TETRAVITE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 189
CREATURE_TYPE_THALAKOS = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 190
CREATURE_TYPE_THOPTER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 191
CREATURE_TYPE_THRULL = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 192
CREATURE_TYPE_TREEFOLK = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 193
CREATURE_TYPE_TRISKELAVITE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 194
CREATURE_TYPE_TROLL = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 195
CREATURE_TYPE_TURTLE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 196
CREATURE_TYPE_UNICORN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 197
CREATURE_TYPE_VAMPIRE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 198
CREATURE_TYPE_VEDALKEN = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 199
CREATURE_TYPE_VIASHINO = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 200
CREATURE_TYPE_VOLVER = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 201
CREATURE_TYPE_WALL = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 202
CREATURE_TYPE_WARRIOR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 203
CREATURE_TYPE_WEIRD = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 204
CREATURE_TYPE_WHALE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 205
CREATURE_TYPE_WIZARD = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 206
CREATURE_TYPE_WOLF = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 207
CREATURE_TYPE_WOLVERINE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 208
CREATURE_TYPE_WOMBAT = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 209
CREATURE_TYPE_WORM = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 210
CREATURE_TYPE_WRAITH = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 211
CREATURE_TYPE_WURM = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 212
CREATURE_TYPE_YETI = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 213
CREATURE_TYPE_ZOMBIE = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 214
CREATURE_TYPE_ZUBERA = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 215
CREATURE_TYPE_ALLY = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 216
CREATURE_TYPE_TRAP = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 217
CREATURE_TYPE_ELDRAZI = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 218
CREATURE_TYPE_PRAETOR = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 219
CREATURE_TYPE_WEREWOLF = SIZE_OF_TYPE_BAND * CARD_TYPE_CREATURE + 220
TRIGGER_BEGINNING_OF_STEP = 0
TRIGGER_END_OF_STEP = 1
TRIGGER_BEGINNING_OF_TURN = 2
TRIGGER_END_OF_TURN = 3
TRIGGER_ATTACKERS_DECLARED = 4
TRIGGER_BLOCKERS_DECLARED = 5
TRIGGER_COMBAT_DAMAGE_PUSHED = 6
TRIGGER_ACTIVATED_ABILITY_PLAYED = 7
TRIGGER_CREATURE_TOOK_DAMAGE = 8
TRIGGER_PLAYER_TOOK_DAMAGE = 9
TRIGGER_PLAYER_LOST_LIFE = 10
TRIGGER_PLAYER_GAINED_LIFE = 11
TRIGGER_PLAYER_LIFE_CHANGED = 12
TRIGGER_ATTACKING_AND_ISNT_BLOCKED = 13
TRIGGER_ATTACKING = 14
TRIGGER_AURA_ATTACHED = 15
TRIGGER_EQUIPMENT_ATTACHED = 16
TRIGGER_ATTACKING_ALONE = 17
TRIGGER_BECAME_TAPPED = 18
TRIGGER_BECAME_TAPPED_FOR_MANA = 19
TRIGGER_BECAME_TARGET = 20
TRIGGER_BECAME_UNTAPPED = 21
TRIGGER_BLOCKING = 22
TRIGGER_CHAMPIONED = 23
TRIGGER_CLASH = 24
TRIGGER_CONTROLLER_CHANGED = 25
TRIGGER_COUNTERS_CHANGED = 26
TRIGGER_CYCLED = 27
TRIGGER_CREATURE_DEALS_COMBAT_DAMAGE = 28
TRIGGER_CREATURE_DEALS_COMBAT_DAMAGE_TO_PLAYER = 29
TRIGGER_DESTROYED = 30
TRIGGER_DISCARD = 31
TRIGGER_DREW_CARD = 32
TRIGGER_KICKER_PAID = 33
TRIGGER_LOST_CLASH = 34
TRIGGER_PAY_CUMULATIVE_UPKEEP = 35
TRIGGER_PAY_ECHO = 36
TRIGGER_SPELL_OR_ABILITY_CAUSED_SHUFFLE = 37
TRIGGER_STATE_BASED_EFFECTS = 38
TRIGGER_TARGETS_CHOSEN = 39
TRIGGER_TURNED_FACE_UP = 40
TRIGGER_UNATTACHED_FROM_CREATURE = 41
TRIGGER_WAS_BLOCKED_BY = 42
TRIGGER_WON_CLASH = 43
TRIGGER_ZONECHANGE_CONSIDERED = 44
TRIGGER_ZONECHANGE_BEGIN = 45
TRIGGER_ZONECHANGE_TRANSITION = 46
TRIGGER_ZONECHANGE_END = 47
TRIGGER_SACRIFICE = 48
TRIGGER_SPELL_PLAYED = 49
TRIGGER_SPELL_RESOLVED = 50
TRIGGER_ABILITY_PLAYED = 51
TRIGGER_ABILITY_RESOLVED = 52
TRIGGER_LAND_PLAYED = 53
TRIGGER_WAS_BLOCKED = 54
TRIGGER_CARD_CONSIDERED_FOR_TARGETTING = 55
TRIGGER_PLAYER_CONSIDERED_FOR_TARGETTING = 56
TRIGGER_SPELL_BEING_COUNTERED = 57
TRIGGER_CREATURE_DEALS_COMBAT_DAMAGE_TO_CREATURE = 58
TRIGGER_STACK_PUSHED = 59
TRIGGER_STACK_POPPED = 60
TRIGGER_CREATURE_TOOK_COMBAT_DAMAGE_FROM_SOURCE = 61
TRIGGER_PLAYER_TOOK_COMBAT_DAMAGE_FROM_SOURCE = 62
TRIGGER_CREATURE_TOOK_NON_COMBAT_DAMAGE = 63
TRIGGER_PLAYER_TOOK_NON_COMBAT_DAMAGE = 64
TRIGGER_CREATURE_DEALS_COMBAT_DAMAGE = 65
TRIGGER_SET_IN_MOTION = 66
TRIGGER_ABANDONED = 67
TRIGGER_PLAYER_LOSES_GAME = 68
TRIGGER_ROLLED_CHAOS = 69
TRIGGER_ROLLED_PLANESWALK = 70
TRIGGER_PHENOMENON_ENCOUNTERED = 71
TRIGGER_PLANESWALK_AWAY_FROM = 72
TRIGGER_PLANESWALK_TO = 73
TRIGGER_PLANAR_DIE_ROLLED = 74
TRIGGER_PLAYER_POISON_CHANGED = 75
TRIGGER_PLAYER_GAIN_POISON = 76
TRIGGER_PLAYER_LOST_LIFE_FROM_DAMAGE = 77
TRIGGER_CREATURE_TOOK_COMBAT_DAMAGE = 78
TRIGGER_PLAYER_TOOK_COMBAT_DAMAGE = 79
TRIGGER_PLAYER_PUT_TOKENS_INTO_PLAY = 80
TRIGGER_CANT_ATTACK_TEST = 81
TRIGGER_CANT_BLOCK_TEST = 82
TRIGGER_CANT_ATTACK_PLAYER_TEST = 83
TRIGGER_EVASION_TEST = 84
TRIGGER_SPELL_ABOUT_TO_RESOLVE = 85
TRIGGER_ABILITY_ABOUT_TO_RESOLVE = 86
_TRIGGER_COUNT = 87
TARGET_DETERMINATION_NONE = 0
TARGET_DETERMINATION_ALL = 1
TARGET_DETERMINATION_SOME = 2
STACK_OBJECT_UNDEFINED = 0
STACK_OBJECT_CARD = 1
STACK_OBJECT_ABILITY = 2
STACK_OBJECT_COMBAT_DAMAGE = 3
SCORE_QUERY = 0
SCORE_BASIC_LOOKAHEAD = 1
SCORE_FULL_LOOKAHEAD = 2
SCORE_COMBAT_PRECALC = 3
GAME_TYPE_FREE_FOR_ALL = 0
GAME_TYPE_TWO_HEADED_GIANT = 1
QUERY_FLAG_CAN_BE_FINISHED_EARLY = 1
QUERY_FLAG_SELECT_EVERYTHING = 2
QUERY_FLAG_SLOWLY_RIPPLE = 4
QUERY_FLAG_REVEAL_RESULTS = 8
QUERY_FLAG_CAN_BE_FINISHED_EARLY_CANCEL_EDITION = 16
QUERY_FLAG_CAN_BE_FINISHED_EARLY_FOR_AI_AS_WELL = 32
QUERY_FLAG_RANDOM = 64
QUERY_FLAG_USE_TARGET_SORTER = 128
_COMPARTMENT_FREE = 0
COMPARTMENT_INTEGER = 1
COMPARTMENT_FLOAT = 2
COMPARTMENT_PLAYER_PTR = 3
COMPARTMENT_TEAM_PTR = 4
COMPARTMENT_OBJECT_PTR = 5
COMPARTMENT_PROTECTED_OBJECT_PTR = 6
COMPARTMENT_CARD_TYPE = 7
COMPARTMENT_SUB_TYPE = 8
COMPARTMENT_SUPER_TYPE = 9
COMPARTMENT_FILTER = 10
COMPARTMENT_COLOUR = 11
COMPARTMENT_ABILITY = 12
COMPARTMENT_DAMAGE = 13
COMPARTMENT_TARGET = 14
COMPARTMENT_CHEST = 15
NEXT_COMPARTMENT = -1
NO_VALIDATION = -1
HINT_ALLIED_ONLY = 0
HINT_ALLIED = 1
HINT_NEUTRAL = 2
HINT_ENEMY = 3
HINT_ENEMY_ONLY = 4
PLANECHASE_DICE_ROLL_NOT_ROLLED = -1
PLANECHASE_DICE_ROLL_NONE = 0
PLANECHASE_DICE_ROLL_CHAOS = 1
PLANECHASE_DICE_ROLL_PLANESWALK = 2
TARGET_SORT_TYPE_CONTROL = 0
TARGET_SORT_TYPE_SCORE = 1
TARGET_SORT_TYPE_DESTROY = 2
TARGET_SORT_TYPE_DAMAGE = 3
TARGET_SORT_POLARITY_ENEMY = 0
TARGET_SORT_POLARITY_ALLIED = 1
TARGET_SORT_POLARITY_NEUTRAL = 2
TARGET_SORT_POLARITY_INVERSE_NEUTRAL = 3
BADGE_FIRSTSTRIKE = 0
BADGE_TRAMPLE = 1
BADGE_DOUBLESTRIKE = 2
BADGE_DEATHTOUCH = 3
BADGE_LIFELINK = 4
BADGE_REACH = 5
BADGE_DEFENDER = 6
BADGE_SHROUD = 7
BADGE_INDESTRUCTIBLE = 8
BADGE_UNBLOCKABLE = 9
BADGE_FLYING = 10
BADGE_SHADOW = 11
BADGE_FLASH = 12
BADGE_VIGILANCE = 13
BADGE_HASTE = 14
BADGE_FEAR = 15
BADGE_PLAINS_WALK = 16
BADGE_ISLAND_WALK = 17
BADGE_SWAMP_WALK = 18
BADGE_MOUNTAIN_WALK = 19
BADGE_FOREST_WALK = 20
BADGE_HEXPROOF = 21
BADGE_DOESNT_UNTAP = 22
BADGE_DOESNT_UNTAP_NEXT_TIME = 23
BADGE_INTIMIDATE = 24
BADGE_ANNIHILATOR = 25
BADGE_BATTLE_CRY = 26
BADGE_FADING = 27
BADGE_TOTEM_ARMOR = 28
BADGE_DIES_AT_END_OF_TURN = 29
BADGE_FLANKING = 30
BADGE_INFECT = 31
BADGE_WITHER = 32
BADGE_EXALTED = 33
BADGE_UNDYING = 34
BADGE_CHANGELING = 35
_BADGE_COUNT = 36
- Code: Select all
PlayerDrawCards = function(l_1_0, l_1_1)
repeat
if l_1_1 > 0 then
l_1_1 = l_1_1 - 1
l_1_0:DrawCard()
else
-- Warning: missing end command somewhere! Added here
end
-- Warning: missing end command somewhere! Added here
end
end
DiscardHand = function(l_2_0)
repeat
if CountCardsInHand(l_2_0) > 0 then
l_2_0:DiscardRandomCard()
else
-- Warning: missing end command somewhere! Added here
end
-- Warning: missing end command somewhere! Added here
end
end
PutTokensIntoPlay = function(l_3_0, l_3_1)
PutTokensIntoPlayUnderControlOf(l_3_0, Object():GetPlayer(), l_3_1)
end
PutTokensIntoPlayUnderControlOf = function(l_4_0, l_4_1, l_4_2)
repeat
repeat
if l_4_2 > 0 then
l_4_2 = l_4_2 - 1
local l_4_3 = MTG():ObtainToken(l_4_0, l_4_1)
until l_4_3 ~= nil
l_4_3:PutIntoPlay(l_4_1)
else
-- Warning: missing end command somewhere! Added here
end
-- Warning: missing end command somewhere! Added here
end
end
PutTokensIntoPlayTapped = function(l_5_0, l_5_1)
PutTokensIntoPlayTappedUnderControlOf(l_5_0, Object():GetPlayer(), l_5_1)
end
PutTokensIntoPlayTappedUnderControlOf = function(l_6_0, l_6_1, l_6_2)
repeat
repeat
if l_6_2 > 0 then
l_6_2 = l_6_2 - 1
local l_6_3 = MTG():ObtainToken(l_6_0, l_6_1)
until l_6_3 ~= nil
l_6_3:PutIntoPlayTapped(l_6_1)
else
-- Warning: missing end command somewhere! Added here
end
-- Warning: missing end command somewhere! Added here
end
end
PutTokenIntoPlay = function(l_7_0)
local l_7_1 = MTG():ObtainToken(l_7_0, Object():GetPlayer())
if l_7_1 ~= nil then
l_7_1:PutIntoPlay(Object():GetPlayer())
end
return l_7_1
end
PutTokensIntoPlayAttacking = function(l_8_0, l_8_1, l_8_2)
pController = Object():GetPlayer()
repeat
repeat
if l_8_1 > 0 then
l_8_1 = l_8_1 - 1
local l_8_3 = MTG():ObtainToken(l_8_0, pController)
until l_8_3 ~= nil
l_8_3:PutIntoPlayTapped(pController)
l_8_3:AttackPlayer(l_8_2)
else
-- Warning: missing end command somewhere! Added here
end
-- Warning: missing end command somewhere! Added here
end
end
PutTokensIntoPlayBlocking = function(l_9_0, l_9_1, l_9_2)
pController = Object():GetPlayer()
repeat
repeat
if l_9_1 > 0 then
l_9_1 = l_9_1 - 1
local l_9_3 = MTG():ObtainToken(l_9_0, pController)
until l_9_3 ~= nil
l_9_3:PutIntoPlay(pController)
l_9_3:BlockAttacker(l_9_2)
else
-- Warning: missing end command somewhere! Added here
end
-- Warning: missing end command somewhere! Added here
end
end
MillCards = function(l_10_0, l_10_1)
repeat
repeat
if l_10_1 > 0 then
l_10_1 = l_10_1 - 1
until l_10_0:Library_GetTop() ~= nil
local l_10_2 = l_10_0:Library_GetTop()
l_10_2:PutInGraveyard()
l_10_2:GuidedReveal(ZONE_LIBRARY, ZONE_GRAVEYARD)
else
-- Warning: missing end command somewhere! Added here
end
-- Warning: missing end command somewhere! Added here
end
end
SearchLibrary = function(l_11_0, l_11_1)
Object():GetFilter():SetPlayer(l_11_0)
Object():GetFilter():SetZone(ZONE_LIBRARY)
Object():GetFilter():NotTargetted()
Object():GetPlayer():ChooseTargetWithFlags(l_11_1, QUERY_FLAG_CAN_BE_FINISHED_EARLY_CANCEL_EDITION)
end
SearchLibraryForNCards = function(l_12_0, l_12_1, l_12_2)
Object():GetFilter():SetPlayer(l_12_0)
Object():GetFilter():SetZone(ZONE_LIBRARY)
Object():GetFilter():NotTargetted()
Object():GetPlayer():SetTargetCount(l_12_2)
do
local l_12_3 = 1
repeat
if l_12_3 < l_12_2 + 1 then
Object():GetPlayer():SetTargetPrompt(l_12_3 - 1, l_12_1)
l_12_3 = l_12_3 + 1
else
Object():GetPlayer():ChooseTargetsWithFlags(QUERY_FLAG_CAN_BE_FINISHED_EARLY_CANCEL_EDITION)
end
-- Warning: missing end command somewhere! Added here
end
-- Warning: missing end command somewhere! Added here
end
end
- Code: Select all
CountCreaturesInPlay = function()
Object():GetFilter():Clear()
Object():GetFilter():SetZone(ZONE_IN_PLAY)
Object():GetFilter():AddCardType(CARD_TYPE_CREATURE)
Object():GetFilter():NotTargetted()
return Object():GetFilter():Count()
end
CountCardsInHand = function(l_2_0)
Object():GetFilter():Clear()
Object():GetFilter():SetZone(ZONE_HAND)
Object():GetFilter():SetPlayer(l_2_0)
Object():GetFilter():NotTargetted()
return Object():GetFilter():Count()
end
CountCardsInGraveyard = function(l_3_0)
Object():GetFilter():Clear()
Object():GetFilter():SetZone(ZONE_GRAVEYARD)
Object():GetFilter():SetPlayer(l_3_0)
Object():GetFilter():NotTargetted()
return Object():GetFilter():Count()
end
CountCardsInLibrary = function(l_4_0)
Object():GetFilter():Clear()
Object():GetFilter():SetZone(ZONE_LIBRARY)
Object():GetFilter():SetPlayer(l_4_0)
Object():GetFilter():NotTargetted()
return Object():GetFilter():Count()
end
CountCardsInYourGraveyardOfType = function(l_5_0)
Object():GetFilter():Clear()
Object():GetFilter():SetZone(ZONE_GRAVEYARD)
Object():GetFilter():AddSubType(l_5_0)
Object():GetFilter():SetPlayer(Object():GetPlayer())
Object():GetFilter():NotTargetted()
return Object():GetFilter():Count()
end
TriggeredForMe = function()
return TriggerPlayer() == Object():GetPlayer()
end
EveryUpkeep = function()
if MTG():GetStep() == STEP_UPKEEP then
local l_7_0 = TriggeredForMe()
else
return false
end
end
EveryEndStep = function()
if MTG():GetStep() == STEP_END_OF_TURN then
local l_8_0 = TriggeredForMe()
else
return false
end
end
MyUpkeep = function()
if MTG():GetStep() == STEP_UPKEEP and Object():GetController():MyTurn() ~= 0 then
local l_9_0 = TriggeredForMe()
else
return false
end
end
OtherPlayersUpkeep = function()
return MTG():GetStep() == STEP_UPKEEP and Object():GetController():MyTurn() == 0
end
PlayersUpkeep = function(l_11_0)
return MTG():GetStep() == STEP_UPKEEP and l_11_0:MyTurn() ~= 0 and TriggerPlayer() == l_11_0
end
MyStep = function(l_12_0)
if MTG():GetStep() == l_12_0 and Object():GetController():MyTurn() ~= 0 then
local l_12_1 = TriggeredForMe()
else
return false
end
end
AnyOpponentBloodied = function(l_13_0)
local l_13_1 = l_13_0:GetTeam()
for l_13_5 = 0, MTG():GetNumberOfPlayers() - 1 do
local l_13_6 = MTG():GetNthPlayer(l_13_5)
if l_13_6:GetTeam() ~= l_13_1 and l_13_6:GetLifeTotal() < 11 then
return true
end
end
return false
end
IsInstantOrSorcery = function(l_14_0)
return l_14_0:GetCardType():Test(CARD_TYPE_INSTANT) ~= 0 or l_14_0:GetCardType():Test(CARD_TYPE_SORCERY) ~= 0
end
Object = function()
local l_15_0, l_15_1 = MTG():GetCurrentObject, MTG()
return l_15_0(l_15_1)
end
EffectController = function()
local l_16_0, l_16_1 = MTG():EffectController, MTG()
return l_16_0(l_16_1)
end
EffectDC = function()
local l_17_0, l_17_1 = MTG():EffectDataChest, MTG()
return l_17_0(l_17_1)
end
ObjectDC = function()
local l_18_0, l_18_1 = MTG():ObjectDataChest, MTG()
return l_18_0(l_18_1)
end
TriggerObject = function()
local l_19_0, l_19_1 = MTG():EffectDataChest():Get_CardPtr, MTG():EffectDataChest()
local l_19_2 = COMPARTMENT_ID_PARAM_TRIGGER_OBJECT
return l_19_0(l_19_1, l_19_2)
end
TriggerPlayer = function()
local l_20_0, l_20_1 = MTG():EffectDataChest():Get_PlayerPtr, MTG():EffectDataChest()
local l_20_2 = COMPARTMENT_ID_PARAM_TRIGGER_PLAYER
return l_20_0(l_20_1, l_20_2)
end
SecondaryObject = function()
local l_21_0, l_21_1 = MTG():EffectDataChest():Get_CardPtr, MTG():EffectDataChest()
local l_21_2 = COMPARTMENT_ID_PARAM_SECONDARY_CARD
return l_21_0(l_21_1, l_21_2)
end
TriggerStackID = function()
local l_22_0, l_22_1 = MTG():EffectDataChest():Get_Int, MTG():EffectDataChest()
local l_22_2 = COMPARTMENT_ID_STACK_OBJECT
return l_22_0(l_22_1, l_22_2)
end
SecondaryPlayer = function()
local l_23_0, l_23_1 = MTG():EffectDataChest():Get_PlayerPtr, MTG():EffectDataChest()
local l_23_2 = COMPARTMENT_ID_PARAM_SECONDARY_PLAYER
return l_23_0(l_23_1, l_23_2)
end
GetAmount = function()
local l_24_0, l_24_1 = MTG():EffectDataChest():Get_Int, MTG():EffectDataChest()
local l_24_2 = COMPARTMENT_ID_PARAM_AMOUNT
return l_24_0(l_24_1, l_24_2)
end
SetAmount = function(l_25_0)
MTG():EffectDataChest():Set_Int(COMPARTMENT_ID_PARAM_AMOUNT, l_25_0)
end
GetFromZone = function()
local l_26_0, l_26_1 = MTG():EffectDataChest():Get_Int, MTG():EffectDataChest()
local l_26_2 = COMPARTMENT_ID_PARAM_FROM_ZONE
return l_26_0(l_26_1, l_26_2)
end
GetToZone = function()
local l_27_0, l_27_1 = MTG():EffectDataChest():Get_Int, MTG():EffectDataChest()
local l_27_2 = COMPARTMENT_ID_PARAM_TO_ZONE
return l_27_0(l_27_1, l_27_2)
end
CounterTypeIndex = function()
local l_28_0, l_28_1 = MTG():EffectDataChest():Get_Int, MTG():EffectDataChest()
local l_28_2 = COMPARTMENT_ID_COUNTER_TYPE
return l_28_0(l_28_1, l_28_2)
end
Damage = function()
local l_29_0, l_29_1 = MTG():EffectDataChest():Get_Damage, MTG():EffectDataChest()
local l_29_2 = COMPARTMENT_ID_DAMAGE
return l_29_0(l_29_1, l_29_2)
end
FilteredCard = function()
local l_30_0, l_30_1 = MTG():EffectDataChest():Get_CardPtr, MTG():EffectDataChest()
local l_30_2 = COMPARTMENT_ID_FILTERED_CARD
return l_30_0(l_30_1, l_30_2)
end
FilteredPlayer = function()
local l_31_0, l_31_1 = MTG():EffectDataChest():Get_PlayerPtr, MTG():EffectDataChest()
local l_31_2 = COMPARTMENT_ID_FILTERED_PLAYER
return l_31_0(l_31_1, l_31_2)
end
EffectSource = function()
local l_32_0, l_32_1 = MTG():EffectDataChest():Get_CardPtr, MTG():EffectDataChest()
local l_32_2 = COMPARTMENT_ID_EFFECT_SOURCE
return l_32_0(l_32_1, l_32_2)
end
GetEffectX = function()
local l_33_0, l_33_1 = MTG():EffectDataChest():Get_Int, MTG():EffectDataChest()
local l_33_2 = COMPARTMENT_ID_X
return l_33_0(l_33_1, l_33_2)
end
GetObjectX = function()
local l_34_0, l_34_1 = MTG():ObjectDataChest():Get_Int, MTG():ObjectDataChest()
local l_34_2 = COMPARTMENT_ID_X
return l_34_0(l_34_1, l_34_2)
end
GetChosenColour = function()
local l_35_0, l_35_1 = MTG():EffectDataChest():Get_Colour, MTG():EffectDataChest()
local l_35_2 = COMPARTMENT_ID_COLOUR_ANSWER
return l_35_0(l_35_1, l_35_2)
end
- Code: Select all
IsPlayer = function()
return FilteredPlayer() ~= nil
end
You = function()
return FilteredPlayer() ~= nil and FilteredPlayer() == Object():GetPlayer()
end
Opponents = function()
return FilteredPlayer() ~= nil and FilteredPlayer():GetTeam() ~= Object():GetPlayer():GetTeam()
end
InGraveyard = function()
return FilteredCard() ~= nil and FilteredCard():GetZone() == ZONE_GRAVEYARD
end
InHand = function()
return FilteredCard() ~= nil and FilteredCard():GetZone() == ZONE_HAND
end
InLibrary = function()
return FilteredCard() ~= nil and FilteredCard():GetZone() == ZONE_LIBRARY
end
InPlay = function()
return FilteredCard() ~= nil and FilteredCard():GetZone() == ZONE_IN_PLAY
end
RemovedFromGame = function()
return FilteredCard() ~= nil and FilteredCard():GetZone() == ZONE_REMOVED_FROM_GAME
end
PhasedOut = function()
return FilteredCard() ~= nil and FilteredCard():GetZone() == ZONE_PHASED_OUT
end
CreaturesAndPlayers = function()
return (FilteredCard() ~= nil and FilteredCard():GetCardType():Test(CARD_TYPE_CREATURE) ~= 0) or FilteredPlayer() ~= nil
end
CreaturesPlaneswalkersAndPlayers = function()
return CreaturesAndPlayers() or (FilteredCard() ~= nil and FilteredCard():GetCardType():Test(CARD_TYPE_PLANESWALKER) ~= 0)
end
Damageable = function()
return CreaturesPlaneswalkersAndPlayers()
end
Permanents = function()
return FilteredCard() ~= nil and FilteredCard():GetCardType():Test(CARD_TYPE_ENCHANTMENT) ~= 0 or FilteredCard():GetCardType():Test(CARD_TYPE_LAND) ~= 0 or FilteredCard():GetCardType():Test(CARD_TYPE_ARTIFACT) ~= 0 or FilteredCard():GetCardType():Test(CARD_TYPE_CREATURE) ~= 0 or FilteredCard():GetCardType():Test(CARD_TYPE_PLANESWALKER) ~= 0
end
Enchantments = function()
return FilteredCard() ~= nil and FilteredCard():GetCardType():Test(CARD_TYPE_ENCHANTMENT) ~= 0
end
NonArtifacts = function()
return FilteredCard() ~= nil and FilteredCard():GetCardType():Test(CARD_TYPE_ARTIFACT) == 0
end
Artifacts = function()
return FilteredCard() ~= nil and FilteredCard():GetCardType():Test(CARD_TYPE_ARTIFACT) ~= 0
end
EnchantmentsInPlay = function()
if Enchantments() then
return InPlay()
end
end
ArtifactsInPlay = function()
if Artifacts() then
return InPlay()
end
end
Creatures = function()
return FilteredCard() ~= nil and FilteredCard():GetCardType():Test(CARD_TYPE_CREATURE) ~= 0
end
IsFlying = function()
return FilteredCard():GetCurrentCharacteristics():Badge_Test(BADGE_FLYING) ~= 0
end
Lands = function()
return FilteredCard() ~= nil and FilteredCard():GetCardType():Test(CARD_TYPE_LAND) ~= 0
end
NonLands = function()
return FilteredCard() ~= nil and FilteredCard():GetCardType():Test(CARD_TYPE_LAND) == 0
end
TargetPlayerControls = function()
return FilteredCard() ~= nil and FilteredCard():GetController() == Object():GetTargetPlayer()
end
YouControl = function()
return FilteredCard() ~= nil and FilteredCard():GetController() == Object():GetController()
end
YouDontControl = function()
return FilteredCard() ~= nil and FilteredCard():GetController() ~= Object():GetController()
end
IsController = function()
return FilteredPlayer() == Object():GetController()
end
ColourTest = function(l_27_0)
return FilteredCard() ~= nil and FilteredCard():GetColour():Test(l_27_0) ~= 0
end
Black = function()
return ColourTest(COLOUR_BLACK)
end
Red = function()
return ColourTest(COLOUR_RED)
end
Green = function()
return ColourTest(COLOUR_GREEN)
end
Blue = function()
return ColourTest(COLOUR_BLUE)
end
White = function()
return ColourTest(COLOUR_WHITE)
end
Colourless = function()
return ColourTest(COLOUR_COLOURLESS)
end
ColourNonTest = function(l_34_0)
return FilteredCard() ~= nil and FilteredCard():GetColour():Test(l_34_0) == 0
end
NonBlack = function()
return ColourNonTest(COLOUR_BLACK)
end
NonRed = function()
return ColourNonTest(COLOUR_RED)
end
NonGreen = function()
return ColourNonTest(COLOUR_GREEN)
end
NonBlue = function()
return ColourNonTest(COLOUR_BLUE)
end
NonWhite = function()
return ColourNonTest(COLOUR_WHITE)
end
CreaturesInPlay = function()
if Creatures() then
return InPlay()
end
end
NonLandsInPlay = function()
if NonLands() then
return InPlay()
end
end
CreaturesYouControl = function()
if CreaturesInPlay() then
return YouControl()
end
end
CreaturesControlledBy = function(l_43_0)
return not CreaturesInPlay() or FilteredCard():GetController() == l_43_0
end
CreaturesYouControlOfType = function(l_44_0)
if CreaturesInPlayOfType(l_44_0) then
return YouControl()
end
end
OtherCreaturesInPlayYouControl = function()
if FilteredCard() ~= Object() then
local l_45_0 = CreaturesYouControl()
else
return false
end
end
OtherCreaturesInPlayYouControlOfType = function(l_46_0)
if FilteredCard() ~= Object() then
local l_46_1 = CreaturesYouControlOfType(l_46_0)
else
return false
end
end
ThisAndOtherCreaturesInPlayYouControlOfType = function(l_47_0)
return (FilteredCard() ~= Object() and CreaturesYouControlOfType(l_47_0)) or FilteredCard() == Object()
end
ArtifactsYouControl = function()
if Artifacts() then
return YouControl()
end
end
OtherArtifactsYouControl = function()
do
if FilteredCard() ~= Object() and Artifacts() then
local l_49_0 = YouControl()
end
-- DECOMPILER ERROR: Confused about usage of registers!
end
return l_49_0
end
EnchantmentsYouControl = function()
if Enchantments() then
return YouControl()
end
end
LandsYouControl = function()
if Lands() then
return YouControl()
end
end
PermanentsYouControl = function()
if Permanents() then
return YouControl()
end
end
BlackCreatures = function()
if Creatures() then
return Black()
end
end
OtherBlackCreatures = function()
if OtherCreatures() then
return Black()
end
end
RedCreatures = function()
if Creatures() then
return Red()
end
end
RedCreaturesYouControl = function()
if CreaturesYouControl() then
return Red()
end
end
GreenCreatures = function()
if Creatures() then
return Green()
end
end
GreenCreaturesYouControl = function()
if CreaturesYouControl() then
return Green()
end
end
BlueCreatures = function()
if Creatures() then
return Blue()
end
end
WhiteCreatures = function()
if Creatures() then
return White()
end
end
NonBlackCreatures = function()
if Creatures() then
return NonBlack()
end
end
NonRedCreatures = function()
if Creatures() then
return NonRed()
end
end
NonGreenCreatures = function()
if Creatures() then
return NonGreen()
end
end
NonBlueCreatures = function()
if Creatures() then
return NonBlue()
end
end
NonWhiteCreatures = function()
if Creatures() then
return NonWhite()
end
end
CreaturesTargetPlayerControls = function()
if Creatures() then
return TargetPlayerControls()
end
end
ArtifactsTargetPlayerControls = function()
if Artifacts() then
return TargetPlayerControls()
end
end
EnchantmentsTargetPlayerControls = function()
if Enchantments() then
return TargetPlayerControls()
end
end
LandsTargetPlayerControls = function()
if Lands() then
return TargetPlayerControls()
end
end
PermanentsTargetPlayerControls = function()
if Permanents() then
return TargetPlayerControls()
end
end
FlyingCreatures = function()
if CreaturesInPlay() then
return IsFlying()
end
end
CreaturesWithoutFlying = function()
if CreaturesInPlay() then
return not IsFlying()
end
end
OtherCreatures = function()
return not CreaturesInPlay() or FilteredCard() ~= Object()
end
EnchantedObject = function()
return FilteredCard() ~= nil and FilteredCard() == Object():GetParent()
end
EquippedCreature = function()
return FilteredCard() ~= nil and FilteredCard() == Object():GetParent()
end
TargetCard = function()
return FilteredCard() ~= nil and not Object():GetTargetCard() or FilteredCard() == Object():GetTargetCard()
end
TargetCreature = function()
return TargetCard()
end
TargetCardOrPlayer = function()
return (FilteredCard() ~= nil and Object():GetTargetCard() and FilteredCard() == Object():GetTargetCard()) or (FilteredPlayer() ~= nil and not Object():GetTargetPlayer() or FilteredPlayer() == Object():GetTargetPlayer())
end
TargetPlayer = function()
return FilteredPlayer() ~= nil and not Object():GetTargetPlayer() or FilteredPlayer() == Object():GetTargetPlayer()
end
CreaturesInPlayOfType = function(l_80_0)
return not CreaturesInPlay() or FilteredCard():GetSubType():Test(l_80_0) ~= 0
end
OtherCreaturesInPlayOfType = function(l_81_0)
return not OtherCreatures() or FilteredCard():GetSubType():Test(l_81_0) ~= 0
end
OtherCreaturesInPlayCalled = function(l_82_0)
return not CreaturesInPlay() or (FilteredCard() ~= Object() and l_82_0:GetRef() == FilteredCard():GetRef())
end
TargetPlayersGraveyard = function()
if InGraveyard() then
return TargetPlayerOwns()
end
end
ClearFilter = function()
Object():GetFilter():Clear()
end
Self = function()
if FilteredCard() ~= nil then
if Object() == FilteredCard() then
return true
else
return false
end
else
return false
end
end
SelfTriggered = function()
return Object() == TriggerObject()
end
OpponentTriggered = function(l_87_0)
return Object():GetPlayer():GetTeam() ~= l_87_0:GetTeam()
end
ParentTriggered = function()
return Object():GetParent() == TriggerObject()
end
WhiteSpell = function()
return TriggerObject():GetColour():Test(COLOUR_WHITE) ~= 0
end
BlueSpell = function()
return TriggerObject():GetColour():Test(COLOUR_BLUE) ~= 0
end
BlackSpell = function()
return TriggerObject():GetColour():Test(COLOUR_BLACK) ~= 0
end
RedSpell = function()
return TriggerObject():GetColour():Test(COLOUR_RED) ~= 0
end
GreenSpell = function()
return TriggerObject():GetColour():Test(COLOUR_GREEN) ~= 0
end
LandFall = function()
return TriggerObject():GetCardType():Test(CARD_TYPE_LAND) ~= 0 and TriggerObject():GetPlayer() == Object():GetPlayer()
end
Intimidate = function()
return not SelfTriggered() or (SecondaryObject():GetColour():TestAny(Object():GetColour()) == 0 and SecondaryObject():GetCardType():Test(CARD_TYPE_ARTIFACT) == 0)
end
UntilEndOfTurn = function()
return MTG():GetStep() == STEP_CLEANUP
end
OwnedByAnOpponent = function()
return FilteredCard():GetOwner():GetTeam() ~= Object():GetPlayer():GetTeam()
end
OwnedByYou = function()
return FilteredCard():GetPlayer() == Object():GetPlayer()
end
- Code: Select all
lua_mtg_index = 5
lua_effect_index = 6
lua_triggerobject_index = 7
lua_triggerplayer_index = 8
lua_secondaryobject_index = 9
lua_secondaryplayer_index = 10
lua_triggerability_index = 11
lua_amount_index = 12
lua_countertype_index = 13
lua_player_index = 14
lua_damage_index = 15
MTG = function()
local l_1_0 = rawget
local l_1_1 = _G
local l_1_2 = lua_mtg_index
return l_1_0(l_1_1, l_1_2)
end
- Code: Select all
AtLeastOneTargetFromDefinition = function(l_1_0)
local l_1_1 = Object():LoadTargetDefinition(l_1_0)
local l_1_2, l_1_3 = l_1_1:CountStopAt, l_1_1
local l_1_4 = 1
return l_1_2(l_1_3, l_1_4)
end
AtLeastNTargetsFromDefinition = function(l_2_0, l_2_1)
local l_2_2 = Object():LoadTargetDefinition(l_2_0)
if l_2_2:CountStopAt(l_2_1) == l_2_1 then
return 1
else
return 0
end
end
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 721 times
Re: DotP2013 LOL files decoded
by thefiremind » 30 Mar 2013, 14:22
The following doesn't come from a LOL file, but I think it fits well here because it's the list of the triggers from the DotP2012 file DATA_CORE\DATA_ALL_PLATFORMS\DATA_REQUIRED\SPECIALFX\SPECIALFX\DEFAULTS.XML. It contains some wrong information (not because it comes from DotP2012: I remember something being wrong in DotP2012 as well!) but most of the times you can rely on it in order to know which kind of information comes with each trigger.
- Code: Select all
BEGINNING_OF_STEP, // X Info: player (will be called for each player in turn)
END_OF_STEP, // X Info: player (will be called for each player in turn)
BEGINNING_OF_TURN, // X Info: player (will be called for each player in turn)
END_OF_TURN, // X Info: player (will be called for each player in turn)
ATTACKERS_DECLARED, // X Info: player (will be called for each player in turn)
BLOCKERS_DECLARED, // X Info: player (will be called for each player in turn)
COMBAT_DAMAGE_PUSHED, // X Info: player (will be called for each player in turn)
ACTIVATED_ABILITY_PLAYED, // X Info: object, ability
CREATURE_TOOK_DAMAGE, // X Info: object, damage amount
PLAYER_TOOK_DAMAGE, // X Info: object, damage amount
PLAYER_LOST_LIFE, // X Info: player, life-loss amount
PLAYER_GAINED_LIFE, // X Info: player, life-loss amount
PLAYER_LIFE_CHANGED, // X Info: player, life-loss amount
ATTACKING_AND_ISNT_BLOCKED, // X Info: object
ATTACKING, // X Info: object
AURA_ATTACHED, // X Info: object, aura
EQUIPMENT_ATTACHED, // X Info: object, equipment
BECAME_BLOCKED, // X Info: object (once per attacker, per blocker)
BECAME_TAPPED, // X Info: object
BECAME_TAPPED_FOR_MANA, // - Info: object
BECAME_TARGET, // X Info: object
BECAME_UNTAPPED, // X Info: object
BLOCKING, // X Info: object
CHAMPIONED, // ? Info: object
CLASH, // ? Info: player1, player2
CONTROLLER_CHANGED, // X Info: object
COUNTERS_CHANGED, // X Info: counter type, amount difference
CYCLED, // ? Info: object
CREATURE_DEALT_COMBAT_DAMAGE, // X Info: object, amount
CREATURE_DEALT_COMBAT_DAMAGE_TO_PLAYER, // X Info: object, player, amount
DESTROYED, // X Info: object
DISCARD, // X Info: object
DREW_CARD, // X Info: player
KICKER_PAID, // - Info: object
LOST_CLASH, // ? Info: player
PAY_CUMULATIVE_UPKEEP, // - Info: object
PAY_ECHO, // - Info: object
SPELL_OR_ABILITY_CAUSED_SHUFFLE, // X Info: player
STATE_BASED_EFFECTS, // X Info: player (will be called for each player in turn)
TARGETS_CHOSEN, // X Info: object
TURNED_FACE_UP, // - Info: object
UNATTACHED_FROM_CREATURE, // X Info: object
WAS_BLOCKED_BY, // X Info: object, blocker
WON_CLASH, // ? Info: player
HIT_GRAVEYARD, // X Info: object
ZONECHANGE, // X Info: object
SACRIFICE, // X Info: object
SPELL_PLAYED, // X Info: object
SPELL_RESOLVED, // X Info: object
ABILITY_PLAYED, // X Info: object, ability
ABILITY_RESOLVED, // X Info: object, ability
LAND_PLAYED, // X Info: object
COMES_INTO_PLAY, // X Info: object
WAS_BLOCKED, // X Info: object (once per attacker that was blocked)
CARD_CONSIDERED_FOR_TARGETTING, // X Info: object, source of targetting
PLAYER_CONSIDERED_FOR_TARGETTING, // X Info: player, source of targetting
EVASION_TEST, // X Info: attacker, blocker
SPELL_BEING_COUNTERED, // X Info: object
CREATURE_DEALT_COMBAT_DAMAGE_TO_CREATURE, // X Info: object, object, amount
STACK_PUSHED, // X Info: stack object // NOT FOR USE FOR SFX TRIGGERS
STACK_POPPED, // X Info: stack object // NOT FOR USE FOR SFX TRIGGERS
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 721 times
2 posts
• Page 1 of 1
Who is online
Users browsing this forum: No registered users and 11 guests