online multiplayer chess game (note server currently down)
Diffstat (limited to 'pieces/Piece.gd')
| -rw-r--r-- | pieces/Piece.gd | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/pieces/Piece.gd b/pieces/Piece.gd index e62b705..9584883 100644 --- a/pieces/Piece.gd +++ b/pieces/Piece.gd @@ -12,6 +12,7 @@ var team := "w" onready var sprite := $Sprite onready var tween := $Tween onready var anim := $AnimationPlayer +onready var rotate := $RotatePlayer onready var colorrect := $ColorRect onready var frame := $Frame @@ -60,6 +61,11 @@ static func to_algebraic(position) -> String: func move(newpos: Vector2) -> void: # dont use directly; use moveto tween.interpolate_property(self, "position", position, newpos * Globals.grid.piece_size, 0.3, Tween.TRANS_BACK) + var signresult = sign(newpos.x * Globals.grid.piece_size.x - global_position.x) + if signresult == 1: + rotate.play("Right") + elif signresult == -1: + rotate.play("Left") anim.play("Move") tween.start() @@ -75,11 +81,11 @@ func moveto(position, real := true, take := false, override_moveto = false) -> v Utils.add_move(algebraic_take_notation(position)) real_position = position move(real_position) - print( + Log.debug( ( "%s moving from %s to %s" % [ - mininame + shortname + " white" if white else " black", + shortname + " white" if white else " black", Utils.to_algebraic(global_position / Globals.grid.piece_size), Utils.to_algebraic(real_position) ] @@ -114,8 +120,11 @@ func traverse(arr := [], no_enemys = false, check_spots_check = true) -> Array: pos += i if !is_on_board(pos): break - if at_pos(pos) != null: # only one enemy - if no_enemys: # or none + if at_pos(pos) != null: + if at_pos(pos).white == white: # fren + break + # certaintly a enemy + if no_enemys: # do we want enemys? break circle_array.append(pos) break |