mirror of
https://github.com/RYGhub/the-cold-night.git
synced 2024-11-21 20:24:20 +00:00
💥 Boom
This commit is contained in:
parent
057a06212b
commit
e1164b3871
17 changed files with 113 additions and 12 deletions
|
@ -69,6 +69,11 @@ _global_script_classes=[ {
|
|||
"language": "GDScript",
|
||||
"path": "res://src/behaviours/graphics/FourSidedSprite.gd"
|
||||
}, {
|
||||
"base": "Node",
|
||||
"class": "FreeOnRequest",
|
||||
"language": "GDScript",
|
||||
"path": "res://src/behaviours/damage/FreeOnRequest.gd"
|
||||
}, {
|
||||
"base": "VisibilityNotifier2D",
|
||||
"class": "FreeWhenShapeIsOffScreen",
|
||||
"language": "GDScript",
|
||||
|
@ -90,6 +95,11 @@ _global_script_classes=[ {
|
|||
"path": "res://src/behaviours/damage/Ownership.gd"
|
||||
}, {
|
||||
"base": "Node",
|
||||
"class": "PathMovement",
|
||||
"language": "GDScript",
|
||||
"path": "res://src/behaviours/movement/PathMovement.gd"
|
||||
}, {
|
||||
"base": "Node",
|
||||
"class": "PlayerMovement",
|
||||
"language": "GDScript",
|
||||
"path": "res://src/behaviours/movement/PlayerMovement.gd"
|
||||
|
@ -162,10 +172,12 @@ _global_script_class_icons={
|
|||
"Fire": "",
|
||||
"Flammable": "",
|
||||
"FourSidedSprite": "",
|
||||
"FreeOnRequest": "",
|
||||
"FreeWhenShapeIsOffScreen": "",
|
||||
"Music": "",
|
||||
"MuteButton": "",
|
||||
"Ownership": "",
|
||||
"PathMovement": "",
|
||||
"PlayerMovement": "",
|
||||
"RNG": "",
|
||||
"RandomRotationOnReady": "",
|
||||
|
|
|
@ -31,4 +31,11 @@ func do_damage(to, multiplier):
|
|||
damageable.health += damage * multiplier
|
||||
# Emit the signal
|
||||
emit_signal("damaged", self, to)
|
||||
# Destroy self if necessary
|
||||
if destroy_after_damage:
|
||||
parent.queue_free()
|
||||
|
||||
|
||||
|
||||
func _on_BulletMovement_collided(_origin, collision):
|
||||
do_damage(collision.collider, 1)
|
||||
|
|
9
src/behaviours/damage/FreeOnRequest.gd
Normal file
9
src/behaviours/damage/FreeOnRequest.gd
Normal file
|
@ -0,0 +1,9 @@
|
|||
extends Node
|
||||
class_name FreeOnRequest
|
||||
|
||||
|
||||
onready var parent = get_parent()
|
||||
|
||||
|
||||
func _on_Damageable_health_reached_min(_origin, _value):
|
||||
parent.queue_free()
|
6
src/behaviours/damage/FreeOnRequest.tscn
Normal file
6
src/behaviours/damage/FreeOnRequest.tscn
Normal file
|
@ -0,0 +1,6 @@
|
|||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://src/behaviours/damage/FreeOnRequest.gd" type="Script" id=1]
|
||||
|
||||
[node name="FreeOnRequest" type="Node"]
|
||||
script = ExtResource( 1 )
|
|
@ -8,7 +8,7 @@ const DOWN_RIGHT = TAU/8
|
|||
const DOWN_LEFT = 3*TAU/8
|
||||
|
||||
|
||||
func turn(direction: Vector2) -> String:
|
||||
func turn(direction):
|
||||
var angle = direction.angle()
|
||||
var anime
|
||||
|
||||
|
@ -23,3 +23,7 @@ func turn(direction: Vector2) -> String:
|
|||
|
||||
play(anime)
|
||||
return animation
|
||||
|
||||
|
||||
func _on_AttractedToMovement_moved_in_direction(_origin, direction):
|
||||
turn(direction)
|
||||
|
|
11
src/behaviours/movement/PathMovement.gd
Normal file
11
src/behaviours/movement/PathMovement.gd
Normal file
|
@ -0,0 +1,11 @@
|
|||
extends Node
|
||||
class_name PathMovement
|
||||
|
||||
|
||||
func _ready():
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
# pass
|
14
src/behaviours/movement/PathMovement.tscn
Normal file
14
src/behaviours/movement/PathMovement.tscn
Normal file
|
@ -0,0 +1,14 @@
|
|||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://src/behaviours/movement/PathMovement.gd" type="Script" id=1]
|
||||
|
||||
[sub_resource type="Curve2D" id=1]
|
||||
_data = {
|
||||
"points": PoolVector2Array( )
|
||||
}
|
||||
|
||||
[node name="PathMovement" type="Node"]
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Path" type="Path2D" parent="."]
|
||||
curve = SubResource( 1 )
|
|
@ -45,3 +45,7 @@ func create_drop():
|
|||
container.add_child(node)
|
||||
node.set_position(source.global_position)
|
||||
return node
|
||||
|
||||
|
||||
func _on_Damageable_health_reached_min(_origin, _value):
|
||||
create_drop()
|
||||
|
|
|
@ -14,3 +14,5 @@ collision_mask = 2
|
|||
|
||||
[node name="Damaging" parent="." instance=ExtResource( 3 )]
|
||||
destroy_after_damage = true
|
||||
|
||||
[connection signal="collided" from="BulletMovement" to="Damaging" method="_on_BulletMovement_collided"]
|
||||
|
|
|
@ -12,12 +12,10 @@ export(int) var lit_damage
|
|||
func _on_Flammable_caught_fire(_origin):
|
||||
$Shape/Sprite.texture = lit_texture
|
||||
$Damaging.damage = lit_damage
|
||||
$Damaging.destroy_after_damage = false
|
||||
$Light.visible = true
|
||||
|
||||
|
||||
func _on_Flammable_extinguished_fire(_origin):
|
||||
$Shape/Sprite.texture = dim_texture
|
||||
$Damaging.damage = dim_damage
|
||||
$Damaging.destroy_after_damage = true
|
||||
$Light.visible = false
|
||||
|
|
|
@ -14,9 +14,9 @@ extents = Vector2( 6, 1.5 )
|
|||
[node name="Arrow" instance=ExtResource( 1 )]
|
||||
script = ExtResource( 3 )
|
||||
dim_texture = ExtResource( 2 )
|
||||
dim_damage = 1
|
||||
dim_damage = -10
|
||||
lit_texture = ExtResource( 7 )
|
||||
lit_damage = 5
|
||||
lit_damage = -10
|
||||
|
||||
[node name="Shape" type="CollisionShape2D" parent="." index="0"]
|
||||
shape = SubResource( 1 )
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
[gd_scene load_steps=3 format=2]
|
||||
[gd_scene load_steps=4 format=2]
|
||||
|
||||
[ext_resource path="res://src/behaviours/spawning/DropLoot.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://src/entities/AbstractEntity.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://src/behaviours/damage/FreeOnRequest.tscn" type="PackedScene" id=3]
|
||||
|
||||
[node name="AbstractEnemy" instance=ExtResource( 2 )]
|
||||
|
||||
|
@ -10,3 +11,8 @@ alliance = -1
|
|||
|
||||
[node name="DropLoot" parent="." index="2" instance=ExtResource( 1 )]
|
||||
container_name = "Pickups"
|
||||
|
||||
[node name="FreeOnRequest" parent="." index="3" instance=ExtResource( 3 )]
|
||||
|
||||
[connection signal="health_reached_min" from="Damageable" to="DropLoot" method="_on_Damageable_health_reached_min"]
|
||||
[connection signal="health_reached_min" from="Damageable" to="FreeOnRequest" method="_on_Damageable_health_reached_min"]
|
||||
|
|
|
@ -46,8 +46,14 @@ shape = SubResource( 1 )
|
|||
frames = SubResource( 2 )
|
||||
animation = "down"
|
||||
|
||||
[node name="Damageable" parent="." index="2"]
|
||||
max_health = 10.0
|
||||
health = 10.0
|
||||
|
||||
[node name="DropLoot" parent="." index="3"]
|
||||
loot_types = [ null, ExtResource( 2 ), ExtResource( 5 ) ]
|
||||
loot_weights = [ 1.0, 1.0, 0.1 ]
|
||||
|
||||
[node name="AttractedToMovement" parent="." index="4" instance=ExtResource( 3 )]
|
||||
[node name="AttractedToMovement" parent="." index="5" instance=ExtResource( 3 )]
|
||||
|
||||
[connection signal="moved_in_direction" from="AttractedToMovement" to="Shape/FourSidedSprite" method="_on_AttractedToMovement_moved_in_direction"]
|
||||
|
|
|
@ -39,7 +39,7 @@ position = Vector2( 421, -275 )
|
|||
scale = Vector2( 4, 4 )
|
||||
|
||||
[node name="FlameSprite" parent="TheDarkNightUI/MenuFire/Flame/Shape" index="0"]
|
||||
frame = 3
|
||||
frame = 5
|
||||
|
||||
[node name="Damaging" parent="TheDarkNightUI/MenuFire" index="3"]
|
||||
damage = -5.0
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -32,5 +32,5 @@ func _on_body_entered(_other):
|
|||
|
||||
func set_active(value):
|
||||
active = value
|
||||
$Shape.visible = value
|
||||
$Shape.disabled = not value
|
||||
$Shape.set_deferred("visible", value)
|
||||
$Shape.set_deferred("disabled", not value)
|
||||
|
|
|
@ -2,7 +2,7 @@ extends Node
|
|||
class_name RapidFire
|
||||
|
||||
|
||||
onready var target = get_tree().root.find_node("PhaseOnePlayer", true, false).get_node("ShootOnClick")
|
||||
onready var target = get_tree().root.find_node("PhaseOnePlayer", true, false).get_node("SpawnOnShoot/ShootOnClick")
|
||||
onready var pickup: Area2D = get_parent()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue