Compare commits
	
		
			3 Commits
		
	
	
		
			7136b07de5
			...
			156da4898e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 156da4898e | |||
| ac8ffdcd96 | |||
| 56278de1d7 | 
| @@ -10,6 +10,8 @@ signal sig_debug_enemy_god_mode(value: bool) | ||||
| signal sig_debug_stats_set(key: String, value: String) | ||||
| @warning_ignore("unused_signal") | ||||
| signal sig_stop_spawning(value: bool) | ||||
| @warning_ignore("unused_signal") | ||||
| signal sig_set_spawn_rate(value: float) | ||||
|  | ||||
| const GROUP_ENEMY = "enemy" | ||||
| const GROUP_DAMAGEABLE = "damagable" | ||||
|   | ||||
| @@ -5,7 +5,7 @@ extends CharacterBody2D | ||||
| @export var max_health: float = 10.0 | ||||
| @export var default_contact_damage: float = 0.0 | ||||
| @export var target_distance: float = 6.0 | ||||
| @export var path_update_interval: float = 0.5 | ||||
| @export var path_update_interval: float = 1.5 | ||||
|  | ||||
| @onready var target_cast: RayCast2D = $TargetCast | ||||
| @onready var animation_player: AnimationPlayer = $AnimationPlayer | ||||
| @@ -48,14 +48,13 @@ func do_movement(delta: float) -> void: | ||||
| 		return | ||||
| 	if global_position.distance_to(target.global_position) < target_distance: | ||||
| 		return | ||||
| 	_path_update_timer -= delta | ||||
| 	_path_update_timer -= delta + randf() | ||||
| 	if _has_direct_path(): | ||||
| 		shape_cast_2d.enabled = false | ||||
| 		_do_simple_movement() | ||||
| 	else: | ||||
| 		_do_nav_agent_movement() | ||||
|  | ||||
|  | ||||
| func _has_direct_path(): | ||||
| 	target_cast.target_position = to_local(target.global_position) | ||||
| 	target_cast.enabled = true | ||||
|   | ||||
| @@ -56,7 +56,6 @@ shape = SubResource("CircleShape2D_satqt") | ||||
|  | ||||
| [node name="TargetCast" type="RayCast2D" parent="." groups=["damagable", "enemy"]] | ||||
| enabled = false | ||||
| collision_mask = 3 | ||||
|  | ||||
| [node name="AnimationPlayer" type="AnimationPlayer" parent="."] | ||||
| libraries = { | ||||
| @@ -71,5 +70,6 @@ wait_time = 0.5 | ||||
|  | ||||
| [node name="ShapeCast2D" type="ShapeCast2D" parent="."] | ||||
| shape = SubResource("CircleShape2D_pkqou") | ||||
| max_results = 2 | ||||
|  | ||||
| [connection signal="animation_finished" from="AnimationPlayer" to="." method="_on_animation_player_animation_finished"] | ||||
|   | ||||
| @@ -14,7 +14,6 @@ func _process(delta: float) -> void: | ||||
| 	elapsed_time += delta | ||||
| 	main_ui.player_ui.set_elapsed_time(elapsed_time) | ||||
|  | ||||
|  | ||||
| func _unhandled_input(event: InputEvent) -> void: | ||||
| 	if event.is_action_pressed("ui_cancel"): | ||||
| 		main_ui.pause_ui.toggle_pause_ui() | ||||
|   | ||||
| @@ -11,9 +11,10 @@ const ENEMY_RAT = preload("res://scenes/enemies/enemy_rat.tscn") | ||||
|  | ||||
|  | ||||
| func _ready() -> void: | ||||
| 	timer.wait_time = spawn_rate / 1 | ||||
| 	timer.wait_time = 1 / spawn_rate | ||||
| 	timer.start() | ||||
| 	GlobalConst.sig_stop_spawning.connect(_on_stop_spawning) | ||||
| 	GlobalConst.sig_set_spawn_rate.connect(_on_set_spawn_rate) | ||||
|  | ||||
|  | ||||
| func _on_timer_timeout() -> void: | ||||
| @@ -25,9 +26,11 @@ func _on_timer_timeout() -> void: | ||||
| 		new_enemy.target = target | ||||
| 		add_child(new_enemy) | ||||
|  | ||||
|  | ||||
| func _on_stop_spawning(val: bool): | ||||
| 	if val: | ||||
| 		timer.stop() | ||||
| 	elif timer.is_stopped(): | ||||
| 		timer.start() | ||||
|  | ||||
| func _on_set_spawn_rate(val: float): | ||||
| 	timer.wait_time = 1 / val | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|  | ||||
| [node name="EnemyManager" type="Node2D"] | ||||
| script = ExtResource("1_tfsap") | ||||
| max_enemies = 50 | ||||
| max_enemies = 500 | ||||
| spawn_rate = 1.0 | ||||
|  | ||||
| [node name="Timer" type="Timer" parent="."] | ||||
|   | ||||
| @@ -75,3 +75,7 @@ func update_debug_stats() -> void: | ||||
|  | ||||
| func _on_time_scale_slider_value_changed(value: float) -> void: | ||||
| 	Engine.time_scale = value | ||||
|  | ||||
|  | ||||
| func _on_spawn_rate_value_changed(value: float) -> void: | ||||
| 	GlobalConst.sig_set_spawn_rate.emit(value) | ||||
|   | ||||
| @@ -154,6 +154,27 @@ max_value = 1.0 | ||||
| step = 0.1 | ||||
| value = 1.0 | ||||
|  | ||||
| [node name="MarginContainer2" type="MarginContainer" parent="CanvasLayer/DebugUI/PanelContainer/VBoxContainer"] | ||||
| layout_mode = 2 | ||||
| size_flags_horizontal = 3 | ||||
| theme_override_constants/margin_left = 6 | ||||
| theme_override_constants/margin_right = 6 | ||||
|  | ||||
| [node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/MarginContainer2"] | ||||
| layout_mode = 2 | ||||
|  | ||||
| [node name="Label" type="Label" parent="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/MarginContainer2/HBoxContainer"] | ||||
| layout_mode = 2 | ||||
| size_flags_horizontal = 3 | ||||
| text = "Spawn rate" | ||||
|  | ||||
| [node name="SpawnRate" type="HSlider" parent="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/MarginContainer2/HBoxContainer"] | ||||
| layout_mode = 2 | ||||
| size_flags_horizontal = 3 | ||||
| max_value = 10.0 | ||||
| step = 0.1 | ||||
| value = 1.0 | ||||
|  | ||||
| [node name="StatsContainer" type="PanelContainer" parent="CanvasLayer/DebugUI"] | ||||
| layout_mode = 0 | ||||
| offset_left = 938.0 | ||||
| @@ -176,3 +197,4 @@ layout_mode = 2 | ||||
| [connection signal="toggled" from="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/EnemyGodModeCheck" to="CanvasLayer/DebugUI" method="_on_enemy_god_mode_check_toggled"] | ||||
| [connection signal="toggled" from="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/StatsCheck" to="CanvasLayer/DebugUI" method="_on_stats_check_toggled"] | ||||
| [connection signal="value_changed" from="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/MarginContainer/HBoxContainer/TimeScaleSlider" to="CanvasLayer/DebugUI" method="_on_time_scale_slider_value_changed"] | ||||
| [connection signal="value_changed" from="CanvasLayer/DebugUI/PanelContainer/VBoxContainer/MarginContainer2/HBoxContainer/SpawnRate" to="CanvasLayer/DebugUI" method="_on_spawn_rate_value_changed"] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user