Compare commits
4 Commits
9a216d3285
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| f5d479f7ff | |||
| 4ed4ab95f3 | |||
| 379fa4bd70 | |||
| 8811c851f9 |
@@ -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"
|
||||
|
||||
@@ -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
|
||||
42
data/quests/ann-marie-nestor2.gd
Normal file
@@ -0,0 +1,42 @@
|
||||
extends Quest
|
||||
|
||||
func _init() -> void:
|
||||
name = "[1] A Quest for Nestor's Woods that Ann Marie Promised Me"
|
||||
super._init()
|
||||
|
||||
func setup() -> void:
|
||||
|
||||
var event_weights = [1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,4,4,5]
|
||||
var num_events = 3 # event_weights.pick_random()
|
||||
#The first event is guaranteed to be at the 50% mark.
|
||||
var first : bool = true
|
||||
var pranges : Array = []
|
||||
var margin : float = 0.1
|
||||
for i in range(num_events):
|
||||
var evt : Quest.Event = Quest.Event.new()
|
||||
evt.type = Quest.Event.Type.COMBAT
|
||||
evt.enemies = ["goo"]
|
||||
evt.time = 5
|
||||
if first:
|
||||
#Make invisible
|
||||
evt.progress_point = .5
|
||||
pranges.append([margin, evt.progress_point-margin])
|
||||
pranges.append([evt.progress_point+margin, 1 - margin])
|
||||
first = false
|
||||
else:
|
||||
evt.hidden = true
|
||||
pranges.shuffle()
|
||||
var range = pranges.pop_back()
|
||||
evt.progress_point = randf_range(range[0], range[1])
|
||||
if evt.progress_point - range[0] >= 2 * margin:
|
||||
pranges.append([range[0], evt.progress_point - margin])
|
||||
if range[1] - evt.progress_point >= 2 * margin:
|
||||
pranges.append([evt.progress_point + margin, range[1]])
|
||||
events.append(evt)
|
||||
events.sort_custom(func(a,b): return a.progress_point < b.progress_point)
|
||||
desc = "One day Ann Marie will write me."
|
||||
location = Quest.Locations.NESTORS_WOODS
|
||||
rewards = {"exp":10, "gold":5}
|
||||
guild_rewards = {"glory":10, "gold":5}
|
||||
covenant_cost = 5
|
||||
|
||||
1
data/quests/ann-marie-nestor2.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://w6t0lkkxmbl2
|
||||
49
data/quests/feral_pigs.gd
Normal file
@@ -0,0 +1,49 @@
|
||||
extends Quest
|
||||
|
||||
func _init() -> void:
|
||||
name = "Fight of the Feral Pigs"
|
||||
location = Quest.Locations.NESTORS_WOODS
|
||||
difficulty = 1
|
||||
super._init()
|
||||
|
||||
func setup() -> void:
|
||||
|
||||
var event_weights = [1,1,1,1,1,1,1,1,2,2,2,2,3,3,3]
|
||||
var num_events = event_weights.pick_random()
|
||||
#The first event is guaranteed to be at the 50% mark.
|
||||
var first : bool = true
|
||||
var pranges : Array = []
|
||||
var margin : float = 0.1
|
||||
for i in range(num_events):
|
||||
var evt : Quest.Event = Quest.Event.new()
|
||||
evt.type = Quest.Event.Type.COMBAT
|
||||
evt.enemies = []
|
||||
for j in range(randi() %3 + 1):
|
||||
evt.enemies.append("feral pig")
|
||||
evt.time = 600
|
||||
evt.completed.connect(_on_combat_complete.bind(evt))
|
||||
if first:
|
||||
#Make invisible
|
||||
evt.progress_point = .5
|
||||
pranges.append([margin, evt.progress_point-margin])
|
||||
pranges.append([evt.progress_point+margin, 1 - margin])
|
||||
first = false
|
||||
else:
|
||||
evt.hidden = true
|
||||
pranges.shuffle()
|
||||
var range = pranges.pop_back()
|
||||
evt.progress_point = randf_range(range[0], range[1])
|
||||
if evt.progress_point - range[0] >= 2 * margin:
|
||||
pranges.append([range[0], evt.progress_point - margin])
|
||||
if range[1] - evt.progress_point >= 2 * margin:
|
||||
pranges.append([evt.progress_point + margin, range[1]])
|
||||
events.append(evt)
|
||||
events.sort_custom(func(a,b): return a.progress_point < b.progress_point)
|
||||
desc = "Pigs got out of Old John’s farm again. Poor fella don’t know up from down– at his age, he can’t help it. Trouble is, pigs are causing trouble in them there woods and John sure ain’t takin’ care of it. Handle 'em for us, would you?"
|
||||
location = Quest.Locations.NESTORS_WOODS
|
||||
rewards = {"exp":10, "gold":5}
|
||||
guild_rewards = {"glory":5, "gold":5}
|
||||
covenant_cost = 5
|
||||
|
||||
func _on_combat_complete(event : Quest.Event) -> void:
|
||||
rewards.gold += 2 * len(event.enemies)
|
||||
1
data/quests/feral_pigs.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://nnl5qvb3csr0
|
||||
@@ -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.
|
||||
|
||||
@@ -61,4 +61,4 @@ layer_info = {
|
||||
"16": SubResource("Resource_qx0md"),
|
||||
"17": SubResource("Resource_dv5be")
|
||||
}
|
||||
metadata/_latest_layer = "13"
|
||||
metadata/_latest_layer = ""
|
||||
|
||||
@@ -2,6 +2,8 @@ And after that, all that was left was to... just open the guild gate, I guess?
|
||||
It took me a little while to find the thing in the middle of Nestor's Woods despite growing up there. I knew Guildhalls were hidden in another dimension, but I'd always pictured the Guild Gates would be more... magical looking?
|
||||
do Game.switch_scenes("first_guildhall")
|
||||
player: (Wow this is a mess... nobody's been here for a while. I should...)
|
||||
- Stuff
|
||||
Stuff stuff.
|
||||
- set up some lights.
|
||||
Hey, no touching! This isn't your home! Get out!
|
||||
- clean it out.
|
||||
|
||||
BIN
external/Test Portrait/priestess.clip
vendored
BIN
external/animated-flower.png
vendored
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
@@ -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
BIN
external/boar.png
vendored
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
@@ -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
BIN
external/glowing-line.png
vendored
Normal file
|
After Width: | Height: | Size: 820 B |
@@ -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
BIN
external/map-region-ninepatch.png
vendored
Normal file
|
After Width: | Height: | Size: 101 B |
@@ -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
|
Before Width: | Height: | Size: 6.0 KiB |
BIN
external/tc/10.png
vendored
|
Before Width: | Height: | Size: 5.9 KiB |
BIN
external/tc/2.png
vendored
|
Before Width: | Height: | Size: 6.1 KiB |
BIN
external/tc/3.png
vendored
|
Before Width: | Height: | Size: 6.0 KiB |
BIN
external/tc/4.png
vendored
|
Before Width: | Height: | Size: 6.0 KiB |
40
external/tc/4.png.import
vendored
@@ -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
|
Before Width: | Height: | Size: 5.8 KiB |
40
external/tc/5.png.import
vendored
@@ -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
|
Before Width: | Height: | Size: 5.8 KiB |
40
external/tc/6.png.import
vendored
@@ -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
|
Before Width: | Height: | Size: 5.9 KiB |
40
external/tc/7.png.import
vendored
@@ -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
|
Before Width: | Height: | Size: 5.9 KiB |
40
external/tc/8.png.import
vendored
@@ -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
|
Before Width: | Height: | Size: 6.0 KiB |
40
external/tc/9.png.import
vendored
@@ -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
|
||||
|
Before Width: | Height: | Size: 172 KiB |
@@ -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
|
||||
|
||||
@@ -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"]
|
||||
|
||||
730
scenes/map.tscn
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
9
scenes/test/open_shift_scene.tscn
Normal 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")]
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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()
|
||||
1
scripts/employee_panel.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://pwj0ai6mg7o2
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
@@ -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:
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
@@ -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
@@ -0,0 +1 @@
|
||||
uid://c2jtg58mno7fj
|
||||
26
scripts/map_cloud.gd
Normal 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
@@ -0,0 +1 @@
|
||||
uid://bhahhdhn3a7kr
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
13
shaders/glowing_line.gdshader
Normal 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;
|
||||
}
|
||||
1
shaders/glowing_line.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cm3u77icj5agh
|
||||
94
templates/employee_develop_tree.tscn
Normal 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
|
||||
34
templates/employee_panel.tscn
Normal 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"]
|
||||
263
templates/enemies/alley_slime.tscn
Normal file
@@ -0,0 +1,263 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://bu5voitpttp7p"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_2ri6t"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_87jvf"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_8hyc4"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_vo4pp"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_u1ndo"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_87jvf"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_87jvf")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_vo4pp")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Alley Slime" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_2ri6t")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_8hyc4")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_u1ndo")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_87jvf")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Alley
|
||||
Slime"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
263
templates/enemies/amethyst_deceiver.tscn
Normal file
@@ -0,0 +1,263 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://xveoe42s3cpy"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_30p0h"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_6opmj"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_mo0fh"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_bwjs8"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_4ymsi"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_6opmj"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_6opmj")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_bwjs8")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Amethyst Deceiver" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_30p0h")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_mo0fh")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_4ymsi")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_6opmj")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Amethyst
|
||||
Deceiver"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
263
templates/enemies/animated_flower.tscn
Normal file
@@ -0,0 +1,263 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://cqusuc0ams6eh"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_up48k"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_rxxf6"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_2busj"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_gkykv"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_7b0ly"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_rxxf6"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_rxxf6")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_gkykv")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Animated Flower" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_up48k")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_2busj")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
visible = false
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_7b0ly")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_rxxf6")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Animated
|
||||
Flower"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
261
templates/enemies/animated_staff.tscn
Normal file
@@ -0,0 +1,261 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://r3c0xgvul2jx"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_d7xna"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_1davx"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_4s5de"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_yio0x"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_502cf"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_1davx"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_1davx")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_yio0x")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Animated Staff" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_d7xna")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_4s5de")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_502cf")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_1davx")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Animated
|
||||
Staff"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
260
templates/enemies/bluecap.tscn
Normal file
@@ -0,0 +1,260 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://d166wy4tvfwe3"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_k0wc2"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_ionm2"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_dj700"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_ttqbh"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_nil6w"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_vqxas"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_ionm2")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_ttqbh")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Bluecap" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_k0wc2")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_dj700")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_nil6w")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_vqxas")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Bluecap"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
260
templates/enemies/crystal_crab_swarm.tscn
Normal file
@@ -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
|
||||
265
templates/enemies/feral_pig.tscn
Normal 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
|
||||
260
templates/enemies/giant_firefly.tscn
Normal file
@@ -0,0 +1,260 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://t8il7knb04d4"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_qtf88"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_xmucg"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_ukc8a"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_bi2hu"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_x4ac5"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_xmucg"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_xmucg")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_bi2hu")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Giant Firefly" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_qtf88")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_ukc8a")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_x4ac5")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_xmucg")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Giant Firefly"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
@@ -17,54 +17,6 @@ shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/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"),
|
||||
|
||||
260
templates/enemies/mugger.tscn
Normal file
@@ -0,0 +1,260 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://cloxbd42ovk36"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_hh07h"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_812mx"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_qddks"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_b7gat"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_3k37n"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_812mx"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_812mx")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_b7gat")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Mugger" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_hh07h")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_qddks")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_3k37n")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_812mx")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Mugger"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
261
templates/enemies/rock_lizard.tscn
Normal file
@@ -0,0 +1,261 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://otxmn0tg06wk"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_y4ik6"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_k3tw5"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_mp3h0"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_33i5w"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_xb3gv"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_k3tw5"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_k3tw5")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_33i5w")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Rock Lizard" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_y4ik6")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_mp3h0")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_xb3gv")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_k3tw5")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Rock
|
||||
Lizard"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
261
templates/enemies/rogue_bot.tscn
Normal file
@@ -0,0 +1,261 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://ca8iaja6scjir"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_6adff"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_dq8bk"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_r0mhx"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_pwiye"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_tpfws"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_dq8bk"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_dq8bk")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_pwiye")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Rogue Bot" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_6adff")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_r0mhx")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_tpfws")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_dq8bk")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Rogue
|
||||
Bot"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
261
templates/enemies/shadow_self.tscn
Normal file
@@ -0,0 +1,261 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://ca016a7sc0wsi"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_hyp08"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_8gw2y"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_u4o7h"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_r4aiw"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_330w5"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_8gw2y"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_8gw2y")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_r4aiw")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Shadow Self" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_hyp08")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_u4o7h")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_330w5")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_8gw2y")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Shadow
|
||||
Self"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
261
templates/enemies/silent_spectre.tscn
Normal file
@@ -0,0 +1,261 @@
|
||||
[gd_scene load_steps=19 format=3 uid="uid://d13ukmpyaa7r1"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://fxixa11vqdrn" path="res://scripts/enemy.gd" id="1_d1eqt"]
|
||||
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="2_oxf3b"]
|
||||
[ext_resource type="Texture2D" uid="uid://cf31h0xgcc2yi" path="res://graphics/questview/goo shadow.png" id="3_iy7yx"]
|
||||
[ext_resource type="Shader" uid="uid://ctod7r3yre02d" path="res://shaders/nonvariant_sprite.gdshader" id="4_vchky"]
|
||||
[ext_resource type="Texture2D" uid="uid://bmkpn7sex6buo" path="res://graphics/questview/goo-sheet.png" id="5_ln8c0"]
|
||||
[ext_resource type="Texture2D" uid="uid://bldpiytpdrge6" path="res://graphics/icon.svg" id="6_oxf3b"]
|
||||
|
||||
[sub_resource type="Resource" id="Resource_bfuvr"]
|
||||
script = ExtResource("2_oxf3b")
|
||||
metadata/_custom_type_script = "uid://727tgvtmq4nb"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_h6sl2"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_vchky")
|
||||
shader_parameter/flash = false
|
||||
shader_parameter/flash_strength = 0.4
|
||||
shader_parameter/highlight = Color(1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_rfgh2"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [9]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_q2yeo"]
|
||||
resource_name = "attack"
|
||||
length = 0.80000335
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.16666667, 0.33333334, 0.36666667, 0.43333334, 0.49999997),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [8, 9, 10, 11, 12, 13]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath(".")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0.33333334, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [],
|
||||
"method": &"trigger_hit"
|
||||
}, {
|
||||
"args": [true, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_in6p1"]
|
||||
resource_name = "hurt"
|
||||
length = 0.23333667
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.099999994, 0.13333333, 0.16666667, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [14, 15, 16, 17, 18]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Sprite:position")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.16666667, 0.23333335),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector2(0, -48), Vector2(0, -60), Vector2(0, -48), Vector2(0, -48)]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Sprite:material:shader_parameter/highlight")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.16666667),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
|
||||
}
|
||||
tracks/3/type = "method"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath(".")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0, 0.23333333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"values": [{
|
||||
"args": [0.2],
|
||||
"method": &"knockback"
|
||||
}, {
|
||||
"args": [false, "idle"],
|
||||
"method": &"complete_action"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_fnqwt"]
|
||||
resource_name = "idle"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_t5s0y"]
|
||||
resource_name = "running"
|
||||
length = 0.46667004
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Sprite:frame")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.06666667, 0.13333333, 0.20000002, 0.26666668, 0.33333334, 0.40000004),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [2, 3, 4, 5, 6, 7, 1]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_45clm"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_rfgh2"),
|
||||
&"attack": SubResource("Animation_q2yeo"),
|
||||
&"hurt": SubResource("Animation_in6p1"),
|
||||
&"idle": SubResource("Animation_fnqwt"),
|
||||
&"running": SubResource("Animation_t5s0y")
|
||||
}
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_nqdtq"]
|
||||
offsets = PackedFloat32Array(0)
|
||||
colors = PackedColorArray(0, 0, 0, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_fehp8"]
|
||||
gradient = SubResource("Gradient_nqdtq")
|
||||
width = 1
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_yy18h"]
|
||||
offsets = PackedFloat32Array(1)
|
||||
colors = PackedColorArray(1, 1, 1, 1)
|
||||
|
||||
[sub_resource type="GradientTexture1D" id="GradientTexture1D_bfuvr"]
|
||||
gradient = SubResource("Gradient_yy18h")
|
||||
width = 1
|
||||
|
||||
[node name="Silent Spectre" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 0
|
||||
script = ExtResource("1_d1eqt")
|
||||
life = 10
|
||||
max_life = 10
|
||||
stats = SubResource("Resource_bfuvr")
|
||||
|
||||
[node name="Shadow" type="Sprite2D" parent="."]
|
||||
modulate = Color(0, 0, 0, 0.57254905)
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("3_iy7yx")
|
||||
|
||||
[node name="Sprite" type="Sprite2D" parent="."]
|
||||
material = SubResource("ShaderMaterial_h6sl2")
|
||||
position = Vector2(0, -48)
|
||||
texture = ExtResource("5_ln8c0")
|
||||
hframes = 8
|
||||
vframes = 3
|
||||
frame = 9
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_45clm")
|
||||
}
|
||||
|
||||
[node name="LifeBar" type="TextureProgressBar" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = -37.0
|
||||
offset_top = 16.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 26.0
|
||||
nine_patch_stretch = true
|
||||
texture_under = SubResource("GradientTexture1D_fehp8")
|
||||
texture_progress = SubResource("GradientTexture1D_bfuvr")
|
||||
tint_over = Color(1, 0, 0, 1)
|
||||
tint_progress = Color(1, 0, 0, 1)
|
||||
|
||||
[node name="BannerOffset" type="Node2D" parent="."]
|
||||
position = Vector2(0, -57)
|
||||
|
||||
[node name="TestSprite" type="Sprite2D" parent="."]
|
||||
self_modulate = Color(0, 0, 0, 1)
|
||||
position = Vector2(0, -53)
|
||||
texture = ExtResource("6_oxf3b")
|
||||
|
||||
[node name="Label" type="Label" parent="TestSprite"]
|
||||
offset_left = -39.0
|
||||
offset_top = -27.0
|
||||
offset_right = 37.0
|
||||
offset_bottom = 22.0
|
||||
text = "Silent
|
||||
Spectre"
|
||||
horizontal_alignment = 1
|
||||
metadata/_edit_lock_ = true
|
||||
@@ -1,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"]
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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"]
|
||||
|
||||