Skip to content

Commit

Permalink
Improve visuals for swarm spells
Browse files Browse the repository at this point in the history
Add a way to define effect_path for swarm spell
Add effects for swam spells used by Warrior of Light and Genis Sage
  • Loading branch information
Kvel2D committed Sep 29, 2024
1 parent 8e6957c commit 8e140f7
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 2 deletions.
6 changes: 4 additions & 2 deletions src/spells/spell_swarm.gd
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ var _damage: float
var _start_radius: float
var _end_radius: float
var _travel_distance: float
var _effect_path: String
var _move_vector: Vector2

@export var _move_timer: ManualTimer
Expand All @@ -42,7 +43,7 @@ func _on_move_timer_timeout():
_current_swarm_pos = _current_swarm_pos + _move_vector * MOVE_PERIOD

# Add visual effect
var effect: int = Effect.create_animated("res://src/effects/generic_magic.tscn", Vector3(_current_swarm_pos.x, _current_swarm_pos.y, 0.0), 0.0)
var effect: int = Effect.create_animated(_effect_path, Vector3(_current_swarm_pos.x, _current_swarm_pos.y, 0.0), 0.0)
var effect_scale: float = _get_effect_scale()
Effect.set_scale(effect, effect_scale)

Expand Down Expand Up @@ -80,7 +81,7 @@ func _get_effect_scale() -> float:
var lifetime: float = get_lifetime()
var remaining_lifetime: float = get_remaining_lifetime()
var move_progress: float = 1.0 - Utils.divide_safe(remaining_lifetime, lifetime, 0.0)
var effect_scale: float = lerp(0.5, 2.5, move_progress)
var effect_scale: float = lerp(0.5, 2.0, move_progress)

return effect_scale

Expand All @@ -99,3 +100,4 @@ func _set_subclass_data(data: SpellType.SpellData):
_start_radius = data.swarm.start_radius
_end_radius = data.swarm.end_radius
_travel_distance = data.swarm.travel_distance
_effect_path = data.swarm.effect_path
1 change: 1 addition & 0 deletions src/spells/spell_type.gd
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class SwarmData:
var start_radius: float = 0.0
var end_radius: float = 0
var travel_distance: float = 0.0
var effect_path: String = ""


class SpellData:
Expand Down
1 change: 1 addition & 0 deletions src/towers/tower_behaviors/genis_sage.gd
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ func tower_init():
swarm_st.data.swarm.start_radius = 100
swarm_st.data.swarm.end_radius = 300
swarm_st.data.swarm.travel_distance = 1200
swarm_st.data.swarm.effect_path = "res://src/effects/moonwell_target.tscn"


func on_attack(event: Event):
Expand Down
1 change: 1 addition & 0 deletions src/towers/tower_behaviors/hell_bat.gd
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ func tower_init():
swarm_st.data.swarm.start_radius = SWARM_START_RADIUS
swarm_st.data.swarm.end_radius = SWARM_END_RADIUS
swarm_st.data.swarm.travel_distance = 1200
swarm_st.data.swarm.effect_path = "res://src/effects/death_coil.tscn"


func create_autocasts() -> Array[Autocast]:
Expand Down
1 change: 1 addition & 0 deletions src/towers/tower_behaviors/warrior_of_light.gd
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ func tower_init():
shockwave_st.data.swarm.start_radius = SHOCKWAVE_START_RADIUS
shockwave_st.data.swarm.end_radius = SHOCKWAVE_END_RADIUS
shockwave_st.data.swarm.travel_distance = SHOCKWAVE_RANGE_FROM_TARGET
swarm_st.data.swarm.effect_path = "res://src/effects/shockwave_missile.tscn"


func get_aura_types() -> Array[AuraType]:
Expand Down

0 comments on commit 8e140f7

Please sign in to comment.