Godot and GDScript

I have been using godot to make my own game a rougelike deckbuilder similar to slay the spire. I have not settled on a name, Galaxy Slayer, Cosmic Gambit, etc. Below is some code to show my skills

Code Example

# systems/effect.gd
          class_name Effect
          extends Resource

          enum Type {
          COMBAT_DEAL_DAMAGE,
          COMBAT_GAIN_ARMOR,
          COMBAT_HEAL,
          COMBAT_APPLY_POISON,
          COMBAT_APPLY_BURN,
          COMBAT_APPLY_WEAK,
          COMBAT_APPLY_VULNERABLE,
          CARDS_DRAW,
          CARDS_DISCARD,
          CARDS_EXHAUST,
          PLAYER_GAIN_MANA,
          PLAYER_GAIN_GOLD,
          SYSTEM_COMPOSITE,
          }

          enum Trigger {
          ON_PLAY,
          ON_TURN_START,
          ON_TURN_END,
          ON_DRAW,
          ON_DISCARD,
          ON_DEATH,
          ON_NTH_CARD_PLAYED,
          }

          class Value extends Resource:
          enum Type {
          FIXED,
          RANDOM_RANGE,
          TIMES_STATUS_STACKS,
          TIMES_HAND_SIZE,
          TIMES_GOLD,
          TIMES_MISSING_HP,
          TIMES_ENEMIES,
          FIXED_COLOR,
          LERP_COLOR,
          FIXED_STRING,
          FIXED_TEXTURE,
          FIXED_VECTOR,
          }

          @export var type: Value.Type
          @export var multiplier: float = 1.0
          @export var status_type: Effect.Type
          @export var numbers: Array[float]
          @export var colors: Array[Color]
          @export var strings: Array[String]
          @export var textures: Array[Texture2D]
          @export var vectors: Array[Vector2]

          class Condition extends Resource:
          enum Type {
          TARGET_HAS_STATUS,
          TARGET_HP_BELOW,
          TARGET_HP_ABOVE,
          PLAYER_HP_BELOW,
          PLAYER_HP_ABOVE,
          HAND_SIZE_BELOW,
          HAND_SIZE_ABOVE,
          TURN_NUMBER_ABOVE,
          ENEMIES_REMAINING_BELOW,
          AND,
          OR,
          NOT,
          }

          @export var type: Condition.Type
          @export var value: int
          @export var status_type: Effect.Type
          @export var operands: Array[Condition]

          class Target extends Resource:
          enum Type {
          SELF,
          ENEMY,
          ALL_ENEMIES,
          RANDOM_ENEMY,
          CLOSEST_ENEMY,
          CARD_IN_HAND,
          CARD_IN_DRAW,
          CARD_IN_DISCARD,
          FILTER,
          }

          @export var type: Target.Type
          @export var condition: Condition


          Effect fields


          @export var type: Effect.Type
          @export var values: Array[Value]
          @export var upgrade_values: Array[Value]
          @export var triggers: Array[Trigger]
          @export var trigger_values: Array[Value]
          @export var targets: Array[Target]
          @export var guard: Condition
          @export var custom_description: String

This shows that I have good ability to use godot and gdscript. It also shows that I can make bigger games that can scale. Also note: This is not done many changes need to happen to this class