init game files
This commit is contained in:
141
scripts/game/Enums.gd
Normal file
141
scripts/game/Enums.gd
Normal file
@@ -0,0 +1,141 @@
|
||||
class_name Enums
|
||||
extends RefCounted
|
||||
|
||||
## Card Elements
|
||||
enum Element {
|
||||
FIRE,
|
||||
ICE,
|
||||
WIND,
|
||||
LIGHTNING,
|
||||
WATER,
|
||||
EARTH,
|
||||
LIGHT,
|
||||
DARK
|
||||
}
|
||||
|
||||
## Card Types
|
||||
enum CardType {
|
||||
FORWARD,
|
||||
BACKUP,
|
||||
SUMMON,
|
||||
MONSTER
|
||||
}
|
||||
|
||||
## Ability Types
|
||||
enum AbilityType {
|
||||
FIELD,
|
||||
AUTO,
|
||||
ACTION,
|
||||
SPECIAL
|
||||
}
|
||||
|
||||
## Game Phases
|
||||
enum TurnPhase {
|
||||
ACTIVE,
|
||||
DRAW,
|
||||
MAIN_1,
|
||||
ATTACK,
|
||||
MAIN_2,
|
||||
END
|
||||
}
|
||||
|
||||
## Attack Phase Steps
|
||||
enum AttackStep {
|
||||
PREPARATION,
|
||||
DECLARATION,
|
||||
BLOCK_DECLARATION,
|
||||
DAMAGE_RESOLUTION
|
||||
}
|
||||
|
||||
## Zone Types
|
||||
enum ZoneType {
|
||||
DECK,
|
||||
HAND,
|
||||
FIELD_FORWARDS,
|
||||
FIELD_BACKUPS,
|
||||
DAMAGE,
|
||||
BREAK,
|
||||
STACK,
|
||||
REMOVED
|
||||
}
|
||||
|
||||
## Card States
|
||||
enum CardState {
|
||||
ACTIVE,
|
||||
DULL
|
||||
}
|
||||
|
||||
## Helper functions for Element
|
||||
static func element_from_string(s: String) -> Element:
|
||||
match s.to_lower():
|
||||
"fire": return Element.FIRE
|
||||
"ice": return Element.ICE
|
||||
"wind": return Element.WIND
|
||||
"lightning": return Element.LIGHTNING
|
||||
"water": return Element.WATER
|
||||
"earth": return Element.EARTH
|
||||
"light": return Element.LIGHT
|
||||
"dark": return Element.DARK
|
||||
push_error("Unknown element: " + s)
|
||||
return Element.FIRE
|
||||
|
||||
static func element_to_string(e: Element) -> String:
|
||||
match e:
|
||||
Element.FIRE: return "Fire"
|
||||
Element.ICE: return "Ice"
|
||||
Element.WIND: return "Wind"
|
||||
Element.LIGHTNING: return "Lightning"
|
||||
Element.WATER: return "Water"
|
||||
Element.EARTH: return "Earth"
|
||||
Element.LIGHT: return "Light"
|
||||
Element.DARK: return "Dark"
|
||||
return "Unknown"
|
||||
|
||||
static func element_to_color(e: Element) -> Color:
|
||||
match e:
|
||||
Element.FIRE: return Color(0.9, 0.2, 0.2) # Red
|
||||
Element.ICE: return Color(0.4, 0.8, 0.9) # Cyan
|
||||
Element.WIND: return Color(0.3, 0.8, 0.3) # Green
|
||||
Element.LIGHTNING: return Color(0.6, 0.3, 0.8) # Purple
|
||||
Element.WATER: return Color(0.2, 0.4, 0.9) # Blue
|
||||
Element.EARTH: return Color(0.8, 0.7, 0.3) # Yellow
|
||||
Element.LIGHT: return Color(1.0, 1.0, 0.9) # White
|
||||
Element.DARK: return Color(0.2, 0.1, 0.3) # Dark Purple
|
||||
return Color.WHITE
|
||||
|
||||
## Helper functions for CardType
|
||||
static func card_type_from_string(s: String) -> CardType:
|
||||
match s.to_lower():
|
||||
"forward": return CardType.FORWARD
|
||||
"backup": return CardType.BACKUP
|
||||
"summon": return CardType.SUMMON
|
||||
"monster": return CardType.MONSTER
|
||||
push_error("Unknown card type: " + s)
|
||||
return CardType.FORWARD
|
||||
|
||||
static func card_type_to_string(t: CardType) -> String:
|
||||
match t:
|
||||
CardType.FORWARD: return "Forward"
|
||||
CardType.BACKUP: return "Backup"
|
||||
CardType.SUMMON: return "Summon"
|
||||
CardType.MONSTER: return "Monster"
|
||||
return "Unknown"
|
||||
|
||||
## Helper functions for TurnPhase
|
||||
static func phase_to_string(p: TurnPhase) -> String:
|
||||
match p:
|
||||
TurnPhase.ACTIVE: return "Active Phase"
|
||||
TurnPhase.DRAW: return "Draw Phase"
|
||||
TurnPhase.MAIN_1: return "Main Phase 1"
|
||||
TurnPhase.ATTACK: return "Attack Phase"
|
||||
TurnPhase.MAIN_2: return "Main Phase 2"
|
||||
TurnPhase.END: return "End Phase"
|
||||
return "Unknown Phase"
|
||||
|
||||
## Check if element is Light or Dark (special rules apply)
|
||||
static func is_light_or_dark(e: Element) -> bool:
|
||||
return e == Element.LIGHT or e == Element.DARK
|
||||
|
||||
## Alias for element_to_color
|
||||
static func get_element_color(e: Element) -> Color:
|
||||
return element_to_color(e)
|
||||
Reference in New Issue
Block a user