github.com/loomnetwork/gamechain@v0.0.0-20200406110549-36c47eb97a92/types/zb/zb_enums/zb_enums.proto (about)

     1  syntax = "proto3";
     2  
     3  option csharp_namespace = "Loom.ZombieBattleground.Protobuf";
     4  
     5  import "github.com/gogo/protobuf/gogoproto/gogo.proto";
     6  
     7  message CardVariant {
     8      enum Enum {
     9          Standard = 0;
    10          Backer = 1;
    11          Limited = 2;
    12          Binance = 3;
    13          Tron = 4;
    14      }
    15  }
    16  
    17  message CardSet {
    18      enum Enum {
    19          Undefined = 0;
    20          Season1 = 1;
    21          Season2 = 2;
    22          Season3 = 3;
    23          KickstarterExclusive = 4;
    24      }
    25  }
    26  
    27  message CardKind {
    28      enum Enum {
    29          UNDEFINED = 0 [(gogoproto.enumvalue_customname) = "Undefined"];
    30          CREATURE = 1 [(gogoproto.enumvalue_customname) = "Creature"];
    31          ITEM = 2 [(gogoproto.enumvalue_customname) = "Item"];
    32      }
    33  }
    34  
    35  message CreatureRank {
    36      enum Enum {
    37          UNDEFINED = 0 [(gogoproto.enumvalue_customname) = "Undefined"];
    38          MINION = 1 [(gogoproto.enumvalue_customname) = "Minion"];
    39          OFFICER = 2 [(gogoproto.enumvalue_customname) = "Officer"];
    40          COMMANDER = 3 [(gogoproto.enumvalue_customname) = "Commander"];
    41          GENERAL = 4 [(gogoproto.enumvalue_customname) = "General"];
    42      }
    43  }
    44  
    45  message CardType {
    46      enum Enum {
    47          Undefined = 0 [(gogoproto.enumvalue_customname) = "Undefined"];
    48          WALKER = 1 [(gogoproto.enumvalue_customname) = "Walker"];
    49          FERAL = 2 [(gogoproto.enumvalue_customname) = "Feral"];
    50          HEAVY = 3 [(gogoproto.enumvalue_customname) = "Heavy"];
    51      }
    52  }
    53  
    54  message Faction {
    55      enum Enum {
    56          NONE = 0 [(gogoproto.enumvalue_customname) = "None"];
    57          FIRE = 1 [(gogoproto.enumvalue_customname) = "Fire"];
    58          WATER = 2 [(gogoproto.enumvalue_customname) = "Water"];
    59          EARTH = 3 [(gogoproto.enumvalue_customname) = "Earth"];
    60          AIR = 4 [(gogoproto.enumvalue_customname) = "Air"];
    61          LIFE = 5 [(gogoproto.enumvalue_customname) = "Life"];
    62          TOXIC = 6 [(gogoproto.enumvalue_customname) = "Toxic"];
    63          ITEM = 7 [(gogoproto.enumvalue_customname) = "Item"];
    64          OTHERS = 8 [(gogoproto.enumvalue_customname) = "Others"];
    65      }
    66  }
    67  
    68  message UniqueAnimation
    69  {
    70      enum Enum {
    71          None = 0;
    72          ShammannArrival = 1;
    73          ZVirusArrival = 2;
    74          ZeuzArrival = 3;
    75          CerberusArrival = 4;
    76          TzunamyArrival = 5;
    77          ChernoBillArrival = 6;
    78          MountainArrival = 7;
    79          GargantuaArrival = 8;
    80          BlizzardArrival = 9;
    81          GoozillaArrival = 10;
    82          VortexArrival = 11;
    83      }
    84  }
    85  
    86  message Target {
    87      enum Enum {
    88          NONE = 0 [(gogoproto.enumvalue_customname) = "None"];
    89          PLAYER = 1 [(gogoproto.enumvalue_customname) = "Player"];
    90          PLAYER_CARD = 2 [(gogoproto.enumvalue_customname) = "PlayerCard"];
    91          PLAYER_ALL_CARDS = 3 [(gogoproto.enumvalue_customname) = "PlayerAllCards"];
    92          OPPONENT = 4 [(gogoproto.enumvalue_customname) = "Opponent"];
    93          OPPONENT_CARD = 5 [(gogoproto.enumvalue_customname) = "OpponentCard"];
    94          OPPONENT_ALL_CARDS = 6 [(gogoproto.enumvalue_customname) = "OpponentAllCards"];
    95          ALL_CARDS = 7 [(gogoproto.enumvalue_customname) = "AllCards"];
    96          ALL = 8 [(gogoproto.enumvalue_customname) = "All"];
    97          ITSELF = 9 [(gogoproto.enumvalue_customname) = "Itself"];
    98      }
    99  }
   100  
   101  message SkillTarget {
   102      enum Enum {
   103          NONE = 0 [(gogoproto.enumvalue_customname) = "None"];
   104          PLAYER = 1 [(gogoproto.enumvalue_customname) = "Player"];
   105          PLAYER_CARD = 2 [(gogoproto.enumvalue_customname) = "PlayerCard"];
   106          PLAYER_ALL_CARDS = 3 [(gogoproto.enumvalue_customname) = "PlayerAllCards"];
   107          OPPONENT = 4 [(gogoproto.enumvalue_customname) = "Opponent"];
   108          OPPONENT_CARD = 5 [(gogoproto.enumvalue_customname) = "OpponentCard"];
   109          OPPONENT_ALL_CARDS = 6 [(gogoproto.enumvalue_customname) = "OpponentAllCards"];
   110          ALL_CARDS = 7 [(gogoproto.enumvalue_customname) = "AllCards"];
   111      }
   112  }
   113  
   114  message GameMechanicDescription
   115  {
   116      enum Enum {
   117          UNDEFINED = 0 [(gogoproto.enumvalue_customname) = "Undefined"];
   118          ATTACK = 1 [(gogoproto.enumvalue_customname) = "Attack"];
   119          DEATH = 2 [(gogoproto.enumvalue_customname) = "Death"];
   120          DELAYED = 3 [(gogoproto.enumvalue_customname) = "DelayedX"];
   121          DESTROY = 4 [(gogoproto.enumvalue_customname) = "Destroy"];
   122          DEVOUR = 5 [(gogoproto.enumvalue_customname) = "Devour"];
   123          DISTRACT = 6 [(gogoproto.enumvalue_customname) = "Distract"];
   124          END = 7 [(gogoproto.enumvalue_customname) = "End"];
   125          ENTRY = 8 [(gogoproto.enumvalue_customname) = "Entry"];
   126          FERAL = 9 [(gogoproto.enumvalue_customname) = "Feral"];
   127          FLASH = 10 [(gogoproto.enumvalue_customname) = "Flash"];
   128          FREEZE = 11 [(gogoproto.enumvalue_customname) = "Freeze"];
   129          GUARD = 12 [(gogoproto.enumvalue_customname) = "Guard"];
   130          HEAVY = 13 [(gogoproto.enumvalue_customname) = "Heavy"];
   131          OVERFLOW = 14 [(gogoproto.enumvalue_customname) = "OverflowX"];
   132          RAGE = 15 [(gogoproto.enumvalue_customname) = "RageX"];
   133          REANIMATE = 16 [(gogoproto.enumvalue_customname) = "Reanimate"];
   134          SHATTER = 17 [(gogoproto.enumvalue_customname) = "Shatter"];
   135          SWING = 18 [(gogoproto.enumvalue_customname) = "SwingX"];
   136          TURN = 19 [(gogoproto.enumvalue_customname) = "Turn"];
   137          GOT_DAMAGE = 20 [(gogoproto.enumvalue_customname) = "GotDamage"];
   138          AT_DEFENSE = 21 [(gogoproto.enumvalue_customname) = "AtDefense"];
   139          IN_HAND = 22 [(gogoproto.enumvalue_customname) = "InHand"];
   140          KILL_UNIT = 23 [(gogoproto.enumvalue_customname) = "KillUnit"];
   141          PERMANENT = 24 [(gogoproto.enumvalue_customname) = "Permanent"];
   142          BLITZ = 25 [(gogoproto.enumvalue_customname) = "Blitz"];
   143          RESTORE = 26 [(gogoproto.enumvalue_customname) = "Restore"];
   144          CHAINSAW = 27 [(gogoproto.enumvalue_customname) = "Chainsaw"];
   145          SUPER_SERUM = 28 [(gogoproto.enumvalue_customname) = "SuperSerum"];
   146          AURA = 29 [(gogoproto.enumvalue_customname) = "Aura"];
   147      }
   148  }
   149  
   150  message AttackRestriction {
   151      enum Enum {
   152          ANY = 0 [(gogoproto.enumvalue_customname) = "ANY"];
   153          ONLY_DIFFERENT = 1 [(gogoproto.enumvalue_customname) = "OnlyNotAttackedByThisUnitInThisTurn"];
   154      }
   155  }
   156  
   157  message CardAbilityBuffType {
   158      enum Enum {
   159          NONE = 0 [(gogoproto.enumvalue_customname) = "None"];
   160          GUARD = 1 [(gogoproto.enumvalue_customname) = "Guard"];
   161          DEFENCE = 2 [(gogoproto.enumvalue_customname) = "Defence"];
   162          HEAVY = 3 [(gogoproto.enumvalue_customname) = "Heavy"];
   163          WEAPON = 4 [(gogoproto.enumvalue_customname) = "Weapon"];
   164          RUSH = 5 [(gogoproto.enumvalue_customname) = "Rush"];
   165          ATTACK = 6 [(gogoproto.enumvalue_customname) = "Attack"];
   166          FREEZE = 7 [(gogoproto.enumvalue_customname) = "Freeze"];
   167          DAMAGE = 8 [(gogoproto.enumvalue_customname) = "Damage"];
   168          HEAL_ALLY = 9 [(gogoproto.enumvalue_customname) = "HealAlly"];
   169          DESTROY = 10 [(gogoproto.enumvalue_customname) = "Destroy"];
   170          REANIMATE = 11 [(gogoproto.enumvalue_customname) = "Reanimate"];
   171      }
   172  }
   173  
   174  message AbilityActivity {
   175      enum Enum {
   176          UNDEFINED = 0 [(gogoproto.enumvalue_customname) = "Undefined"];
   177          PASSIVE = 1 [(gogoproto.enumvalue_customname) = "Passive"];
   178          ACTIVE = 2 [(gogoproto.enumvalue_customname) = "Active"];
   179      }
   180  }
   181  
   182  message AbilityTrigger {
   183      enum Enum {
   184          UNDEFINED = 0 [(gogoproto.enumvalue_customname) = "Undefined"];
   185          TURN = 1 [(gogoproto.enumvalue_customname) = "Turn"];
   186          ENTRY = 2 [(gogoproto.enumvalue_customname) = "Entry"];
   187          END = 3 [(gogoproto.enumvalue_customname) = "End"];
   188          ATTACK = 4 [(gogoproto.enumvalue_customname) = "Attack"];
   189          DEATH = 5 [(gogoproto.enumvalue_customname) = "Death"];
   190          PERMANENT = 6 [(gogoproto.enumvalue_customname) = "Permanent"];
   191          GOT_DAMAGE = 7 [(gogoproto.enumvalue_customname) = "GotDamage"];
   192          AT_DEFENCE = 8 [(gogoproto.enumvalue_customname) = "AtDefence"];
   193          IN_HAND = 9 [(gogoproto.enumvalue_customname) = "InHand"];
   194          KILL_UNIT = 10 [(gogoproto.enumvalue_customname) = "KillUnit"];
   195          RAGE = 11 [(gogoproto.enumvalue_customname) = "Rage"];
   196          AURA = 12 [(gogoproto.enumvalue_customname) = "Aura"];
   197      }
   198  }
   199  
   200  message AbilityEffect {
   201      enum Enum {
   202          NONE = 0 [(gogoproto.enumvalue_customname) = "None"];
   203          MASSIVE_WATER_WAVE = 1 [(gogoproto.enumvalue_customname) = "MassiveWaterWave"];
   204          MASSIVE_FIRE = 2 [(gogoproto.enumvalue_customname) = "MassiveFire"];
   205          MASSIVE_LIGHTNING = 3 [(gogoproto.enumvalue_customname) = "MassiveLightning"];
   206          MASSIVE_TOXIC_ALL = 4 [(gogoproto.enumvalue_customname) = "MassiveToxicAll"];
   207          TARGET_ROCK = 5 [(gogoproto.enumvalue_customname) = "TargetRock"];
   208          TARGET_FIRE = 6 [(gogoproto.enumvalue_customname) = "TargetFire"];
   209          TARGET_LIFE = 7 [(gogoproto.enumvalue_customname) = "TargetLife"];
   210          TARGET_TOXIC = 8 [(gogoproto.enumvalue_customname) = "TargetToxic"];
   211          TARGET_WATER = 9 [(gogoproto.enumvalue_customname) = "TargetWater"];
   212          TARGET_ADJUSTMENTS_BOMB = 10 [(gogoproto.enumvalue_customname) = "TargetAdjustmentsBomb"];
   213          STUN_FREEZES = 11 [(gogoproto.enumvalue_customname) = "StunFreezes"];
   214          STUN_OR_DAMAGE_FREEZES = 12 [(gogoproto.enumvalue_customname) = "StunOrDamageFreezes"];
   215          TARGET_ADJUSTMENTS_AIR = 13 [(gogoproto.enumvalue_customname) = "TargetAdjustmentsAir"];
   216          HEAL_DIRECTLY = 14 [(gogoproto.enumvalue_customname) = "HealDirectly"];
   217          HEAL = 15 [(gogoproto.enumvalue_customname) = "Heal"];
   218      }
   219  }
   220  
   221  message AbilityType {
   222      enum Enum {
   223          UNDEFINED = 0 [(gogoproto.enumvalue_customname) = "Undefined"];
   224          HEAL = 1 [(gogoproto.enumvalue_customname) = "Heal"];
   225          MODIFICATOR_STATS = 2 [(gogoproto.enumvalue_customname) = "ModificatorStats"];
   226          CHANGE_STAT = 3 [(gogoproto.enumvalue_customname) = "ChangeStat"];
   227          STUN = 4 [(gogoproto.enumvalue_customname) = "Stun"];
   228          STUN_OR_DAMAGE_ADJUSTMENTS = 5 [(gogoproto.enumvalue_customname) = "StunOrDamageAdjustments"];
   229          SPURT = 6 [(gogoproto.enumvalue_customname) = "Spurt"];
   230          ADD_GOO_VIAL = 7 [(gogoproto.enumvalue_customname) = "AddGooVial"];
   231          ADD_GOO_CARRIER = 8 [(gogoproto.enumvalue_customname) = "AddGooCarrier"];
   232          DOT = 9 [(gogoproto.enumvalue_customname) = "Dot"];
   233          SUMMON = 10 [(gogoproto.enumvalue_customname) = "Summon"];
   234          SPELL_ATTACK = 11 [(gogoproto.enumvalue_customname) = "SpellAttack"];
   235          MASSIVE_DAMAGE = 12 [(gogoproto.enumvalue_customname) = "MassiveDamage"];
   236          DAMAGE_TARGET_ADJUSTMENTS = 13 [(gogoproto.enumvalue_customname) = "DamageTargetAdjustments"];
   237          DAMAGE_TARGET = 14 [(gogoproto.enumvalue_customname) = "DamageTarget"];
   238          CARD_RETURN = 15 [(gogoproto.enumvalue_customname) = "CardReturn"];
   239          WEAPON = 16 [(gogoproto.enumvalue_customname) = "Weapon"];
   240          CHANGE_STAT_OF_CREATURES_BY_TYPE = 17 [(gogoproto.enumvalue_customname) = "ChangeStatOfCreaturesByType"];
   241          ATTACK_NUMBER_OF_TIMES_PER_TURN = 18 [(gogoproto.enumvalue_customname) = "AttackNumberOfTimesPerTurn"];
   242          DRAW_CARD = 19 [(gogoproto.enumvalue_customname) = "DrawCard"];
   243          DEVOUR_ZOMBIES_AND_COMBINE_STATS = 20 [(gogoproto.enumvalue_customname) = "DevourZombiesAndCombineStats"];
   244          DESTROY_UNIT_BY_TYPE = 21 [(gogoproto.enumvalue_customname) = "DestroyUnitByType"];
   245          LOWER_COST_OF_CARD_IN_HAND = 22 [(gogoproto.enumvalue_customname) = "LowerCostOfCardInHand"];
   246          OVERFLOW_GOO = 23 [(gogoproto.enumvalue_customname) = "OverflowGoo"];
   247          LOSE_GOO = 24 [(gogoproto.enumvalue_customname) = "LoseGoo"];
   248          DISABLE_NEXT_TURN_GOO = 25 [(gogoproto.enumvalue_customname) = "DisableNextTurnGoo"];
   249          RAGE = 26 [(gogoproto.enumvalue_customname) = "Rage"];
   250          FREEZE_UNITS = 27 [(gogoproto.enumvalue_customname) = "FreezeUnits"];
   251          TAKE_DAMAGE_RANDOM_ENEMY = 28 [(gogoproto.enumvalue_customname) = "TakeDamageRandomEnemy"];
   252          TAKE_CONTROL_ENEMY_UNIT = 29 [(gogoproto.enumvalue_customname) = "TakeControlEnemyUnit"];
   253          GUARD = 30 [(gogoproto.enumvalue_customname) = "Guard"];
   254          DESTROY_FROZEN_UNIT = 31 [(gogoproto.enumvalue_customname) = "DestroyFrozenUnit"];
   255          USE_ALL_GOO_TO_INCREASE_STATS = 32 [(gogoproto.enumvalue_customname) = "UseAllGooToIncreaseStats"];
   256          FIRST_UNIT_IN_PLAY = 33 [(gogoproto.enumvalue_customname) = "FirstUnitInPlay"];
   257          ALLY_UNITS_OF_TYPE_IN_PLAY_GET_STATS = 34 [(gogoproto.enumvalue_customname) = "AllyUnitsOfTypeInPlayGetStats"];
   258          DAMAGE_ENEMY_UNITS_AND_FREEZE_THEM = 35 [(gogoproto.enumvalue_customname) = "DamageEnemyUnitsAndFreezeThem"];
   259          RETURN_UNITS_ON_BOARD_TO_OWNERS_DECKS = 36 [(gogoproto.enumvalue_customname) = "ReturnUnitsOnBoardToOwnersDecks"];
   260          TAKE_UNIT_TYPE_TO_ADJACENT_ALLY_UNITS = 37 [(gogoproto.enumvalue_customname) = "TakeUnitTypeToAdjacentAllyUnits"];
   261          ENEMY_THAT_ATTACKS_BECOME_FROZEN = 38 [(gogoproto.enumvalue_customname) = "EnemyThatAttacksBecomeFrozen"];
   262          TAKE_UNIT_TYPE_TO_ALLY_UNIT = 39 [(gogoproto.enumvalue_customname) = "TakeUnitTypeToAllyUnit"];
   263          REVIVE_DIED_UNITS_OF_TYPE_FROM_MATCH = 40 [(gogoproto.enumvalue_customname) = "ReviveDiedUnitsOfTypeFromMatch"];
   264          CHANGE_STAT_UNTILL_END_OF_TURN = 41 [(gogoproto.enumvalue_customname) = "ChangeStatUntilEndOfTurn"];
   265          ATTACK_OVERLORD = 42 [(gogoproto.enumvalue_customname) = "AttackOverlord"];
   266          ADJACENT_UNITS_GET_HEAVY = 43 [(gogoproto.enumvalue_customname) = "AdjacentUnitsGetHeavy"];
   267          FREEZE_NUMBER_OF_RANDOM_ALLY = 44 [(gogoproto.enumvalue_customname) = "FreezeNumberOfRandomAlly"];
   268          ADD_CARD_BY_NAME_TO_HAND = 45 [(gogoproto.enumvalue_customname) = "AddCardByNameToHand"];
   269          DEAL_DAMAGE_TO_THIS_AND_ADJACENT_UNITS = 46 [(gogoproto.enumvalue_customname) = "DealDamageToThisAndAdjacentUnits"];
   270          SWING = 47 [(gogoproto.enumvalue_customname) = "Swing"];
   271          TAKE_DEFENSE_IF_OVERLORD_HAS_LESS_DEFENSE_THAN = 48 [(gogoproto.enumvalue_customname) = "TakeDefenseIfOverlordHasLessDefenseThan"];
   272          GAIN_NUMBER_OF_LIFE_FOR_EACH_DAMAGE_THIS_DEALS = 49 [(gogoproto.enumvalue_customname) = "GainNumberOfLifeForEachDamageThisDeals"];
   273          ADDITIONAL_DAMAGE_TO_HEAVY_IN_ATTACK = 50 [(gogoproto.enumvalue_customname) = "AdditionalDamageToHeavyInAttack"];
   274          UNIT_WEAPON = 51 [(gogoproto.enumvalue_customname) = "UnitWeapon"];
   275          TAKE_DAMAGE_AT_END_OF_TURN_TO_THIS = 52 [(gogoproto.enumvalue_customname) = "TakeDamageAtEndOfTurnToThis"];
   276          DELAYED_LOSE_HEAVY_GAIN_ATTACK = 53 [(gogoproto.enumvalue_customname) = "DelayedLoseHeavyGainAttack"];
   277          DELAYED_GAIN_ATTACK = 54 [(gogoproto.enumvalue_customname) = "DelayedGainAttack"];
   278          REANIMATE_UNIT = 55 [(gogoproto.enumvalue_customname) = "ReanimateUnit"];
   279          PRIORITY_ATTACK = 56 [(gogoproto.enumvalue_customname) = "PriorityAttack"];
   280          DESTROY_TARGET_UNIT_AFTER_ATTACK = 57 [(gogoproto.enumvalue_customname) = "DestroyTargetUnitAfterAttack"];
   281          COSTS_LESS_IF_CARD_TYPE_IN_HAND = 58 [(gogoproto.enumvalue_customname) = "CostsLessIfCardTypeInHand"];
   282          RETURN_UNITS_ON_BOARD_TO_OWNERS_HANDS = 59 [(gogoproto.enumvalue_customname) = "ReturnUnitsOnBoardToOwnersHands"];
   283          REPLACE_UNITS_WITH_TYPE_ON_STRONGER_ONES = 60 [(gogoproto.enumvalue_customname) = "ReplaceUnitsWithTypeOnStrongerOnes"];
   284          RESTORE_DEF_RANDOMLY_SPLIT = 61 [(gogoproto.enumvalue_customname) = "RestoreDefRandomlySplit"];
   285          ADJACENT_UNITS_GET_GUARD = 62 [(gogoproto.enumvalue_customname) = "AdjacentUnitsGetGuard"];
   286          SUMMON_UNIT_FROM_HAND = 63 [(gogoproto.enumvalue_customname) = "SummonUnitFromHand"];
   287          DAMAGE_AND_DISTRACT_TARGET = 64 [(gogoproto.enumvalue_customname) = "DamageAndDistractTarget"];
   288          DRAW_CARD_IF_DAMAGED_ZOMBIE_IN_PLAY = 65 [(gogoproto.enumvalue_customname) = "DrawCardIfDamagedZombieInPlay"];
   289          TAKE_STAT_IF_OVERLORD_HAS_LESS_DEFENSE_THAN = 66 [(gogoproto.enumvalue_customname) = "TakeStatIfOverlordHasLessDefenseThan"];
   290          DAMAGE_OVERLORD_ON_COUNT_ITEMS_PLAYED = 67 [(gogoproto.enumvalue_customname) = "DamageOverlordOnCountItemsPlayed"];
   291          SHUFFLE_THIS_CARD_TO_DECK = 68 [(gogoproto.enumvalue_customname) = "ShuffleThisCardToDeck"];
   292          TAKE_DEFENSE_TO_OVERLORD_WITH_DEFENSE = 69 [(gogoproto.enumvalue_customname) = "TakeDefenseToOverlordWithDefense"];
   293          PUT_RANDOM_UNIT_FROM_DECK_ON_BOARD = 70 [(gogoproto.enumvalue_customname) = "PutRandomUnitFromDeckOnBoard"];
   294          DISTRACT = 71 [(gogoproto.enumvalue_customname) = "Distract"];
   295          DAMAGE_TARGET_FREEZE_IT_IF_SURVIVES = 72 [(gogoproto.enumvalue_customname) = "DamageTargetFreezeItIfSurvives"];
   296          DESTROY_UNIT_BY_COST = 73 [(gogoproto.enumvalue_customname) = "DestroyUnitByCost"];
   297          DAMAGE_ENEMY_OR_RESTORE_DEFENSE_ALLY = 74 [(gogoproto.enumvalue_customname) = "DamageEnemyOrRestoreDefenseAlly"];
   298          TAKE_SWING_TO_UNITS = 75 [(gogoproto.enumvalue_customname) = "TakeSwingToUnits"];
   299          DELAYED_PLACE_COPIES_IN_PLAY_DESTROY_UNIT = 76 [(gogoproto.enumvalue_customname) = "DelayedPlaceCopiesInPlayDestroyUnit"];
   300          ADJACENT_UNITS_GET_STAT = 77 [(gogoproto.enumvalue_customname) = "AdjacentUnitsGetStat"];
   301          EXTRA_GOO_IF_UNIT_IN_PLAY = 78 [(gogoproto.enumvalue_customname) = "ExtraGooIfUnitInPlay"];
   302          DESTROY_UNITS = 79 [(gogoproto.enumvalue_customname) = "DestroyUnits"];
   303          DEAL_DAMAGE_TO_UNIT_AND_SWING = 80 [(gogoproto.enumvalue_customname) = "DealDamageToUnitAndSwing"];
   304          SET_ATTACK_AVAILABILITY = 81 [(gogoproto.enumvalue_customname) = "SetAttackAvailability"];
   305          CHOOSABLE_ABILITIES = 82 [(gogoproto.enumvalue_customname) = "ChoosableAbilities"];
   306          COSTS_LESS_IF_CARD_TYPE_IN_PLAY = 83 [(gogoproto.enumvalue_customname) = "CostsLessIfCardTypeInPlay"];
   307          GAIN_GOO = 84 [(gogoproto.enumvalue_customname) = "GainGoo"];
   308          BLITZ = 85 [(gogoproto.enumvalue_customname) = "Blitz"];
   309          DRAW_CARD_BY_FACTION = 86 [(gogoproto.enumvalue_customname) = "DrawCardByFaction"];
   310          DESTROY_TARGET_UNIT = 87 [(gogoproto.enumvalue_customname) = "DestroyTargetUnit"];
   311          AGILE = 88 [(gogoproto.enumvalue_customname) = "Agile"];
   312          CHANGE_STAT_OF_CARDS_IN_HAND = 89 [(gogoproto.enumvalue_customname) = "ChangeStatOfCardInHand"];
   313          GIVE_BUFFS_TO_UNIT = 90 [(gogoproto.enumvalue_customname) = "GiveBuffsToUnit"];
   314          DISCARD_CARD_FROM_HAND = 91 [(gogoproto.enumvalue_customname) = "DiscardCardFromHand"];
   315          GET_GOO_THIS_TURN = 92 [(gogoproto.enumvalue_customname) = "GetGooThisTurn"];
   316          COSTS_LESS = 93 [(gogoproto.enumvalue_customname) = "CostsLess"];
   317          FILL_BOARD_BY_UNITS = 94 [(gogoproto.enumvalue_customname) = "FillBoardByUnits"];
   318          DEAL_DAMAGE_TO_TARGET_THAT_ATTACK_THIS = 95 [(gogoproto.enumvalue_customname) = "DealDamageToTargetThatAttackThis"];
   319          CHANGE_COST = 96 [(gogoproto.enumvalue_customname) = "ChangeCost"];
   320          GAIN_STATS_OF_ADJACENT_UNITS = 97 [(gogoproto.enumvalue_customname) = "GainStatsOfAdjacentUnits"];
   321          DISTRACT_AND_CHANGE_STAT = 98 [(gogoproto.enumvalue_customname) = "DistractAndChangeStat"];
   322          DAMAGE_AND_DISTRACT = 99 [(gogoproto.enumvalue_customname) = "DamangeAndDistract"];
   323          PUT_UNITS_FROM_DISCARD_INTO_PLAY = 100 [(gogoproto.enumvalue_customname) = "PutUnitsFromDiscardIntoPlay"];
   324          PUT_UNITS_FRON_LIBRARY_INTO_PLAY = 101 [(gogoproto.enumvalue_customname) = "PutUnitsFromLibraryIntoPlay"];
   325          BLOCK_TAKE_DAMAGE = 102 [(gogoproto.enumvalue_customname) = "BlockTakeDamage"];
   326          TAKE_UNIT_TYPE_TO_TARGET_UNIT = 103 [(gogoproto.enumvalue_customname) = "TakeUnitTypeToTargetUnit"];
   327          CHANGE_STAT_THIS_TURN = 104 [(gogoproto.enumvalue_customname) = "ChangeStatThisTurn"];
   328      }
   329  }
   330  
   331  message AbilitySubTrigger
   332  {
   333      enum Enum {
   334          None = 0;
   335          OnlyThisUnitInPlay = 1;
   336          AllOtherAllyUnitsInPlay = 2;
   337          AllAllyUnitsInPlay = 3;
   338          RandomUnit = 4;
   339          AllEnemyUnitsInPlay = 5;
   340          AllAllyUnitsByFactionInPlay = 6;
   341          ForEachFactionOfUnitInHand = 7;
   342          IfHasUnitsWithFactionInPlay = 8;
   343          AllyUnitsByFactionThatCost = 9;
   344          YourOverlord = 10;
   345          PermanentChanges = 11;
   346          HasChangesInParameters = 12;
   347          LessDefThanInOpponent = 13;
   348          OverlordDefenseEqualOrLess = 14;
   349          OnlyThisCardInHand = 15;
   350          AllCardsInHand = 16;
   351          CardCostMoreThanCostOfThis = 17;
   352          ForEachEnemyUnitInPlay = 18;
   353          ForEachAllyUnitInPlay = 19;
   354          IfHaveFewerUnitsInPlay = 20;
   355          ToOpponentOverlord = 21;
   356          UntilStartOfNextPlayerTurn = 22;
   357          DuringCardInHand = 23;
   358          ForEachUnitInPlay = 24;
   359          HighestCost = 25;
   360          EqualToUnitAttack = 26;
   361          NumberOfUnspentGoo = 27;
   362      }
   363  }
   364  
   365  message Zone {
   366      enum type {
   367          PLAY = 0;
   368          DECK = 1;
   369          HAND = 2;
   370          GRAVEYARD = 3;
   371          REMOVEFROMGAME = 4;
   372          SETASIDE = 5;
   373          SECRET = 6;
   374      }
   375  }
   376  
   377  message PlayerActionType {
   378      enum Enum {
   379          None = 0;
   380          EndTurn = 1;
   381          Mulligan = 2;
   382          CardPlay = 3;
   383          CardAttack = 4;
   384          CardAbilityUsed = 5;
   385          OverlordSkillUsed = 6;
   386          LeaveMatch = 7;
   387          RankBuff = 8;
   388          CheatDestroyCardsOnBoard = 9;
   389      }
   390  }
   391  
   392  message OverlordSkillType {
   393      enum Enum {
   394          NONE = 0 [(gogoproto.enumvalue_customname) = "None"];
   395  
   396          // AIR
   397          PUSH = 1 [(gogoproto.enumvalue_customname) = "Push"];
   398          DRAW = 2 [(gogoproto.enumvalue_customname) = "Draw"];
   399          WIND_SHIELD = 3 [(gogoproto.enumvalue_customname) = "WindShield"];
   400          LEVITATE = 4 [(gogoproto.enumvalue_customname) = "WindWall"];
   401          RETREAT = 5 [(gogoproto.enumvalue_customname) = "Retreat"];
   402  
   403          // EARTH
   404          HARDEN = 6 [(gogoproto.enumvalue_customname) = "Harden"];
   405          STONE_SKIN = 7 [(gogoproto.enumvalue_customname) = "StoneSkin"];
   406          FORTIFY = 8 [(gogoproto.enumvalue_customname) = "Fortify"];
   407          PHALANX = 9 [(gogoproto.enumvalue_customname) = "Phalanx"];
   408          FORTRESS = 10 [(gogoproto.enumvalue_customname) = "Fortress"];
   409  
   410          // FIRE
   411          FIRE_BOLT = 11 [(gogoproto.enumvalue_customname) = "FireBolt"];
   412          RABIES = 12 [(gogoproto.enumvalue_customname) = "Rabies"];
   413          FIREBALL = 13 [(gogoproto.enumvalue_customname) = "Fireball"];
   414          MASS_RABIES = 14 [(gogoproto.enumvalue_customname) = "MassRabies"];
   415          METEOR_SHOWER = 15 [(gogoproto.enumvalue_customname) = "MeteorShower"];
   416  
   417          // LIFE
   418          HEALING_TOUCH = 16 [(gogoproto.enumvalue_customname) = "HealingTouch"];
   419          MEND = 17 [(gogoproto.enumvalue_customname) = "Mend"];
   420          RESSURECT = 18 [(gogoproto.enumvalue_customname) = "Ressurect"];
   421          ENHANCE = 19 [(gogoproto.enumvalue_customname) = "Enhance"];
   422          REANIMATE = 20 [(gogoproto.enumvalue_customname) = "Reanimate"];
   423  
   424          // TOXIC
   425          POISON_DART = 21 [(gogoproto.enumvalue_customname) = "PoisonDart"];
   426          TOXIC_POWER = 22 [(gogoproto.enumvalue_customname) = "ToxicPower"];
   427          BREAKOUT = 23 [(gogoproto.enumvalue_customname) = "Breakout"];
   428          INFECT = 24 [(gogoproto.enumvalue_customname) = "Infect"];
   429          EPIDEMIC = 25 [(gogoproto.enumvalue_customname) = "Epidemic"];
   430  
   431          // WATER
   432          FREEZE = 26 [(gogoproto.enumvalue_customname) = "Freeze"];
   433          ICE_BOLT = 27 [(gogoproto.enumvalue_customname) = "IceBolt"];
   434          ICE_WALL = 28 [(gogoproto.enumvalue_customname) = "IceWall"];
   435          SHATTER = 29 [(gogoproto.enumvalue_customname) = "Shatter"];
   436          BLIZZARD = 30 [(gogoproto.enumvalue_customname) = "Blizzard"];
   437      }
   438  }
   439  
   440  enum OverlordSkillSelectionType {
   441      Primary = 0;
   442      Secondary = 1;
   443  }
   444  
   445  message Stat {
   446      enum Enum {
   447          option allow_alias = true;
   448  
   449          UNDEFINED = 0 [(gogoproto.enumvalue_customname) = "Undefined"];
   450          DEFENSE = 1 [(gogoproto.enumvalue_customname) = "Defense"];
   451          HEALTH = 1 [(gogoproto.enumvalue_customname) = "_XXXHealth"]; // for backwards compatibility
   452          DAMAGE = 2 [(gogoproto.enumvalue_customname) = "Damage"];
   453      }
   454  }
   455  
   456  message UnitSpecialStatus {
   457      enum Enum {
   458          NONE = 0 [(gogoproto.enumvalue_customname) = "None"];
   459          FROZEN = 1 [(gogoproto.enumvalue_customname) = "Frozen"];
   460      }
   461  }
   462  
   463  message AIType {
   464      enum Enum {
   465          UNDEFINED = 0;
   466          BLITZ_AI = 1;
   467          DEFENSE_AI = 2;
   468          MIXED_AI = 3;
   469          MIXED_BLITZ_AI = 4;
   470          TIME_BLITZ_AI = 5;
   471          MIXED_DEFENSE_AI = 6;
   472      }
   473  }
   474  
   475  message ExperienceActionType {
   476      enum Enum {
   477          KillOverlord = 0;
   478          KillMinion = 1;
   479          PlayCard = 2;
   480          ActivateRankAbility = 3;
   481          UseOverlordAbility = 4;
   482      }
   483  }
   484  
   485  // nullable
   486  
   487  message CardSetEnumValue {
   488      CardSet.Enum value = 1;
   489  }
   490  
   491  message CardKindEnumValue {
   492      CardKind.Enum value = 1;
   493  }
   494  
   495  message FactionEnumValue {
   496      Faction.Enum value = 1;
   497  }
   498  
   499  message CreatureRankEnumValue {
   500      CreatureRank.Enum value = 1;
   501  }
   502  
   503  message CardTypeEnumValue {
   504      CardType.Enum value = 1;
   505  }
   506  
   507  message UniqueAnimationEnumValue {
   508      UniqueAnimation.Enum value = 1;
   509  }