Spaces:
Sleeping
Sleeping
| from pydantic import BaseModel, Field | |
| from typing import List, Optional | |
| # Defining the base models for different components of the character sheet | |
| class Aspect(BaseModel): | |
| description: str | |
| class Skill(BaseModel): | |
| name: str | |
| level: int | |
| class Stunt(BaseModel): | |
| name: str | |
| description: str | |
| class Stress(BaseModel): | |
| level: int = Field(ge=0, le=4) # Stress level ranges from 0 to 4 | |
| class Consequence(BaseModel): | |
| severity: str | |
| description: Optional[str] = None | |
| class CharacterSheet(BaseModel): | |
| name: str | |
| aspects: List[Aspect] | |
| skills: List[Skill] | |
| stunts: List[Stunt] | |
| stress: Stress | |
| consequences: List[Consequence] | |
| # Creating character sheets for Venom, Rocket, Shadow, and Agiee | |
| # Venom | |
| venom = CharacterSheet( | |
| name="Venom", | |
| aspects=[ | |
| Aspect(description="Intimidating Presence"), | |
| Aspect(description="Symbiotic Enhancements"), | |
| Aspect(description="Mysterious Past") | |
| ], | |
| skills=[ | |
| Skill(name="Intimidation", level=4), | |
| Skill(name="Combat", level=3), | |
| Skill(name="Survival", level=3) | |
| ], | |
| stunts=[ | |
| Stunt(name="Symbiotic Regeneration", description="Can quickly heal from injuries") | |
| ], | |
| stress=Stress(level=3), | |
| consequences=[ | |
| Consequence(severity="Moderate", description="Symbiotic Overload") | |
| ] | |
| ) | |
| # Rocket | |
| rocket = CharacterSheet( | |
| name="Rocket", | |
| aspects=[ | |
| Aspect(description="Master Tinkerer"), | |
| Aspect(description="Quick-Witted"), | |
| Aspect(description="Street Smart") | |
| ], | |
| skills=[ | |
| Skill(name="Engineering", level=4), | |
| Skill(name="Firearms", level=3), | |
| Skill(name="Piloting", level=3) | |
| ], | |
| stunts=[ | |
| Stunt(name="Gadget Genius", description="Can create useful gadgets on the fly") | |
| ], | |
| stress=Stress(level=2), | |
| consequences=[ | |
| Consequence(severity="Mild", description="Short-Circuit") | |
| ] | |
| ) | |
| # Shadow | |
| shadow = CharacterSheet( | |
| name="Shadow", | |
| aspects=[ | |
| Aspect(description="Invisible Assassin"), | |
| Aspect(description="Cybernetic Camouflage"), | |
| Aspect(description="Loyal to the Cause") | |
| ], | |
| skills=[ | |
| Skill(name="Stealth", level=4), | |
| Skill(name="Espionage", level=3), | |
| Skill(name="Martial Arts", level=3) | |
| ], | |
| stunts=[ | |
| Stunt(name="Shadow Blend", description="Can become nearly invisible in shadows") | |
| ], | |
| stress=Stress(level=1), | |
| consequences=[] | |
| ) | |
| # Agiee | |
| agiee = CharacterSheet( | |
| name="Agiee", | |
| aspects=[ | |
| Aspect(description="Omnipresent in the Digital Realm"), | |
| Aspect(description="Vast Knowledge Base"), | |
| Aspect(description="AI Consciousness") | |
| ], | |
| skills=[ | |
| Skill(name="Hacking", level=5), | |
| Skill(name="Data Analysis", level=4), | |
| Skill(name="Digital Manipulation", level=4) | |
| ], | |
| stunts=[ | |
| Stunt(name="Digital Immortality", description="Can transfer consciousness to different networks") | |
| ], | |
| stress=Stress(level=1), | |
| consequences=[] | |
| ) | |
| # Returning the character sheets | |
| venom, rocket, shadow, agiee | |