first commit
This commit is contained in:
113
api/app/models/enums.py
Normal file
113
api/app/models/enums.py
Normal file
@@ -0,0 +1,113 @@
|
||||
"""
|
||||
Enumeration types for the Code of Conquest game system.
|
||||
|
||||
This module defines all enum types used throughout the data models to ensure
|
||||
type safety and prevent invalid values.
|
||||
"""
|
||||
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class EffectType(Enum):
|
||||
"""Types of effects that can be applied to combatants."""
|
||||
|
||||
BUFF = "buff" # Temporarily increase stats
|
||||
DEBUFF = "debuff" # Temporarily decrease stats
|
||||
DOT = "dot" # Damage over time (poison, bleed, burn)
|
||||
HOT = "hot" # Heal over time (regeneration)
|
||||
STUN = "stun" # Prevent actions (skip turn)
|
||||
SHIELD = "shield" # Absorb damage before HP loss
|
||||
|
||||
|
||||
class DamageType(Enum):
|
||||
"""Types of damage that can be dealt in combat."""
|
||||
|
||||
PHYSICAL = "physical" # Standard weapon damage
|
||||
FIRE = "fire" # Fire-based magic damage
|
||||
ICE = "ice" # Ice-based magic damage
|
||||
LIGHTNING = "lightning" # Lightning-based magic damage
|
||||
HOLY = "holy" # Holy/divine damage
|
||||
SHADOW = "shadow" # Dark/shadow magic damage
|
||||
POISON = "poison" # Poison damage (usually DoT)
|
||||
|
||||
|
||||
class ItemType(Enum):
|
||||
"""Categories of items in the game."""
|
||||
|
||||
WEAPON = "weapon" # Adds damage, may have special effects
|
||||
ARMOR = "armor" # Adds defense/resistance
|
||||
CONSUMABLE = "consumable" # One-time use (potions, scrolls)
|
||||
QUEST_ITEM = "quest_item" # Story-related, non-tradeable
|
||||
|
||||
|
||||
class StatType(Enum):
|
||||
"""Character attribute types."""
|
||||
|
||||
STRENGTH = "strength" # Physical power
|
||||
DEXTERITY = "dexterity" # Agility and precision
|
||||
CONSTITUTION = "constitution" # Endurance and health
|
||||
INTELLIGENCE = "intelligence" # Magical power
|
||||
WISDOM = "wisdom" # Perception and insight
|
||||
CHARISMA = "charisma" # Social influence
|
||||
|
||||
|
||||
class AbilityType(Enum):
|
||||
"""Categories of abilities that can be used in combat or exploration."""
|
||||
|
||||
ATTACK = "attack" # Basic physical attack
|
||||
SPELL = "spell" # Magical spell
|
||||
SKILL = "skill" # Special class ability
|
||||
ITEM_USE = "item_use" # Using a consumable item
|
||||
DEFEND = "defend" # Defensive action
|
||||
|
||||
|
||||
class CombatStatus(Enum):
|
||||
"""Status of a combat encounter."""
|
||||
|
||||
ACTIVE = "active" # Combat is ongoing
|
||||
VICTORY = "victory" # Player(s) won
|
||||
DEFEAT = "defeat" # Player(s) lost
|
||||
FLED = "fled" # Player(s) escaped
|
||||
|
||||
|
||||
class SessionStatus(Enum):
|
||||
"""Status of a game session."""
|
||||
|
||||
ACTIVE = "active" # Session is ongoing
|
||||
COMPLETED = "completed" # Session ended normally
|
||||
TIMEOUT = "timeout" # Session ended due to inactivity
|
||||
|
||||
|
||||
class ListingStatus(Enum):
|
||||
"""Status of a marketplace listing."""
|
||||
|
||||
ACTIVE = "active" # Listing is live
|
||||
SOLD = "sold" # Item has been sold
|
||||
EXPIRED = "expired" # Listing time ran out
|
||||
REMOVED = "removed" # Seller cancelled listing
|
||||
|
||||
|
||||
class ListingType(Enum):
|
||||
"""Type of marketplace listing."""
|
||||
|
||||
AUCTION = "auction" # Bidding system
|
||||
FIXED_PRICE = "fixed_price" # Immediate purchase at set price
|
||||
|
||||
|
||||
class SessionType(Enum):
|
||||
"""Type of game session."""
|
||||
|
||||
SOLO = "solo" # Single-player session
|
||||
MULTIPLAYER = "multiplayer" # Multi-player party session
|
||||
|
||||
|
||||
class LocationType(Enum):
|
||||
"""Types of locations in the game world."""
|
||||
|
||||
TOWN = "town" # Town or city
|
||||
TAVERN = "tavern" # Tavern or inn
|
||||
WILDERNESS = "wilderness" # Outdoor wilderness areas
|
||||
DUNGEON = "dungeon" # Underground dungeons/caves
|
||||
RUINS = "ruins" # Ancient ruins
|
||||
LIBRARY = "library" # Library or archive
|
||||
SAFE_AREA = "safe_area" # Safe rest areas
|
||||
Reference in New Issue
Block a user