diff --git a/.godot/editor/3d_effect.gdshader-folding-9bf453877cb14be294160e7d070a065c.cfg b/.godot/editor/3d_effect.gdshader-folding-9bf453877cb14be294160e7d070a065c.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e860dd492d4a81a2c71efd56de0fbc8363005a6f
--- /dev/null
+++ b/.godot/editor/3d_effect.gdshader-folding-9bf453877cb14be294160e7d070a065c.cfg
@@ -0,0 +1,3 @@
+[folding]
+
+sections_unfolded=PackedStringArray()
diff --git a/.godot/editor/editor_layout.cfg b/.godot/editor/editor_layout.cfg
index c33d6c1d96fac56366f133a3b9a02777af636355..088b37c9621f8e2e54fe83d5e84aec20cba3a53a 100644
--- a/.godot/editor/editor_layout.cfg
+++ b/.godot/editor/editor_layout.cfg
@@ -6,36 +6,58 @@ dock_5_selected_tab_idx=0
 dock_floating={}
 dock_bottom=[]
 dock_closed=[]
-dock_split_2=0
+dock_split_2=278
 dock_split_3=0
 dock_hsplit_1=0
+<<<<<<< HEAD
 dock_hsplit_2=498
 dock_hsplit_3=-380
+=======
+dock_hsplit_2=270
+dock_hsplit_3=-254
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
 dock_hsplit_4=0
 dock_filesystem_h_split_offset=240
 dock_filesystem_v_split_offset=0
 dock_filesystem_display_mode=0
 dock_filesystem_file_sort=0
 dock_filesystem_file_list_display_mode=1
+<<<<<<< HEAD
 dock_filesystem_selected_paths=PackedStringArray("res://scenes/title_screen.tscn")
 dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/", "res://scenes/", "res://scenes/ui/")
+=======
+dock_filesystem_selected_paths=PackedStringArray("res://assets/")
+dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/", "res://scenes/")
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
 dock_3="Scene,Import"
 dock_4="FileSystem"
 dock_5="Inspector,Node,History"
 
 [EditorNode]
 
+<<<<<<< HEAD
 open_scenes=PackedStringArray("res://main.tscn", "res://scenes/title_screen.tscn", "res://scenes/scene_manager.tscn")
 current_scene="res://main.tscn"
 center_split_offset=-239
 selected_default_debugger_tab_idx=1
+=======
+open_scenes=PackedStringArray("res://scenes/game.tscn", "res://scenes/explosion.tscn", "res://scenes/Pawn.tscn", "res://scenes/Rook.tscn", "res://scenes/Bishop.tscn", "res://scenes/Queen.tscn", "res://scenes/King.tscn", "res://scenes/Knight.tscn", "res://scenes/Assassin.tscn", "res://scenes/Mage.tscn", "res://scenes/Wizard.tscn")
+current_scene="res://scenes/Pawn.tscn"
+center_split_offset=-362
+selected_default_debugger_tab_idx=0
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
 selected_main_editor_idx=2
 selected_bottom_panel_item=0
 
 [ScriptEditor]
 
+<<<<<<< HEAD
 open_scripts=["res://scripts/title_screen/menu_button.gd", "res://scripts/scene_manager.gd", "res://scripts/title_screen/title_screen.gd"]
 selected_script="res://scripts/scene_manager.gd"
+=======
+open_scripts=["res://scripts/Assassin.gd", "res://scripts/Bishop.gd", "res://scripts/game.gd", "res://scripts/King.gd", "res://scripts/Knight.gd", "res://scripts/Mage.gd", "res://scripts/Pawn.gd", "res://scripts/Piece.gd", "res://scripts/Queen.gd", "res://scripts/Rook.gd", "res://scripts/Wizard.gd"]
+selected_script="res://scripts/game.gd"
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
 open_help=[]
 script_split_offset=70
 list_split_offset=0
diff --git a/.godot/editor/filesystem_cache8 b/.godot/editor/filesystem_cache8
index f9299dafe35258cc526ec0b0412ff27b962623a3..71efc4530b38b12b14d119dd7103f0af329da22e 100644
--- a/.godot/editor/filesystem_cache8
+++ b/.godot/editor/filesystem_cache8
@@ -1,4 +1,5 @@
 ea4bc82a6ad023ab7ee23ee620429895
+<<<<<<< HEAD
 ::res://::1738616718
 icon.svg::CompressedTexture2D::6378281210119878262::1738615861::1738615874::1::::<><>::
 main.tscn::PackedScene::5692118487183161714::1738615882::0::1::::<><>::uid://cu7lkx15lmfww::::res://scenes/scene_manager.tscn
@@ -101,3 +102,96 @@ scene_manager.gd::GDScript::-1::1738615861::0::1::::<>Node<>::
 ::res://scripts/title_screen/::1738615861
 menu_button.gd::GDScript::-1::1738615861::0::1::::TitleButton<>Button<>::
 title_screen.gd::GDScript::-1::1738615861::0::1::::TitleScreen<>Control<>::
+=======
+::res://::1738376336
+game.tscn::PackedScene::5692118487183161714::1738358720::0::1::::<><>::uid://cfao716v0t1jw::::res://scenes/board.tscn
+icon.svg::CompressedTexture2D::6378281210119878262::1737912187::1738338716::1::::<><>::
+README.md::TextFile::-1::1737912187::0::1::::<><>::
+::res://assets/::1738358720
+::res://assets/noise/::1738360218
+noise2.tres::NoiseTexture2D::5054739835828921764::1738360218::0::1::::<><>::
+noise3.tres::NoiseTexture2D::906885015046579772::1738360218::0::1::::<><>::
+noise.tres::NoiseTexture2D::1693764769519573005::1738360218::0::1::::<><>::
+::res://assets/Original size Chess pieces/::1738360196
+Black king piece 2.png::CompressedTexture2D::7820367427145083060::1738358720::1738360196::1::::<><>::
+Black knight piece.png::CompressedTexture2D::4196515762256027844::1738358720::1738360196::1::::<><>::
+Black Pawn Piece 2.png::CompressedTexture2D::2167440687080906934::1738358720::1738360196::1::::<><>::
+Black Queen Piece 2.png::CompressedTexture2D::6638986330393441989::1738358720::1738360196::1::::<><>::
+Black rook piece.png::CompressedTexture2D::1872655759582013005::1738358720::1738360196::1::::<><>::
+White king piece 2.png::CompressedTexture2D::7139286146806283259::1738358720::1738360196::1::::<><>::
+White knight piece.png::CompressedTexture2D::8293368904171920332::1738358720::1738360196::1::::<><>::
+White Pawn Piece 2.png::CompressedTexture2D::8915038826611091975::1738358720::1738360196::1::::<><>::
+White Queen Piece 2.png::CompressedTexture2D::339041922548181320::1738358720::1738360196::1::::<><>::
+White rook piece.png::CompressedTexture2D::6272641373813891014::1738358720::1738360196::1::::<><>::
+::res://assets/Resized Chess Piece Assets/::1738360196
+Black_king.png::CompressedTexture2D::3691390456247856410::1738358720::1738360196::1::::<><>::
+Black_knight.png::CompressedTexture2D::3569790831830215405::1738358720::1738360196::1::::<><>::
+Black_Pawn.png::CompressedTexture2D::4947090234957464596::1738358720::1738360196::1::::<><>::
+Black_Queen.png::CompressedTexture2D::9042903626319350434::1738358720::1738360196::1::::<><>::
+Black_rook.png::CompressedTexture2D::5637903285567075872::1738358720::1738360196::1::::<><>::
+White_king.png::CompressedTexture2D::5012688985517926395::1738358720::1738360196::1::::<><>::
+White_knight.png::CompressedTexture2D::854350289879594279::1738358720::1738360196::1::::<><>::
+White_Pawn.png::CompressedTexture2D::919180529085242722::1738358720::1738360196::1::::<><>::
+White_Queen.png::CompressedTexture2D::4902137832695542513::1738358720::1738360196::1::::<><>::
+White_rook.png::CompressedTexture2D::4194129281780453908::1738358720::1738360196::1::::<><>::
+::res://assets/shaders/::1738376333
+bg.gdshader::Shader::-1::1738376333::0::1::::<><>::
+color.gdshader::Shader::-1::1738376333::0::1::::<><>::
+shadow.gdshader::Shader::-1::1738376333::0::1::::<><>::
+::res://assets/sprites/::1738360196
+bishop.png::CompressedTexture2D::4631301773944929250::1738358798::1738360196::1::::<><>::
+knight.png::CompressedTexture2D::3545640967717948854::1738358798::1738360196::1::::<><>::
+pawn.png::CompressedTexture2D::1338760335342038528::1738358798::1738360195::1::::<><>::
+rook.png::CompressedTexture2D::6790909281007670776::1738358798::1738360195::1::::<><>::
+tile.png::CompressedTexture2D::8704336058451696509::1738358570::1738360195::1::::<><>::
+::res://assets/temp_assets/::1738373374
+assassin.png::CompressedTexture2D::2309680507621369322::1738360966::1738361001::1::::<><>::
+black_bishop.png::CompressedTexture2D::7509881182472568151::1738358720::1738360195::1::::<><>::
+black_king.png::CompressedTexture2D::3646032776351028361::1738358720::1738360195::1::::<><>::
+black_knight.png::CompressedTexture2D::4591257172048987833::1738358720::1738360195::1::::<><>::
+black_pawn.png::CompressedTexture2D::3912668014183198267::1738358720::1738360195::1::::<><>::
+black_queen.png::CompressedTexture2D::7989886812523566234::1738358720::1738360195::1::::<><>::
+black_rook.png::CompressedTexture2D::8767708966549765967::1738358720::1738360195::1::::<><>::
+mage.png::CompressedTexture2D::4650471376600460963::1738367395::1738367411::1::::<><>::
+Piece_move.png::CompressedTexture2D::260618725614842917::1738358720::1738360195::1::::<><>::
+temp_chess_board.png::CompressedTexture2D::4173558678901569366::1738358720::1738360195::1::::<><>::
+turn-black.png::CompressedTexture2D::7112033964315790810::1738358720::1738360195::1::::<><>::
+turn-white.png::CompressedTexture2D::7344907768700758025::1738358720::1738360196::1::::<><>::
+white_bishop.png::CompressedTexture2D::8093744356261485644::1738358720::1738360196::1::::<><>::
+white_king.png::CompressedTexture2D::5901183203660598461::1738358720::1738360196::1::::<><>::
+white_knight.png::CompressedTexture2D::7533630084821562912::1738358720::1738360196::1::::<><>::
+white_pawn.png::CompressedTexture2D::8196778834906249875::1738358720::1738360196::1::::<><>::
+white_queen.png::CompressedTexture2D::1957958042777204643::1738358720::1738360196::1::::<><>::
+white_rook.png::CompressedTexture2D::3317152307554436932::1738358720::1738360196::1::::<><>::
+wizard.png::CompressedTexture2D::2759604866355024615::1738373264::1738373374::1::::<><>::
+::res://assets/ui/::1738360196
+Go_Save_The_King_Menu.jpg::CompressedTexture2D::7252735845995868232::1738358720::1738360196::1::::<><>::
+Mockup Gameplay Design.jpg::CompressedTexture2D::4859609684236806088::1738358720::1738360196::1::::<><>::
+Mockup Shop Design.jpg::CompressedTexture2D::8043055154093708922::1738358720::1738360196::1::::<><>::
+::res://scenes/::1738376254
+Assassin.tscn::PackedScene::1241611789899982875::1738376254::0::1::::<><>::res://scripts/Assassin.gd<>uid://753dogr1moxe::::res://assets/temp_assets/assassin.png
+Bishop.tscn::PackedScene::2789588702038144760::1738376253::0::1::::<><>::res://scripts/Bishop.gd<>uid://b68o4mj7wcwvq::::res://assets/sprites/bishop.png
+board.tscn::PackedScene::5124694183364421304::1738358720::0::1::::<><>::uid://b0px5wlrm0mb3::::res://assets/temp_assets/temp_chess_board.png<>res://scripts/board.gd
+explosion.tscn::PackedScene::69466253159940830::1738376253::0::1::::<><>::
+game.tscn::PackedScene::8577524005707705072::1738376253::0::1::::<><>::res://scripts/game.gd<>res://assets/shaders/bg.gdshader<>uid://yeqb8ndri7xp::::res://assets/noise/noise.tres<>uid://ceas3dsjeq4ge::::res://assets/noise/noise2.tres<>uid://m6ki73qfbp2s::::res://assets/noise/noise3.tres
+King.tscn::PackedScene::8277830396459966414::1738376254::0::1::::<><>::res://scripts/King.gd<>uid://cdogixbq8ay3t::::res://assets/Resized Chess Piece Assets/White_king.png
+Knight.tscn::PackedScene::5270730075267457303::1738376254::0::1::::<><>::res://scripts/Knight.gd<>uid://mf4a3jclbwih::::res://assets/Resized Chess Piece Assets/White_knight.png
+Mage.tscn::PackedScene::10334063134713649::1738376254::0::1::::<><>::res://scripts/Mage.gd<>uid://b7iyt4iwjbtd0::::res://assets/temp_assets/mage.png
+Pawn.tscn::PackedScene::3675784333675896641::1738376253::0::1::::<><>::res://scripts/Pawn.gd<>uid://ndi1e8thkonq::::res://assets/Resized Chess Piece Assets/White_Pawn.png
+Queen.tscn::PackedScene::7495869360053814603::1738376254::0::1::::<><>::res://scripts/Queen.gd<>uid://cb3vq168iyomb::::res://assets/Resized Chess Piece Assets/White_Queen.png
+Rook.tscn::PackedScene::9162401199636684468::1738376253::0::1::::<><>::uid://b00wxxfjk04ke::::res://assets/Resized Chess Piece Assets/White_rook.png
+texture_holder.tscn::PackedScene::594714386286134588::1738358720::0::1::::<><>::
+Wizard.tscn::PackedScene::6352212773395470747::1738376254::0::1::::<><>::res://scripts/Wizard.gd<>uid://bfk1j3brcknkp::::res://assets/temp_assets/wizard.png
+::res://scripts/::1738376307
+Assassin.gd::GDScript::-1::1738373911::0::1::::Assassin<>Piece<>::
+Bishop.gd::GDScript::-1::1738373812::0::1::::Bishop<>Piece<>::
+game.gd::GDScript::-1::1738376326::0::1::::game<>Node<>::
+King.gd::GDScript::-1::1738373926::0::1::::King<>Piece<>::
+Knight.gd::GDScript::-1::1738375042::0::1::::Knight<>Piece<>::
+Mage.gd::GDScript::-1::1738373960::0::1::::Mage<>Piece<>::
+Pawn.gd::GDScript::-1::1738373968::0::1::::Pawn<>Piece<>::
+Piece.gd::GDScript::-1::1738376307::0::1::::Piece<>Node2D<>::
+Queen.gd::GDScript::-1::1738373933::0::1::::Queen<>Piece<>::
+Rook.gd::GDScript::-1::1738373976::0::1::::Rook<>Piece<>::
+Wizard.gd::GDScript::-1::1738373837::0::1::::Wizard<>Piece<>::
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
diff --git a/.godot/editor/filesystem_update4 b/.godot/editor/filesystem_update4
index 3c8cbef9fcc16e61188a83ad4f0f5b9425e859f8..352b75c0e22b4674f31b2dc97ef9e7cf1ce0add0 100644
--- a/.godot/editor/filesystem_update4
+++ b/.godot/editor/filesystem_update4
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
 res://main.tscn
 res://assets/shaders/3d_effect.gdshader
 res://assets/shaders/shadow.gdshader
@@ -6,3 +7,24 @@ res://assets/shaders/color.gdshader
 res://scripts/scene_manager.gd
 res://scenes/title_screen.tscn
 res://scenes/scene_manager.tscn
+=======
+res://scenes/game.tscn
+res://assets/shaders/color.gdshader
+res://assets/shaders/shadow.gdshader
+res://assets/shaders/bg.gdshader
+res://assets/noise/noise.tres
+res://assets/noise/noise2.tres
+res://assets/noise/noise3.tres
+res://scenes/explosion.tscn
+res://scenes/Pawn.tscn
+res://scenes/Rook.tscn
+res://scenes/Bishop.tscn
+res://scenes/Queen.tscn
+res://scenes/King.tscn
+res://scenes/Knight.tscn
+res://scenes/Assassin.tscn
+res://scenes/Mage.tscn
+res://scenes/Wizard.tscn
+res://scripts/Bishop.gd
+res://scripts/game.gd
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
diff --git a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg
index 9d9ee14e5dbe61a0a4bf9771eddb549e74778293..83139db4abf5fcfea781e3a0c0da5093428cac26 100644
--- a/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg
+++ b/.godot/editor/game.tscn-editstate-c2a7af834e91ff64325daddf58e45dc0.cfg
@@ -8,7 +8,7 @@ Anim={
 "grid_snap_active": false,
 "grid_step": Vector2(8, 8),
 "grid_visibility": 1,
-"ofs": Vector2(-1180.52, -464.792),
+"ofs": Vector2(-1092.7, -448.319),
 "primary_grid_step": Vector2i(8, 8),
 "show_group_gizmos": true,
 "show_guides": true,
@@ -34,7 +34,7 @@ Anim={
 "snap_rotation_step": 0.261799,
 "snap_scale": false,
 "snap_scale_step": 0.1,
-"zoom": 0.529732
+"zoom": 0.471937
 }
 3D={
 "fov": 70.01,
@@ -175,4 +175,8 @@ Anim={
 "zfar": 4000.01,
 "znear": 0.05
 }
+<<<<<<< HEAD
 selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9272/@VSplitContainer@9094/@HSplitContainer@9096/@HSplitContainer@9098/@Control@9099/@SubViewportContainer@9100/@SubViewport@9101/Main")])
+=======
+selected_nodes=Array[NodePath]([])
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
diff --git a/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg b/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg
index 892d185386b625ec13ffd804bc68044c71b139b5..07cfab693d5e7f555cd205d58148529c48f55cdc 100644
--- a/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg
+++ b/.godot/editor/game.tscn-folding-c2a7af834e91ff64325daddf58e45dc0.cfg
@@ -1,5 +1,5 @@
 [folding]
 
-node_unfolds=[NodePath("."), PackedStringArray("opponent_shader", "Editor Description"), NodePath("ShadowContainer"), PackedStringArray("Ordering"), NodePath("TileContainer"), PackedStringArray("Transform", "Ordering"), NodePath("PieceContainer"), PackedStringArray("Ordering", "Process", "Texture"), NodePath("Background"), PackedStringArray("Layout", "material", "Ordering", "Layout/Transform", "Layout/Grow Direction", "Layout/Container Sizing", "Layout/Anchor Points", "Layout/Anchor Offsets", "Texture"), NodePath("Explosion"), PackedStringArray("Ordering", "Transform", "Scale", "Time")]
+node_unfolds=[NodePath("."), PackedStringArray("opponent_shader", "Editor Description"), NodePath("ShadowContainer"), PackedStringArray("Ordering"), NodePath("TileContainer"), PackedStringArray("Transform", "Ordering"), NodePath("PieceContainer"), PackedStringArray("Ordering", "Process", "Texture"), NodePath("Background"), PackedStringArray("Layout", "material", "Ordering", "Layout/Transform", "Layout/Grow Direction", "Layout/Container Sizing", "Layout/Anchor Points", "Layout/Anchor Offsets", "Texture"), NodePath("Explosion"), PackedStringArray("Ordering", "Transform", "Scale", "Time"), NodePath("PlayerPieces"), PackedStringArray("Transform"), NodePath("OpponentPieces"), PackedStringArray("Visibility", "Transform")]
 resource_unfolds=["res://scenes/game.tscn::ShaderMaterial_gdbwp", PackedStringArray("Shader Parameters", "Resource")]
 nodes_folded=[]
diff --git a/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg b/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..b8840033cf8e9e86c9b8c2818c6c75df406d74ee
--- /dev/null
+++ b/.godot/editor/main.tscn-editstate-3070c538c03ee49b7677ff960a3f5195.cfg
@@ -0,0 +1,178 @@
+[editor_states]
+
+Anim={
+"visible": false
+}
+2D={
+"grid_offset": Vector2(0, 0),
+"grid_snap_active": false,
+"grid_step": Vector2(8, 8),
+"grid_visibility": 1,
+"ofs": Vector2(-180, -125),
+"primary_grid_step": Vector2i(8, 8),
+"show_group_gizmos": true,
+"show_guides": true,
+"show_helpers": false,
+"show_lock_gizmos": true,
+"show_origin": true,
+"show_position_gizmos": true,
+"show_rulers": true,
+"show_transformation_gizmos": true,
+"show_viewport": true,
+"show_zoom_control": true,
+"smart_snap_active": false,
+"snap_guides": true,
+"snap_node_anchors": true,
+"snap_node_center": true,
+"snap_node_parent": true,
+"snap_node_sides": true,
+"snap_other_nodes": true,
+"snap_pixel": true,
+"snap_relative": false,
+"snap_rotation": false,
+"snap_rotation_offset": 0.0,
+"snap_rotation_step": 0.261799,
+"snap_scale": false,
+"snap_scale_step": 0.1,
+"zoom": 0.25
+}
+3D={
+"fov": 70.01,
+"gizmos_status": {
+"AudioListener3D": 0,
+"AudioStreamPlayer3D": 0,
+"CPUParticles3D": 0,
+"CSGShape3D": 0,
+"Camera3D": 0,
+"CollisionObject3D": 0,
+"CollisionPolygon3D": 0,
+"CollisionShape3D": 0,
+"Decal": 0,
+"FogVolume": 0,
+"GPUParticles3D": 0,
+"GPUParticlesCollision3D": 0,
+"Joint3D": 0,
+"Light3D": 0,
+"LightmapGI": 0,
+"LightmapProbe": 0,
+"Marker3D": 0,
+"MeshInstance3DCustomAABB": 0,
+"NavigationLink3D": 0,
+"NavigationRegion3D": 0,
+"OccluderInstance3D": 0,
+"Path3D": 0,
+"PhysicalBone3D": 0,
+"RayCast3D": 0,
+"ReflectionProbe": 0,
+"ShapeCast3D": 0,
+"Skeleton3D": 0,
+"SoftBody3D": 0,
+"SpringArm3D": 0,
+"VehicleWheel3D": 0,
+"VisibleOnScreenNotifier3D": 0,
+"VoxelGI": 0
+},
+"local_coords": false,
+"preview_sun_env": {
+"environ_ao_enabled": false,
+"environ_enabled": true,
+"environ_energy": 1.0,
+"environ_gi_enabled": false,
+"environ_glow_enabled": false,
+"environ_ground_color": Color(0.2, 0.169, 0.133, 1),
+"environ_sky_color": Color(0.385, 0.454, 0.55, 1),
+"environ_tonemap_enabled": true,
+"sun_color": Color(1, 1, 1, 1),
+"sun_enabled": true,
+"sun_energy": 1.0,
+"sun_max_distance": 100.0,
+"sun_rotation": Vector2(-1.0472, 2.61799)
+},
+"rotate_snap": 15.0,
+"scale_snap": 10.0,
+"show_grid": true,
+"show_origin": true,
+"snap_enabled": false,
+"translate_snap": 1.0,
+"viewport_mode": 1,
+"viewports": [{
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": true,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}, {
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": false,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}, {
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": false,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}, {
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": false,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}],
+"zfar": 4000.01,
+"znear": 0.05
+}
+selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9280/@VSplitContainer@9102/@HSplitContainer@9104/@HSplitContainer@9106/@Control@9107/@SubViewportContainer@9108/@SubViewport@9109/Main")])
diff --git a/.godot/editor/main.tscn-folding-3070c538c03ee49b7677ff960a3f5195.cfg b/.godot/editor/main.tscn-folding-3070c538c03ee49b7677ff960a3f5195.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..ccd35b15948f5efa857051b2539fbe627fdd5944
--- /dev/null
+++ b/.godot/editor/main.tscn-folding-3070c538c03ee49b7677ff960a3f5195.cfg
@@ -0,0 +1,5 @@
+[folding]
+
+node_unfolds=[NodePath("."), PackedStringArray("Process")]
+resource_unfolds=[]
+nodes_folded=[]
diff --git a/.godot/editor/project_metadata.cfg b/.godot/editor/project_metadata.cfg
index d7ed597de857779d8370c4acf957277df13af90d..d9d4bbc081af839eb5f6e0fcf989cd76f7e48e33 100644
--- a/.godot/editor/project_metadata.cfg
+++ b/.godot/editor/project_metadata.cfg
@@ -5,8 +5,13 @@ use_advanced_connections=false
 
 [dialog_bounds]
 
+<<<<<<< HEAD
 create_new_node=Rect2(2145, 197, 900, 700)
 project_settings=Rect2(2022, 76, 1590, 867)
+=======
+create_new_node=Rect2(2371, 126, 900, 700)
+project_settings=Rect2(360, 190, 1200, 700)
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
 
 [script_setup]
 
@@ -14,8 +19,13 @@ last_selected_language="GDScript"
 
 [recent_files]
 
+<<<<<<< HEAD
 scripts=["res://scripts/board.gd", "res://scripts/scene_manager.gd", "res://scripts/title_screen/menu_button.gd", "res://scripts/title_screen/title_screen.gd", "res://scripts/Knight.gd", "res://scripts/King.gd", "res://scripts/Queen.gd", "res://scripts/Bishop.gd", "res://scripts/Rook.gd", "res://scripts/Pawn.gd"]
 scenes=["res://scenes/scene_manager.tscn", "res://scenes/title_screen.tscn", "res://main.tscn", "res://scenes/ui/menu_button.tscn", "res://scenes/game.tscn", "res://scenes/board.tscn", "res://scenes/ui/title_screen.tscn", "res://scenes/title_screen/menu_button.tscn", "res://scenes/title_screen/title_screen.tscn", "res://scenes/Knight.tscn"]
+=======
+scripts=["res://scripts/Wizard.gd", "res://scripts/Mage.gd", "res://scripts/Assassin.gd", "res://scripts/Knight.gd", "res://scripts/King.gd", "res://scripts/Queen.gd", "res://scripts/Bishop.gd", "res://scripts/Rook.gd", "res://scripts/Pawn.gd", "res://scripts/Piece.gd"]
+scenes=["res://scenes/Wizard.tscn", "res://scenes/Mage.tscn", "res://scenes/Assassin.tscn", "res://scenes/Knight.tscn", "res://scenes/King.tscn", "res://scenes/Queen.tscn", "res://scenes/Bishop.tscn", "res://scenes/Rook.tscn", "res://scenes/Pawn.tscn", "res://scenes/explosion.tscn"]
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
 
 [color_picker]
 
diff --git a/.godot/editor/scene_manager.gd-folding-f8120ff63f28decc30eb633b23f8bb65.cfg b/.godot/editor/scene_manager.gd-folding-f8120ff63f28decc30eb633b23f8bb65.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..e860dd492d4a81a2c71efd56de0fbc8363005a6f
--- /dev/null
+++ b/.godot/editor/scene_manager.gd-folding-f8120ff63f28decc30eb633b23f8bb65.cfg
@@ -0,0 +1,3 @@
+[folding]
+
+sections_unfolded=PackedStringArray()
diff --git a/.godot/editor/scene_manager.tscn-editstate-b759aa255a16c27dcbfcac27740b9d8c.cfg b/.godot/editor/scene_manager.tscn-editstate-b759aa255a16c27dcbfcac27740b9d8c.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..b8840033cf8e9e86c9b8c2818c6c75df406d74ee
--- /dev/null
+++ b/.godot/editor/scene_manager.tscn-editstate-b759aa255a16c27dcbfcac27740b9d8c.cfg
@@ -0,0 +1,178 @@
+[editor_states]
+
+Anim={
+"visible": false
+}
+2D={
+"grid_offset": Vector2(0, 0),
+"grid_snap_active": false,
+"grid_step": Vector2(8, 8),
+"grid_visibility": 1,
+"ofs": Vector2(-180, -125),
+"primary_grid_step": Vector2i(8, 8),
+"show_group_gizmos": true,
+"show_guides": true,
+"show_helpers": false,
+"show_lock_gizmos": true,
+"show_origin": true,
+"show_position_gizmos": true,
+"show_rulers": true,
+"show_transformation_gizmos": true,
+"show_viewport": true,
+"show_zoom_control": true,
+"smart_snap_active": false,
+"snap_guides": true,
+"snap_node_anchors": true,
+"snap_node_center": true,
+"snap_node_parent": true,
+"snap_node_sides": true,
+"snap_other_nodes": true,
+"snap_pixel": true,
+"snap_relative": false,
+"snap_rotation": false,
+"snap_rotation_offset": 0.0,
+"snap_rotation_step": 0.261799,
+"snap_scale": false,
+"snap_scale_step": 0.1,
+"zoom": 0.25
+}
+3D={
+"fov": 70.01,
+"gizmos_status": {
+"AudioListener3D": 0,
+"AudioStreamPlayer3D": 0,
+"CPUParticles3D": 0,
+"CSGShape3D": 0,
+"Camera3D": 0,
+"CollisionObject3D": 0,
+"CollisionPolygon3D": 0,
+"CollisionShape3D": 0,
+"Decal": 0,
+"FogVolume": 0,
+"GPUParticles3D": 0,
+"GPUParticlesCollision3D": 0,
+"Joint3D": 0,
+"Light3D": 0,
+"LightmapGI": 0,
+"LightmapProbe": 0,
+"Marker3D": 0,
+"MeshInstance3DCustomAABB": 0,
+"NavigationLink3D": 0,
+"NavigationRegion3D": 0,
+"OccluderInstance3D": 0,
+"Path3D": 0,
+"PhysicalBone3D": 0,
+"RayCast3D": 0,
+"ReflectionProbe": 0,
+"ShapeCast3D": 0,
+"Skeleton3D": 0,
+"SoftBody3D": 0,
+"SpringArm3D": 0,
+"VehicleWheel3D": 0,
+"VisibleOnScreenNotifier3D": 0,
+"VoxelGI": 0
+},
+"local_coords": false,
+"preview_sun_env": {
+"environ_ao_enabled": false,
+"environ_enabled": true,
+"environ_energy": 1.0,
+"environ_gi_enabled": false,
+"environ_glow_enabled": false,
+"environ_ground_color": Color(0.2, 0.169, 0.133, 1),
+"environ_sky_color": Color(0.385, 0.454, 0.55, 1),
+"environ_tonemap_enabled": true,
+"sun_color": Color(1, 1, 1, 1),
+"sun_enabled": true,
+"sun_energy": 1.0,
+"sun_max_distance": 100.0,
+"sun_rotation": Vector2(-1.0472, 2.61799)
+},
+"rotate_snap": 15.0,
+"scale_snap": 10.0,
+"show_grid": true,
+"show_origin": true,
+"snap_enabled": false,
+"translate_snap": 1.0,
+"viewport_mode": 1,
+"viewports": [{
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": true,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}, {
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": false,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}, {
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": false,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}, {
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": false,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}],
+"zfar": 4000.01,
+"znear": 0.05
+}
+selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9280/@VSplitContainer@9102/@HSplitContainer@9104/@HSplitContainer@9106/@Control@9107/@SubViewportContainer@9108/@SubViewport@9109/Main")])
diff --git a/.godot/editor/scene_manager.tscn-folding-b759aa255a16c27dcbfcac27740b9d8c.cfg b/.godot/editor/scene_manager.tscn-folding-b759aa255a16c27dcbfcac27740b9d8c.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..204e2bfe8ada7f1ed1427985e10f78afa8884417
--- /dev/null
+++ b/.godot/editor/scene_manager.tscn-folding-b759aa255a16c27dcbfcac27740b9d8c.cfg
@@ -0,0 +1,5 @@
+[folding]
+
+node_unfolds=[NodePath("CanvasLayer/ColorRect"), PackedStringArray("Visibility", "Layout", "Mouse")]
+resource_unfolds=[]
+nodes_folded=[]
diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg
index e7f09ef23c16508c25d90b5706b8e505be58c043..929e66b745aaee1911123fa912cb688fb717b14a 100644
--- a/.godot/editor/script_editor_cache.cfg
+++ b/.godot/editor/script_editor_cache.cfg
@@ -3,11 +3,16 @@
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 20,
+"column": 26,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
+<<<<<<< HEAD
 "row": 121,
 "scroll_position": 98.0,
+=======
+"row": 53,
+"scroll_position": 53.0,
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
@@ -20,8 +25,8 @@ state={
 "column": 0,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 5,
-"scroll_position": 0.0,
+"row": 13,
+"scroll_position": 4.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
@@ -34,8 +39,8 @@ state={
 "column": 0,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
-"row": 17,
-"scroll_position": 0.0,
+"row": 12,
+"scroll_position": 2.0,
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
@@ -63,7 +68,11 @@ state={
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
 "row": 80,
+<<<<<<< HEAD
 "scroll_position": 59.0,
+=======
+"scroll_position": 0.0,
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
@@ -101,7 +110,7 @@ state={
 state={
 "bookmarks": PackedInt32Array(),
 "breakpoints": PackedInt32Array(),
-"column": 40,
+"column": 14,
 "folded_lines": Array[int]([]),
 "h_scroll_position": 0,
 "row": 11,
@@ -151,3 +160,45 @@ state={
 "selection": false,
 "syntax_highlighter": "GDScript"
 }
+
+[res://scripts/Assassin.gd]
+
+state={
+"bookmarks": PackedInt32Array(),
+"breakpoints": PackedInt32Array(),
+"column": 0,
+"folded_lines": Array[int]([]),
+"h_scroll_position": 0,
+"row": 49,
+"scroll_position": 0.0,
+"selection": false,
+"syntax_highlighter": "GDScript"
+}
+
+[res://scripts/Mage.gd]
+
+state={
+"bookmarks": PackedInt32Array(),
+"breakpoints": PackedInt32Array(),
+"column": 19,
+"folded_lines": Array[int]([]),
+"h_scroll_position": 0,
+"row": 113,
+"scroll_position": 101.0,
+"selection": false,
+"syntax_highlighter": "GDScript"
+}
+
+[res://scripts/Wizard.gd]
+
+state={
+"bookmarks": PackedInt32Array(),
+"breakpoints": PackedInt32Array(),
+"column": 0,
+"folded_lines": Array[int]([]),
+"h_scroll_position": 0,
+"row": 0,
+"scroll_position": 0.0,
+"selection": false,
+"syntax_highlighter": "GDScript"
+}
diff --git a/.godot/editor/title_screen.tscn-editstate-c315eff7b5f8a8ce1d6c4c72650ddc19.cfg b/.godot/editor/title_screen.tscn-editstate-c315eff7b5f8a8ce1d6c4c72650ddc19.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..b8840033cf8e9e86c9b8c2818c6c75df406d74ee
--- /dev/null
+++ b/.godot/editor/title_screen.tscn-editstate-c315eff7b5f8a8ce1d6c4c72650ddc19.cfg
@@ -0,0 +1,178 @@
+[editor_states]
+
+Anim={
+"visible": false
+}
+2D={
+"grid_offset": Vector2(0, 0),
+"grid_snap_active": false,
+"grid_step": Vector2(8, 8),
+"grid_visibility": 1,
+"ofs": Vector2(-180, -125),
+"primary_grid_step": Vector2i(8, 8),
+"show_group_gizmos": true,
+"show_guides": true,
+"show_helpers": false,
+"show_lock_gizmos": true,
+"show_origin": true,
+"show_position_gizmos": true,
+"show_rulers": true,
+"show_transformation_gizmos": true,
+"show_viewport": true,
+"show_zoom_control": true,
+"smart_snap_active": false,
+"snap_guides": true,
+"snap_node_anchors": true,
+"snap_node_center": true,
+"snap_node_parent": true,
+"snap_node_sides": true,
+"snap_other_nodes": true,
+"snap_pixel": true,
+"snap_relative": false,
+"snap_rotation": false,
+"snap_rotation_offset": 0.0,
+"snap_rotation_step": 0.261799,
+"snap_scale": false,
+"snap_scale_step": 0.1,
+"zoom": 0.25
+}
+3D={
+"fov": 70.01,
+"gizmos_status": {
+"AudioListener3D": 0,
+"AudioStreamPlayer3D": 0,
+"CPUParticles3D": 0,
+"CSGShape3D": 0,
+"Camera3D": 0,
+"CollisionObject3D": 0,
+"CollisionPolygon3D": 0,
+"CollisionShape3D": 0,
+"Decal": 0,
+"FogVolume": 0,
+"GPUParticles3D": 0,
+"GPUParticlesCollision3D": 0,
+"Joint3D": 0,
+"Light3D": 0,
+"LightmapGI": 0,
+"LightmapProbe": 0,
+"Marker3D": 0,
+"MeshInstance3DCustomAABB": 0,
+"NavigationLink3D": 0,
+"NavigationRegion3D": 0,
+"OccluderInstance3D": 0,
+"Path3D": 0,
+"PhysicalBone3D": 0,
+"RayCast3D": 0,
+"ReflectionProbe": 0,
+"ShapeCast3D": 0,
+"Skeleton3D": 0,
+"SoftBody3D": 0,
+"SpringArm3D": 0,
+"VehicleWheel3D": 0,
+"VisibleOnScreenNotifier3D": 0,
+"VoxelGI": 0
+},
+"local_coords": false,
+"preview_sun_env": {
+"environ_ao_enabled": false,
+"environ_enabled": true,
+"environ_energy": 1.0,
+"environ_gi_enabled": false,
+"environ_glow_enabled": false,
+"environ_ground_color": Color(0.2, 0.169, 0.133, 1),
+"environ_sky_color": Color(0.385, 0.454, 0.55, 1),
+"environ_tonemap_enabled": true,
+"sun_color": Color(1, 1, 1, 1),
+"sun_enabled": true,
+"sun_energy": 1.0,
+"sun_max_distance": 100.0,
+"sun_rotation": Vector2(-1.0472, 2.61799)
+},
+"rotate_snap": 15.0,
+"scale_snap": 10.0,
+"show_grid": true,
+"show_origin": true,
+"snap_enabled": false,
+"translate_snap": 1.0,
+"viewport_mode": 1,
+"viewports": [{
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": true,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}, {
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": false,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}, {
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": false,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}, {
+"auto_orthogonal": false,
+"auto_orthogonal_enabled": true,
+"cinematic_preview": false,
+"display_mode": 21,
+"distance": 4.0,
+"doppler": false,
+"frame_time": false,
+"gizmos": true,
+"half_res": false,
+"information": false,
+"listener": false,
+"lock_rotation": false,
+"orthogonal": false,
+"position": Vector3(0, 0, 0),
+"use_environment": false,
+"view_type": 0,
+"x_rotation": 0.5,
+"y_rotation": -0.5
+}],
+"zfar": 4000.01,
+"znear": 0.05
+}
+selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@16886/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@PanelContainer@98/MainScreen/@CanvasItemEditor@9280/@VSplitContainer@9102/@HSplitContainer@9104/@HSplitContainer@9106/@Control@9107/@SubViewportContainer@9108/@SubViewport@9109/Main")])
diff --git a/.godot/editor/title_screen.tscn-folding-c315eff7b5f8a8ce1d6c4c72650ddc19.cfg b/.godot/editor/title_screen.tscn-folding-c315eff7b5f8a8ce1d6c4c72650ddc19.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..58d6dd90e177b3975ad1a3f1144d64273428c3df
--- /dev/null
+++ b/.godot/editor/title_screen.tscn-folding-c315eff7b5f8a8ce1d6c4c72650ddc19.cfg
@@ -0,0 +1,5 @@
+[folding]
+
+node_unfolds=[NodePath("RichTextLabel"), PackedStringArray("Layout", "Theme Overrides"), NodePath("MenuContainers"), PackedStringArray("Layout", "Theme Overrides"), NodePath("MenuContainers/PlayButton"), PackedStringArray("Layout"), NodePath("MenuContainers/RulesButton"), PackedStringArray("Layout"), NodePath("MenuContainers/QuitButton"), PackedStringArray("Layout")]
+resource_unfolds=["res://scenes/ui/menu_button.tscn::StyleBoxEmpty_no32e", PackedStringArray("Resource"), "res://scenes/ui/menu_button.tscn::StyleBoxEmpty_ui7gk", PackedStringArray("Resource"), "res://scenes/ui/menu_button.tscn::StyleBoxEmpty_27gjt", PackedStringArray("Resource"), "res://scenes/ui/menu_button.tscn::StyleBoxEmpty_c1a70", PackedStringArray("Resource"), "res://scenes/ui/menu_button.tscn::StyleBoxEmpty_6l6dv", PackedStringArray("Resource"), "res://scenes/ui/menu_button.tscn::StyleBoxEmpty_mqbe1", PackedStringArray("Resource"), "res://scenes/ui/menu_button.tscn::StyleBoxEmpty_gynj3", PackedStringArray("Resource"), "res://scenes/ui/menu_button.tscn::StyleBoxEmpty_xjhuq", PackedStringArray("Resource"), "res://scenes/ui/menu_button.tscn::StyleBoxEmpty_intab", PackedStringArray("Resource"), "res://scenes/ui/menu_button.tscn::StyleBoxEmpty_54npp", PackedStringArray("Resource"), "res://scenes/ui/menu_button.tscn::StyleBoxEmpty_22qyq", PackedStringArray("Resource")]
+nodes_folded=[]
diff --git a/.godot/global_script_class_cache.cfg b/.godot/global_script_class_cache.cfg
index 8a455767b16b0bdc12466084acfd74e8d53aa46d..bb92f25816fd1def3e3634088682c0de86a2d701 100644
--- a/.godot/global_script_class_cache.cfg
+++ b/.godot/global_script_class_cache.cfg
@@ -1,5 +1,11 @@
 list=Array[Dictionary]([{
 "base": &"Piece",
+"class": &"Assassin",
+"icon": "",
+"language": &"GDScript",
+"path": "res://scripts/Assassin.gd"
+}, {
+"base": &"Piece",
 "class": &"Bishop",
 "icon": "",
 "language": &"GDScript",
@@ -18,6 +24,12 @@ list=Array[Dictionary]([{
 "path": "res://scripts/Knight.gd"
 }, {
 "base": &"Piece",
+"class": &"Mage",
+"icon": "",
+"language": &"GDScript",
+"path": "res://scripts/Mage.gd"
+}, {
+"base": &"Piece",
 "class": &"Pawn",
 "icon": "",
 "language": &"GDScript",
@@ -41,6 +53,7 @@ list=Array[Dictionary]([{
 "language": &"GDScript",
 "path": "res://scripts/Rook.gd"
 }, {
+<<<<<<< HEAD
 "base": &"Button",
 "class": &"TitleButton",
 "icon": "",
@@ -52,6 +65,13 @@ list=Array[Dictionary]([{
 "icon": "",
 "language": &"GDScript",
 "path": "res://scripts/title_screen/title_screen.gd"
+=======
+"base": &"Piece",
+"class": &"Wizard",
+"icon": "",
+"language": &"GDScript",
+"path": "res://scripts/Wizard.gd"
+>>>>>>> 37cdf4d48acbdca93e302e2c3a2694e420a9d4fb
 }, {
 "base": &"Node",
 "class": &"game",
diff --git a/.godot/imported/Black Pawn Piece 2.png-53c665dc5fb64f7c6fd1ccd28ce57290.ctex b/.godot/imported/Black Pawn Piece 2.png-53c665dc5fb64f7c6fd1ccd28ce57290.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..4c77a996f9cbf1eee57f442e01d29b752942a91f
Binary files /dev/null and b/.godot/imported/Black Pawn Piece 2.png-53c665dc5fb64f7c6fd1ccd28ce57290.ctex differ
diff --git a/.godot/imported/Black Pawn Piece 2.png-53c665dc5fb64f7c6fd1ccd28ce57290.md5 b/.godot/imported/Black Pawn Piece 2.png-53c665dc5fb64f7c6fd1ccd28ce57290.md5
new file mode 100644
index 0000000000000000000000000000000000000000..3502639c2ee45752c8ffe69428424086375dab0e
--- /dev/null
+++ b/.godot/imported/Black Pawn Piece 2.png-53c665dc5fb64f7c6fd1ccd28ce57290.md5	
@@ -0,0 +1,3 @@
+source_md5="59c83717f4479773c81910f7513534a1"
+dest_md5="55b1d3bf4cb1bfdfedc4a904120262f7"
+
diff --git a/.godot/imported/Black Queen Piece 2.png-6a13eb2c8f0b33e3db86a2de9c783482.ctex b/.godot/imported/Black Queen Piece 2.png-6a13eb2c8f0b33e3db86a2de9c783482.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..367844157d6e43e85436fe87b7f823f4742d25a9
Binary files /dev/null and b/.godot/imported/Black Queen Piece 2.png-6a13eb2c8f0b33e3db86a2de9c783482.ctex differ
diff --git a/.godot/imported/Black Queen Piece 2.png-6a13eb2c8f0b33e3db86a2de9c783482.md5 b/.godot/imported/Black Queen Piece 2.png-6a13eb2c8f0b33e3db86a2de9c783482.md5
new file mode 100644
index 0000000000000000000000000000000000000000..fc61e1c57a3b9e3b5fa51e0f6446b98caa5512e8
--- /dev/null
+++ b/.godot/imported/Black Queen Piece 2.png-6a13eb2c8f0b33e3db86a2de9c783482.md5	
@@ -0,0 +1,3 @@
+source_md5="c72ff6ce410023c815eecc192ffd1f5f"
+dest_md5="a86f602aa77f1c08a14e2bf205c8bac2"
+
diff --git a/.godot/imported/Black king piece 2.png-27e393629c79f52a484fa0ad3774adb5.ctex b/.godot/imported/Black king piece 2.png-27e393629c79f52a484fa0ad3774adb5.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..46115479c9e67d640764d2cc50cddc0d7ad2b2ba
Binary files /dev/null and b/.godot/imported/Black king piece 2.png-27e393629c79f52a484fa0ad3774adb5.ctex differ
diff --git a/.godot/imported/Black king piece 2.png-27e393629c79f52a484fa0ad3774adb5.md5 b/.godot/imported/Black king piece 2.png-27e393629c79f52a484fa0ad3774adb5.md5
new file mode 100644
index 0000000000000000000000000000000000000000..405c061ab805463629f5cb421f9ca4ae8108b213
--- /dev/null
+++ b/.godot/imported/Black king piece 2.png-27e393629c79f52a484fa0ad3774adb5.md5	
@@ -0,0 +1,3 @@
+source_md5="1935709c2b7e4f50fc7d37c2958875fa"
+dest_md5="e8865a9e1ccb7fe9cbf82a664a3a8ab8"
+
diff --git a/.godot/imported/Black knight piece.png-313f15dff487853c86d70411694eed92.ctex b/.godot/imported/Black knight piece.png-313f15dff487853c86d70411694eed92.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..4ca6d8b019b68ca2d2b761cd5fa47991208956d3
Binary files /dev/null and b/.godot/imported/Black knight piece.png-313f15dff487853c86d70411694eed92.ctex differ
diff --git a/.godot/imported/Black knight piece.png-313f15dff487853c86d70411694eed92.md5 b/.godot/imported/Black knight piece.png-313f15dff487853c86d70411694eed92.md5
new file mode 100644
index 0000000000000000000000000000000000000000..1e430f0baef0d40cf3f2d26e992c6663af99d188
--- /dev/null
+++ b/.godot/imported/Black knight piece.png-313f15dff487853c86d70411694eed92.md5	
@@ -0,0 +1,3 @@
+source_md5="9d3a01e88e5167cdc2a032aec76afde4"
+dest_md5="320417fbd974b82310ab10782e2703ae"
+
diff --git a/.godot/imported/Black rook piece.png-c4b70293e8009e9592b80006f71f3885.ctex b/.godot/imported/Black rook piece.png-c4b70293e8009e9592b80006f71f3885.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..aa5a1d7d78db4aa8c93d51f0a470c4e525f1539b
Binary files /dev/null and b/.godot/imported/Black rook piece.png-c4b70293e8009e9592b80006f71f3885.ctex differ
diff --git a/.godot/imported/Black rook piece.png-c4b70293e8009e9592b80006f71f3885.md5 b/.godot/imported/Black rook piece.png-c4b70293e8009e9592b80006f71f3885.md5
new file mode 100644
index 0000000000000000000000000000000000000000..241695b67ba720d067760ebab381ccb53653401c
--- /dev/null
+++ b/.godot/imported/Black rook piece.png-c4b70293e8009e9592b80006f71f3885.md5	
@@ -0,0 +1,3 @@
+source_md5="a69d749371967d43ce0763706152da42"
+dest_md5="4371684882a6a390afe848d2fe59b196"
+
diff --git a/.godot/imported/Black_Assassin.png-92f0801c336ab61369a2b93fc5e3abcd.ctex b/.godot/imported/Black_Assassin.png-92f0801c336ab61369a2b93fc5e3abcd.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..5e91ad6496b183ad59c92792de07c8a1527b33e3
Binary files /dev/null and b/.godot/imported/Black_Assassin.png-92f0801c336ab61369a2b93fc5e3abcd.ctex differ
diff --git a/.godot/imported/Black_Assassin.png-92f0801c336ab61369a2b93fc5e3abcd.md5 b/.godot/imported/Black_Assassin.png-92f0801c336ab61369a2b93fc5e3abcd.md5
new file mode 100644
index 0000000000000000000000000000000000000000..d90f3aa1499980619ffb4412a9db4c3ca094198c
--- /dev/null
+++ b/.godot/imported/Black_Assassin.png-92f0801c336ab61369a2b93fc5e3abcd.md5
@@ -0,0 +1,3 @@
+source_md5="dd58f1779aac351f77c9e707928e0b60"
+dest_md5="fae77d965fb4b16538a14cd7c8bc33c8"
+
diff --git a/.godot/imported/Black_Bishop.png-dfabfc0c81260272c753c7f344c2996a.ctex b/.godot/imported/Black_Bishop.png-dfabfc0c81260272c753c7f344c2996a.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..c5bc1669b42b18e66e92c027b1abdaef6a9bcec8
Binary files /dev/null and b/.godot/imported/Black_Bishop.png-dfabfc0c81260272c753c7f344c2996a.ctex differ
diff --git a/.godot/imported/Black_Bishop.png-dfabfc0c81260272c753c7f344c2996a.md5 b/.godot/imported/Black_Bishop.png-dfabfc0c81260272c753c7f344c2996a.md5
new file mode 100644
index 0000000000000000000000000000000000000000..bdf8607aa9e35fccc1fb4b1e086bc1d0ee7fac31
--- /dev/null
+++ b/.godot/imported/Black_Bishop.png-dfabfc0c81260272c753c7f344c2996a.md5
@@ -0,0 +1,3 @@
+source_md5="74722cd6b4af69197b3a90ca6dc5a600"
+dest_md5="0079d364b028e9085f632a52e6754217"
+
diff --git a/.godot/imported/Black_Pawn.png-73ec9504aa6a8628b0708bd600099243.ctex b/.godot/imported/Black_Pawn.png-73ec9504aa6a8628b0708bd600099243.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..05cc471b5802f5f5bd14fb24859f4893be75c850
Binary files /dev/null and b/.godot/imported/Black_Pawn.png-73ec9504aa6a8628b0708bd600099243.ctex differ
diff --git a/.godot/imported/Black_Pawn.png-73ec9504aa6a8628b0708bd600099243.md5 b/.godot/imported/Black_Pawn.png-73ec9504aa6a8628b0708bd600099243.md5
new file mode 100644
index 0000000000000000000000000000000000000000..c0375edb0378edc00c5e4418915465fb0cf57b5f
--- /dev/null
+++ b/.godot/imported/Black_Pawn.png-73ec9504aa6a8628b0708bd600099243.md5
@@ -0,0 +1,3 @@
+source_md5="0c87baba96a1a06cf40525d9bf23b847"
+dest_md5="aad2bcdda1268c1597e87b0cae7bfcd3"
+
diff --git a/.godot/imported/Black_Queen.png-129070e6a0ddc5f7ae2bf0cc746c3d32.ctex b/.godot/imported/Black_Queen.png-129070e6a0ddc5f7ae2bf0cc746c3d32.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..ceb5d54b7039349c110c5f4785762db442ce0935
Binary files /dev/null and b/.godot/imported/Black_Queen.png-129070e6a0ddc5f7ae2bf0cc746c3d32.ctex differ
diff --git a/.godot/imported/Black_Queen.png-129070e6a0ddc5f7ae2bf0cc746c3d32.md5 b/.godot/imported/Black_Queen.png-129070e6a0ddc5f7ae2bf0cc746c3d32.md5
new file mode 100644
index 0000000000000000000000000000000000000000..99a98c790b74c2cef7f3e0b259f2c8063122cd4b
--- /dev/null
+++ b/.godot/imported/Black_Queen.png-129070e6a0ddc5f7ae2bf0cc746c3d32.md5
@@ -0,0 +1,3 @@
+source_md5="fdec13434438c08a8b34f33add889846"
+dest_md5="664876e075f5b16df870670cb7a2dc8e"
+
diff --git a/.godot/imported/Black_king.png-dbd93650975809023d5051fb7e838887.ctex b/.godot/imported/Black_king.png-dbd93650975809023d5051fb7e838887.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..e0b5f13887ffc9a68f22e8090812bfea50b367e7
Binary files /dev/null and b/.godot/imported/Black_king.png-dbd93650975809023d5051fb7e838887.ctex differ
diff --git a/.godot/imported/Black_king.png-dbd93650975809023d5051fb7e838887.md5 b/.godot/imported/Black_king.png-dbd93650975809023d5051fb7e838887.md5
new file mode 100644
index 0000000000000000000000000000000000000000..afda92f4da7d6844b87c450c83f1ae14602b4c59
--- /dev/null
+++ b/.godot/imported/Black_king.png-dbd93650975809023d5051fb7e838887.md5
@@ -0,0 +1,3 @@
+source_md5="b09cc53864aad0597f23c2f8f52f05c4"
+dest_md5="0d9b88b68ce63fe4ef7d1490f5432bf5"
+
diff --git a/.godot/imported/Black_knight.png-929454b56153273c352ed40512756608.ctex b/.godot/imported/Black_knight.png-929454b56153273c352ed40512756608.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..2405ca9ac0691459a46bea92b4fdcf21efa456fb
Binary files /dev/null and b/.godot/imported/Black_knight.png-929454b56153273c352ed40512756608.ctex differ
diff --git a/.godot/imported/Black_knight.png-929454b56153273c352ed40512756608.md5 b/.godot/imported/Black_knight.png-929454b56153273c352ed40512756608.md5
new file mode 100644
index 0000000000000000000000000000000000000000..b11e39862c6805bdf6d518bfd3901a1f0d1e1333
--- /dev/null
+++ b/.godot/imported/Black_knight.png-929454b56153273c352ed40512756608.md5
@@ -0,0 +1,3 @@
+source_md5="dbfb7c7f8f0d5f2811fe487873a478d1"
+dest_md5="e32e9f26113b5445e4e50ce3c87e08f7"
+
diff --git a/.godot/imported/Black_mage.png-f47f7e890ef040a98dd73453a681ffe1.ctex b/.godot/imported/Black_mage.png-f47f7e890ef040a98dd73453a681ffe1.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..cec03fd06eef78efbeb9e6d14a3b6b018638efff
Binary files /dev/null and b/.godot/imported/Black_mage.png-f47f7e890ef040a98dd73453a681ffe1.ctex differ
diff --git a/.godot/imported/Black_mage.png-f47f7e890ef040a98dd73453a681ffe1.md5 b/.godot/imported/Black_mage.png-f47f7e890ef040a98dd73453a681ffe1.md5
new file mode 100644
index 0000000000000000000000000000000000000000..bf0790df6d467213b6c08bee02361edee77d27a8
--- /dev/null
+++ b/.godot/imported/Black_mage.png-f47f7e890ef040a98dd73453a681ffe1.md5
@@ -0,0 +1,3 @@
+source_md5="3b66942c664a2471eb2e6ca1f6a72842"
+dest_md5="c8bd96e475e8bdca3edaeebd02e0137f"
+
diff --git a/.godot/imported/Black_rook.png-b128d49fd31d80383e68d3d654f74445.ctex b/.godot/imported/Black_rook.png-b128d49fd31d80383e68d3d654f74445.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..45c54c1549d0e10cada26990c2b309e2d357d2f9
Binary files /dev/null and b/.godot/imported/Black_rook.png-b128d49fd31d80383e68d3d654f74445.ctex differ
diff --git a/.godot/imported/Black_rook.png-b128d49fd31d80383e68d3d654f74445.md5 b/.godot/imported/Black_rook.png-b128d49fd31d80383e68d3d654f74445.md5
new file mode 100644
index 0000000000000000000000000000000000000000..84d0fb88077cbadfe889b791f7766175ef664169
--- /dev/null
+++ b/.godot/imported/Black_rook.png-b128d49fd31d80383e68d3d654f74445.md5
@@ -0,0 +1,3 @@
+source_md5="05c36488dfe73ef767e701a22408025c"
+dest_md5="7299e0f0e02bb072e8f9b8713111f2b5"
+
diff --git a/.godot/imported/Black_wizard.png-0afea0808b6267d98cbfc8507751a05e.ctex b/.godot/imported/Black_wizard.png-0afea0808b6267d98cbfc8507751a05e.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..bcb683ce9372dd055063ccb016c799855b5030db
Binary files /dev/null and b/.godot/imported/Black_wizard.png-0afea0808b6267d98cbfc8507751a05e.ctex differ
diff --git a/.godot/imported/Black_wizard.png-0afea0808b6267d98cbfc8507751a05e.md5 b/.godot/imported/Black_wizard.png-0afea0808b6267d98cbfc8507751a05e.md5
new file mode 100644
index 0000000000000000000000000000000000000000..522ae4f28a11738556edab8a0ab836f30f43b2bf
--- /dev/null
+++ b/.godot/imported/Black_wizard.png-0afea0808b6267d98cbfc8507751a05e.md5
@@ -0,0 +1,3 @@
+source_md5="762fc768a00930d008d80ae732c47e37"
+dest_md5="6b59234940c24c5a2a96c1ca7974ec76"
+
diff --git a/.godot/imported/Go_Save_The_King_Menu.jpg-83f89575077e7b7b57440725419997a5.ctex b/.godot/imported/Go_Save_The_King_Menu.jpg-83f89575077e7b7b57440725419997a5.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..1fed2753c10d9744913066a561f5246c26d7426e
Binary files /dev/null and b/.godot/imported/Go_Save_The_King_Menu.jpg-83f89575077e7b7b57440725419997a5.ctex differ
diff --git a/.godot/imported/Go_Save_The_King_Menu.jpg-83f89575077e7b7b57440725419997a5.md5 b/.godot/imported/Go_Save_The_King_Menu.jpg-83f89575077e7b7b57440725419997a5.md5
new file mode 100644
index 0000000000000000000000000000000000000000..8e888508bfba7d120aed93530ebe92faa712eecb
--- /dev/null
+++ b/.godot/imported/Go_Save_The_King_Menu.jpg-83f89575077e7b7b57440725419997a5.md5
@@ -0,0 +1,3 @@
+source_md5="1f8596704a4313c38e12d613f3fbe423"
+dest_md5="63e062f92b548311db291c264535621e"
+
diff --git a/.godot/imported/Mockup Gameplay Design.jpg-fc7a299e2b9d8a1e5a6be4e297652c59.ctex b/.godot/imported/Mockup Gameplay Design.jpg-fc7a299e2b9d8a1e5a6be4e297652c59.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..ab9d86c3a7b773c80f230046df1e87a11a10f0ca
Binary files /dev/null and b/.godot/imported/Mockup Gameplay Design.jpg-fc7a299e2b9d8a1e5a6be4e297652c59.ctex differ
diff --git a/.godot/imported/Mockup Gameplay Design.jpg-fc7a299e2b9d8a1e5a6be4e297652c59.md5 b/.godot/imported/Mockup Gameplay Design.jpg-fc7a299e2b9d8a1e5a6be4e297652c59.md5
new file mode 100644
index 0000000000000000000000000000000000000000..0f673a8637d7e83633d942ac98cf38c531524739
--- /dev/null
+++ b/.godot/imported/Mockup Gameplay Design.jpg-fc7a299e2b9d8a1e5a6be4e297652c59.md5	
@@ -0,0 +1,3 @@
+source_md5="1ee24bf68d43a784b8af3720f929830c"
+dest_md5="2260e63ce3cef51f2b4586482514e425"
+
diff --git a/.godot/imported/Mockup Shop Design.jpg-e4f6b20c2703825c77bccf58041364b1.ctex b/.godot/imported/Mockup Shop Design.jpg-e4f6b20c2703825c77bccf58041364b1.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..709c65334bd7c2143ec75f3a6a886e2eeafc0ef3
Binary files /dev/null and b/.godot/imported/Mockup Shop Design.jpg-e4f6b20c2703825c77bccf58041364b1.ctex differ
diff --git a/.godot/imported/Mockup Shop Design.jpg-e4f6b20c2703825c77bccf58041364b1.md5 b/.godot/imported/Mockup Shop Design.jpg-e4f6b20c2703825c77bccf58041364b1.md5
new file mode 100644
index 0000000000000000000000000000000000000000..7a9261493322e4dc57bfefe74a30b1351efddd21
--- /dev/null
+++ b/.godot/imported/Mockup Shop Design.jpg-e4f6b20c2703825c77bccf58041364b1.md5	
@@ -0,0 +1,3 @@
+source_md5="98129eb716061176fa515ad0a02440fd"
+dest_md5="6c8c45f254c9f0041e827b93b1ed6b23"
+
diff --git a/.godot/imported/Piece_move.png-a61f1f317c78cfeb3b5315473d3793a5.ctex b/.godot/imported/Piece_move.png-a61f1f317c78cfeb3b5315473d3793a5.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..c8e2730e6911c4e082b185c9847e09defd5620ed
Binary files /dev/null and b/.godot/imported/Piece_move.png-a61f1f317c78cfeb3b5315473d3793a5.ctex differ
diff --git a/.godot/imported/Piece_move.png-a61f1f317c78cfeb3b5315473d3793a5.md5 b/.godot/imported/Piece_move.png-a61f1f317c78cfeb3b5315473d3793a5.md5
new file mode 100644
index 0000000000000000000000000000000000000000..d9ba24d0770595e1bf48f1f1a720393d66a0617e
--- /dev/null
+++ b/.godot/imported/Piece_move.png-a61f1f317c78cfeb3b5315473d3793a5.md5
@@ -0,0 +1,3 @@
+source_md5="2bde6f58f06c647a772024b29a49494f"
+dest_md5="b16be31b031a9a97c47a41fdcf31e587"
+
diff --git a/.godot/imported/White Pawn Piece 2.png-12fcac4abc245acad969e3cad5656d0f.ctex b/.godot/imported/White Pawn Piece 2.png-12fcac4abc245acad969e3cad5656d0f.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..e8ed8f5a84fff3a99cb1a57521498d3d8ffcb05f
Binary files /dev/null and b/.godot/imported/White Pawn Piece 2.png-12fcac4abc245acad969e3cad5656d0f.ctex differ
diff --git a/.godot/imported/White Pawn Piece 2.png-12fcac4abc245acad969e3cad5656d0f.md5 b/.godot/imported/White Pawn Piece 2.png-12fcac4abc245acad969e3cad5656d0f.md5
new file mode 100644
index 0000000000000000000000000000000000000000..4b8584fb16ad668ffb22cc01ffd0d8f4772e32c4
--- /dev/null
+++ b/.godot/imported/White Pawn Piece 2.png-12fcac4abc245acad969e3cad5656d0f.md5	
@@ -0,0 +1,3 @@
+source_md5="622a8136eb821b19233f189d728672b9"
+dest_md5="d089230e6ad6ba21a62711ae4f0e8f3e"
+
diff --git a/.godot/imported/White Queen Piece 2.png-d234d9b6ad91ed3341f0d4a34fc9fa3f.ctex b/.godot/imported/White Queen Piece 2.png-d234d9b6ad91ed3341f0d4a34fc9fa3f.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..ccbc7c55f11d6fc8d1f9a94bc2aa83ad5eba1911
Binary files /dev/null and b/.godot/imported/White Queen Piece 2.png-d234d9b6ad91ed3341f0d4a34fc9fa3f.ctex differ
diff --git a/.godot/imported/White Queen Piece 2.png-d234d9b6ad91ed3341f0d4a34fc9fa3f.md5 b/.godot/imported/White Queen Piece 2.png-d234d9b6ad91ed3341f0d4a34fc9fa3f.md5
new file mode 100644
index 0000000000000000000000000000000000000000..510fbe7cb2537ed9402922338df06bed2d478f65
--- /dev/null
+++ b/.godot/imported/White Queen Piece 2.png-d234d9b6ad91ed3341f0d4a34fc9fa3f.md5	
@@ -0,0 +1,3 @@
+source_md5="61c017261e705d118e4c8603c1feb0fa"
+dest_md5="38cd64c363eee123b7980d0716b10787"
+
diff --git a/.godot/imported/White king piece 2.png-a29a5efd327b1b6485fc9bd2ece642f5.ctex b/.godot/imported/White king piece 2.png-a29a5efd327b1b6485fc9bd2ece642f5.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..f8b96ee2d295d44f3bc8f9d41ae77f43e317d49a
Binary files /dev/null and b/.godot/imported/White king piece 2.png-a29a5efd327b1b6485fc9bd2ece642f5.ctex differ
diff --git a/.godot/imported/White king piece 2.png-a29a5efd327b1b6485fc9bd2ece642f5.md5 b/.godot/imported/White king piece 2.png-a29a5efd327b1b6485fc9bd2ece642f5.md5
new file mode 100644
index 0000000000000000000000000000000000000000..3c42c8787839cb3758b156dcee917c60f9401f86
--- /dev/null
+++ b/.godot/imported/White king piece 2.png-a29a5efd327b1b6485fc9bd2ece642f5.md5	
@@ -0,0 +1,3 @@
+source_md5="2599ef6252dce06c7e5d29659c1425a9"
+dest_md5="46c461e3083d3611612ad9da97d5f49b"
+
diff --git a/.godot/imported/White knight piece.png-3aa1e1b78f43a222eb7c9d2fc679dbc5.ctex b/.godot/imported/White knight piece.png-3aa1e1b78f43a222eb7c9d2fc679dbc5.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..3558675d3efdad3ad51a430332cb0071b31e6ec8
Binary files /dev/null and b/.godot/imported/White knight piece.png-3aa1e1b78f43a222eb7c9d2fc679dbc5.ctex differ
diff --git a/.godot/imported/White knight piece.png-3aa1e1b78f43a222eb7c9d2fc679dbc5.md5 b/.godot/imported/White knight piece.png-3aa1e1b78f43a222eb7c9d2fc679dbc5.md5
new file mode 100644
index 0000000000000000000000000000000000000000..ebfb902d794e4bdc32cfa3a83cd5ea8751285b68
--- /dev/null
+++ b/.godot/imported/White knight piece.png-3aa1e1b78f43a222eb7c9d2fc679dbc5.md5	
@@ -0,0 +1,3 @@
+source_md5="83b9f365c5a031d16126269ed19da794"
+dest_md5="adc138331d37e778d28a145e3e937d36"
+
diff --git a/.godot/imported/White rook piece.png-88c25766f44b2d923dd3f921fe03f446.ctex b/.godot/imported/White rook piece.png-88c25766f44b2d923dd3f921fe03f446.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..0135f724c37f2a355e2bc27797bb431a9e07c4d5
Binary files /dev/null and b/.godot/imported/White rook piece.png-88c25766f44b2d923dd3f921fe03f446.ctex differ
diff --git a/.godot/imported/White rook piece.png-88c25766f44b2d923dd3f921fe03f446.md5 b/.godot/imported/White rook piece.png-88c25766f44b2d923dd3f921fe03f446.md5
new file mode 100644
index 0000000000000000000000000000000000000000..5b319911f4c5d74f0537ec0a7655707c3a63df53
--- /dev/null
+++ b/.godot/imported/White rook piece.png-88c25766f44b2d923dd3f921fe03f446.md5	
@@ -0,0 +1,3 @@
+source_md5="504faa524cd45ca80e0ad35af04c4323"
+dest_md5="a76269a71587750d6da502b029810986"
+
diff --git a/.godot/imported/White_Assassin.png-b91d29cfa010c3f963e5fe98fea3f7ce.ctex b/.godot/imported/White_Assassin.png-b91d29cfa010c3f963e5fe98fea3f7ce.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..7ae711dfd8982339eea46364c8908ae248d46fdf
Binary files /dev/null and b/.godot/imported/White_Assassin.png-b91d29cfa010c3f963e5fe98fea3f7ce.ctex differ
diff --git a/.godot/imported/White_Assassin.png-b91d29cfa010c3f963e5fe98fea3f7ce.md5 b/.godot/imported/White_Assassin.png-b91d29cfa010c3f963e5fe98fea3f7ce.md5
new file mode 100644
index 0000000000000000000000000000000000000000..ca8c8eb90a38e38bd2fb15eab17c30d90ff1873e
--- /dev/null
+++ b/.godot/imported/White_Assassin.png-b91d29cfa010c3f963e5fe98fea3f7ce.md5
@@ -0,0 +1,3 @@
+source_md5="d41e23ee4f8995d506954da3503335a7"
+dest_md5="008988ad8ac41b708662a52a766f1f12"
+
diff --git a/.godot/imported/White_Bishop.png-7213de7b15a92e5747f2331d55eafa2b.ctex b/.godot/imported/White_Bishop.png-7213de7b15a92e5747f2331d55eafa2b.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..a6af9b0ad56b50bb9a92cade7174847850b0201d
Binary files /dev/null and b/.godot/imported/White_Bishop.png-7213de7b15a92e5747f2331d55eafa2b.ctex differ
diff --git a/.godot/imported/White_Bishop.png-7213de7b15a92e5747f2331d55eafa2b.md5 b/.godot/imported/White_Bishop.png-7213de7b15a92e5747f2331d55eafa2b.md5
new file mode 100644
index 0000000000000000000000000000000000000000..79fcd6003acf4f8773127313ff145ca1e823843d
--- /dev/null
+++ b/.godot/imported/White_Bishop.png-7213de7b15a92e5747f2331d55eafa2b.md5
@@ -0,0 +1,3 @@
+source_md5="7b4523ada6454e6c05ccada8bb49c6ed"
+dest_md5="e912fc314aee4f794e465e9fb18c24cc"
+
diff --git a/.godot/imported/White_Pawn.png-4fbaffc4602d71e6cac15276c9938262.ctex b/.godot/imported/White_Pawn.png-4fbaffc4602d71e6cac15276c9938262.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..be5e1bd60709d6a7a98b8c60ed83fd719dc9493c
Binary files /dev/null and b/.godot/imported/White_Pawn.png-4fbaffc4602d71e6cac15276c9938262.ctex differ
diff --git a/.godot/imported/White_Pawn.png-4fbaffc4602d71e6cac15276c9938262.md5 b/.godot/imported/White_Pawn.png-4fbaffc4602d71e6cac15276c9938262.md5
new file mode 100644
index 0000000000000000000000000000000000000000..a0a10eec3dd0b6b0545b3ab04f247b840ad0c0df
--- /dev/null
+++ b/.godot/imported/White_Pawn.png-4fbaffc4602d71e6cac15276c9938262.md5
@@ -0,0 +1,3 @@
+source_md5="c56048eb1dc7be6736cd82ef34d36ece"
+dest_md5="4b5b68a772fd44d82f8e4d479580ae70"
+
diff --git a/.godot/imported/White_Queen.png-a9036b7b39d84991818902d33b82e9f7.ctex b/.godot/imported/White_Queen.png-a9036b7b39d84991818902d33b82e9f7.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..889bdba09d75b9049a34ccefabdd3f18a4947041
Binary files /dev/null and b/.godot/imported/White_Queen.png-a9036b7b39d84991818902d33b82e9f7.ctex differ
diff --git a/.godot/imported/White_Queen.png-a9036b7b39d84991818902d33b82e9f7.md5 b/.godot/imported/White_Queen.png-a9036b7b39d84991818902d33b82e9f7.md5
new file mode 100644
index 0000000000000000000000000000000000000000..be96c57cee0a3118478d277c7aba14bea816aacb
--- /dev/null
+++ b/.godot/imported/White_Queen.png-a9036b7b39d84991818902d33b82e9f7.md5
@@ -0,0 +1,3 @@
+source_md5="f2e1d6f97bfa9fbe0ca1e2897d3f9b81"
+dest_md5="52621a4f50d4b91df03fcdc255a09175"
+
diff --git a/.godot/imported/White_king.png-c9b2bce7af3c06b61d26520db25cf997.ctex b/.godot/imported/White_king.png-c9b2bce7af3c06b61d26520db25cf997.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..a33b2d2ab7cc33b086a24d65279a311cc1d4df47
Binary files /dev/null and b/.godot/imported/White_king.png-c9b2bce7af3c06b61d26520db25cf997.ctex differ
diff --git a/.godot/imported/White_king.png-c9b2bce7af3c06b61d26520db25cf997.md5 b/.godot/imported/White_king.png-c9b2bce7af3c06b61d26520db25cf997.md5
new file mode 100644
index 0000000000000000000000000000000000000000..52bdad03ecdfa115a058314e841159a239d3ee38
--- /dev/null
+++ b/.godot/imported/White_king.png-c9b2bce7af3c06b61d26520db25cf997.md5
@@ -0,0 +1,3 @@
+source_md5="d50413fd961dc7e98d6079463da0ba24"
+dest_md5="68aeebe064314200e034cd68289adcf0"
+
diff --git a/.godot/imported/White_knight.png-c190fd776f0ab6d33f3119fa59d71766.ctex b/.godot/imported/White_knight.png-c190fd776f0ab6d33f3119fa59d71766.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..26d5bbe6a48827ce1a6aeb0028236065be376b14
Binary files /dev/null and b/.godot/imported/White_knight.png-c190fd776f0ab6d33f3119fa59d71766.ctex differ
diff --git a/.godot/imported/White_knight.png-c190fd776f0ab6d33f3119fa59d71766.md5 b/.godot/imported/White_knight.png-c190fd776f0ab6d33f3119fa59d71766.md5
new file mode 100644
index 0000000000000000000000000000000000000000..2ab4ca6b2e74e2da8d816921a7894a9a45cc4bff
--- /dev/null
+++ b/.godot/imported/White_knight.png-c190fd776f0ab6d33f3119fa59d71766.md5
@@ -0,0 +1,3 @@
+source_md5="0aeae9d0c31b59e0cdecb4b22467d08e"
+dest_md5="69bcc0fb89685324c8dda57d074e2c51"
+
diff --git a/.godot/imported/White_mage.png-fdbd721bd126c3ac8c64372cf709b530.ctex b/.godot/imported/White_mage.png-fdbd721bd126c3ac8c64372cf709b530.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..b3d3914673352e9ee67fc8069ef0eb5256289f06
Binary files /dev/null and b/.godot/imported/White_mage.png-fdbd721bd126c3ac8c64372cf709b530.ctex differ
diff --git a/.godot/imported/White_mage.png-fdbd721bd126c3ac8c64372cf709b530.md5 b/.godot/imported/White_mage.png-fdbd721bd126c3ac8c64372cf709b530.md5
new file mode 100644
index 0000000000000000000000000000000000000000..5a4c697ac6380f31be7027bfef7be41ca569e9cf
--- /dev/null
+++ b/.godot/imported/White_mage.png-fdbd721bd126c3ac8c64372cf709b530.md5
@@ -0,0 +1,3 @@
+source_md5="0934bd3e286bd9f1032ecbe10c481fad"
+dest_md5="74aefeccc032fe0cc0eac058899e08b3"
+
diff --git a/.godot/imported/White_rook.png-c9db72425068861f66815521164a4236.ctex b/.godot/imported/White_rook.png-c9db72425068861f66815521164a4236.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..f9a27693d8d7461ef9a5b29a6ef3c131de02b352
Binary files /dev/null and b/.godot/imported/White_rook.png-c9db72425068861f66815521164a4236.ctex differ
diff --git a/.godot/imported/White_rook.png-c9db72425068861f66815521164a4236.md5 b/.godot/imported/White_rook.png-c9db72425068861f66815521164a4236.md5
new file mode 100644
index 0000000000000000000000000000000000000000..de25afe770bf38cba7094c6799689c564e0f92ad
--- /dev/null
+++ b/.godot/imported/White_rook.png-c9db72425068861f66815521164a4236.md5
@@ -0,0 +1,3 @@
+source_md5="8a68b5eb86da6c4d7f1e726dafe6f47a"
+dest_md5="83f6135b226d26d07a58f8796fc21d75"
+
diff --git a/.godot/imported/White_wizard.png-17abee749f8f28c0cac280088ae22bc1.ctex b/.godot/imported/White_wizard.png-17abee749f8f28c0cac280088ae22bc1.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..a9e3bd0b6de90958eb0d5e218f1437daf160ccf1
Binary files /dev/null and b/.godot/imported/White_wizard.png-17abee749f8f28c0cac280088ae22bc1.ctex differ
diff --git a/.godot/imported/White_wizard.png-17abee749f8f28c0cac280088ae22bc1.md5 b/.godot/imported/White_wizard.png-17abee749f8f28c0cac280088ae22bc1.md5
new file mode 100644
index 0000000000000000000000000000000000000000..323643078d5d936568ef61c228302ff11c6f0dc9
--- /dev/null
+++ b/.godot/imported/White_wizard.png-17abee749f8f28c0cac280088ae22bc1.md5
@@ -0,0 +1,3 @@
+source_md5="fe439dfb26e8d2d1daa09e799b6bc84b"
+dest_md5="5ddd4e0cd5f42121bb5f4abd574478be"
+
diff --git a/.godot/imported/bishop.png-bfc2f2b424be190d47037bc32ab9fe92.ctex b/.godot/imported/bishop.png-bfc2f2b424be190d47037bc32ab9fe92.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..4a3ed7ef03357628f0895ff09a771c56a9b2d2c9
Binary files /dev/null and b/.godot/imported/bishop.png-bfc2f2b424be190d47037bc32ab9fe92.ctex differ
diff --git a/.godot/imported/bishop.png-bfc2f2b424be190d47037bc32ab9fe92.md5 b/.godot/imported/bishop.png-bfc2f2b424be190d47037bc32ab9fe92.md5
new file mode 100644
index 0000000000000000000000000000000000000000..8803919043ba894edba81b0258a38c45a4c9f967
--- /dev/null
+++ b/.godot/imported/bishop.png-bfc2f2b424be190d47037bc32ab9fe92.md5
@@ -0,0 +1,3 @@
+source_md5="ce47828c702d2e4591ec897d7e3433b6"
+dest_md5="579006a4474b743ed8173ccb6d4f0238"
+
diff --git a/.godot/imported/black_bishop.png-b2a7b6ca0911e8290b5d79293bde0a77.ctex b/.godot/imported/black_bishop.png-b2a7b6ca0911e8290b5d79293bde0a77.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..567555c65e8c2f63f7e61530708988d5d1bb2555
Binary files /dev/null and b/.godot/imported/black_bishop.png-b2a7b6ca0911e8290b5d79293bde0a77.ctex differ
diff --git a/.godot/imported/black_bishop.png-b2a7b6ca0911e8290b5d79293bde0a77.md5 b/.godot/imported/black_bishop.png-b2a7b6ca0911e8290b5d79293bde0a77.md5
new file mode 100644
index 0000000000000000000000000000000000000000..e5d5f2b8cf410b08e37f48f4960d08b35562431c
--- /dev/null
+++ b/.godot/imported/black_bishop.png-b2a7b6ca0911e8290b5d79293bde0a77.md5
@@ -0,0 +1,3 @@
+source_md5="34a2739f73f8697280a06ee83681088f"
+dest_md5="beccd41ebe7c6431aca104f3b2a26f1c"
+
diff --git a/.godot/imported/black_king.png-e894adc6eb4238dd317df1d105d5e6e5.ctex b/.godot/imported/black_king.png-e894adc6eb4238dd317df1d105d5e6e5.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..19d9bedac15f2365cfb52755c4f53585996a6095
Binary files /dev/null and b/.godot/imported/black_king.png-e894adc6eb4238dd317df1d105d5e6e5.ctex differ
diff --git a/.godot/imported/black_king.png-e894adc6eb4238dd317df1d105d5e6e5.md5 b/.godot/imported/black_king.png-e894adc6eb4238dd317df1d105d5e6e5.md5
new file mode 100644
index 0000000000000000000000000000000000000000..f73f30d18ab306d94a333f6cea11a90eee5a24c8
--- /dev/null
+++ b/.godot/imported/black_king.png-e894adc6eb4238dd317df1d105d5e6e5.md5
@@ -0,0 +1,3 @@
+source_md5="91006f821e2e4089c1bbefead9cd2ec0"
+dest_md5="f7c98aed97c78db0828bb18a24b156ae"
+
diff --git a/.godot/imported/black_knight.png-acdc728bdaf04bafe2924d271acac317.ctex b/.godot/imported/black_knight.png-acdc728bdaf04bafe2924d271acac317.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..2eaae383e6dbbd96db5b02decd22d0e6020d1bfe
Binary files /dev/null and b/.godot/imported/black_knight.png-acdc728bdaf04bafe2924d271acac317.ctex differ
diff --git a/.godot/imported/black_knight.png-acdc728bdaf04bafe2924d271acac317.md5 b/.godot/imported/black_knight.png-acdc728bdaf04bafe2924d271acac317.md5
new file mode 100644
index 0000000000000000000000000000000000000000..e15c141360ad08f3da27d9670f657fd5014d8b11
--- /dev/null
+++ b/.godot/imported/black_knight.png-acdc728bdaf04bafe2924d271acac317.md5
@@ -0,0 +1,3 @@
+source_md5="3feb8725d4cf8697be98cbea53bb7cf6"
+dest_md5="322ff1351923c5eac435c7092f86d483"
+
diff --git a/.godot/imported/black_pawn.png-9d2aff23e3238bd927bdd21d6bd42a91.ctex b/.godot/imported/black_pawn.png-9d2aff23e3238bd927bdd21d6bd42a91.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..198c30cfa229763b5f3356917a7dc14c4d7fe9c3
Binary files /dev/null and b/.godot/imported/black_pawn.png-9d2aff23e3238bd927bdd21d6bd42a91.ctex differ
diff --git a/.godot/imported/black_pawn.png-9d2aff23e3238bd927bdd21d6bd42a91.md5 b/.godot/imported/black_pawn.png-9d2aff23e3238bd927bdd21d6bd42a91.md5
new file mode 100644
index 0000000000000000000000000000000000000000..593388e4e052140462f96796cc95ee0ba8b483eb
--- /dev/null
+++ b/.godot/imported/black_pawn.png-9d2aff23e3238bd927bdd21d6bd42a91.md5
@@ -0,0 +1,3 @@
+source_md5="559c824bbbfc29034d637b558bd81e3b"
+dest_md5="280e729c5bc57a120e357c828eb75d2d"
+
diff --git a/.godot/imported/black_queen.png-3efa3286eab27739b6c48dec1537a357.ctex b/.godot/imported/black_queen.png-3efa3286eab27739b6c48dec1537a357.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..ea54691004c56fcf4bacd263462f2061187876e4
Binary files /dev/null and b/.godot/imported/black_queen.png-3efa3286eab27739b6c48dec1537a357.ctex differ
diff --git a/.godot/imported/black_queen.png-3efa3286eab27739b6c48dec1537a357.md5 b/.godot/imported/black_queen.png-3efa3286eab27739b6c48dec1537a357.md5
new file mode 100644
index 0000000000000000000000000000000000000000..96f859535fad4441c801659373a2c83fed9ef6d9
--- /dev/null
+++ b/.godot/imported/black_queen.png-3efa3286eab27739b6c48dec1537a357.md5
@@ -0,0 +1,3 @@
+source_md5="551b7b8ee1d2cb67dc2cb4d626ad281f"
+dest_md5="9ac10389d9b47bae3916b2025956b101"
+
diff --git a/.godot/imported/black_rook.png-dd50851b220aa4b546437fa7af52783e.ctex b/.godot/imported/black_rook.png-dd50851b220aa4b546437fa7af52783e.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..b4adb292a53a532142b10f11fba5aca38d12ac2c
Binary files /dev/null and b/.godot/imported/black_rook.png-dd50851b220aa4b546437fa7af52783e.ctex differ
diff --git a/.godot/imported/black_rook.png-dd50851b220aa4b546437fa7af52783e.md5 b/.godot/imported/black_rook.png-dd50851b220aa4b546437fa7af52783e.md5
new file mode 100644
index 0000000000000000000000000000000000000000..6916f66e56e189b61c49488819dd1a29f99c3c8c
--- /dev/null
+++ b/.godot/imported/black_rook.png-dd50851b220aa4b546437fa7af52783e.md5
@@ -0,0 +1,3 @@
+source_md5="bb68660d27be5b7bd74502f41f63fd83"
+dest_md5="9ccf8f0a3c67d376da67fdf9768cfd98"
+
diff --git a/.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex b/.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..b212427291aeaa58ce8b1638e8eee604482174bb
Binary files /dev/null and b/.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex differ
diff --git a/.godot/imported/knight.png-f2df08b890c4ea830c735d8e0f73a8e2.ctex b/.godot/imported/knight.png-f2df08b890c4ea830c735d8e0f73a8e2.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..37e189440b9d41b12da216c8f6254274a73ce2dd
Binary files /dev/null and b/.godot/imported/knight.png-f2df08b890c4ea830c735d8e0f73a8e2.ctex differ
diff --git a/.godot/imported/knight.png-f2df08b890c4ea830c735d8e0f73a8e2.md5 b/.godot/imported/knight.png-f2df08b890c4ea830c735d8e0f73a8e2.md5
new file mode 100644
index 0000000000000000000000000000000000000000..ed3121266081eea87c7ef7603db022290fc5569c
--- /dev/null
+++ b/.godot/imported/knight.png-f2df08b890c4ea830c735d8e0f73a8e2.md5
@@ -0,0 +1,3 @@
+source_md5="ead910c41d67c3797a4ad653271d0bb6"
+dest_md5="6c8b3361379aace840884a56e7fe6afb"
+
diff --git a/.godot/imported/pawn.png-94d470ac8580abcc11784178b451f480.ctex b/.godot/imported/pawn.png-94d470ac8580abcc11784178b451f480.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..0fdfb7c921d7ac6f70bd12a49edfd25e85705885
Binary files /dev/null and b/.godot/imported/pawn.png-94d470ac8580abcc11784178b451f480.ctex differ
diff --git a/.godot/imported/pawn.png-94d470ac8580abcc11784178b451f480.md5 b/.godot/imported/pawn.png-94d470ac8580abcc11784178b451f480.md5
new file mode 100644
index 0000000000000000000000000000000000000000..f13703ac2d8cd66face0ce8d59c9c75ddd84719a
--- /dev/null
+++ b/.godot/imported/pawn.png-94d470ac8580abcc11784178b451f480.md5
@@ -0,0 +1,3 @@
+source_md5="21f975f6412335f37618d7e72d3ca0d9"
+dest_md5="571e8dabed7bdd31ed6899a6bf5d7586"
+
diff --git a/.godot/imported/play_button.png-7918b15e1b73d511eceb34d4cd760d86.ctex b/.godot/imported/play_button.png-7918b15e1b73d511eceb34d4cd760d86.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..f350873be9ff08f32a580b96af86ce10384d184b
Binary files /dev/null and b/.godot/imported/play_button.png-7918b15e1b73d511eceb34d4cd760d86.ctex differ
diff --git a/.godot/imported/play_button.png-7918b15e1b73d511eceb34d4cd760d86.md5 b/.godot/imported/play_button.png-7918b15e1b73d511eceb34d4cd760d86.md5
new file mode 100644
index 0000000000000000000000000000000000000000..07a7ca641a5fc3065208003e02608953cc703526
--- /dev/null
+++ b/.godot/imported/play_button.png-7918b15e1b73d511eceb34d4cd760d86.md5
@@ -0,0 +1,3 @@
+source_md5="72ae2b3c03615f8f3e38170acd3111a1"
+dest_md5="1dce6d7284fb7cf4e920c5acdd49365b"
+
diff --git a/.godot/imported/quit_button.png-d90620b511b20b4158f543ece5e826ec.ctex b/.godot/imported/quit_button.png-d90620b511b20b4158f543ece5e826ec.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..fd18774a12a74e4e608384fd4f251e2647bd7ff9
Binary files /dev/null and b/.godot/imported/quit_button.png-d90620b511b20b4158f543ece5e826ec.ctex differ
diff --git a/.godot/imported/quit_button.png-d90620b511b20b4158f543ece5e826ec.md5 b/.godot/imported/quit_button.png-d90620b511b20b4158f543ece5e826ec.md5
new file mode 100644
index 0000000000000000000000000000000000000000..052a0e1ebfd8c53e684d1f7879877bb7d3fb7cfd
--- /dev/null
+++ b/.godot/imported/quit_button.png-d90620b511b20b4158f543ece5e826ec.md5
@@ -0,0 +1,3 @@
+source_md5="67e2b65abb1f7db7d5c7100be05542af"
+dest_md5="7734869149eb58956f95712afd4099b9"
+
diff --git a/.godot/imported/rook.png-895cf913da3986e60bb87fa7e31fca70.ctex b/.godot/imported/rook.png-895cf913da3986e60bb87fa7e31fca70.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..0c7f0d280ac8b1eb90d3306e3fd93c44524607c8
Binary files /dev/null and b/.godot/imported/rook.png-895cf913da3986e60bb87fa7e31fca70.ctex differ
diff --git a/.godot/imported/rook.png-895cf913da3986e60bb87fa7e31fca70.md5 b/.godot/imported/rook.png-895cf913da3986e60bb87fa7e31fca70.md5
new file mode 100644
index 0000000000000000000000000000000000000000..60e18632b2de91496992982c34acde3ba71d7b03
--- /dev/null
+++ b/.godot/imported/rook.png-895cf913da3986e60bb87fa7e31fca70.md5
@@ -0,0 +1,3 @@
+source_md5="e8dff96eed7fef0bec4718eef3da9ec7"
+dest_md5="b9bdc40e1ac99fc72394598b2b20e202"
+
diff --git a/.godot/imported/rules_button.png-e8ba2274147fd839830a04599a2c0f8e.ctex b/.godot/imported/rules_button.png-e8ba2274147fd839830a04599a2c0f8e.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..87ff1c55640e12851a52f56c1bdf040f474e5353
Binary files /dev/null and b/.godot/imported/rules_button.png-e8ba2274147fd839830a04599a2c0f8e.ctex differ
diff --git a/.godot/imported/rules_button.png-e8ba2274147fd839830a04599a2c0f8e.md5 b/.godot/imported/rules_button.png-e8ba2274147fd839830a04599a2c0f8e.md5
new file mode 100644
index 0000000000000000000000000000000000000000..0fba4075aa460c33b8707f0b37a79421e3a8af75
--- /dev/null
+++ b/.godot/imported/rules_button.png-e8ba2274147fd839830a04599a2c0f8e.md5
@@ -0,0 +1,3 @@
+source_md5="6881662834748feef2e98754259b57a8"
+dest_md5="fd57490bd0c357b6ac88c4d162191887"
+
diff --git a/.godot/imported/temp_chess_board.png-388b10251df72e72615d5cee2ed041c8.ctex b/.godot/imported/temp_chess_board.png-388b10251df72e72615d5cee2ed041c8.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..4ed4287bae9c9bf7b707e05bb1a716cb2f0a65b5
Binary files /dev/null and b/.godot/imported/temp_chess_board.png-388b10251df72e72615d5cee2ed041c8.ctex differ
diff --git a/.godot/imported/temp_chess_board.png-388b10251df72e72615d5cee2ed041c8.md5 b/.godot/imported/temp_chess_board.png-388b10251df72e72615d5cee2ed041c8.md5
new file mode 100644
index 0000000000000000000000000000000000000000..02f26b3658a119140b115feb0f55820b0309dded
--- /dev/null
+++ b/.godot/imported/temp_chess_board.png-388b10251df72e72615d5cee2ed041c8.md5
@@ -0,0 +1,3 @@
+source_md5="cdfed4b78b96e7565e4cbf48943952c7"
+dest_md5="630f49aafe6c18ba5be3a70e0f5641f1"
+
diff --git a/.godot/imported/tile.png-2cd3a8b44585e2e7ba705162e472441c.ctex b/.godot/imported/tile.png-2cd3a8b44585e2e7ba705162e472441c.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..d8766f8910caf0123608b41aa237f50eaad5b237
Binary files /dev/null and b/.godot/imported/tile.png-2cd3a8b44585e2e7ba705162e472441c.ctex differ
diff --git a/.godot/imported/tile.png-2cd3a8b44585e2e7ba705162e472441c.md5 b/.godot/imported/tile.png-2cd3a8b44585e2e7ba705162e472441c.md5
new file mode 100644
index 0000000000000000000000000000000000000000..ef0e9ef29a4409ca881f517649b2274c3d367457
--- /dev/null
+++ b/.godot/imported/tile.png-2cd3a8b44585e2e7ba705162e472441c.md5
@@ -0,0 +1,3 @@
+source_md5="360d60d394276688bc8096b817fe5bd1"
+dest_md5="149dec25f202c6ab5399bee6a7c6b0f7"
+
diff --git a/.godot/imported/turn-black.png-ea02298045e58a9b66e43f0b8a65df8e.ctex b/.godot/imported/turn-black.png-ea02298045e58a9b66e43f0b8a65df8e.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..9e847c5c043e87e3201f881c38bfa4403c7f9e6b
Binary files /dev/null and b/.godot/imported/turn-black.png-ea02298045e58a9b66e43f0b8a65df8e.ctex differ
diff --git a/.godot/imported/turn-black.png-ea02298045e58a9b66e43f0b8a65df8e.md5 b/.godot/imported/turn-black.png-ea02298045e58a9b66e43f0b8a65df8e.md5
new file mode 100644
index 0000000000000000000000000000000000000000..6a9a7e5e11fd5545b96b902e1ac34fc471e7c1a9
--- /dev/null
+++ b/.godot/imported/turn-black.png-ea02298045e58a9b66e43f0b8a65df8e.md5
@@ -0,0 +1,3 @@
+source_md5="69de60c9a0ce8efc154152c22865cf1e"
+dest_md5="025b539a499c7ac3b4cd3a07fd3a5a85"
+
diff --git a/.godot/imported/turn-white.png-3c93a35532d8750a35b7535b2f0faf39.ctex b/.godot/imported/turn-white.png-3c93a35532d8750a35b7535b2f0faf39.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..c8b4d8bd52ff5097935bdd29d8202b8d19de3163
Binary files /dev/null and b/.godot/imported/turn-white.png-3c93a35532d8750a35b7535b2f0faf39.ctex differ
diff --git a/.godot/imported/turn-white.png-3c93a35532d8750a35b7535b2f0faf39.md5 b/.godot/imported/turn-white.png-3c93a35532d8750a35b7535b2f0faf39.md5
new file mode 100644
index 0000000000000000000000000000000000000000..7b2f0c3a82577c3dd7bae33bb61446bddd430839
--- /dev/null
+++ b/.godot/imported/turn-white.png-3c93a35532d8750a35b7535b2f0faf39.md5
@@ -0,0 +1,3 @@
+source_md5="b780f18b92f7ad8975ca69758c410111"
+dest_md5="032b23172ca5c4cc7b7f13546901f077"
+
diff --git a/.godot/imported/white_bishop.png-85b7978e25b3ea4f79ff44a9f568ecf0.ctex b/.godot/imported/white_bishop.png-85b7978e25b3ea4f79ff44a9f568ecf0.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..d5d78b0a1afa14d2d338fde6fb15f7dffd50bffe
Binary files /dev/null and b/.godot/imported/white_bishop.png-85b7978e25b3ea4f79ff44a9f568ecf0.ctex differ
diff --git a/.godot/imported/white_bishop.png-85b7978e25b3ea4f79ff44a9f568ecf0.md5 b/.godot/imported/white_bishop.png-85b7978e25b3ea4f79ff44a9f568ecf0.md5
new file mode 100644
index 0000000000000000000000000000000000000000..92afd26c9c65dddf1cf62b966d28c07252b81714
--- /dev/null
+++ b/.godot/imported/white_bishop.png-85b7978e25b3ea4f79ff44a9f568ecf0.md5
@@ -0,0 +1,3 @@
+source_md5="f69b3625e3a9101251e192fd18ddfc8b"
+dest_md5="0740152fd751858857bb118440f59570"
+
diff --git a/.godot/imported/white_king.png-dcb53a929e90165d5f301c3cf93f13e1.ctex b/.godot/imported/white_king.png-dcb53a929e90165d5f301c3cf93f13e1.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..2722cf4063d87c9db1e906dd445cba2e56f4ad9a
Binary files /dev/null and b/.godot/imported/white_king.png-dcb53a929e90165d5f301c3cf93f13e1.ctex differ
diff --git a/.godot/imported/white_king.png-dcb53a929e90165d5f301c3cf93f13e1.md5 b/.godot/imported/white_king.png-dcb53a929e90165d5f301c3cf93f13e1.md5
new file mode 100644
index 0000000000000000000000000000000000000000..c7cadd8e256971e370a4d924660f8a34fa206256
--- /dev/null
+++ b/.godot/imported/white_king.png-dcb53a929e90165d5f301c3cf93f13e1.md5
@@ -0,0 +1,3 @@
+source_md5="b22a7b0319f93617caa637dc16d10cba"
+dest_md5="cf579f4c59508eab8b6a53dc1a185078"
+
diff --git a/.godot/imported/white_knight.png-e597f16fca1a4238329770d2db0d7650.ctex b/.godot/imported/white_knight.png-e597f16fca1a4238329770d2db0d7650.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..3798080c898ee56229616e0477c47154f8fda8ee
Binary files /dev/null and b/.godot/imported/white_knight.png-e597f16fca1a4238329770d2db0d7650.ctex differ
diff --git a/.godot/imported/white_knight.png-e597f16fca1a4238329770d2db0d7650.md5 b/.godot/imported/white_knight.png-e597f16fca1a4238329770d2db0d7650.md5
new file mode 100644
index 0000000000000000000000000000000000000000..736484a5c5febdf0080099f523929633160700a4
--- /dev/null
+++ b/.godot/imported/white_knight.png-e597f16fca1a4238329770d2db0d7650.md5
@@ -0,0 +1,3 @@
+source_md5="d29541fcfafa9e875792abfbc4978237"
+dest_md5="1674d8ed9cff753705b46f97827d9d8d"
+
diff --git a/.godot/imported/white_pawn.png-fe7ff9ffd3dd37cbe9c2900659634c1d.ctex b/.godot/imported/white_pawn.png-fe7ff9ffd3dd37cbe9c2900659634c1d.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..404617fc23ed6a50721fa518309f44e10cbab9ba
Binary files /dev/null and b/.godot/imported/white_pawn.png-fe7ff9ffd3dd37cbe9c2900659634c1d.ctex differ
diff --git a/.godot/imported/white_pawn.png-fe7ff9ffd3dd37cbe9c2900659634c1d.md5 b/.godot/imported/white_pawn.png-fe7ff9ffd3dd37cbe9c2900659634c1d.md5
new file mode 100644
index 0000000000000000000000000000000000000000..41085ed5600de362c407271ba5fa08b007c0df3a
--- /dev/null
+++ b/.godot/imported/white_pawn.png-fe7ff9ffd3dd37cbe9c2900659634c1d.md5
@@ -0,0 +1,3 @@
+source_md5="db8b93969890dbc98ce4a50b1383c4a6"
+dest_md5="6942d81e91a73b2c07cf2c63fdec73ac"
+
diff --git a/.godot/imported/white_queen.png-6735b0e2ea7b6f9f51ff41eff41f72f3.ctex b/.godot/imported/white_queen.png-6735b0e2ea7b6f9f51ff41eff41f72f3.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..964b82c659ca67b76a097c6c644f76517ca0b3b2
Binary files /dev/null and b/.godot/imported/white_queen.png-6735b0e2ea7b6f9f51ff41eff41f72f3.ctex differ
diff --git a/.godot/imported/white_queen.png-6735b0e2ea7b6f9f51ff41eff41f72f3.md5 b/.godot/imported/white_queen.png-6735b0e2ea7b6f9f51ff41eff41f72f3.md5
new file mode 100644
index 0000000000000000000000000000000000000000..154a0730e90b8ec465ec73597bdf0c9978cab3b8
--- /dev/null
+++ b/.godot/imported/white_queen.png-6735b0e2ea7b6f9f51ff41eff41f72f3.md5
@@ -0,0 +1,3 @@
+source_md5="e0eabf8494227397e0bc096b3d5d1846"
+dest_md5="edee0b39e71dcdf2bba133c97fd40579"
+
diff --git a/.godot/imported/white_rook.png-51af18a74e9da13929ab36ea1dda4ed1.ctex b/.godot/imported/white_rook.png-51af18a74e9da13929ab36ea1dda4ed1.ctex
new file mode 100644
index 0000000000000000000000000000000000000000..840f45fb9cb5727afed259be70ebd2a98f2452dd
Binary files /dev/null and b/.godot/imported/white_rook.png-51af18a74e9da13929ab36ea1dda4ed1.ctex differ
diff --git a/.godot/imported/white_rook.png-51af18a74e9da13929ab36ea1dda4ed1.md5 b/.godot/imported/white_rook.png-51af18a74e9da13929ab36ea1dda4ed1.md5
new file mode 100644
index 0000000000000000000000000000000000000000..140ccbe25840639ab126596bd867b230dd9d1359
--- /dev/null
+++ b/.godot/imported/white_rook.png-51af18a74e9da13929ab36ea1dda4ed1.md5
@@ -0,0 +1,3 @@
+source_md5="57d2fce8581c7e5da5cbddfb4f9eb315"
+dest_md5="379d56d32ed6924d1d6330890b7cf88c"
+
diff --git a/Assets/temp_assets/assassin.png b/Assets/temp_assets/assassin.png
new file mode 100644
index 0000000000000000000000000000000000000000..3423cee0877ee9bae0d5426aef0ee9d8328caa14
Binary files /dev/null and b/Assets/temp_assets/assassin.png differ
diff --git a/Assets/temp_assets/assassin.png.import b/Assets/temp_assets/assassin.png.import
new file mode 100644
index 0000000000000000000000000000000000000000..2153ed5946f1bedf35cf3560acae179535950d6a
--- /dev/null
+++ b/Assets/temp_assets/assassin.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://753dogr1moxe"
+path="res://.godot/imported/assassin.png-7bbbc406e2629bde9613c01b865eff89.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/temp_assets/assassin.png"
+dest_files=["res://.godot/imported/assassin.png-7bbbc406e2629bde9613c01b865eff89.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Assets/temp_assets/mage.png b/Assets/temp_assets/mage.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6b20a502f79f4fdb51ba26ea525a5808850d9a4
Binary files /dev/null and b/Assets/temp_assets/mage.png differ
diff --git a/Assets/temp_assets/mage.png.import b/Assets/temp_assets/mage.png.import
new file mode 100644
index 0000000000000000000000000000000000000000..d6399e4563c83f11bbae237009044b1a65c6e415
--- /dev/null
+++ b/Assets/temp_assets/mage.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b7iyt4iwjbtd0"
+path="res://.godot/imported/mage.png-aa266229e8d4b8a7cd1dbb6644da4861.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/temp_assets/mage.png"
+dest_files=["res://.godot/imported/mage.png-aa266229e8d4b8a7cd1dbb6644da4861.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/Assets/temp_assets/wizard.png b/Assets/temp_assets/wizard.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f24054cd2e03699f41efe66c5c94b9b3f808775
Binary files /dev/null and b/Assets/temp_assets/wizard.png differ
diff --git a/Assets/temp_assets/wizard.png.import b/Assets/temp_assets/wizard.png.import
new file mode 100644
index 0000000000000000000000000000000000000000..f70066237689a0f96f1c2f453d09800ed59e95ac
--- /dev/null
+++ b/Assets/temp_assets/wizard.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bfk1j3brcknkp"
+path="res://.godot/imported/wizard.png-dde8c8f6619c79c88090542142689c4d.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://assets/temp_assets/wizard.png"
+dest_files=["res://.godot/imported/wizard.png-dde8c8f6619c79c88090542142689c4d.ctex"]
+
+[params]
+
+compress/mode=0
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=1
diff --git a/scenes/Assassin.tscn b/scenes/Assassin.tscn
new file mode 100644
index 0000000000000000000000000000000000000000..078f6c50f42683e536c7962efc5eb5d57b7be660
--- /dev/null
+++ b/scenes/Assassin.tscn
@@ -0,0 +1,10 @@
+[gd_scene load_steps=3 format=3 uid="uid://rxpfuqov0sdv"]
+
+[ext_resource type="Script" path="res://scripts/Assassin.gd" id="1_g33mq"]
+[ext_resource type="Texture2D" uid="uid://753dogr1moxe" path="res://assets/temp_assets/assassin.png" id="2_wrp2r"]
+
+[node name="Node2D" type="Node2D"]
+script = ExtResource("1_g33mq")
+
+[node name="Sprite2D" type="Sprite2D" parent="."]
+texture = ExtResource("2_wrp2r")
diff --git a/scenes/Mage.tscn b/scenes/Mage.tscn
new file mode 100644
index 0000000000000000000000000000000000000000..cfeb30c30882d4f152bf000c25e7d7740bd71ced
--- /dev/null
+++ b/scenes/Mage.tscn
@@ -0,0 +1,10 @@
+[gd_scene load_steps=3 format=3 uid="uid://fag2130aog4"]
+
+[ext_resource type="Script" path="res://scripts/Mage.gd" id="1_o7lxu"]
+[ext_resource type="Texture2D" uid="uid://b7iyt4iwjbtd0" path="res://assets/temp_assets/mage.png" id="2_i5ela"]
+
+[node name="Node2D" type="Node2D"]
+script = ExtResource("1_o7lxu")
+
+[node name="Sprite2D" type="Sprite2D" parent="."]
+texture = ExtResource("2_i5ela")
diff --git a/scenes/Wizard.tscn b/scenes/Wizard.tscn
new file mode 100644
index 0000000000000000000000000000000000000000..904cd0fe316c9a308d0940109411f5b0c21b49e4
--- /dev/null
+++ b/scenes/Wizard.tscn
@@ -0,0 +1,10 @@
+[gd_scene load_steps=3 format=3 uid="uid://cwrcas374ms6f"]
+
+[ext_resource type="Script" path="res://scripts/Wizard.gd" id="1_l2hsv"]
+[ext_resource type="Texture2D" uid="uid://bfk1j3brcknkp" path="res://assets/temp_assets/wizard.png" id="2_vybdv"]
+
+[node name="Node2D" type="Node2D"]
+script = ExtResource("1_l2hsv")
+
+[node name="Sprite2D" type="Sprite2D" parent="."]
+texture = ExtResource("2_vybdv")
diff --git a/scenes/game.tscn b/scenes/game.tscn
index 50acfb4c32bee12cafb0b5bf5e88b92fd70731d3..5f027e294f8c6e5918dfdcfe49bfded4bf491463 100644
--- a/scenes/game.tscn
+++ b/scenes/game.tscn
@@ -19,8 +19,6 @@ shader_parameter/noise3 = ExtResource("5_hkjcj")
 
 [node name="Game" type="Node"]
 script = ExtResource("1_cbchi")
-X = 8
-Y = 8
 dark = Color(0.1, 0.25, 0.6, 1)
 light = Color(0.826, 0.826, 0.826, 1)
 
@@ -59,3 +57,9 @@ radial_accel_max = 70.25
 scale_amount_min = 2.0
 scale_amount_max = 3.0
 color = Color(0, 0, 0, 1)
+
+[node name="PlayerPieces" type="Node2D" parent="."]
+position = Vector2(100, 400)
+
+[node name="OpponentPieces" type="Node2D" parent="."]
+position = Vector2(100, 100)
diff --git a/scripts/Assassin.gd b/scripts/Assassin.gd
new file mode 100644
index 0000000000000000000000000000000000000000..cb26d07c133c03fdaff763dd483780a6f697ed38
--- /dev/null
+++ b/scripts/Assassin.gd
@@ -0,0 +1,58 @@
+extends Piece
+
+class_name Assassin
+
+enum Upgrade {
+	# Add any specific upgrades for Assassin here
+}
+
+var board_state: Array
+
+func _init(is_white_param: bool, position_param: Vector2):
+	super._init(is_white_param, position_param)
+
+# Capturing is handled in main game.gd
+func get_valid_moves(board: Array, pos: Vector2) -> Array[Vector2]:
+	var valid_moves: Array[Vector2] = []
+	var sel_x = pos.x
+	var sel_y = pos.y
+
+	# Add moves based on the provided logic
+	for x in range(board.size()):
+		for y in range(board.size()):
+			if int((x + y)) % 2 == int((sel_x + sel_y)) % 2 and is_empty(board, x, y):
+				valid_moves.append(Vector2(x, y))
+
+	if is_opponent(board, sel_x, sel_y):
+		if sel_y - 1 >= 0:
+			if is_opposite(board, sel_x, sel_y - 1):
+				valid_moves.append(Vector2(sel_x, sel_y - 1))
+			if sel_x + 1 < board.size():
+				if is_opposite(board, sel_x + 1, sel_y - 1):
+					valid_moves.append(Vector2(sel_x + 1, sel_y - 1))
+			if sel_x - 1 >= 0:
+				if is_opposite(board, sel_x - 1, sel_y - 1):
+					valid_moves.append(Vector2(sel_x - 1, sel_y - 1))
+	else:
+		if sel_y + 1 < board.size():
+			if is_opposite(board, sel_x, sel_y + 1):
+				valid_moves.append(Vector2(sel_x, sel_y + 1))
+			if sel_x + 1 < board.size():
+				if is_opposite(board, sel_x + 1, sel_y + 1):
+					valid_moves.append(Vector2(sel_x + 1, sel_y + 1))
+			if sel_x - 1 >= 0:
+				if is_opposite(board, sel_x - 1, sel_y + 1):
+					valid_moves.append(Vector2(sel_x - 1, sel_y + 1))
+
+	return valid_moves
+
+
+
+func is_empty(board: Array, x: int, y: int) -> bool:
+	return board[x][y] == null
+
+func is_opponent(board: Array, x: int, y: int) -> bool:
+	return board[x][y] != null and board[x][y].is_white != is_white
+
+func is_opposite(board: Array, x: int, y: int) -> bool:
+	return board[x][y] != null and board[x][y].is_white == is_white
diff --git a/scripts/Bishop.gd b/scripts/Bishop.gd
index 5b69d5fc83f99b42ce6178b93495b5878673c5ea..301f92b43cbfae39443e8838608fd6d3196d2c24 100644
--- a/scripts/Bishop.gd
+++ b/scripts/Bishop.gd
@@ -6,8 +6,8 @@ enum Upgrade {
 	MOVE_CARDINAL_ONE,
 }
 
-func _init(is_white: bool, position: Vector2):
-	super._init(is_white, position)
+func _init(is_white_param: bool, position_param: Vector2):
+	super._init(is_white_param, position_param)
 	# Testing upgrades
 	upgrades.append(Upgrade.MOVE_CARDINAL_ONE)
 
diff --git a/scripts/King.gd b/scripts/King.gd
index 133a17de26b2922572afd42303124ddabf03c25d..ff0f176d0eb3631d26092a2d7035ba491cd4c066 100644
--- a/scripts/King.gd
+++ b/scripts/King.gd
@@ -6,8 +6,8 @@ enum Upgrade {
 	# Add any specific upgrades for King here
 }
 
-func _init(is_white: bool, position: Vector2):
-	super._init(is_white, position)
+func _init(is_white_param: bool, position_param: Vector2):
+	super._init(is_white_param, position_param)
 
 func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
 	var valid_moves: Array[Vector2] = []
diff --git a/scripts/Knight.gd b/scripts/Knight.gd
index fd49fc15211f693ac8580f2dc5b0efa778fba875..173a6e0f442a9ecca190c9a0667a4774985e2f63 100644
--- a/scripts/Knight.gd
+++ b/scripts/Knight.gd
@@ -6,8 +6,8 @@ enum Upgrade {
 	LONGER_L_MOVE,
 }
 
-func _init(is_white: bool, position: Vector2):
-	super._init(is_white, position)
+func _init(is_white_param: bool, position_param: Vector2):
+	super._init(is_white_param, position_param)
 	# Testing upgrades
 	#upgrades.append(Upgrade.LONGER_L_MOVE)
 
@@ -23,6 +23,7 @@ func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
 		Vector2(x + 1, y + 2), Vector2(x + 1, y - 2),
 		Vector2(x - 1, y + 2), Vector2(x - 1, y - 2)
 	]
+	
 	# Check for LONGER_L_MOVE upgrade
 	if Upgrade.LONGER_L_MOVE in upgrades:
 		moves += [
diff --git a/scripts/Mage.gd b/scripts/Mage.gd
new file mode 100644
index 0000000000000000000000000000000000000000..c862e97df6f663df745aac59548e64a7c36e9d15
--- /dev/null
+++ b/scripts/Mage.gd
@@ -0,0 +1,124 @@
+extends Piece
+
+class_name Mage
+
+enum Upgrade {
+	# Add any specific upgrades for Mage here
+}
+
+@onready var game_node = get_tree().root.get_node("Game")
+
+func _init(is_white_param: bool, position_param: Vector2):
+	super._init(is_white_param, position_param)
+
+func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
+	var valid_moves: Array[Vector2] = []
+	var sel_x = pos.x
+	var sel_y = pos.y
+
+	# Add moves based on the provided logic
+	if (sel_x + 1) < 8 and (sel_y + 1) < 8:
+		if is_empty(board_state, sel_x + 1, sel_y + 1):
+			valid_moves.append(Vector2(sel_x + 1, sel_y + 1))
+	if (sel_x - 1) >= 0 and (sel_y + 1) < 8:
+		if is_empty(board_state, sel_x - 1, sel_y + 1):
+			valid_moves.append(Vector2(sel_x - 1, sel_y + 1))
+	if (sel_x + 1) < 8 and (sel_y - 1) >= 0:
+		if is_empty(board_state, sel_x + 1, sel_y - 1):
+			valid_moves.append(Vector2(sel_x + 1, sel_y - 1))
+	if (sel_x - 1) >= 0 and (sel_y - 1) >= 0:
+		if is_empty(board_state, sel_x - 1, sel_y - 1):
+			valid_moves.append(Vector2(sel_x - 1, sel_y - 1))
+
+	if (sel_x + 1) < 8:
+		if is_empty(board_state, sel_x + 1, sel_y):
+			valid_moves.append(Vector2(sel_x + 1, sel_y))
+	if (sel_x - 1) >= 0:
+		if is_empty(board_state, sel_x - 1, sel_y):
+			valid_moves.append(Vector2(sel_x - 1, sel_y))
+
+	if (sel_y + 1) < 8:
+		if is_empty(board_state, sel_x, sel_y + 1):
+			valid_moves.append(Vector2(sel_x, sel_y + 1))
+	if (sel_y - 1) >= 0:
+		if is_empty(board_state, sel_x, sel_y - 1):
+			valid_moves.append(Vector2(sel_x, sel_y - 1))
+
+	return valid_moves
+
+func get_valid_shots(board_state: Array, pos: Vector2) -> Array[Vector2]:
+	var valid_shots: Array[Vector2] = []
+	var sel_x = pos.x
+	var sel_y = pos.y
+
+	# Valid shots diagonally down and right
+	for x in range(1, 8):
+		var new_x = sel_x + x
+		var new_y = sel_y + x
+		if new_x < 8 and new_y < 8:
+			if is_empty(board_state, new_x, new_y):
+				pass
+			elif is_opposite(board_state, new_x, new_y):
+				valid_shots.append(Vector2(new_x, new_y))
+				break
+			else:
+				break
+		else:
+			break
+
+	# Repeat for diagonally up and left
+	for x in range(1, 8):
+		var new_x = sel_x - x
+		var new_y = sel_y - x
+		if new_x >= 0 and new_y >= 0:
+			if is_empty(board_state, new_x, new_y):
+				pass
+			elif is_opposite(board_state, new_x, new_y):
+				valid_shots.append(Vector2(new_x, new_y))
+				break
+			else:
+				break
+		else:
+			break
+
+	# Repeat for diagonally down and left
+	for x in range(1, 8):
+		var new_x = sel_x - x
+		var new_y = sel_y + x
+		if new_x >= 0 and new_y < 8:
+			if is_empty(board_state, new_x, new_y):
+				pass
+			elif is_opposite(board_state, new_x, new_y):
+				valid_shots.append(Vector2(new_x, new_y))
+				break
+			else:
+				break
+		else:
+			break
+
+	# Repeat for diagonally up and right
+	for x in range(1, 8):
+		var new_x = sel_x + x
+		var new_y = sel_y - x
+		if new_x < 8 and new_y >= 0:
+			if is_empty(board_state, new_x, new_y):
+				pass
+			elif is_opposite(board_state, new_x, new_y):
+				valid_shots.append(Vector2(new_x, new_y))
+				break
+			else:
+				break
+		else:
+			break
+
+	return valid_shots
+
+func shoot_projectile(x: int, y: int):
+	game_node.shoot_projectile(x, y)
+
+func is_empty(board_state: Array, x: int, y: int) -> bool:
+	return board_state[x][y] == null
+
+func is_opposite(board_state: Array, x: int, y: int) -> bool:
+	return board_state[x][y] != null and board_state[x][y].is_white != is_white
+	
diff --git a/scripts/Pawn.gd b/scripts/Pawn.gd
index bfd4848e2879f4fd488ab2d0f5c580a9d4b053a8..8a6e6b0354aa40938e6b4f227f4bd1462ca396f3 100644
--- a/scripts/Pawn.gd
+++ b/scripts/Pawn.gd
@@ -2,13 +2,18 @@ extends Piece
 
 class_name Pawn
 
+var Game = preload("res://scripts/game.gd")
+
 enum Upgrade { DOUBLE_MOVE, DIAGONAL_MOVE }
 
-func _init(is_white: bool, position: Vector2):
-	super._init(is_white, position)
+var tile_size = 64 # Make this global?...
+@onready var opponent_shader = load("res://shaders/BlackShader.shader")
+
+func _init(is_white_param: bool, position_param: Vector2):
+	super._init(is_white_param, position_param)
 	# Testing upgrades
-	# upgrades.append(Upgrade.DOUBLE_MOVE)
-	# upgrades.append(Upgrade.DIAGONAL_MOVE)
+	upgrades.append(Upgrade.DOUBLE_MOVE)
+	upgrades.append(Upgrade.DIAGONAL_MOVE)
 
 
 func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
@@ -16,6 +21,8 @@ func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
 	var x = pos.x
 	var y = pos.y
 
+	# TODO: Add En passant move
+	
 	if is_white:
 		# Check if the pawn is at the starting position
 		if (y == 7 or Upgrade.DOUBLE_MOVE in upgrades) and board_state[x][y - 1] == null:
@@ -38,6 +45,12 @@ func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
 			if x < 7 and y > 0 and board_state[x + 1][y - 1] == null:
 				valid_moves.append(Vector2(x + 1, y - 1))
 
+		# Check for promotion
+		if y == 0:
+			board_state[x][y] = Queen.new(is_white, Vector2(x, y))
+
+
+
 	else:
 		if y < 1 and board_state[x][y + 1] == null:
 			valid_moves.append(Vector2(x, y + 1))
@@ -51,4 +64,8 @@ func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
 		if x < 7 and y < 7 and board_state[x + 1][y + 1] != null and board_state[x + 1][y + 1].is_white:
 			valid_moves.append(Vector2(x + 1, y + 1))
 
+		# Check for promotion
+		# if y == 7:
+		# 	board_state[x][y] = Queen.new(is_white, Vector2(x, y))
+
 	return valid_moves
diff --git a/scripts/Piece.gd b/scripts/Piece.gd
index 9a7de828a5dff203aebfa903ef73063e7d5480d1..2b6d30da53aaf666aad6e14b659068f77d8d4815 100644
--- a/scripts/Piece.gd
+++ b/scripts/Piece.gd
@@ -11,11 +11,11 @@ var upgrades: Array = []
 
 
 # initialization method
-func _init(is_white: bool, piece_position: Vector2) -> void:
-	self.is_white = is_white
-	self.piece_position = piece_position
+func _init(is_white_param: bool, piece_position_param: Vector2) -> void:
+	self.is_white = is_white_param
+	self.piece_position = piece_position_param 
 
 # Method to get valid moves (to be overridden by subclasses)
-func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
+func get_valid_moves(_board_state: Array, _pos: Vector2) -> Array[Vector2]:
 	var moves = []
 	return moves
diff --git a/scripts/Queen.gd b/scripts/Queen.gd
index 7e65fc9f82bff6cad48a0dd88c47f1582e7fff1b..0fce2fe3477b8b0e7fa88607ea9725e0011f0b0c 100644
--- a/scripts/Queen.gd
+++ b/scripts/Queen.gd
@@ -6,8 +6,8 @@ enum Upgrade {
 	# Add any specific upgrades for Queen here
 }
 
-func _init(is_white: bool, position: Vector2):
-	super._init(is_white, position)
+func _init(is_white_param: bool, position_param: Vector2):
+	super._init(is_white_param, position_param)
 
 func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
 	var valid_moves: Array[Vector2] = []
diff --git a/scripts/Rook.gd b/scripts/Rook.gd
index 2b53c0fff81a8d41831a77e39016b0177607d9df..d90b32fd28a8601f3ac629d7b82b10c363da2d1e 100644
--- a/scripts/Rook.gd
+++ b/scripts/Rook.gd
@@ -6,8 +6,8 @@ enum Upgrade {
 	DIAGONAL_MOVE_ONE,
 }
 
-func _init(is_white: bool, position: Vector2):
-	super._init(is_white, position)
+func _init(is_white_param: bool, position_param: Vector2):
+	super._init(is_white_param, position_param)
 	# Testing upgrades
 	# upgrades.append(Upgrade.DIAGONAL_MOVE_ONE)
 
diff --git a/scripts/Wizard.gd b/scripts/Wizard.gd
new file mode 100644
index 0000000000000000000000000000000000000000..24e694faebaf93eaebd6b888759fecbcc0a9ae0f
--- /dev/null
+++ b/scripts/Wizard.gd
@@ -0,0 +1,119 @@
+extends Piece
+
+class_name Wizard
+
+enum Upgrade {
+	# Add any specific upgrades for Wizard here
+}
+
+@onready var game_node = get_tree().root.get_node("Game")
+
+func _init(is_white_param: bool, position_param: Vector2):
+	super._init(is_white_param, position_param)
+
+func get_valid_moves(board_state: Array, pos: Vector2) -> Array[Vector2]:
+	var valid_moves: Array[Vector2] = []
+	var sel_x = pos.x
+	var sel_y = pos.y
+
+	# Add moves based on the provided logic
+	if (sel_x + 1) < 8 and (sel_y + 1) < 8:
+		if is_empty(board_state, sel_x + 1, sel_y + 1):
+			valid_moves.append(Vector2(sel_x + 1, sel_y + 1))
+	if (sel_x - 1) >= 0 and (sel_y + 1) < 8:
+		if is_empty(board_state, sel_x - 1, sel_y + 1):
+			valid_moves.append(Vector2(sel_x - 1, sel_y + 1))
+	if (sel_x + 1) < 8 and (sel_y - 1) >= 0:
+		if is_empty(board_state, sel_x + 1, sel_y - 1):
+			valid_moves.append(Vector2(sel_x + 1, sel_y - 1))
+	if (sel_x - 1) >= 0 and (sel_y - 1) >= 0:
+		if is_empty(board_state, sel_x - 1, sel_y - 1):
+			valid_moves.append(Vector2(sel_x - 1, sel_y - 1))
+
+	if (sel_x + 1) < 8:
+		if is_empty(board_state, sel_x + 1, sel_y):
+			valid_moves.append(Vector2(sel_x + 1, sel_y))
+	if (sel_x - 1) >= 0:
+		if is_empty(board_state, sel_x - 1, sel_y):
+			valid_moves.append(Vector2(sel_x - 1, sel_y))
+
+	if (sel_y + 1) < 8:
+		if is_empty(board_state, sel_x, sel_y + 1):
+			valid_moves.append(Vector2(sel_x, sel_y + 1))
+	if (sel_y - 1) >= 0:
+		if is_empty(board_state, sel_x, sel_y - 1):
+			valid_moves.append(Vector2(sel_x, sel_y - 1))
+
+	return valid_moves
+
+func get_valid_shots(board_state: Array, pos: Vector2) -> Array[Vector2]:
+	var valid_shots: Array[Vector2] = []
+	var sel_x = pos.x
+	var sel_y = pos.y
+
+	# Valid shots to the right
+	for x in range(1, 8):
+		var new_x = sel_x + x
+		if new_x < 8:
+			if is_empty(board_state, new_x, sel_y):
+				pass
+			elif is_opposite(board_state, new_x, sel_y):
+				valid_shots.append(Vector2(new_x, sel_y))
+				break
+			else:
+				break
+		else:
+			break
+
+	# Repeat for left
+	for x in range(1, 8):
+		var new_x = sel_x - x
+		if new_x >= 0:
+			if is_empty(board_state, new_x, sel_y):
+				pass
+			elif is_opposite(board_state, new_x, sel_y):
+				valid_shots.append(Vector2(new_x, sel_y))
+				break
+			else:
+				break
+		else:
+			break
+
+	# Repeat for down
+	for y in range(1, 8):
+		var new_y = sel_y + y
+		if new_y < 8:
+			if is_empty(board_state, sel_x, new_y):
+				pass
+			elif is_opposite(board_state, sel_x, new_y):
+				valid_shots.append(Vector2(sel_x, new_y))
+				break
+			else:
+				break
+		else:
+			break
+
+	# Repeat for up
+	for y in range(1, 8):
+		var new_y = sel_y - y
+		if new_y >= 0:
+			if is_empty(board_state, sel_x, new_y):
+				pass
+			elif is_opposite(board_state, sel_x, new_y):
+				valid_shots.append(Vector2(sel_x, new_y))
+				break
+			else:
+				break
+		else:
+			break
+
+	return valid_shots
+
+func shoot_projectile(x: int, y: int):
+	game_node.shoot_projectile(x, y)
+
+func is_empty(board_state: Array, x: int, y: int) -> bool:
+	return board_state[x][y] == null
+
+func is_opposite(board_state: Array, x: int, y: int) -> bool:
+	return board_state[x][y] != null and board_state[x][y].is_white != is_white
diff --git a/scripts/game.gd b/scripts/game.gd
index 5a3fdd23766a6e58d234785bc223b5de49400515..3011c2b34c73876514a47db3368855c4d142305c 100644
--- a/scripts/game.gd
+++ b/scripts/game.gd
@@ -1,8 +1,6 @@
 extends Node
 class_name game
 
-@export var X : int
-@export var Y : int
 @export var tile_size = 64
 @export var dark = Color(0,0,0,1)
 @export var light =Color(1,1,1,1)
@@ -18,6 +16,10 @@ class_name game
 @onready var piece_container = $PieceContainer
 @onready var board = []
 
+@onready var player_pieces = $PlayerPieces
+@onready var player_piece_count = 0
+@onready var opponent_pieces = $OpponentPieces
+@onready var opponent_piece_count = 0
 
 var selected_piece
 var selected_piece_value
@@ -25,46 +27,52 @@ var selected_piece_position
 var valid_moves = []
 @onready var selected_shader: ShaderMaterial = ShaderMaterial.new()
 
+var board_width = 8
+var board_height = 8
 var target_position
 var moving: bool
 var sprite: Sprite2D
 
+var player_turn : bool = true
+
 @onready var explosion_effect = $Explosion
 
 
 func _ready() -> void:
 	DisplayServer.window_set_min_size(Vector2(1152, 648))  # Set minimum window size
 	
-	#creates 2D array for board, with empty ('0') spaces
-	for x in range(X): 
+	#creates 2D array for board, with empty (null) spaces
+	for x in range(board_width): 
 		board.append([])
-		for y in range(Y): 
+		for y in range(board_height): 
 			board[x].append(null)
 	
 	
 	#hard-coded setup of pieces
 	board[0][7] = Rook.new(true, Vector2(0, 7))
+	board[1][6] = Wizard.new(true, Vector2(0, 7))
 	board[1][7] = Bishop.new(true, Vector2(1, 7))
 	board[2][7] = King.new(true, Vector2(2, 7))
 	board[3][6] = Queen.new(true, Vector2(3, 6))
-	board[4][7] = Pawn.new(true, Vector2(4, 7))
+	board[4][2] = Pawn.new(true, Vector2(4, 7))
 	board[5][7] = Knight.new(true, Vector2(5, 7))
-	board[6][7] = Pawn.new(true, Vector2(6, 7))
+	board[6][7] = Assassin.new(true, Vector2(6, 7))
+	board[7][6] = Mage.new(true, Vector2(7, 6))
 	board[7][7] = Rook.new(true, Vector2(7, 7))
 
 	board[0][4] = Rook.new(false, Vector2(0, 4))
 	board[1][5] = Bishop.new(false, Vector2(1, 5))
 	board[3][2] = Queen.new(false, Vector2(3, 2))
 	board[3][5] = Pawn.new(false, Vector2(3, 5))
-	board[4][4] = Pawn.new(false, Vector2(4, 4))
+	board[4][4] = Assassin.new(false, Vector2(4, 4))
 	board[3][4] = Pawn.new(false, Vector2(3, 4))
-	board[4][3] = Pawn.new(false, Vector2(4, 3))
+	board[4][3] = Mage.new(false, Vector2(4, 3))
 	board[7][5] = Rook.new(false, Vector2(7, 5))
 	
 	#potential 'holes', not quite working yet
 	#board[3][3] = '/'
 	
-	draw_board(X,Y)
+	draw_board(board_width,board_height)
 	
 	#set up color for opponent's shader, currently set to black
 	opponent_shader.shader = preload("res://assets/shaders/color.gdshader").duplicate()
@@ -105,12 +113,31 @@ func _process(delta: float) -> void:
 			moving = false
 			unselect_piece()
 
+	if selected_piece != null:
+		# If the selected piece is a pawn and it reaches the end of the board, promote it to a queen
+		if selected_piece_position.y == 0:
+			if selected_piece_value is Pawn:
+					if selected_piece_value.is_white:
+						# draw_pieces()
+						selected_piece.queue_free()
+						board[selected_piece_position.x][selected_piece_position.y] = Queen.new(true, selected_piece_position)
+						var piece_scene = preload("res://scenes/Queen.tscn")
+						var piece_instance = piece_scene.instantiate()
+						piece_instance.position = Vector2((selected_piece_position.x * tile_size) + tile_size/2.0, (selected_piece_position.y * tile_size) + tile_size/2.0)
+						piece_instance.z_index = 3
+						piece_instance.scale = Vector2(1.25, 1.25)  # Scale other pieces by 25%
+						piece_container.add_child(piece_instance)
+						explosion_effect.position = piece_instance.position + translate()
+						explosion_effect.restart()
+
+						# remove_piece(selected_piece_position.x, selected_piece_position.y)
+
 
 func draw_pieces():
 	#iterate through all tiles, if tile has a piece, 
 	#add corresponding piece with correct sprite to piece_container
-	for x in range(X):
-		for y in range(Y):
+	for x in range(board_width):
+		for y in range(board_height):
 			if !is_empty(x, y):
 				var piece_scene
 				if board[x][y] is Pawn:
@@ -125,14 +152,18 @@ func draw_pieces():
 					piece_scene = preload("res://scenes/King.tscn")
 				elif board[x][y] is Knight:
 					piece_scene = preload("res://scenes/Knight.tscn")
-				
-				# Add other piece types here (e.g., Knight, Bishop, Queen, King)
+				elif board[x][y] is Assassin:
+					piece_scene = preload("res://scenes/Assassin.tscn")
+				elif board[x][y] is Mage:
+					piece_scene = preload("res://scenes/Mage.tscn")
+				elif board[x][y] is Wizard:
+					piece_scene = preload("res://scenes/Wizard.tscn")
 				
 				if piece_scene:
 					var piece_instance = piece_scene.instantiate()
-					piece_instance.position = Vector2((x * tile_size) + tile_size/2, (y * tile_size) + tile_size/2)
+					piece_instance.position = Vector2((x * tile_size) + tile_size/2.0, (y * tile_size) + tile_size/2.0)
 					piece_instance.z_index = 3
-					
+
 					# Scale the sprite by 25% for all pieces except the king
 					if board[x][y] is King:
 						piece_instance.scale = Vector2(2.0, 2.0)  # Scale the king by 50%
@@ -141,9 +172,9 @@ func draw_pieces():
 
 					# If piece is opponent, add a black shader to piece
 					if board[x][y].is_white == false:
-						var sprite = piece_instance.get_node("Sprite2D") as Sprite2D
-						if sprite:
-							sprite.material = opponent_shader
+						var piece_sprite = piece_instance.get_node("Sprite2D") as Sprite2D
+						if piece_sprite:
+							piece_sprite.material = opponent_shader
 					
 					piece_container.add_child(piece_instance)
 
@@ -152,15 +183,15 @@ func draw_pieces():
 #used to center board, shadow and pieces at 2/3 of x axis and 1/2 of y axis
 func translate() -> Vector2:
 	var screen_size = get_viewport().get_visible_rect().size
-	var board_x_offset = X * tile_size / 2
-	var board_y_offset = Y * tile_size / 2
+	var board_x_offset = float(board_width * tile_size) / 2
+	var board_y_offset = float(board_height * tile_size) / 2
 	#places top left corner at 2/3 of x axis and 1/2 of y axis, then translates to center 
 	return Vector2(screen_size.x * 2 / 3 - board_x_offset, screen_size.y / 2 - board_y_offset)
 
 #color rect version
-func draw_board(X, Y):
-	for x in range(X):
-		for y in range(Y):
+func draw_board(width, height):
+	for x in range(width):
+		for y in range(height):
 			var tile = ColorRect.new()
 			if (x + y)%2 == 0:
 				tile.color = light
@@ -170,9 +201,6 @@ func draw_board(X, Y):
 			tile.position = Vector2(x * tile_size, y * tile_size)
 			
 			tile_container.add_child(tile)
-			var screen_size = get_viewport().get_visible_rect().size
-			var board_x_offset = X * tile_size / 2
-			var board_y_offset = Y * tile_size / 2
 			
 			var shadow_shader = ShaderMaterial.new()
 			shadow_shader.shader = preload("res://assets/shaders/shadow.gdshader")
@@ -185,7 +213,7 @@ func draw_board(X, Y):
 			shadow_container.add_child(shadow)
 
 #textured rect version
-func draw_board_texture_rect(X, Y):
+func draw_board_texture_rect(width, height):
 	dark_tile_shader.shader = preload("res://assets/shaders/color.gdshader").duplicate()
 	dark_tile_shader.set_shader_parameter('r', 0.1)
 	dark_tile_shader.set_shader_parameter('g', 0.25)
@@ -196,8 +224,8 @@ func draw_board_texture_rect(X, Y):
 	light_tile_shader.set_shader_parameter('g', 0.85)
 	light_tile_shader.set_shader_parameter('b', 0.85)
 	
-	for x in range(X):
-		for y in range(Y):
+	for x in range(width):
+		for y in range(height):
 			if board[x][y] == '/':
 				pass
 			else:
@@ -211,10 +239,6 @@ func draw_board_texture_rect(X, Y):
 				tile.position = Vector2(x * tile_size, y * tile_size)
 				
 				tile_container.add_child(tile)
-				var screen_size = get_viewport().get_visible_rect().size
-				var board_x_offset = X * tile_size / 2
-				var board_y_offset = Y * tile_size / 2
-				
 				var shadow_shader = ShaderMaterial.new()
 				shadow_shader.shader = preload("res://assets/shaders/shadow.gdshader")
 				
@@ -227,8 +251,8 @@ func draw_board_texture_rect(X, Y):
 
 #detects if mouse events occur within the board
 func is_on_board(position : Vector2) -> bool:
-	if position.x < (X * tile_size) && position.x > 0:
-		if position.y < (Y * tile_size) && position.y > 0:
+	if position.x < (board_width * tile_size) && position.x > 0:
+		if position.y < (board_height * tile_size) && position.y > 0:
 			return true
 	return false
 
@@ -250,20 +274,34 @@ func _input(event):
 					
 					#if mouse click is a left click, proceed
 					if event.button_index == MOUSE_BUTTON_LEFT:
-						#if the tile is a player's piece, select or deselect it
-						if !is_empty(x,y) && !(is_opponent(x,y)):
-							#if there is a currently selected piece that is on the selected tile, deselect that piece
-							if selected_piece != null:
-								if board[x][y] == selected_piece_value:
-									unselect_piece()
+						if player_turn:
+							#if the tile is a player's piece, select or deselect it
+							if !is_empty(x,y) && !(is_opponent(x,y)):
+								#if there is a currently selected piece that is on the selected tile, deselect that piece
+								if selected_piece != null:
+									if board[x][y] == selected_piece_value:
+										unselect_piece()
+									else:
+										select_piece(x,y)
+								#otherwise, select the piece
 								else:
 									select_piece(x,y)
-							#otherwise, select the piece
+							#if the tile is empty or an opponents piece, move the selected piece to that tile
 							else:
-								select_piece(x,y)
-						#if the tile is empty or an opponents piece, move the selected piece to that tile
+								move_selected_piece(x,y)
 						else:
-							move_selected_piece(x,y)
+							print("It's not your turn!")
+							if !is_empty(x,y) && is_opponent(x,y):
+								if selected_piece!=null:
+									if board[x][y] == selected_piece_value:
+										unselect_piece()
+									else:
+										select_piece(x,y)
+								else:
+									select_piece(x,y)
+							else:
+								move_selected_piece(x,y)
+
 
 
 func is_opponent(x,y):
@@ -276,6 +314,14 @@ func is_opponent(x,y):
 		else:
 			return !board[x][y].is_white
 
+func is_opposite(x,y):
+	if board[x][y] == null:
+		return false
+	else:
+		if selected_piece != null:
+			return board[x][y].is_white == selected_piece_value.is_white
+		else:
+			return board[x][y].is_white
 
 
 func is_empty(x, y):
@@ -293,11 +339,38 @@ func is_empty(x, y):
 
 func remove_piece(x,y):
 	#iterate through the pieces in piece_container, if that piece is at location x,y, remove it
+	# TODO: Fix bug with promoted Queen, when capturing other pieces, they are not visually removed.
 	for child in piece_container.get_children():
 		#translate x,y index values to screen coordinates
-		if child.position == Vector2(x*tile_size+32, y*tile_size+32):
+		if child.position == Vector2(x*tile_size + 32, y*tile_size + 32):
 			explosion_effect.position = child.position + translate()
 			explosion_effect.restart()
+
+			var piece = child.duplicate()
+			if is_opponent(x, y):
+				opponent_piece_count += 1
+				if opponent_piece_count <= 4:
+					piece.position = Vector2(opponent_piece_count - 1, 0) * tile_size
+				elif opponent_piece_count <= 8:
+					piece.position = Vector2(opponent_piece_count - 5, 1) * tile_size
+				elif opponent_piece_count <= 12:
+					piece.position = Vector2(opponent_piece_count - 9, 2) * tile_size
+				else:
+					piece.position = Vector2(opponent_piece_count - 13, 3) * tile_size
+				opponent_pieces.add_child(piece)
+			else:
+				player_piece_count += 1
+				if player_piece_count <= 4:
+					piece.position = Vector2(player_piece_count - 1, 0) * tile_size
+				elif player_piece_count <= 8:
+					piece.position = Vector2(player_piece_count - 5, 1) * tile_size
+				elif player_piece_count <= 12:
+					piece.position = Vector2(player_piece_count - 9, 2) * tile_size
+				else:
+					piece.position = Vector2(player_piece_count - 13, 3) * tile_size
+				player_pieces.add_child(piece)
+
+
 			piece_container.remove_child(child)
 			child.queue_free()
 			break
@@ -328,7 +401,12 @@ func unselect_piece():
 func highlight_tiles():
 	# Clear the previously selected valid moves
 	remove_highlight()
-	valid_moves = selected_piece_value.get_valid_moves(board, selected_piece_position)
+	if selected_piece_value is Mage || selected_piece_value is Wizard:
+		valid_moves = selected_piece_value.get_valid_moves(board, selected_piece_position)
+		valid_moves += selected_piece_value.get_valid_shots(board, selected_piece_position)
+	else:
+		valid_moves = selected_piece_value.get_valid_moves(board, selected_piece_position)
+
 
 	for child in tile_container.get_children():
 		if child.position / tile_size in valid_moves:
@@ -351,28 +429,57 @@ func move_selected_piece(x,y):
 	if selected_piece != null:
 		#can only move to tiles in valid_moves
 		if Vector2(x,y) in valid_moves:
-			#if tile has opponent piece, remove piece
-			if is_opponent(x,y):
-				print("Capturing opponent piece")
-				remove_piece(x,y)
-				
-			#clear the selected_piece's previous position
-			board[selected_piece_position.x][selected_piece_position.y] = null
-
-			#update selected_piece's screen coordinate position
-			selected_piece_position = Vector2((x*tile_size)+ tile_size/2, (y*tile_size) + tile_size/2)
-
-			board[x][y] = selected_piece_value
-			
-			target_position = selected_piece_position
-			moving = true
-			valid_moves = []
 			
-		
+			if selected_piece_value is Mage || selected_piece_value is Wizard:
+				if abs(selected_piece_position.x - x) <= 1 and abs(selected_piece_position.y - y) <= 1:
+					if is_empty(x, y):
+						move_piece(x, y)
+					else:
+						shoot_projectile(x, y)
+				else:	
+					shoot_projectile(x, y)
+
+			# check for if assassin is moving behind the opponent's pieces
+			elif selected_piece_value is Assassin:
+				if selected_piece_value.is_white:
+					if is_opponent(x, y + 1):
+						remove_piece(x, y + 1)
+				else:
+					if is_opponent(x, y - 1):
+						remove_piece(x, y - 1)
+				move_piece(x, y)
+
+			else:
+				move_piece(x, y)
 		else:
 			unselect_piece()
-		
 	remove_highlight()
-		
-		
-		
+
+func move_piece(x, y):
+	# If tile has opponent piece, remove piece
+	if is_opponent(x, y):
+		remove_piece(x, y)
+
+	# Clear the selected_piece's previous position
+	board[selected_piece_position.x][selected_piece_position.y] = null
+
+	# Update the board with the new position
+	board[x][y] = selected_piece_value
+
+	# Update selected_piece's screen coordinate position
+	selected_piece_position = Vector2((x * tile_size) + tile_size / 2.0, (y * tile_size) + tile_size / 2.0)
+
+	target_position = selected_piece_position
+	moving = true
+	valid_moves = []
+
+func shoot_projectile(x: int, y: int):
+	remove_piece(x, y)
+	board[x][y] = null
+	unselect_piece()
+
+	explosion_effect.color = Color(1, 0, 1)
+	explosion_effect.position = Vector2(x, y) * tile_size + translate() + Vector2(tile_size / 2.0, tile_size / 2.0)
+	explosion_effect.restart()
+
+	# player_turn = !player_turn