1
Fork 0
mirror of https://github.com/RYGhub/the-cold-night.git synced 2024-11-22 04:34:19 +00:00

🔧 Add sprites to snowmen

This commit is contained in:
Steffo 2022-04-03 22:22:11 +02:00
parent 04ea003b6d
commit 2607bea0ba
Signed by: steffo
GPG key ID: 6965406171929D01
18 changed files with 166 additions and 58 deletions

View file

@ -44,6 +44,11 @@ _global_script_classes=[ {
"language": "GDScript",
"path": "res://FireExtinguisherEnemy.gd"
}, {
"base": "AnimatedSprite",
"class": "FourSidedSprite",
"language": "GDScript",
"path": "res://src/behaviours/graphics/FourSidedSprite.gd"
}, {
"base": "Node",
"class": "Ownership",
"language": "GDScript",
@ -75,9 +80,14 @@ _global_script_classes=[ {
"path": "res://src/behaviours/spawning/SpawnEveryPeriod.gd"
}, {
"base": "Node",
"class": "TeleportToScreenEdge",
"class": "TeleportToRandomPosition",
"language": "GDScript",
"path": "res://src/behaviours/movement/TeleportToScreenEdge.gd"
}, {
"base": "Node",
"class": "TeleportToScreenEdge",
"language": "GDScript",
"path": "res://src/behaviours/movement/TeleportToRandomPosition.gd"
} ]
_global_script_class_icons={
"Alliance": "",
@ -87,12 +97,14 @@ _global_script_class_icons={
"DropLoot": "",
"ErraticMovement": "",
"FireExtinguisherEnemy": "",
"FourSidedSprite": "",
"Ownership": "",
"PlayerMovement": "",
"RNG": "",
"RandomRotationOnReady": "",
"SetSpawnedGoalTo": "",
"SpawnEveryPeriod": "",
"TeleportToRandomPosition": "",
"TeleportToScreenEdge": ""
}

View file

@ -0,0 +1,29 @@
extends AnimatedSprite
class_name FourSidedSprite
const UP_LEFT = -3*PI/4
const UP_RIGHT = -PI/4
const DOWN_RIGHT = PI/4
const DOWN_LEFT = 3*PI/4
func turn(direction: Vector2) -> String:
var angle = direction.angle()
var anime
if _between(UP_LEFT, angle, UP_RIGHT):
anime = "up"
elif _between(UP_RIGHT, angle, DOWN_RIGHT):
anime = "right"
elif _between(DOWN_RIGHT, angle, DOWN_LEFT):
anime = "down"
else:
anime = "left"
play(anime)
return animation
func _between(m, val, x) -> bool:
return (m < val) && (val <= x)

View file

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://src/behaviours/graphics/FourSidedSprite.gd" type="Script" id=1]
[node name="FourSidedSprite" type="AnimatedSprite"]
script = ExtResource( 1 )

View file

@ -2,6 +2,7 @@ extends Node
class_name AttractedToMovement
signal moving_in_direction(direction)
signal touching_goal
signal goal_reached
@ -19,6 +20,7 @@ var _goal_reached_triggered: bool = false
func move():
var direction: Vector2 = (goal.global_position - parent.global_position).normalized()
emit_signal("moving_in_direction", direction)
var _motion: Vector2 = parent.move_and_slide(direction * movement_per_second, Vector2.ZERO)
for slide_no in parent.get_slide_count():
var slide = parent.get_slide_collision(slide_no)

View file

@ -0,0 +1,33 @@
extends Node
class_name TeleportToScreenEdge
signal teleported(to)
export var bounds: Vector2
onready var parent = get_parent()
onready var rng = get_tree().root.get_node("Game/RNG").rng
func teleport():
var random = rng.randi_range(1, 4)
var new_position
if random == 1:
# Left
new_position = Vector2(0, rng.randf_range(0, bounds.y))
elif random == 2:
# Right
new_position = Vector2(bounds.x, rng.randf_range(0, bounds.y))
elif random == 3:
# Top
new_position = Vector2(rng.randf_range(0, bounds.x), 0)
else:
# Bottom
new_position = Vector2(rng.randf_range(0, bounds.y), bounds.y)
parent.set_position(new_position)
emit_signal("teleported", parent.position)

View file

@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=2]
[ext_resource path="res://src/behaviours/movement/TeleportToScreenEdge.gd" type="Script" id=1]
[node name="TeleportToRandomPosition" type="Node"]
script = ExtResource( 1 )

View file

@ -1,5 +1,5 @@
extends Node
class_name TeleportToScreenEdge
class_name TeleportToRandomPosition
signal teleported(to)
@ -13,21 +13,10 @@ onready var rng = get_tree().root.get_node("Game/RNG").rng
func teleport():
var random = rng.randi_range(1, 4)
var new_position
if random == 1:
# Left
new_position = Vector2(0, rng.randf_range(0, bounds.y))
elif random == 2:
# Right
new_position = Vector2(bounds.x, rng.randf_range(0, bounds.y))
elif random == 3:
# Top
new_position = Vector2(rng.randf_range(0, bounds.x), 0)
else:
# Bottom
new_position = Vector2(rng.randf_range(0, bounds.y), bounds.y)
var new_position = Vector2(
rng.randf_range(0, bounds.x),
rng.randf_range(0, bounds.y)
)
parent.set_position(new_position)
emit_signal("teleported", parent.position)

View file

@ -0,0 +1,54 @@
[gd_scene load_steps=12 format=2]
[ext_resource path="res://src/entities/enemies/EnemySnowmanLeft.png" type="Texture" id=1]
[ext_resource path="res://src/behaviours/movement/ErraticMovement.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/behaviours/movement/AttractedToMovement.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/entities/enemies/AbstractEnemy.tscn" type="PackedScene" id=4]
[ext_resource path="res://FireExtinguisherEnemy.gd" type="Script" id=5]
[ext_resource path="res://src/entities/enemies/EnemySnowmanBack.png" type="Texture" id=6]
[ext_resource path="res://src/entities/enemies/EnemySnowmanFront.png" type="Texture" id=7]
[ext_resource path="res://src/entities/enemies/EnemySnowmanRight.png" type="Texture" id=8]
[ext_resource path="res://src/behaviours/graphics/FourSidedSprite.tscn" type="PackedScene" id=9]
[sub_resource type="CapsuleShape2D" id=1]
radius = 9.0
height = 10.0
[sub_resource type="SpriteFrames" id=2]
animations = [ {
"frames": [ ExtResource( 1 ) ],
"loop": true,
"name": "left",
"speed": 5.0
}, {
"frames": [ ExtResource( 8 ) ],
"loop": true,
"name": "right",
"speed": 5.0
}, {
"frames": [ ExtResource( 6 ) ],
"loop": true,
"name": "up",
"speed": 5.0
}, {
"frames": [ ExtResource( 7 ) ],
"loop": true,
"name": "down",
"speed": 5.0
} ]
[node name="ChaserEnemy" instance=ExtResource( 4 )]
script = ExtResource( 5 )
[node name="Shape" type="CollisionShape2D" parent="." index="0"]
shape = SubResource( 1 )
[node name="FourSidedSprite" parent="Shape" index="0" instance=ExtResource( 9 )]
frames = SubResource( 2 )
animation = "down"
[node name="ErraticMovement" parent="." index="4" instance=ExtResource( 2 )]
[node name="AttractedToMovement" parent="." index="5" instance=ExtResource( 3 )]
[connection signal="moving_in_direction" from="AttractedToMovement" to="Shape/FourSidedSprite" method="turn"]

View file

@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
path="res://.import/EnemySnowmanBack.png-b2eed2720f48972b09c43adc35364e67.stex"
path="res://.import/EnemySnowmanBack.png-d689ef59a615a3796d8d5dee024e3fb9.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/mechanics/EnemySnowmanBack.png"
dest_files=[ "res://.import/EnemySnowmanBack.png-b2eed2720f48972b09c43adc35364e67.stex" ]
source_file="res://src/entities/enemies/EnemySnowmanBack.png"
dest_files=[ "res://.import/EnemySnowmanBack.png-d689ef59a615a3796d8d5dee024e3fb9.stex" ]
[params]
@ -20,7 +20,7 @@ compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2

View file

@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
path="res://.import/EnemySnowmanFront.png-a3abfa69d73157e46639cd3e486ba674.stex"
path="res://.import/EnemySnowmanFront.png-cd9afc4418c9808a8eabdd96966d3a3c.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/mechanics/EnemySnowmanFront.png"
dest_files=[ "res://.import/EnemySnowmanFront.png-a3abfa69d73157e46639cd3e486ba674.stex" ]
source_file="res://src/entities/enemies/EnemySnowmanFront.png"
dest_files=[ "res://.import/EnemySnowmanFront.png-cd9afc4418c9808a8eabdd96966d3a3c.stex" ]
[params]
@ -20,7 +20,7 @@ compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2

View file

@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
path="res://.import/EnemySnowmanLeft.png-651743351802fe1f1144983f041aa579.stex"
path="res://.import/EnemySnowmanLeft.png-622396971c521134bfb97a1767ad0b42.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/mechanics/EnemySnowmanLeft.png"
dest_files=[ "res://.import/EnemySnowmanLeft.png-651743351802fe1f1144983f041aa579.stex" ]
source_file="res://src/entities/enemies/EnemySnowmanLeft.png"
dest_files=[ "res://.import/EnemySnowmanLeft.png-622396971c521134bfb97a1767ad0b42.stex" ]
[params]
@ -20,7 +20,7 @@ compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2

View file

@ -2,15 +2,15 @@
importer="texture"
type="StreamTexture"
path="res://.import/EnemySnowmanRight.png-3e7f2a8dafa504a24f600bb4b8857d35.stex"
path="res://.import/EnemySnowmanRight.png-75a99b9b1b6aa0a37e6ab3b171957d06.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://src/mechanics/EnemySnowmanRight.png"
dest_files=[ "res://.import/EnemySnowmanRight.png-3e7f2a8dafa504a24f600bb4b8857d35.stex" ]
source_file="res://src/entities/enemies/EnemySnowmanRight.png"
dest_files=[ "res://.import/EnemySnowmanRight.png-75a99b9b1b6aa0a37e6ab3b171957d06.stex" ]
[params]
@ -20,7 +20,7 @@ compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/filter=false
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2

View file

@ -1,23 +0,0 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://src/mechanics/White.png" type="Texture" id=1]
[ext_resource path="res://src/behaviours/movement/ErraticMovement.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/behaviours/movement/AttractedToMovement.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/entities/enemies/AbstractEnemy.tscn" type="PackedScene" id=4]
[ext_resource path="res://FireExtinguisherEnemy.gd" type="Script" id=5]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 16, 16 )
[node name="FireExtinguisherEnemy" instance=ExtResource( 4 )]
script = ExtResource( 5 )
[node name="Shape" type="CollisionShape2D" parent="." index="0"]
shape = SubResource( 1 )
[node name="Sprite" type="Sprite" parent="Shape" index="0"]
texture = ExtResource( 1 )
[node name="ErraticMovement" parent="." index="4" instance=ExtResource( 2 )]
[node name="AttractedToMovement" parent="." index="5" instance=ExtResource( 3 )]

View file

@ -8,7 +8,7 @@
[ext_resource path="res://src/levels/Game.gd" type="Script" id=6]
[ext_resource path="res://src/ui/TimeSurvived.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/mechanics/ScreenEdgeSpawner.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/entities/enemies/FireExtinguisherEnemy.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/entities/enemies/ChaserEnemy.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/behaviours/targeting/SetSpawnedGoalTo.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/levels/PhaseOneMusic.gd" type="Script" id=11]
[ext_resource path="res://src/ui/HealthBar.tscn" type="PackedScene" id=14]
@ -49,7 +49,7 @@ position = Vector2( 596, 268 )
[node name="Fire" parent="PhaseOne/Entities" instance=ExtResource( 3 )]
position = Vector2( 640, 320 )
intensity = 1.0
intensity = 2.0
[node name="Pickups" type="Node" parent="PhaseOne/Entities"]