Skip to content

Commit a0b1eee

Browse files
Backported the fix to the lag spike with ice and fire balls
1 parent 6b8f111 commit a0b1eee

4 files changed

Lines changed: 16 additions & 25 deletions

File tree

Spells/Fireball.gd

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,13 @@ var frames := 0
77
var rotate := 0.0
88

99
func _ready():
10-
position = Caster.position
11-
rotate = (goal).angle_to_point(position)
12-
if Caster.name == "Player":
13-
set_collision_mask_bit(0, false)
10+
rotate = (goal).angle_to_point(Caster.position)
11+
position = Caster.position + Vector2(cos(rotate), sin(rotate))*12
1412

1513
func _physics_process(delta):
16-
if frames < 3:
17-
for body in $Area.get_overlapping_bodies():
18-
if not body == self:
19-
_on_body_entered(body)
20-
else:
21-
set_collision_mask_bit(0, true)
22-
14+
for body in $Area.get_overlapping_bodies():
15+
if not body == self:
16+
_on_body_entered(body)
2317

2418
move_and_slide(Vector2(cos(rotate), sin(rotate))*200)
2519
frames += 1

Spells/Fireball.tscn

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@ script = ExtResource( 1 )
1616

1717
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
1818
shape = SubResource( 1 )
19+
disabled = true
1920

2021
[node name="Area" type="Area2D" parent="."]
2122
collision_layer = 0
22-
collision_mask = 75
23+
collision_mask = 203
2324

2425
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area"]
2526
shape = SubResource( 2 )

Spells/Iceball.gd

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,22 @@ var rotate := 0.0
88
var gravity := 0.0
99

1010
func _ready():
11-
position = Caster.position
1211
rotate = goal.angle_to_point(Caster.position)
13-
if Caster.name == "Player":
14-
set_collision_mask_bit(0, false)
12+
position = Caster.position + Vector2(cos(rotate), sin(rotate)+gravity)*12
13+
1514

1615
func _physics_process(delta):
1716
gravity += delta
18-
if frames < 3:
19-
for body in $Area.get_overlapping_bodies():
20-
if not body == self:
21-
_on_body_entered(body)
22-
else:
23-
set_collision_mask_bit(0, true)
24-
17+
for body in $Area.get_overlapping_bodies():
18+
if not body == self:
19+
_on_body_entered(body)
2520

2621
move_and_slide(Vector2(cos(rotate), sin(rotate)+gravity)*200)
2722
frames += 1
2823

2924
func _on_body_entered(body):
3025
if body.has_method("health_object"):
31-
if (is_instance_valid(Caster) and (body != Caster or frames >= 6)) or not is_instance_valid(Caster):
26+
if (is_instance_valid(Caster) and (body != Caster or frames >= 3)) or not is_instance_valid(Caster):
3227
body.health_object().temp_change(-12.0 - randf() * 6.0)
3328
queue_free()
3429
elif body.is_in_group("World"):

Spells/Iceball.tscn

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@ script = ExtResource( 1 )
1616

1717
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
1818
shape = SubResource( 1 )
19+
disabled = true
1920

2021
[node name="Area" type="Area2D" parent="."]
22+
collision_layer = 0
23+
collision_mask = 203
2124

2225
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area"]
2326
shape = SubResource( 2 )
2427

2528
[node name="Sprite" type="Sprite" parent="."]
2629
texture = ExtResource( 2 )
27-
28-
[connection signal="body_entered" from="Area" to="." method="_on_body_entered"]

0 commit comments

Comments
 (0)