More work on quests
This commit is contained in:
@@ -14,11 +14,13 @@ enum Status{
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum Locations{
|
enum Locations{
|
||||||
|
VOID,
|
||||||
NESTORS_WOODS
|
NESTORS_WOODS
|
||||||
}
|
}
|
||||||
|
|
||||||
class Event:
|
class Event:
|
||||||
var enemy_types: Dictionary[String, PackedScene] = {
|
var enemy_types: Dictionary[String, PackedScene] = {
|
||||||
|
"feral pig": preload("res://templates/enemies/feral_pig.tscn"),
|
||||||
"goo": preload("res://templates/enemies/goo.tscn")
|
"goo": preload("res://templates/enemies/goo.tscn")
|
||||||
}
|
}
|
||||||
enum Type{
|
enum Type{
|
||||||
@@ -299,11 +301,15 @@ func is_eligible(member : Adventurer) -> bool:
|
|||||||
func is_taken() -> bool:
|
func is_taken() -> bool:
|
||||||
return status == Status.TAKEN
|
return status == Status.TAKEN
|
||||||
|
|
||||||
func location_name() -> String:
|
static func location_name(location : Locations) -> String:
|
||||||
match(location):
|
match(location):
|
||||||
|
Locations.VOID: return "The Endless Void"
|
||||||
Locations.NESTORS_WOODS: return "Nestor's Woods"
|
Locations.NESTORS_WOODS: return "Nestor's Woods"
|
||||||
return "ERROR"
|
return "ERROR"
|
||||||
|
|
||||||
|
func get_location_name() -> String:
|
||||||
|
return Quest.location_name(location)
|
||||||
|
|
||||||
func difficulty_name() -> String:
|
func difficulty_name() -> String:
|
||||||
match(difficulty):
|
match(difficulty):
|
||||||
0: return "None"
|
0: return "None"
|
||||||
@@ -330,7 +336,16 @@ static func load_quest_list() -> void:
|
|||||||
dir.list_dir_end()
|
dir.list_dir_end()
|
||||||
|
|
||||||
static func generate(parameters : Dictionary) -> Quest:
|
static func generate(parameters : Dictionary) -> Quest:
|
||||||
return null
|
var candidates : Array[Quest] = []
|
||||||
|
var l = list
|
||||||
|
for q in list:
|
||||||
|
if parameters.location != -1 and q.location != parameters.location:
|
||||||
|
continue
|
||||||
|
if q.difficulty < parameters.min_difficulty or q.difficulty > parameters.max_difficulty:
|
||||||
|
continue
|
||||||
|
candidates.append(q)
|
||||||
|
var choice : Quest = candidates.pick_random()
|
||||||
|
return choice.duplicate()
|
||||||
|
|
||||||
func save() -> Dictionary:
|
func save() -> Dictionary:
|
||||||
var d : Dictionary = {}
|
var d : Dictionary = {}
|
||||||
42
data/quests/ann-marie-nestor2.gd
Normal file
42
data/quests/ann-marie-nestor2.gd
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
extends Quest
|
||||||
|
|
||||||
|
func _init() -> void:
|
||||||
|
name = "[1] A Quest for Nestor's Woods that Ann Marie Promised Me"
|
||||||
|
super._init()
|
||||||
|
|
||||||
|
func setup() -> void:
|
||||||
|
|
||||||
|
var event_weights = [1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,4,4,5]
|
||||||
|
var num_events = 3 # event_weights.pick_random()
|
||||||
|
#The first event is guaranteed to be at the 50% mark.
|
||||||
|
var first : bool = true
|
||||||
|
var pranges : Array = []
|
||||||
|
var margin : float = 0.1
|
||||||
|
for i in range(num_events):
|
||||||
|
var evt : Quest.Event = Quest.Event.new()
|
||||||
|
evt.type = Quest.Event.Type.COMBAT
|
||||||
|
evt.enemies = ["goo"]
|
||||||
|
evt.time = 5
|
||||||
|
if first:
|
||||||
|
#Make invisible
|
||||||
|
evt.progress_point = .5
|
||||||
|
pranges.append([margin, evt.progress_point-margin])
|
||||||
|
pranges.append([evt.progress_point+margin, 1 - margin])
|
||||||
|
first = false
|
||||||
|
else:
|
||||||
|
evt.hidden = true
|
||||||
|
pranges.shuffle()
|
||||||
|
var range = pranges.pop_back()
|
||||||
|
evt.progress_point = randf_range(range[0], range[1])
|
||||||
|
if evt.progress_point - range[0] >= 2 * margin:
|
||||||
|
pranges.append([range[0], evt.progress_point - margin])
|
||||||
|
if range[1] - evt.progress_point >= 2 * margin:
|
||||||
|
pranges.append([evt.progress_point + margin, range[1]])
|
||||||
|
events.append(evt)
|
||||||
|
events.sort_custom(func(a,b): return a.progress_point < b.progress_point)
|
||||||
|
desc = "One day Ann Marie will write me."
|
||||||
|
location = Quest.Locations.NESTORS_WOODS
|
||||||
|
rewards = {"exp":10, "gold":5}
|
||||||
|
guild_rewards = {"glory":10, "gold":5}
|
||||||
|
covenant_cost = 5
|
||||||
|
|
||||||
1
data/quests/ann-marie-nestor2.gd.uid
Normal file
1
data/quests/ann-marie-nestor2.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://w6t0lkkxmbl2
|
||||||
49
data/quests/feral_pigs.gd
Normal file
49
data/quests/feral_pigs.gd
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
extends Quest
|
||||||
|
|
||||||
|
func _init() -> void:
|
||||||
|
name = "Fight of the Feral Pigs"
|
||||||
|
location = Quest.Locations.NESTORS_WOODS
|
||||||
|
difficulty = 1
|
||||||
|
super._init()
|
||||||
|
|
||||||
|
func setup() -> void:
|
||||||
|
|
||||||
|
var event_weights = [1,1,1,1,1,1,1,1,2,2,2,2,3,3,3]
|
||||||
|
var num_events = event_weights.pick_random()
|
||||||
|
#The first event is guaranteed to be at the 50% mark.
|
||||||
|
var first : bool = true
|
||||||
|
var pranges : Array = []
|
||||||
|
var margin : float = 0.1
|
||||||
|
for i in range(num_events):
|
||||||
|
var evt : Quest.Event = Quest.Event.new()
|
||||||
|
evt.type = Quest.Event.Type.COMBAT
|
||||||
|
evt.enemies = []
|
||||||
|
for j in range(randi() %3 + 1):
|
||||||
|
evt.enemies.append("feral pig")
|
||||||
|
evt.time = 600
|
||||||
|
evt.completed.connect(_on_combat_complete.bind(evt))
|
||||||
|
if first:
|
||||||
|
#Make invisible
|
||||||
|
evt.progress_point = .5
|
||||||
|
pranges.append([margin, evt.progress_point-margin])
|
||||||
|
pranges.append([evt.progress_point+margin, 1 - margin])
|
||||||
|
first = false
|
||||||
|
else:
|
||||||
|
evt.hidden = true
|
||||||
|
pranges.shuffle()
|
||||||
|
var range = pranges.pop_back()
|
||||||
|
evt.progress_point = randf_range(range[0], range[1])
|
||||||
|
if evt.progress_point - range[0] >= 2 * margin:
|
||||||
|
pranges.append([range[0], evt.progress_point - margin])
|
||||||
|
if range[1] - evt.progress_point >= 2 * margin:
|
||||||
|
pranges.append([evt.progress_point + margin, range[1]])
|
||||||
|
events.append(evt)
|
||||||
|
events.sort_custom(func(a,b): return a.progress_point < b.progress_point)
|
||||||
|
desc = "Pigs got out of Old John’s farm again. Poor fella don’t know up from down– at his age, he can’t help it. Trouble is, pigs are causing trouble in them there woods and John sure ain’t takin’ care of it. Handle 'em for us, would you?"
|
||||||
|
location = Quest.Locations.NESTORS_WOODS
|
||||||
|
rewards = {"exp":10, "gold":5}
|
||||||
|
guild_rewards = {"glory":5, "gold":5}
|
||||||
|
covenant_cost = 5
|
||||||
|
|
||||||
|
func _on_combat_complete(event : Quest.Event) -> void:
|
||||||
|
rewards.gold += 2 * len(event.enemies)
|
||||||
1
data/quests/feral_pigs.gd.uid
Normal file
1
data/quests/feral_pigs.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://nnl5qvb3csr0
|
||||||
@@ -1,7 +1,11 @@
|
|||||||
extends Quest
|
extends Quest
|
||||||
|
|
||||||
func setup() -> void:
|
func _init() -> void:
|
||||||
name = "A Sticky Situation"
|
name = "A Sticky Situation"
|
||||||
|
location = Quest.Locations.VOID
|
||||||
|
super._init()
|
||||||
|
|
||||||
|
func setup() -> void:
|
||||||
var event_weights = [1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,4,4,5]
|
var event_weights = [1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,4,4,5]
|
||||||
var num_events = 3 # event_weights.pick_random()
|
var num_events = 3 # event_weights.pick_random()
|
||||||
#The first event is guaranteed to be at the 50% mark.
|
#The first event is guaranteed to be at the 50% mark.
|
||||||
|
|||||||
@@ -61,4 +61,4 @@ layer_info = {
|
|||||||
"16": SubResource("Resource_qx0md"),
|
"16": SubResource("Resource_qx0md"),
|
||||||
"17": SubResource("Resource_dv5be")
|
"17": SubResource("Resource_dv5be")
|
||||||
}
|
}
|
||||||
metadata/_latest_layer = "13"
|
metadata/_latest_layer = ""
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ And after that, all that was left was to... just open the guild gate, I guess?
|
|||||||
It took me a little while to find the thing in the middle of Nestor's Woods despite growing up there. I knew Guildhalls were hidden in another dimension, but I'd always pictured the Guild Gates would be more... magical looking?
|
It took me a little while to find the thing in the middle of Nestor's Woods despite growing up there. I knew Guildhalls were hidden in another dimension, but I'd always pictured the Guild Gates would be more... magical looking?
|
||||||
do Game.switch_scenes("first_guildhall")
|
do Game.switch_scenes("first_guildhall")
|
||||||
player: (Wow this is a mess... nobody's been here for a while. I should...)
|
player: (Wow this is a mess... nobody's been here for a while. I should...)
|
||||||
|
- Stuff
|
||||||
|
Stuff stuff.
|
||||||
- set up some lights.
|
- set up some lights.
|
||||||
Hey, no touching! This isn't your home! Get out!
|
Hey, no touching! This isn't your home! Get out!
|
||||||
- clean it out.
|
- clean it out.
|
||||||
|
|||||||
BIN
external/animated-flower.png
vendored
Normal file
BIN
external/animated-flower.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
40
external/animated-flower.png.import
vendored
Normal file
40
external/animated-flower.png.import
vendored
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bl05n76gr2dae"
|
||||||
|
path="res://.godot/imported/animated-flower.png-97452da660b05abe194469bd94b63006.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://external/animated-flower.png"
|
||||||
|
dest_files=["res://.godot/imported/animated-flower.png-97452da660b05abe194469bd94b63006.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
BIN
external/boar.png
vendored
Normal file
BIN
external/boar.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.4 KiB |
40
external/boar.png.import
vendored
Normal file
40
external/boar.png.import
vendored
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://op4td4qm3tx5"
|
||||||
|
path="res://.godot/imported/boar.png-0161cfc5f286f436bdc0954a6e815cd6.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://external/boar.png"
|
||||||
|
dest_files=["res://.godot/imported/boar.png-0161cfc5f286f436bdc0954a6e815cd6.ctex"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/high_quality=false
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/uastc_level=0
|
||||||
|
compress/rdo_quality_loss=0.0
|
||||||
|
compress/hdr_compression=1
|
||||||
|
compress/normal_map=0
|
||||||
|
compress/channel_pack=0
|
||||||
|
mipmaps/generate=false
|
||||||
|
mipmaps/limit=-1
|
||||||
|
roughness/mode=0
|
||||||
|
roughness/src_normal=""
|
||||||
|
process/channel_remap/red=0
|
||||||
|
process/channel_remap/green=1
|
||||||
|
process/channel_remap/blue=2
|
||||||
|
process/channel_remap/alpha=3
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/normal_map_invert_y=false
|
||||||
|
process/hdr_as_srgb=false
|
||||||
|
process/hdr_clamp_exposure=false
|
||||||
|
process/size_limit=0
|
||||||
|
detect_3d/compress_to=1
|
||||||
196
scenes/map.tscn
196
scenes/map.tscn
@@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=12 format=3 uid="uid://dlmodaf4nojin"]
|
[gd_scene load_steps=13 format=3 uid="uid://dlmodaf4nojin"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://jhaiu4lbwswl" path="res://external/test-map.png" id="1_2klcf"]
|
[ext_resource type="Texture2D" uid="uid://jhaiu4lbwswl" path="res://external/test-map.png" id="1_2klcf"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dy3o1xtqg03at" path="res://external/map-region-ninepatch.png" id="1_2lpho"]
|
[ext_resource type="Texture2D" uid="uid://dy3o1xtqg03at" path="res://external/map-region-ninepatch.png" id="1_2lpho"]
|
||||||
|
[ext_resource type="Script" uid="uid://c2jtg58mno7fj" path="res://scripts/map.gd" id="1_nakos"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dqt38n43p58vx" path="res://templates/map_pin.tscn" id="2_paxxb"]
|
[ext_resource type="PackedScene" uid="uid://dqt38n43p58vx" path="res://templates/map_pin.tscn" id="2_paxxb"]
|
||||||
[ext_resource type="Shader" uid="uid://m6q35taes6nx" path="res://shaders/map_point.gdshader" id="3_2lpho"]
|
[ext_resource type="Shader" uid="uid://m6q35taes6nx" path="res://shaders/map_point.gdshader" id="3_2lpho"]
|
||||||
[ext_resource type="Script" uid="uid://bhahhdhn3a7kr" path="res://scripts/map_cloud.gd" id="5_nakos"]
|
[ext_resource type="Script" uid="uid://bhahhdhn3a7kr" path="res://scripts/map_cloud.gd" id="5_nakos"]
|
||||||
@@ -36,13 +37,14 @@ shader_parameter/fringe_color = SubResource("GradientTexture1D_0cso3")
|
|||||||
shader_parameter/fringe_threshold = 0.10000000000582077
|
shader_parameter/fringe_threshold = 0.10000000000582077
|
||||||
shader_parameter/threshold = 0.361
|
shader_parameter/threshold = 0.361
|
||||||
|
|
||||||
[node name="Control" type="Control"]
|
[node name="Map" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
grow_horizontal = 2
|
grow_horizontal = 2
|
||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
script = ExtResource("1_nakos")
|
||||||
|
|
||||||
[node name="NinePatchRect6" type="NinePatchRect" parent="."]
|
[node name="NinePatchRect6" type="NinePatchRect" parent="."]
|
||||||
modulate = Color(0.38170326, 0.38170323, 0.38170323, 1)
|
modulate = Color(0.38170326, 0.38170323, 0.38170323, 1)
|
||||||
@@ -147,6 +149,7 @@ offset_top = 641.0
|
|||||||
offset_right = 717.0
|
offset_right = 717.0
|
||||||
offset_bottom = 711.0
|
offset_bottom = 711.0
|
||||||
label = "Spire"
|
label = "Spire"
|
||||||
|
id = null
|
||||||
locked_brief = ""
|
locked_brief = ""
|
||||||
unlocked_brief = ""
|
unlocked_brief = ""
|
||||||
|
|
||||||
@@ -167,7 +170,7 @@ offset_bottom = 188.0
|
|||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
|
|
||||||
[node name="Label" parent="Spire Pin/CanvasGroup/Banner" index="0"]
|
[node name="Label" parent="Spire Pin/CanvasGroup/Banner" index="0"]
|
||||||
text = ""
|
text = "Spire"
|
||||||
|
|
||||||
[node name="Nestor\'s Woods Pin" parent="." instance=ExtResource("2_paxxb")]
|
[node name="Nestor\'s Woods Pin" parent="." instance=ExtResource("2_paxxb")]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
@@ -177,6 +180,7 @@ offset_right = 214.0
|
|||||||
offset_bottom = 452.0
|
offset_bottom = 452.0
|
||||||
primed = true
|
primed = true
|
||||||
label = "Nestor's Woods"
|
label = "Nestor's Woods"
|
||||||
|
id = 1
|
||||||
locked_brief = ""
|
locked_brief = ""
|
||||||
unlocked_brief = ""
|
unlocked_brief = ""
|
||||||
|
|
||||||
@@ -188,6 +192,7 @@ offset_right = -64.0
|
|||||||
offset_bottom = 150.0
|
offset_bottom = 150.0
|
||||||
primed = true
|
primed = true
|
||||||
label = "Iko Gorge"
|
label = "Iko Gorge"
|
||||||
|
id = null
|
||||||
locked_brief = "Mysterious cliffs in the frozen north."
|
locked_brief = "Mysterious cliffs in the frozen north."
|
||||||
unlocked_brief = "One of the few northernmost lands uninhabited by [giants]. The snowy creatures of the Iko region run rampant here. Some say they are protected by the [giant] goddess, [Nakari]."
|
unlocked_brief = "One of the few northernmost lands uninhabited by [giants]. The snowy creatures of the Iko region run rampant here. Some say they are protected by the [giant] goddess, [Nakari]."
|
||||||
|
|
||||||
@@ -213,6 +218,7 @@ offset_top = 303.0
|
|||||||
offset_right = 507.0
|
offset_right = 507.0
|
||||||
offset_bottom = 373.0
|
offset_bottom = 373.0
|
||||||
label = ""
|
label = ""
|
||||||
|
id = null
|
||||||
locked_brief = ""
|
locked_brief = ""
|
||||||
unlocked_brief = ""
|
unlocked_brief = ""
|
||||||
|
|
||||||
@@ -223,6 +229,7 @@ offset_top = 585.0
|
|||||||
offset_right = 349.0
|
offset_right = 349.0
|
||||||
offset_bottom = 655.0
|
offset_bottom = 655.0
|
||||||
label = "Echo Valley Monastery"
|
label = "Echo Valley Monastery"
|
||||||
|
id = null
|
||||||
locked_brief = ""
|
locked_brief = ""
|
||||||
unlocked_brief = ""
|
unlocked_brief = ""
|
||||||
|
|
||||||
@@ -233,6 +240,7 @@ offset_top = 596.0
|
|||||||
offset_right = -152.0
|
offset_right = -152.0
|
||||||
offset_bottom = 666.0
|
offset_bottom = 666.0
|
||||||
label = "Crystal Cave"
|
label = "Crystal Cave"
|
||||||
|
id = null
|
||||||
locked_brief = ""
|
locked_brief = ""
|
||||||
unlocked_brief = ""
|
unlocked_brief = ""
|
||||||
|
|
||||||
@@ -507,6 +515,34 @@ patch_margin_right = 4
|
|||||||
patch_margin_bottom = 4
|
patch_margin_bottom = 4
|
||||||
script = ExtResource("5_nakos")
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud31" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 377.0
|
||||||
|
offset_top = 967.0
|
||||||
|
offset_right = 938.0
|
||||||
|
offset_bottom = 1313.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud38" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 635.0
|
||||||
|
offset_top = 834.0
|
||||||
|
offset_right = 1196.0
|
||||||
|
offset_bottom = 1180.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
[node name="Cloud21" type="NinePatchRect" parent="Clouds"]
|
[node name="Cloud21" type="NinePatchRect" parent="Clouds"]
|
||||||
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
@@ -549,6 +585,34 @@ patch_margin_right = 4
|
|||||||
patch_margin_bottom = 4
|
patch_margin_bottom = 4
|
||||||
script = ExtResource("5_nakos")
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud39" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 1286.0
|
||||||
|
offset_top = 720.0
|
||||||
|
offset_right = 1847.0
|
||||||
|
offset_bottom = 1066.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud37" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 846.0
|
||||||
|
offset_top = 447.0
|
||||||
|
offset_right = 1407.0
|
||||||
|
offset_bottom = 793.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
[node name="Cloud24" type="NinePatchRect" parent="Clouds"]
|
[node name="Cloud24" type="NinePatchRect" parent="Clouds"]
|
||||||
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
@@ -563,6 +627,90 @@ patch_margin_right = 4
|
|||||||
patch_margin_bottom = 4
|
patch_margin_bottom = 4
|
||||||
script = ExtResource("5_nakos")
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud28" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 1339.0
|
||||||
|
offset_top = 879.0
|
||||||
|
offset_right = 1900.0
|
||||||
|
offset_bottom = 1225.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud32" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 1589.0
|
||||||
|
offset_top = 760.0
|
||||||
|
offset_right = 2150.0
|
||||||
|
offset_bottom = 1106.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud29" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 1443.0
|
||||||
|
offset_top = 596.0
|
||||||
|
offset_right = 2004.0
|
||||||
|
offset_bottom = 942.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud40" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 1255.0
|
||||||
|
offset_top = 216.0
|
||||||
|
offset_right = 1816.0
|
||||||
|
offset_bottom = 562.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud30" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 1497.0
|
||||||
|
offset_top = 308.0
|
||||||
|
offset_right = 2058.0
|
||||||
|
offset_bottom = 654.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud35" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 1597.0
|
||||||
|
offset_top = 144.0
|
||||||
|
offset_right = 2158.0
|
||||||
|
offset_bottom = 490.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
[node name="Cloud25" type="NinePatchRect" parent="Clouds"]
|
[node name="Cloud25" type="NinePatchRect" parent="Clouds"]
|
||||||
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
@@ -577,6 +725,20 @@ patch_margin_right = 4
|
|||||||
patch_margin_bottom = 4
|
patch_margin_bottom = 4
|
||||||
script = ExtResource("5_nakos")
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud36" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 1094.0
|
||||||
|
offset_top = -86.0
|
||||||
|
offset_right = 1655.0
|
||||||
|
offset_bottom = 260.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
[node name="Cloud26" type="NinePatchRect" parent="Clouds"]
|
[node name="Cloud26" type="NinePatchRect" parent="Clouds"]
|
||||||
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
@@ -605,5 +767,33 @@ patch_margin_right = 4
|
|||||||
patch_margin_bottom = 4
|
patch_margin_bottom = 4
|
||||||
script = ExtResource("5_nakos")
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud33" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 1817.0
|
||||||
|
offset_top = -157.0
|
||||||
|
offset_right = 2378.0
|
||||||
|
offset_bottom = 189.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
|
[node name="Cloud34" type="NinePatchRect" parent="Clouds"]
|
||||||
|
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = 1501.0
|
||||||
|
offset_top = -254.0
|
||||||
|
offset_right = 2062.0
|
||||||
|
offset_bottom = 92.0
|
||||||
|
texture = ExtResource("1_2lpho")
|
||||||
|
patch_margin_left = 4
|
||||||
|
patch_margin_top = 4
|
||||||
|
patch_margin_right = 4
|
||||||
|
patch_margin_bottom = 4
|
||||||
|
script = ExtResource("5_nakos")
|
||||||
|
|
||||||
[editable path="Spire Pin"]
|
[editable path="Spire Pin"]
|
||||||
[editable path="Iko Gorge Pin"]
|
[editable path="Iko Gorge Pin"]
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
class_name Enemy extends QuestSprite
|
class_name Enemy extends QuestSprite
|
||||||
|
|
||||||
|
static var list : Dictionary[String, PackedScene] = {}
|
||||||
|
|
||||||
|
static func load_enemy_list() -> void:
|
||||||
|
var folder_path = "res://templates/enemies"
|
||||||
|
var dir = DirAccess.open(folder_path)
|
||||||
|
if dir:
|
||||||
|
dir.list_dir_begin()
|
||||||
|
var filename = dir.get_next()
|
||||||
|
while filename != "":
|
||||||
|
if not dir.current_is_dir():
|
||||||
|
var template : PackedScene = ResourceLoader.load(folder_path.path_join(filename))
|
||||||
|
if template:
|
||||||
|
list[template.name] = template
|
||||||
|
filename = dir.get_next()
|
||||||
|
dir.list_dir_end()
|
||||||
|
|
||||||
|
|
||||||
func attack(target : QuestSprite) -> void:
|
func attack(target : QuestSprite) -> void:
|
||||||
print("Attack by %s to %s" % [name, target.name])
|
print("Attack by %s to %s" % [name, target.name])
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
|
|
||||||
var player_data : Adventurer = null
|
var player_data : Adventurer = null
|
||||||
var player : Player = null
|
var player : Player = null
|
||||||
var panel : GamePanel = null
|
var panel : GamePanel = null
|
||||||
@@ -28,7 +29,10 @@ func _process(delta: float) -> void:
|
|||||||
confirm_end_shift()
|
confirm_end_shift()
|
||||||
if Input.is_action_just_pressed("test"):
|
if Input.is_action_just_pressed("test"):
|
||||||
test_save()
|
test_save()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func add_quest_progress_bar(quest : Quest) -> void:
|
func add_quest_progress_bar(quest : Quest) -> void:
|
||||||
panel.add_quest_progress_bar(quest)
|
panel.add_quest_progress_bar(quest)
|
||||||
|
|
||||||
|
|||||||
@@ -2,21 +2,23 @@ extends Control
|
|||||||
|
|
||||||
|
|
||||||
var quest : Quest
|
var quest : Quest
|
||||||
|
var selected_location : Quest.Locations = -1
|
||||||
|
var min_difficulty : int = 0
|
||||||
|
var max_difficulty : int = 5
|
||||||
|
@onready var map : QuestMap = $Map
|
||||||
|
|
||||||
func generate_quest() -> void:
|
func generate_quest() -> void:
|
||||||
quest = Quest.new()
|
quest = Quest.generate({
|
||||||
quest.name = "A Test Quest"
|
"location":selected_location,
|
||||||
quest.location = Quest.Locations.NESTORS_WOODS
|
"min_difficulty": min_difficulty,
|
||||||
quest.difficulty = 1
|
"max_difficulty": max_difficulty,
|
||||||
quest.length = 60
|
})
|
||||||
quest.rewards = {"exp":100,"gold":1}
|
|
||||||
|
|
||||||
func update_quest_window() -> void:
|
func update_quest_window() -> void:
|
||||||
if quest:
|
if quest:
|
||||||
%NameField.text = quest.name
|
%NameField.text = quest.name
|
||||||
%DifficultyField.text = quest.difficulty_name()
|
%DifficultyField.text = quest.difficulty_name()
|
||||||
%LocationField.text = quest.location_name()
|
%LocationField.text = quest.get_location_name()
|
||||||
#for reward in quest.rewards.:
|
#for reward in quest.rewards.:
|
||||||
|
|
||||||
func reset() -> void:
|
func reset() -> void:
|
||||||
@@ -45,3 +47,15 @@ func _on_post_back_button_pressed() -> void:
|
|||||||
func _on_generate_back_button_pressed() -> void:
|
func _on_generate_back_button_pressed() -> void:
|
||||||
hide()
|
hide()
|
||||||
reset()
|
reset()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_location_options_pressed() -> void:
|
||||||
|
map.visible = true
|
||||||
|
|
||||||
|
|
||||||
|
func _on_map_location_selected(location: Quest.Locations) -> void:
|
||||||
|
|
||||||
|
selected_location = location
|
||||||
|
%LocationOptions.text = Quest.location_name(location)
|
||||||
|
map.visible = false
|
||||||
|
#TODO: Make Location show up correctly
|
||||||
|
|||||||
12
scripts/map.gd
Normal file
12
scripts/map.gd
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
class_name QuestMap extends Control
|
||||||
|
|
||||||
|
|
||||||
|
signal location_selected(location : Quest.Locations)
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
for child in get_children():
|
||||||
|
if child is MapPoint:
|
||||||
|
child.selected.connect(_on_location_pressed)
|
||||||
|
|
||||||
|
func _on_location_pressed(location : Quest.Locations):
|
||||||
|
location_selected.emit(location)
|
||||||
1
scripts/map.gd.uid
Normal file
1
scripts/map.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://c2jtg58mno7fj
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
@tool
|
@tool
|
||||||
extends TextureButton
|
class_name MapPoint extends TextureButton
|
||||||
|
|
||||||
|
|
||||||
@onready var panel : PanelContainer = %BriefPanel
|
@onready var panel : PanelContainer = %BriefPanel
|
||||||
@@ -20,9 +20,12 @@ var thickness : float = 5
|
|||||||
var max_circle_size : float = 200
|
var max_circle_size : float = 200
|
||||||
|
|
||||||
@export var label : String = ""
|
@export var label : String = ""
|
||||||
|
@export var id : Quest.Locations
|
||||||
@export var locked_brief : String = ""
|
@export var locked_brief : String = ""
|
||||||
@export var unlocked_brief : String = ""
|
@export var unlocked_brief : String = ""
|
||||||
|
|
||||||
|
signal selected(location : Quest.Locations)
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
#TODO: Add a nine-patch and resize the banner based on the label contents
|
#TODO: Add a nine-patch and resize the banner based on the label contents
|
||||||
%Label.text = label
|
%Label.text = label
|
||||||
@@ -61,6 +64,8 @@ func _on_mouse_entered() -> void:
|
|||||||
func _buttonn_pressed() -> void:
|
func _buttonn_pressed() -> void:
|
||||||
if primed:
|
if primed:
|
||||||
unlock()
|
unlock()
|
||||||
|
elif !locked:
|
||||||
|
selected.emit(id)
|
||||||
|
|
||||||
func _on_mouse_exited() -> void:
|
func _on_mouse_exited() -> void:
|
||||||
if panel_shown:
|
if panel_shown:
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ func setup(qst : Quest) -> void:
|
|||||||
func update() -> void:
|
func update() -> void:
|
||||||
nameLabel.text = quest.name
|
nameLabel.text = quest.name
|
||||||
difficultyLabel.text = quest.difficulty_name()
|
difficultyLabel.text = quest.difficulty_name()
|
||||||
locationLabel.text = quest.location_name()
|
locationLabel.text = quest.get_location_name()
|
||||||
#TODO: Show the current status of the quest
|
#TODO: Show the current status of the quest
|
||||||
|
|
||||||
func close() -> void:
|
func close() -> void:
|
||||||
|
|||||||
263
templates/enemies/alley_slime.tscn
Normal file
263
templates/enemies/alley_slime.tscn
Normal file
@@ -0,0 +1,263 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://bu5voitpttp7p"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_2ri6t"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_87jvf"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_8hyc4"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_vo4pp"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_u1ndo"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_87jvf"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_87jvf")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_vo4pp")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Alley Slime" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_2ri6t")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
visible = false
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_8hyc4")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
visible = false
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_u1ndo")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_87jvf")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Alley
|
||||||
|
Slime"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
263
templates/enemies/amethyst_deceiver.tscn
Normal file
263
templates/enemies/amethyst_deceiver.tscn
Normal file
@@ -0,0 +1,263 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://xveoe42s3cpy"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_30p0h"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_6opmj"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_mo0fh"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_bwjs8"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_4ymsi"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_6opmj"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_6opmj")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_bwjs8")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Amethyst Deceiver" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_30p0h")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
visible = false
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_mo0fh")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
visible = false
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_4ymsi")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_6opmj")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Amethyst
|
||||||
|
Deceiver"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
263
templates/enemies/animated_flower.tscn
Normal file
263
templates/enemies/animated_flower.tscn
Normal file
@@ -0,0 +1,263 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://cqusuc0ams6eh"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_up48k"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_rxxf6"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_2busj"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_gkykv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_7b0ly"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_rxxf6"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_rxxf6")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_gkykv")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Animated Flower" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_up48k")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
visible = false
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_2busj")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
visible = false
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_7b0ly")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_rxxf6")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Animated
|
||||||
|
Flower"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
261
templates/enemies/animated_staff.tscn
Normal file
261
templates/enemies/animated_staff.tscn
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://r3c0xgvul2jx"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_d7xna"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_1davx"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_4s5de"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_yio0x"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_502cf"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_1davx"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_1davx")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_yio0x")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Animated Staff" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_d7xna")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_4s5de")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_502cf")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_1davx")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Animated
|
||||||
|
Staff"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
260
templates/enemies/bluecap.tscn
Normal file
260
templates/enemies/bluecap.tscn
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://d166wy4tvfwe3"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_k0wc2"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_ionm2"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_dj700"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_ttqbh"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_nil6w"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_vqxas"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_ionm2")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_ttqbh")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Bluecap" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_k0wc2")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_dj700")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_nil6w")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_vqxas")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Bluecap"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
260
templates/enemies/crystal_crab_swarm.tscn
Normal file
260
templates/enemies/crystal_crab_swarm.tscn
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://c440svdousb6b"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_xmqw2"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_1yx6e"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_t6cpo"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_c2tce"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_1y115"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_1yx6e"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_1yx6e")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_c2tce")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Crystal Crab" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_xmqw2")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_t6cpo")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_1y115")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_1yx6e")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Crystal Crab"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
259
templates/enemies/feral_pig.tscn
Normal file
259
templates/enemies/feral_pig.tscn
Normal file
@@ -0,0 +1,259 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://br433u6yix3r7"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_narfe"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_d81qa"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_sqc2i"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_kf7hm"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://op4td4qm3tx5" path="res://external/boar.png" id="5_8p183"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_fmtu6"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_d81qa")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_kf7hm")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(),
|
||||||
|
"transitions": PackedFloat32Array(),
|
||||||
|
"update": 1,
|
||||||
|
"values": []
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(),
|
||||||
|
"transitions": PackedFloat32Array(),
|
||||||
|
"update": 1,
|
||||||
|
"values": []
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(),
|
||||||
|
"transitions": PackedFloat32Array(),
|
||||||
|
"update": 1,
|
||||||
|
"values": []
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Feral Pig" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_narfe")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(-3.9999998, -42)
|
||||||
|
scale = Vector2(1.7, 1)
|
||||||
|
texture = ExtResource("3_sqc2i")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_8p183")
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
visible = false
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_fmtu6")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Feral Pig"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
260
templates/enemies/giant_firefly.tscn
Normal file
260
templates/enemies/giant_firefly.tscn
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://t8il7knb04d4"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_qtf88"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_xmucg"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_ukc8a"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_bi2hu"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_x4ac5"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_xmucg"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_xmucg")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_bi2hu")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Giant Firefly" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_qtf88")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_ukc8a")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_x4ac5")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_xmucg")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Giant Firefly"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
@@ -17,54 +17,6 @@ shader_parameter/flash = false
|
|||||||
shader_parameter/flash_strength = 0.4
|
shader_parameter/flash_strength = 0.4
|
||||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
|
||||||
resource_name = "idle"
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("Sprite:frame")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0),
|
|
||||||
"transitions": PackedFloat32Array(1),
|
|
||||||
"update": 1,
|
|
||||||
"values": [0]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
|
||||||
resource_name = "attack"
|
|
||||||
length = 0.80000335
|
|
||||||
tracks/0/type = "value"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("Sprite:frame")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
|
||||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
|
||||||
"update": 1,
|
|
||||||
"values": [8, 9, 10, 11, 12, 13]
|
|
||||||
}
|
|
||||||
tracks/1/type = "method"
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/path = NodePath(".")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
|
||||||
"values": [{
|
|
||||||
"args": [],
|
|
||||||
"method": &"trigger_hit"
|
|
||||||
}, {
|
|
||||||
"args": [true, "idle"],
|
|
||||||
"method": &"complete_action"
|
|
||||||
}]
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
length = 0.001
|
length = 0.001
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
@@ -104,10 +56,9 @@ tracks/2/keys = {
|
|||||||
"values": [Color(1, 1, 1, 0)]
|
"values": [Color(1, 1, 1, 0)]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
resource_name = "running"
|
resource_name = "attack"
|
||||||
length = 0.46667004
|
length = 0.80000335
|
||||||
loop_mode = 1
|
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
@@ -115,10 +66,27 @@ tracks/0/path = NodePath("Sprite:frame")
|
|||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
"update": 1,
|
"update": 1,
|
||||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
@@ -178,6 +146,38 @@ tracks/3/keys = {
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
_data = {
|
_data = {
|
||||||
&"RESET": SubResource("Animation_rfgh2"),
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
|||||||
260
templates/enemies/mugger.tscn
Normal file
260
templates/enemies/mugger.tscn
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://cloxbd42ovk36"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_hh07h"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_812mx"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_qddks"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_b7gat"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_3k37n"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_812mx"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_812mx")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_b7gat")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Mugger" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_hh07h")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_qddks")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_3k37n")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_812mx")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Mugger"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
261
templates/enemies/rock_lizard.tscn
Normal file
261
templates/enemies/rock_lizard.tscn
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://otxmn0tg06wk"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_y4ik6"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_k3tw5"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_mp3h0"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_33i5w"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_xb3gv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_k3tw5"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_k3tw5")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_33i5w")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Rock Lizard" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_y4ik6")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_mp3h0")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_xb3gv")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_k3tw5")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Rock
|
||||||
|
Lizard"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
261
templates/enemies/rogue_bot.tscn
Normal file
261
templates/enemies/rogue_bot.tscn
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://ca8iaja6scjir"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_6adff"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_dq8bk"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_r0mhx"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_pwiye"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_tpfws"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_dq8bk"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_dq8bk")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_pwiye")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Rogue Bot" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_6adff")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_r0mhx")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_tpfws")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_dq8bk")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Rogue
|
||||||
|
Bot"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
261
templates/enemies/shadow_self.tscn
Normal file
261
templates/enemies/shadow_self.tscn
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://ca016a7sc0wsi"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_hyp08"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_8gw2y"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_u4o7h"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_r4aiw"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_330w5"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_8gw2y"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_8gw2y")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_r4aiw")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Shadow Self" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_hyp08")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_u4o7h")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_330w5")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_8gw2y")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Shadow
|
||||||
|
Self"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
261
templates/enemies/silent_spectre.tscn
Normal file
261
templates/enemies/silent_spectre.tscn
Normal file
@@ -0,0 +1,261 @@
|
|||||||
|
[gd_scene load_steps=19 format=3 uid="uid://d13ukmpyaa7r1"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_d1eqt"]
|
||||||
|
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_oxf3b"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_iy7yx"]
|
||||||
|
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_vchky"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_ln8c0"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_oxf3b"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||||
|
script = ExtResource("2_oxf3b")
|
||||||
|
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
shader = ExtResource("4_vchky")
|
||||||
|
shader_parameter/flash = false
|
||||||
|
shader_parameter/flash_strength = 0.4
|
||||||
|
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||||
|
length = 0.001
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [9]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||||
|
resource_name = "attack"
|
||||||
|
length = 0.80000335
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [8, 9, 10, 11, 12, 13]
|
||||||
|
}
|
||||||
|
tracks/1/type = "method"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath(".")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [],
|
||||||
|
"method": &"trigger_hit"
|
||||||
|
}, {
|
||||||
|
"args": [true, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||||
|
resource_name = "hurt"
|
||||||
|
length = 0.23333667
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [14, 15, 16, 17, 18]
|
||||||
|
}
|
||||||
|
tracks/1/type = "value"
|
||||||
|
tracks/1/imported = false
|
||||||
|
tracks/1/enabled = true
|
||||||
|
tracks/1/path = NodePath("Sprite:position")
|
||||||
|
tracks/1/interp = 1
|
||||||
|
tracks/1/loop_wrap = true
|
||||||
|
tracks/1/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||||
|
}
|
||||||
|
tracks/2/type = "value"
|
||||||
|
tracks/2/imported = false
|
||||||
|
tracks/2/enabled = true
|
||||||
|
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||||
|
tracks/2/interp = 1
|
||||||
|
tracks/2/loop_wrap = true
|
||||||
|
tracks/2/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1),
|
||||||
|
"update": 0,
|
||||||
|
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||||
|
}
|
||||||
|
tracks/3/type = "method"
|
||||||
|
tracks/3/imported = false
|
||||||
|
tracks/3/enabled = true
|
||||||
|
tracks/3/path = NodePath(".")
|
||||||
|
tracks/3/interp = 1
|
||||||
|
tracks/3/loop_wrap = true
|
||||||
|
tracks/3/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.23333333),
|
||||||
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
|
"values": [{
|
||||||
|
"args": [0.2],
|
||||||
|
"method": &"knockback"
|
||||||
|
}, {
|
||||||
|
"args": [false, "idle"],
|
||||||
|
"method": &"complete_action"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||||
|
resource_name = "idle"
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0),
|
||||||
|
"transitions": PackedFloat32Array(1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [0]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||||
|
resource_name = "running"
|
||||||
|
length = 0.46667004
|
||||||
|
loop_mode = 1
|
||||||
|
tracks/0/type = "value"
|
||||||
|
tracks/0/imported = false
|
||||||
|
tracks/0/enabled = true
|
||||||
|
tracks/0/path = NodePath("Sprite:frame")
|
||||||
|
tracks/0/interp = 1
|
||||||
|
tracks/0/loop_wrap = true
|
||||||
|
tracks/0/keys = {
|
||||||
|
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||||
|
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||||
|
"update": 1,
|
||||||
|
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||||
|
_data = {
|
||||||
|
&"RESET": SubResource("Animation_rfgh2"),
|
||||||
|
&"attack": SubResource("Animation_q2yeo"),
|
||||||
|
&"hurt": SubResource("Animation_in6p1"),
|
||||||
|
&"idle": SubResource("Animation_fnqwt"),
|
||||||
|
&"running": SubResource("Animation_t5s0y")
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||||
|
offsets = PackedFloat32Array(0)
|
||||||
|
colors = PackedColorArray(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||||
|
gradient = SubResource("Gradient_nqdtq")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||||
|
offsets = PackedFloat32Array(1)
|
||||||
|
colors = PackedColorArray(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||||
|
gradient = SubResource("Gradient_yy18h")
|
||||||
|
width = 1
|
||||||
|
|
||||||
|
[node name="Silent Spectre" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 0
|
||||||
|
script = ExtResource("1_d1eqt")
|
||||||
|
life = 10
|
||||||
|
max_life = 10
|
||||||
|
stats = SubResource("Resource_bfuvr")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite2D" parent="."]
|
||||||
|
modulate = Color(0, 0, 0, 0.57254905)
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("3_iy7yx")
|
||||||
|
|
||||||
|
[node name="Sprite" type="Sprite2D" parent="."]
|
||||||
|
material = SubResource("ShaderMaterial_h6sl2")
|
||||||
|
position = Vector2(0, -48)
|
||||||
|
texture = ExtResource("5_ln8c0")
|
||||||
|
hframes = 8
|
||||||
|
vframes = 3
|
||||||
|
frame = 9
|
||||||
|
|
||||||
|
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||||
|
libraries = {
|
||||||
|
&"": SubResource("AnimationLibrary_45clm")
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||||
|
layout_mode = 0
|
||||||
|
offset_left = -37.0
|
||||||
|
offset_top = 16.0
|
||||||
|
offset_right = 38.0
|
||||||
|
offset_bottom = 26.0
|
||||||
|
nine_patch_stretch = true
|
||||||
|
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||||
|
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||||
|
tint_over = Color(1, 0, 0, 1)
|
||||||
|
tint_progress = Color(1, 0, 0, 1)
|
||||||
|
|
||||||
|
[node name="BannerOffset" type="Node2D" parent="."]
|
||||||
|
position = Vector2(0, -57)
|
||||||
|
|
||||||
|
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||||
|
self_modulate = Color(0, 0, 0, 1)
|
||||||
|
position = Vector2(0, -53)
|
||||||
|
texture = ExtResource("6_oxf3b")
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="TestSprite"]
|
||||||
|
offset_left = -39.0
|
||||||
|
offset_top = -27.0
|
||||||
|
offset_right = 37.0
|
||||||
|
offset_bottom = 22.0
|
||||||
|
text = "Silent
|
||||||
|
Spectre"
|
||||||
|
horizontal_alignment = 1
|
||||||
|
metadata/_edit_lock_ = true
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=16 format=3 uid="uid://c7jagw4y7w42l"]
|
[gd_scene load_steps=17 format=3 uid="uid://c7jagw4y7w42l"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://c0e0iw8osv0qh" path="res://graphics/top-icon-members.png" id="1_krxmy"]
|
[ext_resource type="Texture2D" uid="uid://c0e0iw8osv0qh" path="res://graphics/top-icon-members.png" id="1_krxmy"]
|
||||||
[ext_resource type="Script" uid="uid://wyv0gt0ww6fp" path="res://scripts/game_menu.gd" id="1_o3fau"]
|
[ext_resource type="Script" uid="uid://wyv0gt0ww6fp" path="res://scripts/game_menu.gd" id="1_o3fau"]
|
||||||
@@ -15,6 +15,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="10_3nqsh"]
|
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="10_3nqsh"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cnrqig3gojcls" path="res://graphics/options-mopt.png" id="10_acyux"]
|
[ext_resource type="Texture2D" uid="uid://cnrqig3gojcls" path="res://graphics/options-mopt.png" id="10_acyux"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dupdvrthv3edd" path="res://graphics/options-mopt-hover.png" id="11_xu0sb"]
|
[ext_resource type="Texture2D" uid="uid://dupdvrthv3edd" path="res://graphics/options-mopt-hover.png" id="11_xu0sb"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dlmodaf4nojin" path="res://scenes/map.tscn" id="16_s68b7"]
|
||||||
|
|
||||||
[node name="GameMenu" type="Control"]
|
[node name="GameMenu" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
@@ -228,7 +229,7 @@ size_flags_vertical = 3
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "Location"
|
text = "Location"
|
||||||
|
|
||||||
[node name="LocationOptions" type="OptionButton" parent="GenerateQuestDialog/Window/GenerateQuest"]
|
[node name="LocationOptions" type="Button" parent="GenerateQuestDialog/Window/GenerateQuest"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
custom_minimum_size = Vector2(480, 35)
|
custom_minimum_size = Vector2(480, 35)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -442,11 +443,17 @@ custom_minimum_size = Vector2(248, 60)
|
|||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
text = "BACK"
|
text = "BACK"
|
||||||
|
|
||||||
|
[node name="Map" parent="GenerateQuestDialog" instance=ExtResource("16_s68b7")]
|
||||||
|
visible = false
|
||||||
|
layout_mode = 1
|
||||||
|
|
||||||
[connection signal="pressed" from="Menu/GuildButton" to="." method="_on_guild_button_pressed"]
|
[connection signal="pressed" from="Menu/GuildButton" to="." method="_on_guild_button_pressed"]
|
||||||
[connection signal="pressed" from="Menu/MembersButton" to="." method="_on_members_button_pressed"]
|
[connection signal="pressed" from="Menu/MembersButton" to="." method="_on_members_button_pressed"]
|
||||||
[connection signal="pressed" from="Menu/QuestsButton" to="." method="_on_quests_button_pressed"]
|
[connection signal="pressed" from="Menu/QuestsButton" to="." method="_on_quests_button_pressed"]
|
||||||
[connection signal="pressed" from="Quests/Panel/VBoxContainer/Button" to="." method="_on_quest_generate_button_pressed"]
|
[connection signal="pressed" from="Quests/Panel/VBoxContainer/Button" to="." method="_on_quest_generate_button_pressed"]
|
||||||
|
[connection signal="pressed" from="GenerateQuestDialog/Window/GenerateQuest/LocationOptions" to="GenerateQuestDialog" method="_on_location_options_pressed"]
|
||||||
[connection signal="pressed" from="GenerateQuestDialog/Window/GenerateQuest/HBoxContainer/GenerateButton" to="GenerateQuestDialog" method="_on_generate_button_pressed"]
|
[connection signal="pressed" from="GenerateQuestDialog/Window/GenerateQuest/HBoxContainer/GenerateButton" to="GenerateQuestDialog" method="_on_generate_button_pressed"]
|
||||||
[connection signal="pressed" from="GenerateQuestDialog/Window/GenerateQuest/HBoxContainer/GenerateBackButton" to="GenerateQuestDialog" method="_on_generate_back_button_pressed"]
|
[connection signal="pressed" from="GenerateQuestDialog/Window/GenerateQuest/HBoxContainer/GenerateBackButton" to="GenerateQuestDialog" method="_on_generate_back_button_pressed"]
|
||||||
[connection signal="pressed" from="GenerateQuestDialog/Window/PostQuest/HBoxContainer/PostQuestButton" to="GenerateQuestDialog" method="_on_post_button_pressed"]
|
[connection signal="pressed" from="GenerateQuestDialog/Window/PostQuest/HBoxContainer/PostQuestButton" to="GenerateQuestDialog" method="_on_post_button_pressed"]
|
||||||
[connection signal="pressed" from="GenerateQuestDialog/Window/PostQuest/HBoxContainer/ApprovalBackButton" to="GenerateQuestDialog" method="_on_post_back_button_pressed"]
|
[connection signal="pressed" from="GenerateQuestDialog/Window/PostQuest/HBoxContainer/ApprovalBackButton" to="GenerateQuestDialog" method="_on_post_back_button_pressed"]
|
||||||
|
[connection signal="location_selected" from="GenerateQuestDialog/Map" to="GenerateQuestDialog" method="_on_map_location_selected"]
|
||||||
|
|||||||
Reference in New Issue
Block a user