From 83f319b76cf9fba4d6759a7135df510c86f7b958 Mon Sep 17 00:00:00 2001 From: hpham474 Date: Sun, 14 Nov 2021 20:12:01 -0600 Subject: [PATCH] Partial implementation of the player class --- godot_ship/script/game/Gameplay/Player.gd | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/godot_ship/script/game/Gameplay/Player.gd b/godot_ship/script/game/Gameplay/Player.gd index ca89ece..713ba83 100644 --- a/godot_ship/script/game/Gameplay/Player.gd +++ b/godot_ship/script/game/Gameplay/Player.gd @@ -14,19 +14,28 @@ func _ready(): # Member functions: # hit: Called when opponent fires on us. -# Update internal state, and return bool hit/miss -func hit(): +# Update internal state, and return bool hit/miss, hit = true, miss = false +func hit(pos): + var res = board.hit(pos) + if res == -1: + return true + else: + return false pass # place_ship: called when ships are placed. # forwards Ship locations to the Board, so that it may construct a ship # ship: a list of ship properties {position, orientation, size} +# NOTE: Variant? Assuming _ship is an array of lists of ship properties func place_ship(_ship): + for i in _ship: + board.place_ship(i) pass # setUp: set up the board given the placed ship locations # translates the ship positions in the Setup UI to board-space, then places each ship # ships: a list of lists of ship properties {{position, orientation, size}, ...} +# NOTE: What is the difference place_ship() and set_up() func set_up(_ships): pass @@ -46,10 +55,18 @@ func getBoard(): # forfeit: ends game for player # Sinks all ships +# hits every single board tile func forfeit(): - pass + for i in 10: + for j in 10: + var pos + pos.x = i + pos.y = j + hit(pos) # getShipCount: get the number of ships the player has left alive func getShipCount(): + var count = board.get_ship_count() + return count pass