clarification
This commit is contained in:
parent
a982e48c11
commit
b53ebac2dd
3 changed files with 10 additions and 10 deletions
|
|
@ -15,7 +15,7 @@ import g
|
||||||
from game.components import Action, Gold, Graphic, Position
|
from game.components import Action, Gold, Graphic, Position
|
||||||
from game.constants import DIRECTION_KEYS, ACTION_KEYS, FLOOR_CHAR
|
from game.constants import DIRECTION_KEYS, ACTION_KEYS, FLOOR_CHAR
|
||||||
from game.screens import Push, Screen, ScreenResult
|
from game.screens import Push, Screen, ScreenResult
|
||||||
from game.tags import IsDoor, IsItem, IsPlayer, IsActor
|
from game.tags import IsWalllike, IsItem, IsPlayer, IsActor
|
||||||
from game.constants import WALL_CHAR, VERTICAL_WALL_CHAR
|
from game.constants import WALL_CHAR, VERTICAL_WALL_CHAR
|
||||||
from game.screens import menu_screens
|
from game.screens import menu_screens
|
||||||
from game.world_tools import world_pos_to_map_pos, map_pos_to_world_pos
|
from game.world_tools import world_pos_to_map_pos, map_pos_to_world_pos
|
||||||
|
|
@ -28,11 +28,11 @@ def _handle_movement(player, map, dir):
|
||||||
pos = player.components[Position]
|
pos = player.components[Position]
|
||||||
new_pos = pos + dir
|
new_pos = pos + dir
|
||||||
map_pos = world_pos_to_map_pos(new_pos)
|
map_pos = world_pos_to_map_pos(new_pos)
|
||||||
if a := g.world.Q.all_of(components=[Action], tags=[new_pos]):
|
if action_entities := g.world.Q.all_of(components=[Action], tags=[new_pos]):
|
||||||
for aa in a:
|
for entity in action_entities:
|
||||||
aa.components[Action](aa)
|
entity.components[Action](entity)
|
||||||
map_pos = world_pos_to_map_pos(pos)
|
map_pos = world_pos_to_map_pos(pos)
|
||||||
map.compute_fov(map_pos.x, map_pos.y, 100)
|
_recalc_fov(map_pos)
|
||||||
return None
|
return None
|
||||||
if not map.walkable[map_pos.y, map_pos.x]:
|
if not map.walkable[map_pos.y, map_pos.x]:
|
||||||
return None
|
return None
|
||||||
|
|
@ -62,7 +62,7 @@ def _draw_entity(entity: tcod.ecs.Entity, camera_pos, camera_radius_x, camera_ra
|
||||||
map_pos = world_pos_to_map_pos(pos)
|
map_pos = world_pos_to_map_pos(pos)
|
||||||
if g.world[None].components[Map].fov[map_pos.y, map_pos.x]:
|
if g.world[None].components[Map].fov[map_pos.y, map_pos.x]:
|
||||||
graphic = entity.components[Graphic]
|
graphic = entity.components[Graphic]
|
||||||
r,gg,b,a = graphic.fg
|
r,gg,b,_ = graphic.fg
|
||||||
fg = (r,gg,b,255)
|
fg = (r,gg,b,255)
|
||||||
g.foreground.rgba[["ch", "fg"]][screen_pos.y + camera_radius_y, screen_pos.x + camera_radius_x] = graphic.ch, fg
|
g.foreground.rgba[["ch", "fg"]][screen_pos.y + camera_radius_y, screen_pos.x + camera_radius_x] = graphic.ch, fg
|
||||||
|
|
||||||
|
|
@ -98,7 +98,7 @@ class MainScreen(Screen):
|
||||||
map: Map = g.world[None].components[Map]
|
map: Map = g.world[None].components[Map]
|
||||||
|
|
||||||
# Draw walls and floors
|
# Draw walls and floors
|
||||||
doors = [ d.components[Position] for d in g.world.Q.all_of(tags=[IsDoor]) ]
|
doors = [ d.components[Position] for d in g.world.Q.all_of(tags=[IsWalllike]) ]
|
||||||
for i in range(console.width):
|
for i in range(console.width):
|
||||||
for j in range(console.height):
|
for j in range(console.height):
|
||||||
world_pos = Position(i-w,j-h)+camera_pos
|
world_pos = Position(i-w,j-h)+camera_pos
|
||||||
|
|
|
||||||
|
|
@ -13,5 +13,5 @@ IsActor: Final = "IsActor"
|
||||||
IsItem: Final = "IsItem"
|
IsItem: Final = "IsItem"
|
||||||
"""Entity is an item."""
|
"""Entity is an item."""
|
||||||
|
|
||||||
IsDoor: Final = "IsDoor"
|
IsWalllike: Final = "IsDoor"
|
||||||
"""Entity is a door."""
|
"""Entity is a door."""
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ from tcod.map import Map
|
||||||
import g
|
import g
|
||||||
|
|
||||||
from game.components import Action, Gold, Graphic, Position
|
from game.components import Action, Gold, Graphic, Position
|
||||||
from game.tags import IsActor, IsItem, IsPlayer, IsDoor
|
from game.tags import IsActor, IsItem, IsPlayer, IsWalllike
|
||||||
|
|
||||||
world_center: Final = Position(50, 50)
|
world_center: Final = Position(50, 50)
|
||||||
|
|
||||||
|
|
@ -33,7 +33,7 @@ def add_door(world, pos):
|
||||||
Graphic: Graphic(ord('\\')),
|
Graphic: Graphic(ord('\\')),
|
||||||
Action: unlock_door
|
Action: unlock_door
|
||||||
},
|
},
|
||||||
tags=[IsDoor]
|
tags=[IsWalllike]
|
||||||
)
|
)
|
||||||
add_wall(world, pos)
|
add_wall(world, pos)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue