@ -5,6 +5,7 @@ onready var Display = $TextDisplay/RichTextLabel
onready var PlayerHPBar = $ Information / HP / HealthBar
onready var ExitsDisplay = $ Information / Exits / Exits
# TODO: move roomcontroller to a global
var RoomController = preload ( " res://scripts/RoomController.gd " ) . new ( )
var LocalPlayer = preload ( " res://scripts/PlayerInfo.gd " ) . new ( )
@ -35,11 +36,10 @@ func _ready():
RoomController . generate ( 1 )
# test data
LocalPlayer . pos . X = 0
LocalPlayer . pos . Y = 0
LocalPlayer . set_position ( Vector2 ( 0 , 0 ) )
# call this *after* generating the rooms duh
update_display_info ( LocalPlayer . pos )
update_display_info ( LocalPlayer . pos ition )
#!! make sure to call player functions every frame !!
func _process ( delta ) :
@ -67,20 +67,18 @@ func _on_CommandEntry_entered(cmdstr):
add_system_text ( " Command \" " + input [ 0 ] + " \" not recognized " , true )
# updates our own display when we move (this shouldn't fire when remote players move...hopefully)
# pretty sure i dont need that if check or the argument. just gotta set this function to
# only be local (on second though, i probably should keep the argument and just provide the player ID with it)
func update_display_info ( pos ) :
if pos == LocalPlayer . pos :
if pos == LocalPlayer . pos ition :
ExitsDisplay . text = " "
var x = LocalPlayer . pos . X
var y = LocalPlayer . pos . Y
# iterate over every direction and check if our current room has an exit in that direction
for e in Directions . values ( ) :
if RoomController . room_exists_with_exit ( x , y , e ) :
ExitsDisplay . text += " N " if e == Directions . N else \
" S " if e == Directions . S else \
" E " if e == Directions . E else \
" W "
var exits = RoomController . get_room_exits ( pos )
ExitsDisplay . text += " N " if exits & Globals . Directions . N else ' '
ExitsDisplay . text += " S " if exits & Globals . Directions . S else ' '
ExitsDisplay . text += " E " if exits & Globals . Directions . E else ' '
ExitsDisplay . text += " W " if exits & Globals . Directions . W else ' '
func add_system_text ( txt , err = false ) :
if err :
@ -106,33 +104,25 @@ func cmd_clear():
# direction commands
##
func cmd_south ( ) :
var x = LocalPlayer . pos . X
var y = LocalPlayer . pos . Y
if RoomController . room_exists_with_exit ( x - 1 , y , Directions . N ) :
LocalPlayer . update_position ( x - 1 , y )
if RoomController . room_exit_exists ( LocalPlayer . position , Globals . Directions . S ) :
LocalPlayer . move ( Globals . Directions . S )
else :
add_system_text ( " An exit does not exist towards the south " , true )
func cmd_east ( ) :
var x = LocalPlayer . pos . X
var y = LocalPlayer . pos . Y
if RoomController . room_exists_with_exit ( x , y + 1 , Directions . W ) :
LocalPlayer . update_position ( x , y + 1 )
if RoomController . room_exit_exists ( LocalPlayer . position , Globals . Directions . E ) :
LocalPlayer . move ( Globals . Directions . W )
else :
add_system_text ( " An exit does not exist towards the east " , true )
func cmd_west ( ) :
var x = LocalPlayer . pos . X
var y = LocalPlayer . pos . Y
if RoomController . room_exists_with_exit ( x , y - 1 , Directions . E ) :
LocalPlayer . update_position ( x , y - 1 )
if RoomController . room_exit_exists ( LocalPlayer . position , Globals . Directions . W ) :
LocalPlayer . move ( Globals . Directions . E )
else :
add_system_text ( " An exit does not exist towards the west " , true )
func cmd_north ( ) :
var x = LocalPlayer . pos . X
var y = LocalPlayer . pos . Y
if RoomController . room_exists_with_exit ( x + 1 , y , Directions . S ) :
LocalPlayer . update_position ( x + 1 , y )
if RoomController . room_exit_exists ( LocalPlayer . position , Globals . Directions . N ) :
LocalPlayer . move ( Globals . Directions . N )
else :
add_system_text ( " An exit does not exist towards the north " , true )