It is currently 16 Apr 2024, 23:21
   
Text Size

DotP2013 LOL files decoded

Moderator: CCGHQ Admins

DotP2013 LOL files decoded

Postby 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:
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
CONSTANTS.LOL:
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
EFFECTS.LOL:
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
EXTRACTINFO.LOL:
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
FILTERS.LOL:
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
MISC.LOL:
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
TARGETS.LOL:
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...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 721 times

Re: DotP2013 LOL files decoded

Postby 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
Don't ask me how you can get (and treat) an "ability" information because I have no idea. :P It's possible that some information comes from DotP2010 where there was an Effect() pointer available, but this is no longer true for the following versions.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 721 times


Return to Documentation

Who is online

Users browsing this forum: No registered users and 16 guests


Who is online

In total there are 16 users online :: 0 registered, 0 hidden and 16 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 16 guests

Login Form