cha0smagick commited on
Commit
cea941d
1 Parent(s): 661c89d

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +109 -0
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()