Spaces:
Runtime error
Runtime error
cha0smagick
commited on
Commit
•
cea941d
1
Parent(s):
661c89d
Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import random
|
2 |
+
import streamlit as st
|
3 |
+
|
4 |
+
# Definición de las características del personaje
|
5 |
+
class Personaje:
|
6 |
+
def __init__(self):
|
7 |
+
self.nombre = self.generar_nombre()
|
8 |
+
self.atributos = self.generar_atributos()
|
9 |
+
self.habilidades = self.generar_habilidades()
|
10 |
+
self.ventajas = self.generar_ventajas()
|
11 |
+
self.tradicion = self.elegir_tradicion()
|
12 |
+
self.background = self.generar_background()
|
13 |
+
|
14 |
+
def generar_nombre(self):
|
15 |
+
nombres = ["Artemis", "Eliora", "Julian", "Maeve", "Lysander", "Cassandra", "Dorian", "Thalia"]
|
16 |
+
apellidos = ["Ravenwood", "Blackthorne", "Shadowend", "Stormwatch", "Frostbite", "Starfire"]
|
17 |
+
return f"{random.choice(nombres)} {random.choice(apellidos)}"
|
18 |
+
|
19 |
+
def generar_atributos(self):
|
20 |
+
return {
|
21 |
+
"Fuerza": random.randint(1, 5),
|
22 |
+
"Destreza": random.randint(1, 5),
|
23 |
+
"Constitución": random.randint(1, 5),
|
24 |
+
"Inteligencia": random.randint(1, 5),
|
25 |
+
"Percepción": random.randint(1, 5),
|
26 |
+
"Carisma": random.randint(1, 5),
|
27 |
+
}
|
28 |
+
|
29 |
+
def generar_habilidades(self):
|
30 |
+
habilidades_base = [
|
31 |
+
"Artes Marciales", "Fuego", "Persuasión", "Investigación", "Sigilo", "Tecnología",
|
32 |
+
"Ciencia", "Medicina", "Misticismo", "Conocimiento Oculto", "Ocultismo", "Música",
|
33 |
+
"Supervivencia", "Informática"
|
34 |
+
]
|
35 |
+
habilidades_seleccionadas = random.sample(habilidades_base, 5)
|
36 |
+
return {habilidad: random.randint(1, 5) for habilidad in habilidades_seleccionadas}
|
37 |
+
|
38 |
+
def generar_ventajas(self):
|
39 |
+
ventajas_base = ["Aliados", "Contatos", "Rituales", "Poderes", "Influencias"]
|
40 |
+
return random.sample(ventajas_base, 2)
|
41 |
+
|
42 |
+
def elegir_tradicion(self):
|
43 |
+
tradiciones = [
|
44 |
+
"Los Verbena", "Los Celestial", "Los Akashicos",
|
45 |
+
"Los Herméticos", "Los Místicos de la Huida", "Los Thig"
|
46 |
+
]
|
47 |
+
return random.choice(tradiciones)
|
48 |
+
|
49 |
+
def generar_background(self):
|
50 |
+
entornos = [
|
51 |
+
"una gran ciudad donde los secretos son moneda corriente.",
|
52 |
+
"una pequeña aldea aislada, rodeada de mitos antiguos.",
|
53 |
+
"un barrio marginal donde la supervivencia es el pan de cada día.",
|
54 |
+
"una familia de académicos que le enseñaron a cuestionar la realidad.",
|
55 |
+
"un monasterio oculto que le enseñó a equilibrar su mente y espíritu."
|
56 |
+
]
|
57 |
+
|
58 |
+
eventos = [
|
59 |
+
"descubrió un libro antiguo que le reveló los secretos de la magia.",
|
60 |
+
"perdió a un ser querido en circunstancias misteriosas, lo que lo llevó a la magia.",
|
61 |
+
"fue testigo de un evento sobrenatural que le cambió la vida.",
|
62 |
+
"encontró un amuleto que despertó sus habilidades ocultas.",
|
63 |
+
"fue parte de un culto que buscaba poder a través de rituales oscuros."
|
64 |
+
]
|
65 |
+
|
66 |
+
motivaciones = [
|
67 |
+
"buscar venganza por una injusticia personal.",
|
68 |
+
"descubrir la verdad sobre su familia y su legado.",
|
69 |
+
"proteger a los débiles de las fuerzas oscuras que acechan.",
|
70 |
+
"comprender los secretos del universo y trascender la realidad.",
|
71 |
+
"ayudar a otros a encontrar su propio camino en la magia."
|
72 |
+
]
|
73 |
+
|
74 |
+
return (f"Creció en {random.choice(entornos)} "
|
75 |
+
f"y {random.choice(eventos)}. "
|
76 |
+
f"Siente la necesidad de {random.choice(motivaciones)}.")
|
77 |
+
|
78 |
+
# Generador de personaje
|
79 |
+
def generar_personaje():
|
80 |
+
personaje = Personaje()
|
81 |
+
return personaje
|
82 |
+
|
83 |
+
# Interfaz de usuario de Streamlit
|
84 |
+
def main():
|
85 |
+
st.title("Generador de Personajes: Mago - La Ascensión")
|
86 |
+
st.write("Haz clic en el botón para generar un personaje aleatorio.")
|
87 |
+
|
88 |
+
if st.button("Generar Personaje"):
|
89 |
+
personaje = generar_personaje()
|
90 |
+
st.subheader("Hoja de Personaje")
|
91 |
+
|
92 |
+
st.write(f"**Nombre:** {personaje.nombre}")
|
93 |
+
st.write("### Atributos:")
|
94 |
+
for atributo, valor in personaje.atributos.items():
|
95 |
+
st.write(f"- **{atributo}:** {valor}")
|
96 |
+
|
97 |
+
st.write("### Habilidades:")
|
98 |
+
for habilidad, valor in personaje.habilidades.items():
|
99 |
+
st.write(f"- **{habilidad}:** {valor}")
|
100 |
+
|
101 |
+
st.write("### Ventajas:")
|
102 |
+
for ventaja in personaje.ventajas:
|
103 |
+
st.write(f"- **{ventaja}**")
|
104 |
+
|
105 |
+
st.write(f"**Tradición:** {personaje.tradicion}")
|
106 |
+
st.write(f"**Trasfondo:** {personaje.background}")
|
107 |
+
|
108 |
+
if __name__ == "__main__":
|
109 |
+
main()
|