Compare commits

..

4 Commits

90 changed files with 4732 additions and 423 deletions

View File

@@ -6,6 +6,9 @@ enum Slots{
ACCESSORY
}
var last_id : int = 1
var id : int
@export var image : Texture2D
@export var name : StringName
@export var brief : String
@@ -15,6 +18,9 @@ enum Slots{
@export var per : bool
@export var grade : String = "F"
func _init() -> void:
last_id += 1
id = last_id
func item_type_name() -> String:
return "Item"

View File

@@ -2,7 +2,7 @@ class_name Quest extends Resource
#The list of available quests
static var list : Array[Quest]
static var last_id : int = 1
enum Status{
OPEN,
@@ -14,13 +14,11 @@ enum Status{
}
enum Locations{
VOID,
NESTORS_WOODS
}
class Event:
var enemy_types: Dictionary[String, PackedScene] = {
"goo": preload("res://templates/enemies/goo.tscn")
}
enum Type{
WAIT,
COMBAT,
@@ -32,6 +30,7 @@ class Event:
VICTORY,
DEFEAT
}
var hidden : bool = false
var type : Type = Type.WAIT
var enemies : Array[String] = []
@@ -51,7 +50,7 @@ class Event:
func setup() -> void:
pass
func save_dict() -> Dictionary:
func save() -> Dictionary:
var d : Dictionary = {}
d.hidden = hidden
d.type = type
@@ -70,7 +69,7 @@ class Event:
combat_state = CombatState.FIGHTING
var enemy_list = []
for enemy_name in enemies:
enemy_list.append(enemy_types[enemy_name].instantiate())
enemy_list.append(Enemy.list[enemy_name].instantiate())
quest.questview.set_questor_animation("idle")
for enemy in enemy_list:
enemy.flip_h()
@@ -236,6 +235,7 @@ class Event:
complete = true
completed.emit()
var id : int
var base_name : String = ""
var name : String = "A Basic Quest"
var desc : String = "The default quest, with no special anything."
@@ -259,6 +259,8 @@ var questor : Adventurer = null
signal status_changed(status : Status)
func _init() -> void:
last_id += 1
id = last_id
pass
func initiate(member : Adventurer) -> void:
@@ -295,11 +297,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"
@@ -326,10 +332,20 @@ 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_dict() -> Dictionary:
func save() -> Dictionary:
var d : Dictionary = {}
d.id = id
d.name = name
d.base_name = base_name
d.desc = desc
@@ -349,6 +365,6 @@ func save_dict() -> Dictionary:
var lst : Array = []
for evt in events:
lst.append(evt.save_dict())
lst.append(evt.save())
d.events = lst
return d

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.

Binary file not shown.

BIN
external/animated-flower.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://80esel4mewm6"
path="res://.godot/imported/3.png-b550413aa080c1c70e88acfeb4d322e4.ctex"
uid="uid://bl05n76gr2dae"
path="res://.godot/imported/animated-flower.png-97452da660b05abe194469bd94b63006.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/tc/3.png"
dest_files=["res://.godot/imported/3.png-b550413aa080c1c70e88acfeb4d322e4.ctex"]
source_file="res://external/animated-flower.png"
dest_files=["res://.godot/imported/animated-flower.png-97452da660b05abe194469bd94b63006.ctex"]
[params]

BIN
external/banner.clip vendored Normal file

Binary file not shown.

BIN
external/boar.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://urxa6h4cf4of"
path="res://.godot/imported/2.png-2701862056f74824807b22e68ca27909.ctex"
uid="uid://op4td4qm3tx5"
path="res://.godot/imported/boar.png-0161cfc5f286f436bdc0954a6e815cd6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/tc/2.png"
dest_files=["res://.godot/imported/2.png-2701862056f74824807b22e68ca27909.ctex"]
source_file="res://external/boar.png"
dest_files=["res://.godot/imported/boar.png-0161cfc5f286f436bdc0954a6e815cd6.ctex"]
[params]

BIN
external/forest.clip vendored Normal file

Binary file not shown.

BIN
external/glowing-line.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

View File

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dxvwm21nupadm"
path="res://.godot/imported/1.png-b132cb4bd58ce4915bfe3a2aad13b672.ctex"
uid="uid://dck0g2dl7vbcr"
path="res://.godot/imported/glowing-line.png-71ab75e25179832dabf598a26bfa404d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/tc/1.png"
dest_files=["res://.godot/imported/1.png-b132cb4bd58ce4915bfe3a2aad13b672.ctex"]
source_file="res://external/glowing-line.png"
dest_files=["res://.godot/imported/glowing-line.png-71ab75e25179832dabf598a26bfa404d.ctex"]
[params]

BIN
external/map-region-ninepatch.aseprite vendored Normal file

Binary file not shown.

BIN
external/map-region-ninepatch.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 B

View File

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bngkacv3iag6e"
path="res://.godot/imported/10.png-d7bac63bd3ed15459cfc452ed238de0d.ctex"
uid="uid://dy3o1xtqg03at"
path="res://.godot/imported/map-region-ninepatch.png-0bd1376157ab4c11204e39e912041887.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/tc/10.png"
dest_files=["res://.godot/imported/10.png-d7bac63bd3ed15459cfc452ed238de0d.ctex"]
source_file="res://external/map-region-ninepatch.png"
dest_files=["res://.godot/imported/map-region-ninepatch.png-0bd1376157ab4c11204e39e912041887.ctex"]
[params]

BIN
external/tc/1.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

BIN
external/tc/10.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

BIN
external/tc/2.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

BIN
external/tc/3.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

BIN
external/tc/4.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://g1pb1a8r4asn"
path="res://.godot/imported/4.png-e4764e4f9d3e0c20595afa27b361faa1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/tc/4.png"
dest_files=["res://.godot/imported/4.png-e4764e4f9d3e0c20595afa27b361faa1.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/tc/5.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dh66mvfitp17t"
path="res://.godot/imported/5.png-cc15f7f59c27faf4c8e7b9d2ac49aad5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/tc/5.png"
dest_files=["res://.godot/imported/5.png-cc15f7f59c27faf4c8e7b9d2ac49aad5.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/tc/6.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cjfxnltsbwfmn"
path="res://.godot/imported/6.png-b4209f047bfa66b90b5bd6b95afeda56.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/tc/6.png"
dest_files=["res://.godot/imported/6.png-b4209f047bfa66b90b5bd6b95afeda56.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/tc/7.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://djhk6gp250uew"
path="res://.godot/imported/7.png-bf37caa12efccbf460eb9e7a5d9d490c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/tc/7.png"
dest_files=["res://.godot/imported/7.png-bf37caa12efccbf460eb9e7a5d9d490c.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/tc/8.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ym644n7w01ag"
path="res://.godot/imported/8.png-a2d258d90ed799301fd544bf2cabf011.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/tc/8.png"
dest_files=["res://.godot/imported/8.png-a2d258d90ed799301fd544bf2cabf011.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/tc/9.png vendored

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -1,40 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bpaavgmkmgtbh"
path="res://.godot/imported/9.png-8e14eaf91108f19c019426d203539c8f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/tc/9.png"
dest_files=["res://.godot/imported/9.png-8e14eaf91108f19c019426d203539c8f.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

View File

@@ -120,5 +120,4 @@ behavior_tree/behavior_tree_default_dir="res://demo/ai/trees"
[rendering]
textures/canvas_textures/default_texture_filter=0
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"
viewport/hdr_2d=true

View File

@@ -4,7 +4,7 @@
[ext_resource type="Texture2D" uid="uid://c5yxq22ao1oyf" path="res://graphics/doorlight.png" id="2_ivnss"]
[ext_resource type="Script" uid="uid://ccorfvcfa84gf" path="res://scripts/guildhall.gd" id="3_sxwyg"]
[ext_resource type="Shader" uid="uid://hr8vdp56p4yo" path="res://shaders/void.tres" id="4_ej4lk"]
[ext_resource type="PackedScene" uid="uid://c8ofw6na082gv" path="res://templates/main_panel.tscn" id="5_blfjh"]
[ext_resource type="PackedScene" uid="uid://c8ofw6na082gv" path="res://templates/game_panel.tscn" id="5_blfjh"]
[ext_resource type="Texture2D" uid="uid://bbh444vapab3y" path="res://graphics/voidcircle.png" id="5_dpsgu"]
[ext_resource type="PackedScene" uid="uid://c7jagw4y7w42l" path="res://templates/top_menu.tscn" id="6_2j6ej"]
[ext_resource type="Shader" uid="uid://cenbje61a2wi6" path="res://shaders/void_composite.gdshader" id="6_l1y25"]

View File

@@ -1,8 +1,11 @@
[gd_scene load_steps=10 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"]
[sub_resource type="Gradient" id="Gradient_be0no"]
offsets = PackedFloat32Array(0, 0.5344828, 1)
@@ -34,15 +37,103 @@ 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)
layout_mode = 0
offset_left = -457.0
offset_top = -257.0
offset_right = 2436.0
offset_bottom = 1370.0
texture = ExtResource("1_2lpho")
patch_margin_left = 4
patch_margin_top = 4
patch_margin_right = 4
patch_margin_bottom = 4
[node name="NinePatchRect7" type="NinePatchRect" parent="."]
modulate = Color(0.7539839, 0.75398386, 0.75398386, 1)
layout_mode = 0
offset_left = -320.0
offset_top = 70.0
offset_right = 1304.0
offset_bottom = 1114.0
texture = ExtResource("1_2lpho")
patch_margin_left = 4
patch_margin_top = 4
patch_margin_right = 4
patch_margin_bottom = 4
[node name="NinePatchRect" type="NinePatchRect" parent="."]
layout_mode = 0
offset_left = 57.0
offset_top = 235.0
offset_right = 618.0
offset_bottom = 581.0
texture = ExtResource("1_2lpho")
patch_margin_left = 4
patch_margin_top = 4
patch_margin_right = 4
patch_margin_bottom = 4
[node name="NinePatchRect2" type="NinePatchRect" parent="."]
layout_mode = 0
offset_left = -350.0
offset_top = 20.0
offset_right = 147.0
offset_bottom = 219.0
texture = ExtResource("1_2lpho")
patch_margin_left = 4
patch_margin_top = 4
patch_margin_right = 4
patch_margin_bottom = 4
[node name="NinePatchRect3" type="NinePatchRect" parent="."]
layout_mode = 0
offset_left = 405.0
offset_top = 272.0
offset_right = 541.0
offset_bottom = 407.0
texture = ExtResource("1_2lpho")
patch_margin_left = 4
patch_margin_top = 4
patch_margin_right = 4
patch_margin_bottom = 4
[node name="NinePatchRect4" type="NinePatchRect" parent="."]
layout_mode = 0
offset_left = -274.0
offset_top = 534.0
offset_right = -89.0
offset_bottom = 733.0
texture = ExtResource("1_2lpho")
patch_margin_left = 4
patch_margin_top = 4
patch_margin_right = 4
patch_margin_bottom = 4
[node name="NinePatchRect5" type="NinePatchRect" parent="."]
layout_mode = 0
offset_left = 651.0
offset_top = 645.0
offset_right = 715.0
offset_bottom = 709.0
texture = ExtResource("1_2lpho")
patch_margin_left = 4
patch_margin_top = 4
patch_margin_right = 4
patch_margin_bottom = 4
[node name="TextureRect" type="TextureRect" parent="."]
visible = false
layout_mode = 0
offset_left = -453.00003
offset_top = -256.0
@@ -51,36 +142,37 @@ offset_bottom = 824.0
scale = Vector2(1.5, 1.5)
texture = ExtResource("1_2klcf")
[node name="Map Pin2" parent="." instance=ExtResource("2_paxxb")]
[node name="Spire Pin" parent="." instance=ExtResource("2_paxxb")]
layout_mode = 0
offset_left = 389.0
offset_top = 554.0
offset_right = 459.0
offset_bottom = 624.0
label = ""
offset_left = 647.0
offset_top = 641.0
offset_right = 717.0
offset_bottom = 711.0
label = "Spire"
id = null
locked_brief = ""
unlocked_brief = ""
[node name="Brief" parent="Map Pin2/BriefPanel" index="0"]
[node name="Brief" parent="Spire Pin/BriefPanel" index="0"]
text = ""
[node name="CanvasGroup" parent="Map Pin2" index="1"]
[node name="CanvasGroup" parent="Spire Pin" index="1"]
material = SubResource("ShaderMaterial_gldc4")
[node name="Pin" parent="Map Pin2/CanvasGroup" index="0"]
[node name="Pin" parent="Spire Pin/CanvasGroup" index="0"]
mouse_filter = 2
[node name="Banner" parent="Map Pin2/CanvasGroup" index="1"]
[node name="Banner" parent="Spire Pin/CanvasGroup" index="1"]
offset_left = 0.0
offset_top = 0.0
offset_right = 188.0
offset_bottom = 188.0
mouse_filter = 2
[node name="Label" parent="Map Pin2/CanvasGroup/Banner" index="0"]
text = ""
[node name="Label" parent="Spire Pin/CanvasGroup/Banner" index="0"]
text = "Spire"
[node name="Map Pin3" parent="." instance=ExtResource("2_paxxb")]
[node name="Nestor\'s Woods Pin" parent="." instance=ExtResource("2_paxxb")]
layout_mode = 0
offset_left = 144.0
offset_top = 382.0
@@ -88,34 +180,620 @@ offset_right = 214.0
offset_bottom = 452.0
primed = true
label = "Nestor's Woods"
id = 1
locked_brief = ""
unlocked_brief = ""
[node name="Map Pin4" parent="." instance=ExtResource("2_paxxb")]
[node name="Iko Gorge Pin" parent="." instance=ExtResource("2_paxxb")]
layout_mode = 0
offset_left = 229.0
offset_top = 89.0
offset_right = 299.0
offset_bottom = 159.0
offset_left = -134.0
offset_top = 80.0
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]."
[node name="BriefPanel" parent="Map Pin4" index="0"]
[node name="BriefPanel" parent="Iko Gorge Pin" index="0"]
offset_left = 56.0
offset_top = 53.0
offset_right = 356.0
offset_bottom = 153.0
[node name="Brief" parent="Map Pin4/BriefPanel" index="0"]
[node name="Brief" parent="Iko Gorge Pin/BriefPanel" index="0"]
text = "Mysterious cliffs in the frozen north."
[node name="CanvasGroup" parent="Map Pin4" index="1"]
[node name="CanvasGroup" parent="Iko Gorge Pin" index="1"]
material = SubResource("ShaderMaterial_2klcf")
[node name="Label" parent="Map Pin4/CanvasGroup/Banner" index="0"]
[node name="Label" parent="Iko Gorge Pin/CanvasGroup/Banner" index="0"]
text = "Iko Gorge"
[editable path="Map Pin2"]
[editable path="Map Pin4"]
[node name="Alikia Glade" parent="." instance=ExtResource("2_paxxb")]
layout_mode = 0
offset_left = 437.0
offset_top = 303.0
offset_right = 507.0
offset_bottom = 373.0
label = ""
id = null
locked_brief = ""
unlocked_brief = ""
[node name="Echo Valley Monastery Pin" parent="." instance=ExtResource("2_paxxb")]
layout_mode = 0
offset_left = 279.0
offset_top = 585.0
offset_right = 349.0
offset_bottom = 655.0
label = "Echo Valley Monastery"
id = null
locked_brief = ""
unlocked_brief = ""
[node name="Crystal Cave Pin" parent="." instance=ExtResource("2_paxxb")]
layout_mode = 0
offset_left = -222.0
offset_top = 596.0
offset_right = -152.0
offset_bottom = 666.0
label = "Crystal Cave"
id = null
locked_brief = ""
unlocked_brief = ""
[node name="Clouds" type="Control" parent="."]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="Cloud" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -602.0
offset_top = -123.0
offset_right = -41.0
offset_bottom = 223.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="Cloud2" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -511.0
offset_top = 32.0
offset_right = 50.0
offset_bottom = 378.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="Cloud3" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -160.0
offset_top = -104.0
offset_right = 401.0
offset_bottom = 242.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="Cloud4" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 295.0
offset_top = 100.0
offset_right = 856.0
offset_bottom = 446.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="Cloud5" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 468.0
offset_top = -120.0
offset_right = 1029.0
offset_bottom = 226.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="Cloud6" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 116.0
offset_top = -186.0
offset_right = 677.0
offset_bottom = 160.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="Cloud7" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -727.0
offset_top = 348.0
offset_right = -166.0
offset_bottom = 694.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="Cloud8" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -526.0
offset_top = 481.0
offset_right = 35.0
offset_bottom = 827.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="Cloud9" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -810.0
offset_top = 773.0
offset_right = -249.0
offset_bottom = 1119.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="Cloud10" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -911.0
offset_top = 548.0
offset_right = -350.0
offset_bottom = 894.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="Cloud11" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -293.0
offset_top = 690.0
offset_right = 268.0
offset_bottom = 1036.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="Cloud12" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -105.0
offset_top = 630.0
offset_right = 456.0
offset_bottom = 976.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="Cloud13" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 171.0
offset_top = 551.0
offset_right = 732.0
offset_bottom = 897.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="Cloud15" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 347.0
offset_top = 339.0
offset_right = 908.0
offset_bottom = 685.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="Cloud16" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 702.0
offset_top = 129.0
offset_right = 1263.0
offset_bottom = 475.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="Cloud17" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 533.0
offset_top = 580.0
offset_right = 1094.0
offset_bottom = 926.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="Cloud18" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -144.0
offset_top = 832.0
offset_right = 417.0
offset_bottom = 1178.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="Cloud19" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = -575.0
offset_top = 956.0
offset_right = -14.0
offset_bottom = 1302.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="Cloud20" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 385.0
offset_top = 736.0
offset_right = 946.0
offset_bottom = 1082.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="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
offset_left = 600.0
offset_top = 287.0
offset_right = 1161.0
offset_bottom = 633.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="Cloud22" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 893.0
offset_top = 889.0
offset_right = 1454.0
offset_bottom = 1235.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="Cloud23" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 997.0
offset_top = 606.0
offset_right = 1558.0
offset_bottom = 952.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="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
offset_left = 1051.0
offset_top = 318.0
offset_right = 1612.0
offset_bottom = 664.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="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
offset_left = 955.0
offset_top = 38.0
offset_right = 1516.0
offset_bottom = 384.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="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
offset_left = 986.0
offset_top = -229.0
offset_right = 1547.0
offset_bottom = 117.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="Cloud27" type="NinePatchRect" parent="Clouds"]
modulate = Color(0.84532857, 0.74155146, 0.35449484, 1)
layout_mode = 0
offset_left = 1430.0
offset_top = 10.0
offset_right = 1991.0
offset_bottom = 356.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="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,12 +1,11 @@
[gd_scene load_steps=12 format=3 uid="uid://dfa6ep4o53s08"]
[gd_scene load_steps=11 format=3 uid="uid://155hlphgft66"]
[ext_resource type="Script" uid="uid://cci652umkym1f" path="res://scripts/test_scene.gd" id="1_752n1"]
[ext_resource type="Texture2D" uid="uid://c5yxq22ao1oyf" path="res://graphics/doorlight.png" id="2_oi1nh"]
[ext_resource type="PackedScene" uid="uid://cd08dp16bixfv" path="res://templates/guildhall.tscn" id="2_rma72"]
[ext_resource type="Script" uid="uid://bnbljf6u2d3kh" path="res://scripts/visitor_spawner.gd" id="3_oi1nh"]
[ext_resource type="PackedScene" uid="uid://c8ofw6na082gv" path="res://templates/main_panel.tscn" id="4_4k18p"]
[ext_resource type="PackedScene" uid="uid://c7jagw4y7w42l" path="res://templates/top_menu.tscn" id="5_p1w2f"]
[ext_resource type="AudioStream" uid="uid://cmray2frojcd" path="res://sounds/Door Hinge Creaking Door.wav" id="7_oi1nh"]
[ext_resource type="Texture2D" uid="uid://c5yxq22ao1oyf" path="res://graphics/doorlight.png" id="2_g60ou"]
[ext_resource type="PackedScene" uid="uid://cd08dp16bixfv" path="res://templates/guildhall.tscn" id="3_6js5w"]
[ext_resource type="Script" uid="uid://bnbljf6u2d3kh" path="res://scripts/visitor_spawner.gd" id="4_3jgpx"]
[ext_resource type="PackedScene" uid="uid://c8ofw6na082gv" path="res://templates/game_panel.tscn" id="5_qf35n"]
[ext_resource type="PackedScene" uid="uid://c7jagw4y7w42l" path="res://templates/top_menu.tscn" id="6_sqcvo"]
[ext_resource type="AudioStream" uid="uid://cmray2frojcd" path="res://sounds/Door Hinge Creaking Door.wav" id="7_xvhcj"]
[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_752n1"]
blend_mode = 3
@@ -59,8 +58,7 @@ _data = {
&"open": SubResource("Animation_4k18p")
}
[node name="Active Scene" type="Node2D"]
script = ExtResource("1_752n1")
[node name="Open Shift Scene" type="Node2D"]
[node name="ColorRect" type="ColorRect" parent="."]
visible = false
@@ -84,7 +82,7 @@ self_modulate = Color(2.5713813, 2.5713813, 2.5713813, 0.36078432)
z_index = 100
position = Vector2(866, 654)
scale = Vector2(2, 2)
texture = ExtResource("2_oi1nh")
texture = ExtResource("2_g60ou")
hframes = 5
frame = 1
@@ -93,13 +91,13 @@ libraries = {
&"": SubResource("AnimationLibrary_dtjin")
}
[node name="Guildhall" parent="." instance=ExtResource("2_rma72")]
[node name="Guildhall" parent="." instance=ExtResource("3_6js5w")]
position = Vector2(421, 289)
[node name="VisitorSpawner" type="Node2D" parent="Guildhall"]
position = Vector2(453, 533)
script = ExtResource("3_oi1nh")
total_visitors = 1
script = ExtResource("4_3jgpx")
total_visitors = 3
[node name="Timer" type="Timer" parent="Guildhall/VisitorSpawner"]
@@ -111,16 +109,16 @@ offset_top = 23.0
offset_right = 1886.0
offset_bottom = 351.0
[node name="MainPanel" parent="UI/VBoxContainer" instance=ExtResource("4_4k18p")]
[node name="MainPanel" parent="UI/VBoxContainer" instance=ExtResource("5_qf35n")]
layout_mode = 2
[node name="Notices" type="Control" parent="UI/VBoxContainer"]
layout_mode = 2
[node name="Control" parent="UI" instance=ExtResource("5_p1w2f")]
[node name="Control" parent="UI" instance=ExtResource("6_sqcvo")]
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("7_oi1nh")
stream = ExtResource("7_xvhcj")
volume_db = -24.535
[connection signal="timeout" from="Guildhall/VisitorSpawner/Timer" to="Guildhall/VisitorSpawner" method="_on_timer_timeout"]

View File

@@ -0,0 +1,9 @@
[gd_scene load_steps=3 format=3 uid="uid://dfa6ep4o53s08"]
[ext_resource type="Script" uid="uid://cci652umkym1f" path="res://scripts/test_scene.gd" id="1_2vxxa"]
[ext_resource type="PackedScene" uid="uid://155hlphgft66" path="res://scenes/open_shift_scene.tscn" id="2_o2nb0"]
[node name="Node" type="Node"]
script = ExtResource("1_2vxxa")
[node name="Open Shift Scene" parent="." instance=ExtResource("2_o2nb0")]

View File

@@ -192,3 +192,32 @@ func generate_appearance(features=null) -> void:
#appearance.eye_type = randi_range(0,len(job.portrait.eye_types) - 1)
appearance.skin.color = AdventurerPortrait.random_color(ColorVariant.Types.SKIN)
changed.emit()
func save_inventory() -> Dictionary:
return {}
func save_equipment() -> Dictionary:
return {}
func save() -> Dictionary:
var dict = {}
dict.name = [given_name, surname]
dict.gender = gender
dict.gold = gold
if quest:
dict.quest = quest.id
dict.exp = exp
dict.level = level
dict.appearance = appearance.duplicate()
dict.stats = stats.duplicate()
dict.life = [life, max_life]
dict.energy = [energy, max_energy]
#TODO: Prepare for more on these later
dict.job = {}
dict.abilities = {}
dict.inventory = save_inventory()
dict.equipment = save_equipment()
return dict
func load(dict : Dictionary) -> void:
return

View File

@@ -29,7 +29,7 @@ func set_appearance(appearance) -> void:
set_color(ColorVariant.Types.EYES, appearance.eyes.color)
#set_color(ColorVariant.Types.EYES, appearance.eyes.type)
func get_random_appearance() -> Dictionary:
static func get_random_appearance() -> Dictionary:
var app = {
"hair":{
"type":"",

17
scripts/employee_panel.gd Normal file
View File

@@ -0,0 +1,17 @@
extends PanelContainer
var employee : GuildEmployee
func setup(employee : GuildEmployee) -> void:
self.employee = employee
global_position = Vector2(get_viewport().get_mouse_position()) - size / 2
return
func display_develop_tree() -> void:
pass
func _on_develop_button_pressed() -> void:
display_develop_tree()
func _on_focus_exited() -> void:
queue_free()

View File

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

View File

@@ -1,7 +1,30 @@
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])
hitting.connect(hit.bind(target), CONNECT_ONE_SHOT)
anim_player.play("attack")
func set_animation(anim_name : String) -> void:
anim_player.play(anim_name)
func hit(target : QuestSprite) -> void:
target.take_damage(self, 2)

View File

@@ -1,16 +1,19 @@
extends Node
var player_data : Adventurer = null
var player : Player = null
var panel : GamePanel = null
var player_profile : Window = null
var quest_log : QuestLog = null
var top_menu : TopMenu = null
var menu : GameMenu = null
var open : bool = false
var end_shift_confirmation : ConfirmationDialog
var end_shift_confirm_template = preload("res://templates/end_shift_confirmation.tscn")
var player_profile_template = preload("res://templates/player_profile_window.tscn")
var last_screenshot : Image
var shifts : Array[float] = []
var current_shift = -1
func _ready() -> void:
player_data = Adventurer.new()
Quest.load_quest_list()
@@ -27,6 +30,9 @@ func _process(delta: float) -> void:
if Input.is_action_just_pressed("test"):
test_save()
func add_quest_progress_bar(quest : Quest) -> void:
panel.add_quest_progress_bar(quest)
@@ -46,10 +52,17 @@ func toggle_player_profile():
add_child(player_profile)
player_profile.setup(player.data)
func start_shift(shift_num) -> void:
current_shift = shift_num
if len(shifts) < 1:
panel.reset_timer(600)
else:
panel.reset_timer(shifts[shift_num])
func end_shift() -> void:
take_screenshot()
open = false
open = !open
start_shift(wrap(current_shift+1, 0, len(shifts)))
if player_profile != null:
toggle_player_profile()
panel.switch_panel(open)
@@ -66,7 +79,7 @@ func end_shift() -> void:
#window.per
Guild.hall.process_mode = Node.PROCESS_MODE_DISABLED
Guild.hall.visible = false
top_menu.hide()
menu.hide()
panel.get_parent().global_position = Vector2i(5,5)
window.size = Vector2i(415,700)
panel.populate_quest_views()
@@ -86,26 +99,30 @@ func test_save() -> void:
take_screenshot()
var save_dict = {
"savetime": Time.get_datetime_string_from_system(),
"screenshot": last_screenshot
"screenshot": last_screenshot.save_png_to_buffer().hex_encode()
}
#Save the guild data
save_dict["guildname"] = Guild.name
save_dict["guildlevel"] = Guild.level
#Save the player data
if player:
save_dict["playername"] = player.data.full_name()
save_dict["playerlevel"] = player.data.level
save_dict.player = player.save()
#Save the employee data
#Save the adventurer data
var members = Guild.save_members()
if len(members) > 0:
save_dict.members = members
#Save the quest data
#Save the quest progress
var quests = Guild.save_quests()
if len(quests) > 0:
save_dict.quests = quests
var save_file = FileAccess.open("user://savefile.save", FileAccess.WRITE)
save_file.store_line(JSON.stringify(save_dict))
save_file.store_line(JSON.stringify(save_dict, "\t"))
func get_savefile_data(filename : String) -> Dictionary:
var load_file = FileAccess.open("user://" + filename, FileAccess.READ)
var json = JSON.new()
var json_string = load_file.get_line()
var json_string = load_file.get_as_text()
var parse_result = json.parse(json_string)
if not parse_result == OK:
printerr("JSON Parse Error: ", json.get_error_message(), " in ", json_string, " at line ", json.get_error_line())
@@ -114,14 +131,7 @@ func get_savefile_data(filename : String) -> Dictionary:
var ss : String = json.data.screenshot
#print(ss.data)
image.load_png_from_buffer(ss.hex_decode())
var data_dict = {
"playername": json.data.playername,
"playerlevel": json.data.playerlevel,
"guildname": json.data.guildname,
"guildlevel": json.data.guildlevel,
"savetime": json.data.savetime,
"screenshot": image
}
var data_dict = json.data.duplicate_deep()
return data_dict
func test_load(filename : String) -> void:

View File

@@ -1,4 +1,4 @@
class_name TopMenu extends Control
class_name GameMenu extends Control
const member_panel_entry_template = preload("res://templates/member_panel_entry.tscn")
const quest_panel_entry_template = preload("res://templates/quest_panel_entry.tscn")
@@ -9,7 +9,7 @@ const guild_info_window_template = preload("res://templates/guild_info_window.ts
@onready var quest_list = %QuestList
@onready var quests = %Quests
func _ready() -> void:
Game.top_menu = self
Game.menu = self
func hide_submenus() -> void:
members.visible = false

View File

@@ -40,7 +40,6 @@ func switch_panel(active : bool) -> void:
%OpenShift.visible = active
%WorkingShift.visible = !active
%QuestView.visible = !active
%Timer.start(300 if active else 1500)
audioplayer.play()
func _on_show_quests_pressed() -> void:
@@ -59,6 +58,11 @@ func connect_visitor_spawner(spawner : VisitorSpawner) -> void:
func update_visitor_count(current : int, total : int) -> void:
%OpenList/VisitorsLabel.text = "Visitors: %d/%d" % [current, total]
func reset_timer(time : float) -> void:
timer.start(time)
if timer.paused:
timer.paused = false
func populate_quest_views() -> void:
var count : int = 0
for quest in Guild.quests:

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

View File

@@ -57,7 +57,7 @@ func _ready() -> void:
func register_guild_member(member : Adventurer, first : bool = false) -> void:
members.append(member)
Game.top_menu.add_member(member)
Game.menu.add_member(member)
changed.emit()
if first:
Game.notice("%s has joined the guild!" % member.name, 5)
@@ -69,13 +69,25 @@ func has_guild_member(member : Adventurer) -> bool:
func add_quest(quest : Quest) -> void:
quests[quest] = false
Game.top_menu.add_quest(quest)
Game.menu.add_quest(quest)
#Game.quest_log.add_entry(quest)
func assign_quest(member : Adventurer, quest : Quest) -> void:
member.assign_quest(quest)
quests[quest] = true #Mark it as active
func save_members() -> Array:
var array : Array[Dictionary] = []
for member in members:
array.append(member.save())
return array
func save_quests() -> Array:
var array : Array[Dictionary] = []
for quest in quests:
array.append(quest.save())
return array
func spawn_visitor(pos : Vector2) -> void:
var data : Adventurer = visitors["test"].data.instantiate()
var sprite : AdventurerSprite = visitors["test"].sprite.instantiate()

View File

@@ -1,5 +1,7 @@
class_name GuildEmployee extends AdventurerSprite
const employee_panel_template = preload("res://templates/employee_panel.tscn")
@export var speech :String
@onready var queue : GuildQueue = $Queue
@@ -10,3 +12,14 @@ func interact(interactor, type : String = "") -> void:
Guild.register_guild_member(interactor.data, true)
#interactor.advance_
service_provided.emit()
func _on_mouse_area_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void:
if event is not InputEventMouseButton:
return
var evt = event as InputEventMouseButton
if evt.button_index == MOUSE_BUTTON_RIGHT:
var emp_panel : PanelContainer = employee_panel_template.instantiate()
get_tree().root.add_child(emp_panel)
emp_panel.setup(self)
emp_panel.grab_focus()

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

26
scripts/map_cloud.gd Normal file
View File

@@ -0,0 +1,26 @@
extends NinePatchRect
var max_displacement : float = 50
var speed : float = 10
var move_dir : Vector2
var start_position : Vector2
func _ready() -> void:
start_position = position
move_dir = Vector2.UP.rotated(randf() * 2 * PI)
func _process(delta: float) -> void:
var offset = (position - start_position).length() / max_displacement
var turn = randf_range(-PI / 6.0, PI / 6.0) * offset
var a_dir = move_dir.rotated(turn)
var b_dir = move_dir.rotated(-turn)
var ap = position + speed * delta * a_dir
var bp = position + speed * delta * b_dir
var mpsq = max_displacement * max_displacement
if ap.distance_squared_to(start_position) < mpsq:
position = ap
move_dir = a_dir
else:
position = bp
move_dir = b_dir

1
scripts/map_cloud.gd.uid Normal file
View File

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

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

@@ -14,6 +14,8 @@ var data : Adventurer
func _ready() -> void:
Game.player = self
data = Adventurer.new()
data.life = 20
data.max_life = 20
data.inventory_size = Vector2(4,2)
data.name = "Player"
setup.call_deferred()
@@ -48,7 +50,7 @@ func _physics_process(delta: float) -> void:
func _unhandled_input(event: InputEvent) -> void:
var evt : InputEventMouseButton = event as InputEventMouseButton
if evt and evt.pressed:
if evt and evt.button_index == MOUSE_BUTTON_LEFT and evt.pressed:
approach(evt.global_position)
nav_agent.target_desired_distance = stop_range
interaction_target = null
@@ -81,3 +83,9 @@ func try_interact(obj : Interactable) -> void:
func interact(obj : Interactable) -> void:
obj.interact(self)
func save() -> Dictionary:
return data.save()
func load(dict : Dictionary) -> void:
return

View File

@@ -13,7 +13,7 @@ func _ready() -> void:
if Game.player_data.appearance.size() != 0:
appearance = Game.player_data.appearance
else:
appearance = portrait.get_random_appearance()
appearance = AdventurerPortrait.get_random_appearance()
portrait.set_appearance(appearance)
choices.resize(portrait.option_sets.size())
choices.fill(0)
@@ -73,5 +73,5 @@ func _on_accept_button_pressed() -> void:
func _on_random_button_pressed() -> void:
appearance = portrait.get_random_appearance()
appearance = AdventurerPortrait.get_random_appearance()
portrait.set_appearance(appearance)

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

@@ -63,14 +63,6 @@ func approach(target, offset) -> void:
tween.tween_callback(anim_player.play.bind("idle"))
tween.tween_callback(arrived.emit)
func attack(target : QuestSprite) -> void:
print("Attack by %s to %s" % [name, target.name])
hitting.connect(spear_hit.bind(target), CONNECT_ONE_SHOT)
anim_player.play("spear attack")
func spear_hit(target : QuestSprite) -> void:
target.take_damage(self, 5)
func take_damage(source : QuestSprite, amount : int) -> void:
busy.emit()
var damage_banner = damage_banner_template.instantiate()

View File

@@ -61,3 +61,11 @@ func _on_level_up() -> void:
func _on_questor_changed() -> void:
pass
func attack(target : QuestSprite) -> void:
print("Attack by %s to %s" % [name, target.name])
hitting.connect(spear_hit.bind(target), CONNECT_ONE_SHOT)
anim_player.play("spear attack")
func spear_hit(target : QuestSprite) -> void:
target.take_damage(self, 5)

View File

@@ -1,8 +1,10 @@
extends Node2D
extends Node
var test_adv = preload("res://templates/test_adventurer.tscn")
var test_item = preload("res://data/items/pitchfork.tres")
@onready var door_player : AudioStreamPlayer = $AudioStreamPlayer
func _ready() -> void:
Game.shifts = [600, 600, 600]
Game.start_shift(0)
#var adv : Adventurer = test_adv.instantiate() as Adventurer
#Guild.register_guild_member(adv)
var lst = Quest.list
@@ -11,8 +13,10 @@ func _ready() -> void:
Guild.add_quest(quest)
Guild.assign_quest(Game.player.data, quest)
var itm = test_item.duplicate()
Game.player.data.appearance = AdventurerPortrait.get_random_appearance()
Game.player.data.pickup_item(itm)
Game.player.data.move_item(Vector2(0,0), Vector2(1,0))
Game.open = true
#Game.end_shift()
#var tween = create_tween()
#tween.tween_interval(3)

View File

@@ -0,0 +1,13 @@
// NOTE: Shader automatically converted from Godot Engine 4.5.1.stable.mono's CanvasItemMaterial.
shader_type canvas_item;
render_mode blend_mix;
uniform sampler2D main_texture;
void vertex() {
}
void fragment() {
vec4 col = texture(main_texture, UV);
COLOR = col;
}

View File

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

View File

@@ -0,0 +1,94 @@
[gd_scene load_steps=4 format=3 uid="uid://dv4pmw8f0qr3i"]
[sub_resource type="Environment" id="Environment_dkoub"]
ambient_light_source = 1
reflected_light_source = 1
glow_enabled = true
glow_intensity = 8.0
glow_strength = 2.0
glow_bloom = 1.0
[sub_resource type="Shader" id="Shader_dkoub"]
code = "// NOTE: Shader automatically converted from Godot Engine 4.5.1.stable.mono's CanvasItemMaterial.
shader_type canvas_item;
render_mode blend_mix;
uniform sampler2D main_texture;
void vertex() {
}
void fragment() {
vec4 col = texture(main_texture, UV);
COLOR = col;
}"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_000fu"]
shader = SubResource("Shader_dkoub")
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_dkoub")
[node name="PanelContainer" type="PanelContainer" parent="."]
layout_mode = 0
offset_right = 800.0
offset_bottom = 427.0
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer"]
layout_mode = 2
[node name="PanelContainer" type="PanelContainer" parent="PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PanelContainer/VBoxContainer/PanelContainer"]
layout_mode = 2
text = "Development Options"
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(800, 400)
layout_mode = 2
theme_override_constants/margin_left = 5
theme_override_constants/margin_right = 5
theme_override_constants/margin_bottom = 5
[node name="Container" type="Control" parent="PanelContainer/VBoxContainer/MarginContainer"]
layout_mode = 2
[node name="Button" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer/Container"]
layout_mode = 0
offset_top = 152.0
offset_right = 97.0
offset_bottom = 183.0
text = "Sign-up List"
[node name="Button2" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer/Container"]
layout_mode = 0
offset_left = 189.0
offset_top = 152.0
offset_right = 340.0
offset_bottom = 183.0
text = "Roster Sheet"
[node name="Button3" type="Button" parent="PanelContainer/VBoxContainer/MarginContainer/Container"]
layout_mode = 0
offset_left = 412.0
offset_top = 151.0
offset_right = 559.0
offset_bottom = 182.0
text = "Roster Book"
[node name="Line2D" type="Line2D" parent="PanelContainer/VBoxContainer/MarginContainer/Container"]
material = SubResource("ShaderMaterial_000fu")
position = Vector2(101, 168)
points = PackedVector2Array(0, 0, 84, 0)
width = 3.0
begin_cap_mode = 2
antialiased = true

View File

@@ -0,0 +1,34 @@
[gd_scene load_steps=2 format=3 uid="uid://ejiv2wdgeeva"]
[ext_resource type="Script" uid="uid://pwj0ai6mg7o2" path="res://scripts/employee_panel.gd" id="1_ls6g8"]
[node name="Employee Panel" type="PanelContainer"]
offset_right = 126.0
offset_bottom = 70.0
focus_mode = 1
script = ExtResource("1_ls6g8")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
[node name="PanelContainer" type="PanelContainer" parent="VBoxContainer"]
layout_mode = 2
mouse_filter = 2
[node name="Label" type="Label" parent="VBoxContainer/PanelContainer"]
layout_mode = 2
text = "Employee Name"
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_left = 3
theme_override_constants/margin_top = 4
theme_override_constants/margin_right = 4
theme_override_constants/margin_bottom = 0
[node name="DevelopButton" type="Button" parent="VBoxContainer"]
layout_mode = 2
text = "Develop"
[connection signal="focus_exited" from="." to="." method="_on_focus_exited"]
[connection signal="pressed" from="VBoxContainer/DevelopButton" to="." method="_on_develop_button_pressed"]

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,265 @@
[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
[node name="Button" type="Button" parent="."]
layout_mode = 0
offset_right = 8.0
offset_bottom = 8.0
toggle_mode = 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,6 +1,6 @@
[gd_scene load_steps=10 format=3 uid="uid://c8ofw6na082gv"]
[ext_resource type="Script" uid="uid://dhw85vqlvw33s" path="res://scripts/main_panel.gd" id="1_pdekv"]
[ext_resource type="Script" uid="uid://dhw85vqlvw33s" path="res://scripts/game_panel.gd" id="1_pdekv"]
[ext_resource type="Script" uid="uid://4jrp67ckp7vt" path="res://scripts/timer_label.gd" id="2_5rs2c"]
[ext_resource type="StyleBox" uid="uid://by1jk8r2avjp4" path="res://styles/open_shift_panel.tres" id="2_b7y1i"]
[ext_resource type="Texture2D" uid="uid://bwaiuy7yf7tu3" path="res://graphics/ui/time-frame.png" id="3_7oi8q"]
@@ -21,7 +21,7 @@ corner_radius_bottom_right = 3
corner_radius_bottom_left = 3
corner_detail = 5
[node name="MainPanel" type="MarginContainer"]
[node name="GamePanel" type="MarginContainer"]
offset_right = 401.0
offset_bottom = 853.0
theme_override_constants/margin_left = 0
@@ -220,6 +220,8 @@ layout_mode = 2
stream = ExtResource("6_osxme")
volume_db = -10.31
[connection signal="time_changed" from="." to="VBoxContainer/OpenShift/Margin/OpenList/TimerLabel" method="_on_time_changed"]
[connection signal="time_changed" from="." to="VBoxContainer/WorkingShift/MarginContainer/WorkingList/TimerLabel" method="_on_time_changed"]
[connection signal="pressed" from="VBoxContainer/OpenShift/TextureButton" to="." method="_on_options_button_pressed"]
[connection signal="pressed" from="VBoxContainer/OpenShift/Margin/OpenList/Button" to="." method="_on_end_shift_pressed"]
[connection signal="gui_input" from="VBoxContainer/WorkingShift/DragRegion" to="." method="_on_drag_region_gui_input"]

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=3 format=3 uid="uid://tbf3tvn8m54l"]
[ext_resource type="Script" uid="uid://dhw85vqlvw33s" path="res://scripts/main_panel.gd" id="1_sihtn"]
[ext_resource type="Script" uid="uid://dhw85vqlvw33s" path="res://scripts/game_panel.gd" id="1_sihtn"]
[ext_resource type="Script" uid="uid://4jrp67ckp7vt" path="res://scripts/timer_label.gd" id="2_xnrrg"]
[node name="PanelContainer" type="PanelContainer"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=8 format=3 uid="uid://cf6nnjyp8kv78"]
[gd_scene load_steps=9 format=3 uid="uid://cf6nnjyp8kv78"]
[ext_resource type="Script" uid="uid://b2unuudq5qfl" path="res://scripts/guild_employee.gd" id="1_vwytd"]
[ext_resource type="Texture2D" uid="uid://nrhxsevqn82" path="res://graphics/receptionist.png" id="2_dlmqr"]
@@ -12,6 +12,10 @@ height = 54.0
[sub_resource type="BlackboardPlan" id="BlackboardPlan_xsrct"]
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_51mum"]
radius = 29.0
height = 108.0
[node name="Receptionist" type="CharacterBody2D"]
script = ExtResource("1_vwytd")
@@ -38,3 +42,12 @@ position = Vector2(44, -93)
[node name="BTPlayer" type="BTPlayer" parent="."]
behavior_tree = ExtResource("7_qmbsn")
blackboard_plan = SubResource("BlackboardPlan_xsrct")
[node name="MouseArea" type="Area2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="MouseArea"]
position = Vector2(0, -50)
shape = SubResource("CapsuleShape2D_51mum")
debug_color = Color(0.19833331, 0.7, 0, 0.41960785)
[connection signal="input_event" from="MouseArea" to="." method="_on_mouse_area_input_event"]

View File

@@ -1,7 +1,7 @@
[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/top_menu.gd" id="1_o3fau"]
[ext_resource type="Script" uid="uid://wyv0gt0ww6fp" path="res://scripts/game_menu.gd" id="1_o3fau"]
[ext_resource type="Texture2D" uid="uid://hc1lmivi4bjs" path="res://graphics/top-icon-members-hover.png" id="2_370kg"]
[ext_resource type="Texture2D" uid="uid://w8xkghjv3t6r" path="res://graphics/shelf.png" id="2_hoboc"]
[ext_resource type="Texture2D" uid="uid://dkb0bhk4t15fh" path="res://graphics/guild-mopt.png" id="2_kvelj"]
@@ -15,8 +15,9 @@
[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="TopMenu" type="Control"]
[node name="GameMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
@@ -152,6 +153,7 @@ text = "Generate Quest"
unique_name_in_owner = true
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 4.0
@@ -227,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
@@ -441,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"]