diff --git a/converters/copper_to_silver/copper_converter.tscn b/converters/copper_to_silver/copper_converter.tscn index 32c40de..50b5dc0 100644 --- a/converters/copper_to_silver/copper_converter.tscn +++ b/converters/copper_to_silver/copper_converter.tscn @@ -63,7 +63,7 @@ size = Vector2(26, 5) size = Vector2(26, 10) [node name="CopperConverter" type="StaticBody2D" node_paths=PackedStringArray("sprite_front", "conversion_timer", "sound_working", "sound_complete", "spawner")] -scale = Vector2(2, 2) +scale = Vector2(2.5, 2.5) collision_layer = 8 collision_mask = 0 input_pickable = true diff --git a/converters/gold_to_coaldiamond/coal_diamond_converter.tscn b/converters/gold_to_coaldiamond/coal_diamond_converter.tscn index 7d5aacb..61fdb4e 100644 --- a/converters/gold_to_coaldiamond/coal_diamond_converter.tscn +++ b/converters/gold_to_coaldiamond/coal_diamond_converter.tscn @@ -74,7 +74,7 @@ size = Vector2(26, 5) size = Vector2(26, 10) [node name="CoalDiamondConverter" type="StaticBody2D" node_paths=PackedStringArray("sprite_front", "conversion_timer", "sound_working", "sound_complete", "spawner", "spawner_alt")] -scale = Vector2(2, 2) +scale = Vector2(2.5, 2.5) collision_layer = 8 collision_mask = 0 input_pickable = true @@ -113,6 +113,7 @@ z_index = 3 position = Vector2(0, 4.5) rotation = 3.14159 shape = SubResource("RectangleShape2D_31dtl") +one_way_collision = true [node name="Collector" parent="." instance=ExtResource("7_rxm8j")] z_index = 2 diff --git a/converters/gold_to_gem/gold_converter.tscn b/converters/gold_to_gem/gold_converter.tscn index b8cf29a..95f195e 100644 --- a/converters/gold_to_gem/gold_converter.tscn +++ b/converters/gold_to_gem/gold_converter.tscn @@ -71,7 +71,7 @@ size = Vector2(26, 5) size = Vector2(26, 8.83334) [node name="GoldConverter" type="StaticBody2D" node_paths=PackedStringArray("sprite_front", "conversion_timer", "sound_working", "sound_complete", "spawner")] -scale = Vector2(2, 2) +scale = Vector2(2.5, 2.5) collision_layer = 8 collision_mask = 0 input_pickable = true @@ -109,6 +109,7 @@ z_index = 3 position = Vector2(0, 4.5) rotation = 3.14159 shape = SubResource("RectangleShape2D_31dtl") +one_way_collision = true [node name="Collector" parent="." instance=ExtResource("8_77gmi")] z_index = 2 diff --git a/converters/item_converter/item_converter.gd b/converters/item_converter/item_converter.gd index b44eaa6..1a316f6 100644 --- a/converters/item_converter/item_converter.gd +++ b/converters/item_converter/item_converter.gd @@ -20,6 +20,40 @@ class_name ItemConverter @onready var chalice_spawner = $ChaliceSpawner @onready var crown_spawner = $CrownSpawner +var is_pending_deletion: bool = false + +func pending_deletion(): + sprite_front.modulate = Color.RED + is_pending_deletion = true + +func ending_deletion(): + sprite_front.modulate = Color.WHITE + is_pending_deletion = false + +func _on_input_event(_viewport: Node, event: InputEvent, _shape_idx: int): + if is_pending_deletion: + if event is InputEventMouseButton or event is InputEventScreenTouch: + queue_free() + + +func _on_gem_collector_collected(body: RigidBody2D): + print("[ItemConverter] Collected gem: ", body) + var colored: Colored = body.get_node("CollisionShape2D/Sprite/Colored") + gem_hue_ready.append(colored.hue) + try_produce() + +func _on_gold_collector_collected(body: RigidBody2D): + print("[ItemConverter] Collected gold: ", body) + stored_gold += 1 + try_produce() + +func try_produce(): + if stored_gold >= required_gold: + var hue = gem_hue_ready.pop_back() + if hue: + stored_gold -= required_gold + gem_hue_stored.append(hue) + func _physics_process(_delta): if conversion_timer.is_stopped(): var hue = gem_hue_stored.pop_front() @@ -33,11 +67,6 @@ func _physics_process(_delta): if sound_working: sound_working.play() -func try_produce(): - if stored_gold >= required_gold and len(gem_hue_ready) >= 1: - stored_gold -= required_gold - gem_hue_stored.append(gem_hue_ready.pop_back()) - func _on_timer_timeout(): var rand = Randomizer.rng.randf() if rand <= crown_chance: @@ -53,31 +82,6 @@ func _on_timer_timeout(): if sound_working: sound_working.stop() - -var is_pending_deletion: bool = false - -func pending_deletion(): - sprite_front.modulate = Color.RED - is_pending_deletion = true - -func ending_deletion(): - sprite_front.modulate = Color.WHITE - is_pending_deletion = false - -func _on_input_event(_viewport: Node, event: InputEvent, _shape_idx: int): - if is_pending_deletion: - if event is InputEventMouseButton or event is InputEventScreenTouch: - queue_free() - -func _on_gem_collector_collected(body: RigidBody2D): - var colored: Colored = body.get_node("CollisionShape2D/Sprite/Colored") - gem_hue_ready.append(colored.hue) - try_produce() - -func _on_gold_collector_collected(_body: RigidBody2D): - stored_gold += 1 - try_produce() - func _on_spawner_spawned(what: RigidBody2D): var hue = gem_hue_spawn.pop_front() if not hue: diff --git a/converters/item_converter/item_converter.tscn b/converters/item_converter/item_converter.tscn index 8569bdc..c2afe6f 100644 --- a/converters/item_converter/item_converter.tscn +++ b/converters/item_converter/item_converter.tscn @@ -119,7 +119,7 @@ size = Vector2(26, 5) size = Vector2(26, 8.83334) [node name="ItemConverter" type="StaticBody2D"] -scale = Vector2(2, 2) +scale = Vector2(2.5, 2.5) collision_layer = 8 collision_mask = 0 input_pickable = true @@ -151,6 +151,7 @@ z_index = 3 position = Vector2(0, 4.5) rotation = 3.14159 shape = SubResource("RectangleShape2D_31dtl") +one_way_collision = true [node name="GoldCollector" parent="." node_paths=PackedStringArray("sound_absorb") instance=ExtResource("3_qehi7")] z_index = 2 diff --git a/converters/silver_to_gold/silver_converter.tscn b/converters/silver_to_gold/silver_converter.tscn index a0cba72..4ef59d9 100644 --- a/converters/silver_to_gold/silver_converter.tscn +++ b/converters/silver_to_gold/silver_converter.tscn @@ -47,7 +47,7 @@ size = Vector2(26, 5) size = Vector2(26, 10) [node name="SilverConverter" type="StaticBody2D" node_paths=PackedStringArray("sprite_front", "conversion_timer", "sound_working", "sound_complete", "spawner")] -scale = Vector2(2, 2) +scale = Vector2(2.5, 2.5) collision_layer = 8 collision_mask = 0 input_pickable = true @@ -85,6 +85,7 @@ z_index = 3 position = Vector2(0, 4.5) rotation = 3.14159 shape = SubResource("RectangleShape2D_31dtl") +one_way_collision = true [node name="Collector" parent="." instance=ExtResource("7_3046q")] z_index = 2 diff --git a/entity/item/item_chalice.tscn b/entity/item/item_chalice.tscn index 2f3338e..f05cf98 100644 --- a/entity/item/item_chalice.tscn +++ b/entity/item/item_chalice.tscn @@ -21,7 +21,6 @@ linear_damp = 0.1 angular_damp = 0.1 [node name="CollisionShape2D" type="CollisionPolygon2D" parent="."] -scale = Vector2(2, 2) polygon = PackedVector2Array(0, -15, -11.5, -13, -10.5, -1, -2.5, 5, -2.5, 8, -8.5, 12, -4.5, 15, 4.5, 15, 8.5, 12, 2.5, 8, 2.5, 5, 10.5, -1, 11.5, -12.75) [node name="Sprite2D" type="Sprite2D" parent="CollisionShape2D"] diff --git a/entity/item/item_crown.tscn b/entity/item/item_crown.tscn index ac6f54c..e739b39 100644 --- a/entity/item/item_crown.tscn +++ b/entity/item/item_crown.tscn @@ -25,7 +25,7 @@ linear_damp = 0.1 angular_damp = 0.1 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -scale = Vector2(4, 4) +scale = Vector2(0.75, 0.75) shape = SubResource("CircleShape2D_058rf") [node name="Sprite2D" type="Sprite2D" parent="CollisionShape2D"] diff --git a/entity/item/item_ring.tscn b/entity/item/item_ring.tscn index f94208e..89d6de8 100644 --- a/entity/item/item_ring.tscn +++ b/entity/item/item_ring.tscn @@ -25,7 +25,6 @@ linear_damp = 0.1 angular_damp = 0.1 [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -scale = Vector2(2, 2) shape = SubResource("CapsuleShape2D_ka4h2") [node name="Sprite2D" type="Sprite2D" parent="CollisionShape2D"] diff --git a/interface/ghost.tscn b/interface/ghost.tscn index 38f6d16..cc20de8 100644 --- a/interface/ghost.tscn +++ b/interface/ghost.tscn @@ -12,7 +12,7 @@ collision_mask_prevent_placement = 16 collision_mask_delete_placement = 4 [node name="PlacementShape" parent="." instance=ExtResource("3_lskcf")] -scale = Vector2(2, 2) +scale = Vector2(2.5, 2.5) [node name="PreviewSprite" type="Sprite2D" parent="PlacementShape"] modulate = Color(1, 1, 1, 0.5)