Compare commits
No commits in common. "fa76489ed4eeeccbd86934f1cf34832af3e7e278" and "9fe7846f1b2072081b9938b5f30d562b4ce1cd9d" have entirely different histories.
fa76489ed4
...
9fe7846f1b
|
@ -1,2 +1,3 @@
|
||||||
*.log
|
*.log
|
||||||
|
ideas.md
|
||||||
__pycache__/
|
__pycache__/
|
36
ideas.md
36
ideas.md
|
@ -1,36 +0,0 @@
|
||||||
# Personaje
|
|
||||||
No hay clases, pero puedes elegir con que arma empiezas. No hay ningún sistema de stats ni de experiencia y la unica forma de mejorar es con mejores objetos, o mejorando los que tienes.
|
|
||||||
|
|
||||||
# Items
|
|
||||||
Drops de enemigos.
|
|
||||||
Cofres que necesitan llaves (o no). O mimics que dropeen items.
|
|
||||||
Que te los den los munchers.
|
|
||||||
|
|
||||||
# Dungeon
|
|
||||||
La dungeon se genera aleatoriamente, junto con los objetos, enemigos, escaleras, etc. Los enemigos podrán spawnear aleatoriamente en el piso de vez en cuando aunque ya hayas matado todos.
|
|
||||||
Que haya diferentes regiones:
|
|
||||||
- Desierto
|
|
||||||
- Cuevas
|
|
||||||
- Selva
|
|
||||||
- Mazmorras
|
|
||||||
- Ciudad abandonada
|
|
||||||
Se vuelve menos salvaje cuanto más abajo.
|
|
||||||
|
|
||||||
# Magia
|
|
||||||
Que haya piedras mágicas. Estas piedras te permiten hacer hechizos.
|
|
||||||
Como se consigues las piedras:
|
|
||||||
- Al menos una aparece aleatoriamente como loot/oculta/con una llave, etc.
|
|
||||||
- Vencer a un boss/bicho básico bufado ambientado en esa piedra, que al matarlo te la da.
|
|
||||||
- Piedras especiales más ligadas a la mazmorra, que coges y modifican gameplay (aparecen enemigos más fuertes/un aire tóxico que quita vida/muerte de enter the gungeon, etc), y te dan un efecto pasivo.
|
|
||||||
|
|
||||||
Hacer un set de piedras que tengas efectos. No es obligatorio recogerlas.
|
|
||||||
|
|
||||||
## Altares:
|
|
||||||
- Un altar que le tiras un objeto, lo pierdes y te da algún efecto pasivo.
|
|
||||||
- Un muncher.
|
|
||||||
|
|
||||||
# Otras ideas
|
|
||||||
Metaprogresion:
|
|
||||||
- Piedras que puedas desbloquear
|
|
||||||
- Nuevos items iniciales
|
|
||||||
Logros
|
|
|
@ -1,96 +0,0 @@
|
||||||
import random
|
|
||||||
|
|
||||||
def generate(width, height, edgeRows, edgeCols, seed=None):
|
|
||||||
grid = []
|
|
||||||
for row in range(height):
|
|
||||||
grid.append([])
|
|
||||||
for tile in range(width):
|
|
||||||
grid[row].append('#')
|
|
||||||
|
|
||||||
#grid = [['#'] * width] * height
|
|
||||||
|
|
||||||
edges = set()
|
|
||||||
for i in range(edgeCols):
|
|
||||||
for j in range(edgeRows):
|
|
||||||
x = i * (width // edgeCols)
|
|
||||||
y = j * (height // edgeRows)
|
|
||||||
edges.add((x,y))
|
|
||||||
|
|
||||||
not_connected = set(edges)
|
|
||||||
connected = set()
|
|
||||||
|
|
||||||
connected.add(next(iter(not_connected)))
|
|
||||||
|
|
||||||
while len(not_connected) > 0:
|
|
||||||
(dx, dy) = not_connected.pop()
|
|
||||||
(ox, oy) = next(iter(connected))
|
|
||||||
connected.add((dx, dy))
|
|
||||||
|
|
||||||
directions = ['N', 'S', 'W', 'E']
|
|
||||||
direction = random.choice(directions)
|
|
||||||
valid_direction = False
|
|
||||||
while not valid_direction:
|
|
||||||
direction = random.choice(directions)
|
|
||||||
if direction == 'N':
|
|
||||||
valid_direction = oy >= dy
|
|
||||||
if direction == 'S':
|
|
||||||
valid_direction = oy <= dy
|
|
||||||
if direction == 'W':
|
|
||||||
valid_direction = ox >= dx
|
|
||||||
if direction == 'E':
|
|
||||||
valid_direction = ox <= dx
|
|
||||||
|
|
||||||
if direction == 'N':
|
|
||||||
for y in range(dy, oy+1):
|
|
||||||
grid[y][ox] = '.'
|
|
||||||
(minX, maxX) = (ox, dx) if ox < dx else (dx, ox)
|
|
||||||
for x in range(minX, maxX):
|
|
||||||
grid[dy][x] = '.'
|
|
||||||
if direction == 'S':
|
|
||||||
for y in range(oy, dy+1):
|
|
||||||
grid[y][ox] = '.'
|
|
||||||
(minX, maxX) = (ox, dx) if ox < dx else (dx, ox)
|
|
||||||
for x in range(minX, maxX):
|
|
||||||
grid[dy][x] = '.'
|
|
||||||
if direction == 'W':
|
|
||||||
for x in range(dx, ox+1):
|
|
||||||
grid[oy][x] = '.'
|
|
||||||
(minY, maxY) = (oy, dy) if oy < dy else (dy, oy)
|
|
||||||
for y in range(minY, maxY):
|
|
||||||
grid[y][dx] = '.'
|
|
||||||
if direction == 'E':
|
|
||||||
for x in range(ox, dx+1):
|
|
||||||
grid[oy][x] = '.'
|
|
||||||
(minY, maxY) = (oy, dy) if oy < dy else (dy, oy)
|
|
||||||
for y in range(minY, maxY):
|
|
||||||
grid[y][dx] = '.'
|
|
||||||
|
|
||||||
for (x, y) in edges:
|
|
||||||
grid[y][x] = '.'
|
|
||||||
|
|
||||||
for row in grid:
|
|
||||||
for tile in row:
|
|
||||||
print(tile, end='')
|
|
||||||
print()
|
|
||||||
|
|
||||||
generate(80, 20, 6, 8)
|
|
||||||
|
|
||||||
"""
|
|
||||||
Generate points at random positions
|
|
||||||
Pick point X and another random point without connections.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
"""
|
|
||||||
################################################################
|
|
||||||
################################################################
|
|
||||||
#############################......#############################
|
|
||||||
###########################...####.#############################
|
|
||||||
#################################....#####......################
|
|
||||||
##############################..#.##...##.......################
|
|
||||||
###############################...####....#.....################
|
|
||||||
################################################################
|
|
||||||
################################################################
|
|
||||||
################################################################
|
|
||||||
################################################################
|
|
||||||
"""
|
|
Loading…
Reference in New Issue