More work on quests

This commit is contained in:
2025-11-19 14:42:59 -05:00
parent 379fa4bd70
commit 4ed4ab95f3
36 changed files with 3911 additions and 75 deletions

View File

@@ -14,11 +14,13 @@ enum Status{
}
enum Locations{
VOID,
NESTORS_WOODS
}
class Event:
var enemy_types: Dictionary[String, PackedScene] = {
"feral pig": preload("res://templates/enemies/feral_pig.tscn"),
"goo": preload("res://templates/enemies/goo.tscn")
}
enum Type{
@@ -299,11 +301,15 @@ func is_eligible(member : Adventurer) -> bool:
func is_taken() -> bool:
return status == Status.TAKEN
func location_name() -> String:
static func location_name(location : Locations) -> String:
match(location):
Locations.VOID: return "The Endless Void"
Locations.NESTORS_WOODS: return "Nestor's Woods"
return "ERROR"
func get_location_name() -> String:
return Quest.location_name(location)
func difficulty_name() -> String:
match(difficulty):
0: return "None"
@@ -330,7 +336,16 @@ static func load_quest_list() -> void:
dir.list_dir_end()
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:
var d : Dictionary = {}

View 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

View File

@@ -0,0 +1 @@
uid://w6t0lkkxmbl2

49
data/quests/feral_pigs.gd Normal file
View 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 Johns farm again. Poor fella dont know up from down at his age, he cant help it. Trouble is, pigs are causing trouble in them there woods and John sure aint 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)

View File

@@ -0,0 +1 @@
uid://nnl5qvb3csr0

View File

@@ -1,7 +1,11 @@
extends Quest
func setup() -> void:
func _init() -> void:
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 num_events = 3 # event_weights.pick_random()
#The first event is guaranteed to be at the 50% mark.

View File

@@ -61,4 +61,4 @@ layer_info = {
"16": SubResource("Resource_qx0md"),
"17": SubResource("Resource_dv5be")
}
metadata/_latest_layer = "13"
metadata/_latest_layer = ""

View File

@@ -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?
do Game.switch_scenes("first_guildhall")
player: (Wow this is a mess... nobody's been here for a while. I should...)
- Stuff
Stuff stuff.
- set up some lights.
Hey, no touching! This isn't your home! Get out!
- clean it out.

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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

40
external/boar.png.import vendored Normal file
View 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

View File

@@ -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://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="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"]
@@ -36,13 +37,14 @@ shader_parameter/fringe_color = SubResource("GradientTexture1D_0cso3")
shader_parameter/fringe_threshold = 0.10000000000582077
shader_parameter/threshold = 0.361
[node name="Control" type="Control"]
[node name="Map" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_nakos")
[node name="NinePatchRect6" type="NinePatchRect" parent="."]
modulate = Color(0.38170326, 0.38170323, 0.38170323, 1)
@@ -147,6 +149,7 @@ offset_top = 641.0
offset_right = 717.0
offset_bottom = 711.0
label = "Spire"
id = null
locked_brief = ""
unlocked_brief = ""
@@ -167,7 +170,7 @@ offset_bottom = 188.0
mouse_filter = 2
[node name="Label" parent="Spire Pin/CanvasGroup/Banner" index="0"]
text = ""
text = "Spire"
[node name="Nestor\'s Woods Pin" parent="." instance=ExtResource("2_paxxb")]
layout_mode = 0
@@ -177,6 +180,7 @@ offset_right = 214.0
offset_bottom = 452.0
primed = true
label = "Nestor's Woods"
id = 1
locked_brief = ""
unlocked_brief = ""
@@ -188,6 +192,7 @@ offset_right = -64.0
offset_bottom = 150.0
primed = true
label = "Iko Gorge"
id = null
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]."
@@ -213,6 +218,7 @@ offset_top = 303.0
offset_right = 507.0
offset_bottom = 373.0
label = ""
id = null
locked_brief = ""
unlocked_brief = ""
@@ -223,6 +229,7 @@ offset_top = 585.0
offset_right = 349.0
offset_bottom = 655.0
label = "Echo Valley Monastery"
id = null
locked_brief = ""
unlocked_brief = ""
@@ -233,6 +240,7 @@ offset_top = 596.0
offset_right = -152.0
offset_bottom = 666.0
label = "Crystal Cave"
id = null
locked_brief = ""
unlocked_brief = ""
@@ -507,6 +515,34 @@ patch_margin_right = 4
patch_margin_bottom = 4
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"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
@@ -549,6 +585,34 @@ patch_margin_right = 4
patch_margin_bottom = 4
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"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
@@ -563,6 +627,90 @@ patch_margin_right = 4
patch_margin_bottom = 4
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"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
@@ -577,6 +725,20 @@ patch_margin_right = 4
patch_margin_bottom = 4
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"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
@@ -605,5 +767,33 @@ patch_margin_right = 4
patch_margin_bottom = 4
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="Iko Gorge Pin"]

View File

@@ -1,5 +1,21 @@
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:
print("Attack by %s to %s" % [name, target.name])

View File

@@ -1,5 +1,6 @@
extends Node
var player_data : Adventurer = null
var player : Player = null
var panel : GamePanel = null
@@ -28,7 +29,10 @@ func _process(delta: float) -> void:
confirm_end_shift()
if Input.is_action_just_pressed("test"):
test_save()
func add_quest_progress_bar(quest : Quest) -> void:
panel.add_quest_progress_bar(quest)

View File

@@ -2,21 +2,23 @@ extends Control
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:
quest = Quest.new()
quest.name = "A Test Quest"
quest.location = Quest.Locations.NESTORS_WOODS
quest.difficulty = 1
quest.length = 60
quest.rewards = {"exp":100,"gold":1}
quest = Quest.generate({
"location":selected_location,
"min_difficulty": min_difficulty,
"max_difficulty": max_difficulty,
})
func update_quest_window() -> void:
if quest:
%NameField.text = quest.name
%DifficultyField.text = quest.difficulty_name()
%LocationField.text = quest.location_name()
%LocationField.text = quest.get_location_name()
#for reward in quest.rewards.:
func reset() -> void:
@@ -45,3 +47,15 @@ func _on_post_back_button_pressed() -> void:
func _on_generate_back_button_pressed() -> void:
hide()
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
View 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
View File

@@ -0,0 +1 @@
uid://c2jtg58mno7fj

View File

@@ -1,5 +1,5 @@
@tool
extends TextureButton
class_name MapPoint extends TextureButton
@onready var panel : PanelContainer = %BriefPanel
@@ -20,9 +20,12 @@ var thickness : float = 5
var max_circle_size : float = 200
@export var label : String = ""
@export var id : Quest.Locations
@export var locked_brief : String = ""
@export var unlocked_brief : String = ""
signal selected(location : Quest.Locations)
func _ready() -> void:
#TODO: Add a nine-patch and resize the banner based on the label contents
%Label.text = label
@@ -61,6 +64,8 @@ func _on_mouse_entered() -> void:
func _buttonn_pressed() -> void:
if primed:
unlock()
elif !locked:
selected.emit(id)
func _on_mouse_exited() -> void:
if panel_shown:

View File

@@ -16,7 +16,7 @@ func setup(qst : Quest) -> void:
func update() -> void:
nameLabel.text = quest.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
func close() -> void:

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View File

@@ -17,54 +17,6 @@ shader_parameter/flash = false
shader_parameter/flash_strength = 0.4
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"]
length = 0.001
tracks/0/type = "value"
@@ -104,10 +56,9 @@ tracks/2/keys = {
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="Animation_t5s0y"]
resource_name = "running"
length = 0.46667004
loop_mode = 1
[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
@@ -115,10 +66,27 @@ 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),
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 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"]
@@ -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"]
_data = {
&"RESET": SubResource("Animation_rfgh2"),

View 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

View 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

View 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

View 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

View 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

View File

@@ -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="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://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="PackedScene" uid="uid://dlmodaf4nojin" path="res://scenes/map.tscn" id="16_s68b7"]
[node name="GameMenu" type="Control"]
layout_mode = 3
@@ -228,7 +229,7 @@ size_flags_vertical = 3
layout_mode = 2
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
custom_minimum_size = Vector2(480, 35)
layout_mode = 2
@@ -442,11 +443,17 @@ custom_minimum_size = Vector2(248, 60)
layout_mode = 2
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/MembersButton" to="." method="_on_members_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="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/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/ApprovalBackButton" to="GenerateQuestDialog" method="_on_post_back_button_pressed"]
[connection signal="location_selected" from="GenerateQuestDialog/Map" to="GenerateQuestDialog" method="_on_map_location_selected"]