a game about throwing hammers made for the github game off
| -rw-r--r-- | hammers/8x14.tres | 4 | ||||
| -rw-r--r-- | hammers/hammer.gd | 9 | ||||
| -rw-r--r-- | hammers/hammer_base.tscn | 24 | ||||
| -rw-r--r-- | levels/Level.gd | 1 | ||||
| -rw-r--r-- | player/player.gd | 1 |
5 files changed, 18 insertions, 21 deletions
diff --git a/hammers/8x14.tres b/hammers/8x14.tres deleted file mode 100644 index da8f9cc..0000000 --- a/hammers/8x14.tres +++ /dev/null @@ -1,4 +0,0 @@ -[gd_resource type="RectangleShape2D" format=3 uid=""] - -[resource] -size = Vector2(6, 12) diff --git a/hammers/hammer.gd b/hammers/hammer.gd index 53110e3..3ad0fa8 100644 --- a/hammers/hammer.gd +++ b/hammers/hammer.gd @@ -6,11 +6,11 @@ class_name Hammer @onready var left_cast := $LeftCast as RayCast2D @onready var right_cast := $RightCast as RayCast2D -@onready var head := $Head as Marker2D @onready var trail := $Trail as Trail2D @onready var outline_shader := ($Sprite as Sprite2D).material as ShaderMaterial @onready var target_finder := $TargetFinder as Area2D @onready var hitbox := $Hitbox as Hitbox +@onready var hitbox_c := hitbox.get_child(0) ## The current velocity var velocity := Vector2.ZERO @@ -47,6 +47,7 @@ enum HITS {_a, _b, _c, PLAYER, ENEMY, NONE} for node in hitmasks: node.set_collision_mask_value(hits, true) target_finder.monitoring = not is_instance_valid(target) + hitbox_c.shape.size.x = 6 if hits == HITS.ENEMY else 2 ## The amount of time before gravity kicks in. @export var lifetime := 3.0 @@ -67,7 +68,7 @@ func dirlerp(to: Vector2) -> void: ## Moves the direction towards the target. func seek() -> void: if is_instance_valid(target): - dirlerp(head.global_position.direction_to(target.global_position)) + dirlerp(global_position.direction_to(target.global_position)) elif target_finder.monitoring == false: target = null target_finder.monitoring = true @@ -76,7 +77,7 @@ func seek() -> void: func anticrash() -> void: var is_wall := func is_wall(ray: RayCast2D) -> bool: if not ray.is_colliding(): return false - if target and ray.get_collider().get_class() == target.get_class(): return false + if is_instance_valid(target) and ray.get_collider().get_class() == target.get_class(): return false return true var results: Array[bool] = [is_wall.call(left_cast), is_wall.call(right_cast)] @@ -84,7 +85,7 @@ func anticrash() -> void: for i in range(2): if results[i]: - dirlerp(direction.rotated(steer_force if i == 0 else -steer_force)) + dirlerp(direction.rotated(0.174 if i == 0 else -0.174)) ## Highlights this hammer. See also [method unhighlight]. func highlight() -> void: diff --git a/hammers/hammer_base.tscn b/hammers/hammer_base.tscn index 43b00c2..9876740 100644 --- a/hammers/hammer_base.tscn +++ b/hammers/hammer_base.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=10 format=3 uid="uid://bimmd1hcj2h0e"] +[gd_scene load_steps=11 format=3 uid="uid://bimmd1hcj2h0e"] [ext_resource type="PackedScene" uid="uid://ug40hxlkequx" path="res://colliders/hitbox.tscn" id="1_kdx5x"] [ext_resource type="Script" path="res://hammers/hammer.gd" id="1_xp22t"] -[ext_resource type="Shape2D" path="res://hammers/8x14.tres" id="2_tgkvf"] [ext_resource type="Script" path="res://fx/trail.gd" id="4_boru3"] [ext_resource type="Curve" path="res://hammers/trail_width.tres" id="4_yvshk"] [ext_resource type="Gradient" path="res://hammers/trail_color.tres" id="5_8dqv1"] @@ -15,6 +14,12 @@ shader_parameter/light_offset = 1.0 shader_parameter/line_width = 0.0 shader_parameter/sin_frequency = 0.25 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_fffa1"] +size = Vector2(2, 12) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_cbjww"] +size = Vector2(6, 12) + [sub_resource type="CircleShape2D" id="CircleShape2D_jubww"] radius = 125.0 @@ -42,13 +47,12 @@ material = SubResource("ShaderMaterial_go8fx") [node name="Collision" type="CollisionShape2D" parent="."] visible = false -shape = ExtResource("2_tgkvf") +shape = SubResource("RectangleShape2D_fffa1") [node name="Hitbox" parent="." instance=ExtResource("1_kdx5x")] -visible = false [node name="Collision" parent="Hitbox" index="0"] -shape = ExtResource("2_tgkvf") +shape = SubResource("RectangleShape2D_cbjww") [node name="TargetFinder" type="Area2D" parent="."] visible = false @@ -58,19 +62,15 @@ monitorable = false [node name="Collision" type="CollisionShape2D" parent="TargetFinder"] shape = SubResource("CircleShape2D_jubww") - -[node name="Head" type="Marker2D" parent="."] -position = Vector2(0, -6) +debug_color = Color(0, 0.941176, 0.352941, 0.12549) [node name="LeftCast" type="RayCast2D" parent="."] -visible = false position = Vector2(0, -6) -target_position = Vector2(-4, -15) +target_position = Vector2(-5, -29) [node name="RightCast" type="RayCast2D" parent="."] -visible = false position = Vector2(0, -6) -target_position = Vector2(4, -15) +target_position = Vector2(5, -29) [connection signal="body_entered" from="." to="." method="_on_body_entered"] [connection signal="area_entered" from="TargetFinder" to="." method="_on_target_finder_node_entered"] diff --git a/levels/Level.gd b/levels/Level.gd index 7510149..0106103 100644 --- a/levels/Level.gd +++ b/levels/Level.gd @@ -39,6 +39,7 @@ func create_node(p_name: StringName) -> Node2D: func _ready(): + collision_visibility_mode = TileMap.VISIBILITY_MODE_FORCE_HIDE var door_array := Maze.tile_4b_to_path_array(enabled_walls) if completed: diff --git a/player/player.gd b/player/player.gd index 9d45ec1..4aa382a 100644 --- a/player/player.gd +++ b/player/player.gd @@ -310,7 +310,6 @@ func disable_aim_gizmo() -> void: ## Throws the hammer. func throw(rot: float) -> void: - rot += randf_range(-0.01, 0.01) remove_child(current_hammer) current_hammer.position = Vector2(0, -8) # center current_hammer.global_position = to_global(current_hammer.position) |