| 123456789101112131415161718192021222324252627282930313233 |
- extends EntityGenerator
- @export_range(1, 8, 1) var wind_force := 4
- @export_enum("Right" , "Left") var wind_direction := 0
- func _ready() -> void:
- await get_tree().create_timer(0.1, false).timeout
- get_parent().move_child(self, 0)
- func _physics_process(delta: float) -> void:
- [$CanvasLayer/Left, $CanvasLayer/Right][wind_direction].show()
- for i in [$CanvasLayer/Left/Particles, $CanvasLayer/Right/Particles]:
- i.emitting = active
- i.speed_scale = float(wind_force) / 4
- i.amount = wind_force * 16
- if active:
- for i: Player in get_tree().get_nodes_in_group("Players"):
- if i.spring_bouncing == false and i.is_on_wall() == false and i.state_machine.state.name == "Normal":
- i.simulated_velocity.x = wind_force * [1, -1][wind_direction]
- i.global_position.x += ((wind_force * 10) * [1, -1][wind_direction]) * delta
- if $SFX.is_playing() == false:
- $SFX.play()
- else:
- $SFX.stop()
- func activate() -> void:
- if not active:
- active = true
- func deactivate_all_generators() -> void:
- for i in get_tree().get_nodes_in_group("EntityGenerators"):
- i.active = false
-
|