Spaces:
Sleeping
Sleeping
File size: 3,613 Bytes
b60db7f cc30329 b60db7f 14475bf 6bfb8ae dfd980f 6bfb8ae b60db7f 6bfb8ae b60db7f 6bfb8ae b60db7f 6bfb8ae b60db7f 6bfb8ae | 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 120 121 122 123 124 125 | import streamlit as st
from characters import CharacterSheet, Aspect, Skill, Stunt, Stress, Consequence # Import necessary classes
# 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=[]
)
# Sample characters - replace these with actual data
characters = {
"Venom": venom,
"Rocket": rocket,
"Shadow": shadow,
"Agiee": agiee
}
# Streamlit app starts here
st.title("Cyberpunk RPG Character Viewer")
# Dropdown to select a character
character_name = st.selectbox("Select a Character", options=list(characters.keys()))
# Display the selected character
character = characters[character_name]
st.write(f"**Name**: {character.name}")
st.write("**Aspects**")
for aspect in character.aspects:
st.write(f"- {aspect.description}")
st.write("**Skills**")
for skill in character.skills:
st.write(f"- {skill.name}: Level {skill.level}")
st.write("**Stunts**")
for stunt in character.stunts:
st.write(f"- {stunt.name}: {stunt.description}")
st.write(f"**Stress Level**: {character.stress.level}")
if character.consequences:
st.write("**Consequences**")
for consequence in character.consequences:
st.write(f"- {consequence.severity}: {consequence.description}")
else:
st.write("**Consequences**: None")
# Run this Streamlit app with: streamlit run character_viewer.py |