File size: 3,090 Bytes
4228467
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
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