Extensive work on VFX for the guild, assets for the world, and portrait variance. Work on quests. Extra work on User Flow completion and file saving.

This commit is contained in:
2025-09-04 07:46:55 -04:00
parent 149ee993dc
commit 48e335f56a
134 changed files with 2232 additions and 288 deletions

View File

@@ -73,6 +73,7 @@ func _on_navigation_complete() -> void:
func _on_navigation_failed() -> void:
wait_time_remaining = randf_range(.5, 2)
agent.navigation_finished.disconnect(_on_navigation_complete)
agent.navigation_failed.disconnect(_on_navigation_failed)
func get_quest():
phase = Phases.OBTAIN

View File

@@ -80,6 +80,7 @@ func _on_navigation_complete() -> void:
func _on_navigation_failed() -> void:
wait_time_remaining = randf_range(.5, 2)
agent.navigation_finished.disconnect(_on_navigation_complete)
agent.navigation_failed.disconnect(_on_navigation_failed)
func interact():
phase = Phases.INTERACT

View File

@@ -80,6 +80,7 @@ func _on_navigation_complete() -> void:
func _on_navigation_failed() -> void:
wait_time_remaining = randf_range(.5, 2)
agent.navigation_finished.disconnect(_on_navigation_complete)
agent.navigation_failed.disconnect(_on_navigation_failed)
func use_service():
phase = Phases.SERVICE

View File

@@ -1,5 +1,7 @@
class_name Accessory extends Equipment
func can_equip_slot(slot : Slots) -> bool:
return slot == Slots.ACCESSORY
func item_type_name() -> String:
return "Accessory"

View File

@@ -1,5 +1,9 @@
class_name Armor extends Equipment
func can_equip_slot(slot : Slots) -> bool:
return slot == Slots.ARMOR
func item_type_name() -> String:
return "Armor"
#TODO: Add different armor classes

View File

@@ -1,4 +1,6 @@
class_name Equipment extends Item
@export var stats : StatBlock = StatBlock.new(0)
func item_type_name() -> String:
return "Equipment"

View File

@@ -1,5 +1,10 @@
class_name Item extends Resource
enum Slots{
WEAPON,
ARMOR,
ACCESSORY
}
@export var image : Texture2D
@export var name : StringName
@@ -10,5 +15,16 @@ class_name Item extends Resource
@export var per : bool
@export var grade : String = "F"
func item_type_name() -> String:
return "Item"
func can_equip_slot(slot : Slots) -> bool:
return false
static func slot_name(slot : Slots) -> String:
match(slot):
Slots.WEAPON: return "Weapon"
Slots.ARMOR: return "Armor"
Slots.ACCESSORY: return "Accessory"
return "ERROR"

View File

@@ -1,13 +1,23 @@
[gd_resource type="Resource" script_class="Weapon" load_steps=3 format=3 uid="uid://8k1lnfoi4xww"]
[gd_resource type="Resource" script_class="Weapon" load_steps=5 format=3 uid="uid://8k1lnfoi4xww"]
[ext_resource type="Texture2D" uid="uid://clrvwaqb61lpv" path="res://graphics/items/pitchfork.png" id="1_fpnr6"]
[ext_resource type="Script" uid="uid://bgn8ipx38g28o" path="res://data/items/weapon.gd" id="1_qoils"]
[ext_resource type="Script" uid="uid://727tgvtmq4nb" path="res://data/statblock.gd" id="3_hkspc"]
[sub_resource type="Resource" id="Resource_hkspc"]
script = ExtResource("3_hkspc")
STR = 3
DEX = -3
CHA = 2
PATK = 1
metadata/_custom_type_script = "uid://727tgvtmq4nb"
[resource]
script = ExtResource("1_qoils")
min_damage = 1
max_damage = 2
type = 2
stats = SubResource("Resource_hkspc")
image = ExtResource("1_fpnr6")
brief = "A humble weapon for a humble beginning."
metadata/_custom_type_script = "uid://bgn8ipx38g28o"

View File

@@ -1,6 +1,6 @@
class_name Weapon extends Equipment
enum Type{
enum Types{
FIST,
SWORD,
SPEAR,
@@ -12,21 +12,24 @@ enum Type{
}
@export var min_damage : int
@export var max_damage : int
@export var type : Type
@export var type : Types
func item_type_name() -> String:
return "Weapon (%s)" % weapon_type_name()
func can_equip_slot(slot : Slots) -> bool:
return slot == Slots.WEAPON
func primary_stat() -> String:
return "Deals %d-%d base damage." % [min_damage, max_damage]
func weapon_type_name() -> String:
match(type):
Type.FIST: return "Fist"
Type.SWORD: return "Sword"
Type.SPEAR: return "Spear"
Type.STAFF: return ""
Type.DAGGER: return ""
Type.HAMMER: return ""
Type.WHIP: return ""
Types.FIST: return "Fist"
Types.SWORD: return "Sword"
Types.SPEAR: return "Spear"
Types.STAFF: return "Staff"
Types.DAGGER: return "Dagger"
Types.HAMMER: return "Hammer"
Types.WHIP: return "Whip"
return "Unknown"

View File

@@ -1,5 +1,6 @@
[gd_resource type="Resource" script_class="JobData" load_steps=2 format=3 uid="uid://db4xces0v3het"]
[gd_resource type="Resource" script_class="JobData" load_steps=3 format=3 uid="uid://db4xces0v3het"]
[ext_resource type="PackedScene" uid="uid://doxmdg4dpnjp1" path="res://graphics/portraits/farmer.tscn" id="1_0iatm"]
[ext_resource type="Script" uid="uid://byr5ai03cpa5s" path="res://data/jobs/job_data.gd" id="1_clwor"]
[resource]
@@ -12,4 +13,6 @@ max_INT = 3
max_CHA = 2
max_FAI = 2
max_LUK = 2
portrait = ExtResource("1_0iatm")
equippable_weapons = ["Spear", "Fist", "Hammer"]
metadata/_custom_type_script = "uid://byr5ai03cpa5s"

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="JobData" load_steps=2 format=3 uid="uid://bcbnt88ss6loi"]
[ext_resource type="Script" uid="uid://byr5ai03cpa5s" path="res://data/jobs/job_data.gd" id="1_2ar68"]
[resource]
script = ExtResource("1_2ar68")
name = "Guildleader"
type = 1
min_STR = null
max_STR = null
min_DEX = null
max_DEX = null
min_INT = null
max_INT = null
min_CHA = null
max_CHA = null
min_FAI = null
max_FAI = null
min_LUK = null
max_LUK = null
metadata/_custom_type_script = "uid://byr5ai03cpa5s"

View File

@@ -26,7 +26,11 @@ var test
@export var portrait : PackedScene
@export var equippable_weapons : Array[String] = []
#TODO: Implement a more interesting tnl for different jobs
func get_tnl(lvl : int) -> int:
return lvl * 10
func can_equip(item):
return true

View File

@@ -1,4 +1,5 @@
class_name Quest extends Object
class_name Quest extends Resource
@@ -11,6 +12,10 @@ enum Status{
CLOSED
}
enum Locations{
NESTORS_WOODS
}
class Event:
var enemy_types: Dictionary[String, PackedScene] = {
"goo": preload("res://templates/enemies/goo.tscn")
@@ -73,7 +78,9 @@ class Event:
c[0].busy.connect(_on_busy.bind(c[0]))
c[0].action_complete.connect(_on_combat_action_complete.bind(c[0]))
c[0].died.connect(_on_death.bind(c[0]))
var time = delay * dex_speed / c[1]
var time = delay * dex_speed
if c[1] != 0:
time = delay * dex_speed / c[1]
turn_queue.append({"combatant":c[0], "time": time - last_time})
last_time = time
@@ -124,7 +131,7 @@ class Event:
for p : QuestorSprite in participants:
p.check_levelup()
#TODO: Notify player if level up occurs
time = 10
time = 5
func defeat():
print("Questor lost!")
@@ -193,9 +200,11 @@ class Event:
var name : String = "A Basic Quest"
var desc : String = "The default quest, with no special anything."
var difficulty : int = 1
var location : String
var location : Locations
var steps : int = 1
var rewards : Dictionary
var guild_rewards : Dictionary
var covenant_cost : int = 1
var length : float = 10
var events : Array[Event] = []
@@ -245,7 +254,10 @@ func is_eligible(member : Adventurer) -> bool:
func is_taken() -> bool:
return status == Status.TAKEN
func location_name() -> String:
match(location):
Locations.NESTORS_WOODS: return "Nestor's Woods"
return "ERROR"
func difficulty_name() -> String:
match(difficulty):

View File

@@ -0,0 +1,18 @@
extends Quest
func _init() -> void:
name = "A Sticky Situation"
var event_weights = [1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,4,4,5]
var num_events = event_weights.pick_random()
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
events.append(evt)
desc = "Nestors Woods is facing a slime invasion and the farmers are getting nervous, send an adventurer to help squash that sticky situation!"
location =
rewards = {"exp":10, "gold":5}
guild_rewards = {"glory":10, "gold":5}
covenant_cost = 5

View File

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

View File

@@ -1,12 +1,41 @@
class_name StatBlock extends Resource
@export var STR : int = 1
@export var DEX : int = 1
@export var INT : int = 1
@export var CHA : int = 1
@export var FAI : int = 1
@export var LUK : int = 1
@export var STR : int = 0
@export var DEX : int = 0
@export var INT : int = 0
@export var CHA : int = 0
@export var FAI : int = 0
@export var LUK : int = 0
@export var PATK : int = 0
@export var PDEF : int = 0
@export var MATK : int = 0
@export var MDEF : int = 0
func _init(start : int = 0) -> void:
STR = start
DEX = start
INT = start
CHA = start
FAI = start
LUK = start
PATK = start
PDEF = start
MATK = start
MDEF = start
func _to_string() -> String:
var string = "%s {" % [resource_scene_unique_id]
string += str(STR) + ", "
string += str(DEX) + ", "
string += str(INT) + ", "
string += str(CHA) + ", "
string += str(FAI) + ", "
string += str(LUK) + ", "
string += str(PATK) + ", "
string += str(PDEF) + ", "
string += str(MATK) + ", "
string += str(MDEF) + "}"
return string
static func copy(block : StatBlock) -> StatBlock:
var b = StatBlock.new()
@@ -16,4 +45,8 @@ static func copy(block : StatBlock) -> StatBlock:
b.CHA = block.CHA
b.FAI = block.FAI
b.LUK = block.LUK
b.PATK = block.PATK
b.PDEF = block.PDEF
b.MATK = block.MATK
b.MDEF = block.MDEF
return b

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://crrd8mpcuync2"
path="res://.godot/imported/body.png-5a897720f599ec630383f1f3dd8e9e9e.ctex"
path="res://.godot/imported/body.png-efd5e53b6f03adc4a57de5ce8dc4d3cd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/body.png"
dest_files=["res://.godot/imported/body.png-5a897720f599ec630383f1f3dd8e9e9e.ctex"]
source_file="res://external/test portrait/farmer_f/body.png"
dest_files=["res://.godot/imported/body.png-efd5e53b6f03adc4a57de5ce8dc4d3cd.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://pp5ssn5m2n3i"
path="res://.godot/imported/brow_shadow-1.png-94d923d93f9bc0db18f7b963da1021dd.ctex"
path="res://.godot/imported/brow_shadow-1.png-8dff8c187d59ecaaefbb84e877b32e20.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/brow_shadow-1.png"
dest_files=["res://.godot/imported/brow_shadow-1.png-94d923d93f9bc0db18f7b963da1021dd.ctex"]
source_file="res://external/test portrait/farmer_f/brow_shadow-1.png"
dest_files=["res://.godot/imported/brow_shadow-1.png-8dff8c187d59ecaaefbb84e877b32e20.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://x4e86o28672u"
path="res://.godot/imported/brow_shadow-2.png-85a8d07465b9b109e67ad99a37d690d1.ctex"
path="res://.godot/imported/brow_shadow-2.png-b5d8d416acf1ddb95fd785200da8d3ce.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/brow_shadow-2.png"
dest_files=["res://.godot/imported/brow_shadow-2.png-85a8d07465b9b109e67ad99a37d690d1.ctex"]
source_file="res://external/test portrait/farmer_f/brow_shadow-2.png"
dest_files=["res://.godot/imported/brow_shadow-2.png-b5d8d416acf1ddb95fd785200da8d3ce.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://sv7bxo8a12i6"
path="res://.godot/imported/brow_shadow.png-e4497bbbff21d0b56dc81b07de4f06bc.ctex"
path="res://.godot/imported/brow_shadow.png-f653be07b461bc5d7a18192996ffb73a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/brow_shadow.png"
dest_files=["res://.godot/imported/brow_shadow.png-e4497bbbff21d0b56dc81b07de4f06bc.ctex"]
source_file="res://external/test portrait/farmer_f/brow_shadow.png"
dest_files=["res://.godot/imported/brow_shadow.png-f653be07b461bc5d7a18192996ffb73a.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://tpg08bgn2on7"
path="res://.godot/imported/brows-1.png-70092c4bb56529f3cdeb7b51925eb071.ctex"
path="res://.godot/imported/brows-1.png-86a51529282fffa26d497e35e4cc9367.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/brows-1.png"
dest_files=["res://.godot/imported/brows-1.png-70092c4bb56529f3cdeb7b51925eb071.ctex"]
source_file="res://external/test portrait/farmer_f/brows-1.png"
dest_files=["res://.godot/imported/brows-1.png-86a51529282fffa26d497e35e4cc9367.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://brmta1rtiau4a"
path="res://.godot/imported/brows-2.png-227c9708d0b7fde57b1ef42021508fcf.ctex"
path="res://.godot/imported/brows-2.png-01beea1c4e9cadf04c529dc849682c8a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/brows-2.png"
dest_files=["res://.godot/imported/brows-2.png-227c9708d0b7fde57b1ef42021508fcf.ctex"]
source_file="res://external/test portrait/farmer_f/brows-2.png"
dest_files=["res://.godot/imported/brows-2.png-01beea1c4e9cadf04c529dc849682c8a.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://c3wwe6r000gpq"
path="res://.godot/imported/composite.png-b2c2e474fe243b72bd3471af031774d6.ctex"
path="res://.godot/imported/composite.png-a68e5c4a777094ce447b89a2ab45b35b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/composite.png"
dest_files=["res://.godot/imported/composite.png-b2c2e474fe243b72bd3471af031774d6.ctex"]
source_file="res://external/test portrait/farmer_f/composite.png"
dest_files=["res://.godot/imported/composite.png-a68e5c4a777094ce447b89a2ab45b35b.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://caow8dqiog7j4"
path="res://.godot/imported/ear.png-a1b457892f7236464123f2229af36695.ctex"
path="res://.godot/imported/ear.png-74df11e092bb05fcc54c7e7478ed4d95.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/ear.png"
dest_files=["res://.godot/imported/ear.png-a1b457892f7236464123f2229af36695.ctex"]
source_file="res://external/test portrait/farmer_f/ear.png"
dest_files=["res://.godot/imported/ear.png-74df11e092bb05fcc54c7e7478ed4d95.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://csp7xbtu0tpn7"
path="res://.godot/imported/eye-white-1.png-fb75b817d294c00ebeee3e6996a2c02e.ctex"
path="res://.godot/imported/eye-white-1.png-a31a2b044ab6206c129b0739fd4c0c80.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/eye-white-1.png"
dest_files=["res://.godot/imported/eye-white-1.png-fb75b817d294c00ebeee3e6996a2c02e.ctex"]
source_file="res://external/test portrait/farmer_f/eye-white-1.png"
dest_files=["res://.godot/imported/eye-white-1.png-a31a2b044ab6206c129b0739fd4c0c80.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://mygmunn3voie"
path="res://.godot/imported/eyes-iris-1.png-3c96067ab402ea99f8e1b1b7db594f4c.ctex"
path="res://.godot/imported/eyes-iris-1.png-d2077e2e658acf3840075cfe98f86f4e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/eyes-iris-1.png"
dest_files=["res://.godot/imported/eyes-iris-1.png-3c96067ab402ea99f8e1b1b7db594f4c.ctex"]
source_file="res://external/test portrait/farmer_f/eyes-iris-1.png"
dest_files=["res://.godot/imported/eyes-iris-1.png-d2077e2e658acf3840075cfe98f86f4e.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://wnkr20dtf734"
path="res://.godot/imported/eyes-lashes-1.png-8a4535f7647af11ff99b165ee021e8cc.ctex"
path="res://.godot/imported/eyes-lashes-1.png-1460ddc60d7a087da2d517ce8f1a5faa.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/eyes-lashes-1.png"
dest_files=["res://.godot/imported/eyes-lashes-1.png-8a4535f7647af11ff99b165ee021e8cc.ctex"]
source_file="res://external/test portrait/farmer_f/eyes-lashes-1.png"
dest_files=["res://.godot/imported/eyes-lashes-1.png-1460ddc60d7a087da2d517ce8f1a5faa.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dd063tm4qo5nc"
path="res://.godot/imported/eyes.png-1384a95ac331738bfe48af30a8953f10.ctex"
path="res://.godot/imported/eyes.png-da6eb5fdf7f113844fe8e5414a1f2331.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/eyes.png"
dest_files=["res://.godot/imported/eyes.png-1384a95ac331738bfe48af30a8953f10.ctex"]
source_file="res://external/test portrait/farmer_f/eyes.png"
dest_files=["res://.godot/imported/eyes.png-da6eb5fdf7f113844fe8e5414a1f2331.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://li44lgsa0ky"
path="res://.godot/imported/eyes_shadow.png-639516c9b7d6a71a22fcd4597236a89e.ctex"
path="res://.godot/imported/eyes_shadow.png-c0450e5470a67b3e212b544dfeadc885.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/eyes_shadow.png"
dest_files=["res://.godot/imported/eyes_shadow.png-639516c9b7d6a71a22fcd4597236a89e.ctex"]
source_file="res://external/test portrait/farmer_f/eyes_shadow.png"
dest_files=["res://.godot/imported/eyes_shadow.png-c0450e5470a67b3e212b544dfeadc885.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://can8npg0ufr3f"
path="res://.godot/imported/hair_bg.png-07f942d8008a0d2581909922002bbbe2.ctex"
path="res://.godot/imported/hair_bg.png-71bd584ff51ea6c704ba2eb2b8124703.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/hair_bg.png"
dest_files=["res://.godot/imported/hair_bg.png-07f942d8008a0d2581909922002bbbe2.ctex"]
source_file="res://external/test portrait/farmer_f/hair_bg.png"
dest_files=["res://.godot/imported/hair_bg.png-71bd584ff51ea6c704ba2eb2b8124703.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://vt17lekvchdg"
path="res://.godot/imported/hair_fg.png-9f5c6bb27fb0349d9ddfba99f87aa5c6.ctex"
path="res://.godot/imported/hair_fg.png-9dfae38fbf9812dad9b45d15a1cbd791.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/hair_fg.png"
dest_files=["res://.godot/imported/hair_fg.png-9f5c6bb27fb0349d9ddfba99f87aa5c6.ctex"]
source_file="res://external/test portrait/farmer_f/hair_fg.png"
dest_files=["res://.godot/imported/hair_fg.png-9dfae38fbf9812dad9b45d15a1cbd791.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cru775pghpate"
path="res://.godot/imported/hair_fg_shadow.png-41de10e26ae2147aace92ba197b28075.ctex"
path="res://.godot/imported/hair_fg_shadow.png-609d7f961008e48f548f0e05277dafb4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/hair_fg_shadow.png"
dest_files=["res://.godot/imported/hair_fg_shadow.png-41de10e26ae2147aace92ba197b28075.ctex"]
source_file="res://external/test portrait/farmer_f/hair_fg_shadow.png"
dest_files=["res://.godot/imported/hair_fg_shadow.png-609d7f961008e48f548f0e05277dafb4.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dj6fagfp2sbrx"
path="res://.godot/imported/hat-bg.png-00e20fcd79ddb550d12459624be7d9b1.ctex"
path="res://.godot/imported/hat-bg.png-972a86d8449c11d1a72a4f21b15efd0a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/hat-bg.png"
dest_files=["res://.godot/imported/hat-bg.png-00e20fcd79ddb550d12459624be7d9b1.ctex"]
source_file="res://external/test portrait/farmer_f/hat-bg.png"
dest_files=["res://.godot/imported/hat-bg.png-972a86d8449c11d1a72a4f21b15efd0a.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://b303qa76o5r1m"
path="res://.godot/imported/hat.png-9bb6fa9d1f7f7503ee26b1749cdf7c0a.ctex"
path="res://.godot/imported/hat.png-21e48868d0218210b390afa680a1202d.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/hat.png"
dest_files=["res://.godot/imported/hat.png-9bb6fa9d1f7f7503ee26b1749cdf7c0a.ctex"]
source_file="res://external/test portrait/farmer_f/hat.png"
dest_files=["res://.godot/imported/hat.png-21e48868d0218210b390afa680a1202d.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dyeu4kwwnxjn5"
path="res://.godot/imported/hat_fg.png-e2cae14f649780ea2aba38b34358b587.ctex"
path="res://.godot/imported/hat_fg.png-2dddd61ae84da22b32d123d3533338c5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/hat_fg.png"
dest_files=["res://.godot/imported/hat_fg.png-e2cae14f649780ea2aba38b34358b587.ctex"]
source_file="res://external/test portrait/farmer_f/hat_fg.png"
dest_files=["res://.godot/imported/hat_fg.png-2dddd61ae84da22b32d123d3533338c5.ctex"]
[params]

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dbdjaye6srxhx"
path="res://.godot/imported/head.png-df46fa0b8e2741bbf0fad9b3a03fedea.ctex"
path="res://.godot/imported/head.png-47039f8abc285b87bb176b5b43ee9a5f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/Test Portrait/Farmer_F/head.png"
dest_files=["res://.godot/imported/head.png-df46fa0b8e2741bbf0fad9b3a03fedea.ctex"]
source_file="res://external/test portrait/farmer_f/head.png"
dest_files=["res://.godot/imported/head.png-47039f8abc285b87bb176b5b43ee9a5f.ctex"]
[params]

Binary file not shown.

View File

@@ -1,5 +0,0 @@
[gd_resource type="Gradient" format=3 uid="uid://bdpm22bjpfwpa"]
[resource]
offsets = PackedFloat32Array(0, 0.25695932, 0.54817986, 0.69164884, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.0012908186, 0.102164544, 0.49609822, 1, 0.07499155, 0.16444942, 0.46347773, 1, 0.2880286, 0.45501614, 0.9395664, 1, 0.06879827, 0.06879828, 0.06879828, 1)

View File

@@ -1,8 +0,0 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://c8cvo15p3vosu"]
[sub_resource type="Gradient" id="Gradient_svc3h"]
offsets = PackedFloat32Array(0, 0.25695932, 0.54817986, 0.69164884, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.0012908186, 0.102164544, 0.49609822, 1, 0.07499155, 0.16444942, 0.46347773, 1, 0.2880286, 0.45501614, 0.9395664, 1, 0.06879827, 0.06879828, 0.06879828, 1)
[resource]
gradient = SubResource("Gradient_svc3h")

View File

@@ -1,8 +0,0 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://bkdvsld7ytk2"]
[sub_resource type="Gradient" id="Gradient_s3ye8"]
offsets = PackedFloat32Array(0, 0.6465324, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.9485459, 0.9485459, 0.9485459, 1, 1, 1, 1, 1)
[resource]
gradient = SubResource("Gradient_s3ye8")

View File

@@ -0,0 +1,6 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://c8cvo15p3vosu"]
[ext_resource type="Gradient" uid="uid://bdpm22bjpfwpa" path="res://external/test portrait/gradients/blue-eyes.tres" id="1_nl7cv"]
[resource]
gradient = ExtResource("1_nl7cv")

View File

@@ -1,8 +1,7 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://s2ok31sncevx"]
[sub_resource type="Gradient" id="Gradient_s3ye8"]
offsets = PackedFloat32Array(0, 0.6465324, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.9485459, 0.9485459, 0.9485459, 1, 1, 1, 1, 1)
offsets = PackedFloat32Array(0, 0.99776286)
[resource]
gradient = SubResource("Gradient_s3ye8")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://cq64vxl2sjtyx"]
[sub_resource type="Gradient" id="Gradient_465hm"]
offsets = PackedFloat32Array(0, 0.12751675, 0.23489934, 0.47951806, 0.62650603, 0.76626503, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.26620007, 0.07699999, 0.55, 1, 0.13999999, 0.4553334, 1, 1, 0.3168, 0.99, 0.99, 1, 0.4603812, 0.62107074, 0.983972, 1, 0.81, 1, 1, 1, 0, 0, 0, 1)
[resource]
gradient = SubResource("Gradient_465hm")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://c5pwq6q4r3fjs"]
[sub_resource type="Gradient" id="Gradient_0cjbu"]
offsets = PackedFloat32Array(0, 0.20722891, 0.2987952, 0.53493977, 0.6578313)
colors = PackedColorArray(0, 0, 0, 1, 0, 1, 0.116666794, 1, 0.6165441, 0.66801465, 0.006004907, 1, 0.65, 0.65, 0, 1, 0.839, 1, 0.79, 1)
[resource]
gradient = SubResource("Gradient_0cjbu")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://c2jnnqayrbyup"]
[sub_resource type="Gradient" id="Gradient_fetdk"]
offsets = PackedFloat32Array(0, 0.18313253, 0.5373494, 0.73493975, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.32992896, 0.32992896, 0.32992896, 1, 0.9485459, 0.9485459, 0.9485459, 1, 1, 1, 1, 1, 1, 1, 1, 1)
[resource]
gradient = SubResource("Gradient_fetdk")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://24wfq2fftdnn"]
[sub_resource type="Gradient" id="Gradient_s3ye8"]
offsets = PackedFloat32Array(0, 0.078299776, 0.21923937, 0.3512304, 0.62650603, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.29931465, 0.23565266, 0.25879574, 1, 0.32992896, 0.32992896, 0.32992896, 1, 0.9485459, 0.9485459, 0.9485459, 1, 1, 1, 1, 1, 1, 1, 1, 1)
[resource]
gradient = SubResource("Gradient_s3ye8")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://bkdvsld7ytk2"]
[sub_resource type="Gradient" id="Gradient_s3ye8"]
offsets = PackedFloat32Array(0, 0.078299776, 0.21923937, 0.3512304, 0.62650603, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.29931465, 0.23565266, 0.25879574, 1, 0.32992896, 0.32992896, 0.32992896, 1, 0.9485459, 0.9485459, 0.9485459, 1, 1, 1, 1, 1, 1, 1, 1, 1)
[resource]
gradient = SubResource("Gradient_s3ye8")

View File

@@ -0,0 +1,5 @@
[gd_resource type="Gradient" format=3 uid="uid://bl1crpxfmpm1x"]
[resource]
offsets = PackedFloat32Array(0, 0.49604222, 0.89973617, 1)
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0.68, 1, 0.86, 0.86, 1, 1, 0, 0, 1, 1)

View File

@@ -1,8 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://cmi82onbn37hi"]
[sub_resource type="Gradient" id="Gradient_s3ye8"]
offsets = PackedFloat32Array(0, 0.032119915, 0.4025696, 0.89721626, 1)
colors = PackedColorArray(0.5686275, 0.45490196, 0.17254902, 1, 0.69411767, 0.5647059, 0.11764706, 1, 0.9490196, 0.7882353, 0.22352941, 1, 1, 0.87058824, 0.1882353, 1, 1, 1, 1, 1)
offsets = PackedFloat32Array(0, 0.06487696, 0.27740493, 0.753915, 0.9239374, 1)
colors = PackedColorArray(0.5686275, 0.45490196, 0.17254902, 1, 0.69411767, 0.5647059, 0.11764706, 1, 0.95, 0.589, 0.228, 1, 0.9948097, 0.8413576, 0.19236313, 1, 0.9999996, 0.943655, 0.6828502, 1, 1, 1, 1, 1)
[resource]
gradient = SubResource("Gradient_s3ye8")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://cd4jsivokd6sk"]
[sub_resource type="Gradient" id="Gradient_u7u0c"]
offsets = PackedFloat32Array(0, 0.49604222, 0.89973617, 1)
colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0.68, 1, 0.86, 0.86, 1, 1, 0, 0, 1, 1)
[resource]
gradient = SubResource("Gradient_u7u0c")

View File

@@ -1,8 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://0dwdi7m62trg"]
[sub_resource type="Gradient" id="Gradient_s3ye8"]
offsets = PackedFloat32Array(0, 0.032119915, 0.4025696, 0.89721626, 1)
colors = PackedColorArray(0.5686275, 0.45490196, 0.17254902, 1, 0.69411767, 0.5647059, 0.11764706, 1, 0.9490196, 0.7882353, 0.22352941, 1, 1, 0.87058824, 0.1882353, 1, 1, 1, 1, 1)
offsets = PackedFloat32Array(0, 0.19486082, 0.4261242, 0.8993576, 1)
colors = PackedColorArray(0.5686275, 0.45490196, 0.17254902, 1, 0, 0, 0, 1, 0.9490196, 0, 0.22352941, 1, 1, 0.4, 0.1882353, 1, 1, 1, 1, 1)
[resource]
gradient = SubResource("Gradient_s3ye8")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://7eaf7qn7h3w"]
[sub_resource type="Gradient" id="Gradient_8rc2w"]
offsets = PackedFloat32Array(0.33509234, 0.8918206, 0.94459105, 0.9762533)
colors = PackedColorArray(0, 0, 0, 1, 0.23031479, 0.23031497, 0.23031488, 1, 0.5609549, 0.5609549, 0.5609549, 1, 1, 1, 1, 1)
[resource]
gradient = SubResource("Gradient_8rc2w")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://bfvn8f1oxqr7w"]
[sub_resource type="Gradient" id="Gradient_8rc2w"]
offsets = PackedFloat32Array(0, 0.53825855, 0.88918203, 0.9630607)
colors = PackedColorArray(0, 0, 0, 1, 0.23031479, 0.23031497, 0.23031488, 1, 0.34407577, 0.34407574, 0.34407574, 1, 0.5609549, 0.5609549, 0.5609549, 1)
[resource]
gradient = SubResource("Gradient_8rc2w")

View File

@@ -0,0 +1,8 @@
[gd_resource type="GradientTexture1D" load_steps=2 format=3 uid="uid://bqmnbsxgbrcpw"]
[sub_resource type="Gradient" id="Gradient_s3ye8"]
offsets = PackedFloat32Array(0, 0.6147757, 0.9182058, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.59147835, 0.59147835, 0.59147835, 1, 0.86898494, 0.8689849, 0.8689849, 1, 1, 1, 1, 1)
[resource]
gradient = SubResource("Gradient_s3ye8")

8
external/Test Portrait/test.gd vendored Normal file
View File

@@ -0,0 +1,8 @@
extends Control
func _ready() -> void:
$Portrait.set_color(ColorVariant.Types.EYES, "green")
$Portrait.set_color(ColorVariant.Types.SKIN, "dark")
$Portrait.set_color(ColorVariant.Types.HAIR, "blonde")
pass

1
external/Test Portrait/test.gd.uid vendored Normal file
View File

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

View File

@@ -1,10 +1,7 @@
[gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://bjrc8g3mjxh45"]
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://bjrc8g3mjxh45"]
[ext_resource type="Shader" uid="uid://dbcokq5fn2les" path="res://shaders/trigradient.tres" id="1_1vbiw"]
[ext_resource type="Texture2D" uid="uid://c8cvo15p3vosu" path="res://external/Test Portrait/blue_hair.tres" id="2_1vbiw"]
[ext_resource type="Texture2D" uid="uid://bkdvsld7ytk2" path="res://external/Test Portrait/fair-eyes.tres" id="3_s3g4c"]
[resource]
resource_local_to_scene = true
shader = ExtResource("1_1vbiw")
shader_parameter/Color_Gradient = ExtResource("2_1vbiw")
shader_parameter/Luminosity_Gradient = ExtResource("3_s3g4c")

View File

@@ -1,10 +1,10 @@
[gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://btylsf0bv2b57"]
[ext_resource type="Shader" uid="uid://dbcokq5fn2les" path="res://shaders/trigradient.tres" id="1_fetdk"]
[ext_resource type="Texture2D" uid="uid://c8cvo15p3vosu" path="res://external/Test Portrait/blue_hair.tres" id="2_n5pn1"]
[ext_resource type="Texture2D" uid="uid://bkdvsld7ytk2" path="res://external/Test Portrait/fair-eyes.tres" id="3_kr14x"]
[ext_resource type="Texture2D" uid="uid://c5pwq6q4r3fjs" path="res://external/test portrait/gradients/eyes/(c)green.tres" id="2_0xs1n"]
[ext_resource type="Texture2D" uid="uid://c2jnnqayrbyup" path="res://external/test portrait/gradients/eyes/(l)default.tres" id="3_k6wpl"]
[resource]
shader = ExtResource("1_fetdk")
shader_parameter/Color_Gradient = ExtResource("2_n5pn1")
shader_parameter/Luminosity_Gradient = ExtResource("3_kr14x")
shader_parameter/Color_Gradient = ExtResource("2_0xs1n")
shader_parameter/Luminosity_Gradient = ExtResource("3_k6wpl")

View File

@@ -1,8 +1,8 @@
[gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://ca43sapn4p61w"]
[ext_resource type="Shader" uid="uid://dbcokq5fn2les" path="res://shaders/trigradient.tres" id="1_sifog"]
[ext_resource type="Texture2D" uid="uid://0dwdi7m62trg" path="res://external/Test Portrait/red-hair.tres" id="2_2qy1r"]
[ext_resource type="Texture2D" uid="uid://s2ok31sncevx" path="res://external/Test Portrait/dark-hair.tres" id="3_5udns"]
[ext_resource type="Texture2D" uid="uid://0dwdi7m62trg" path="res://external/test portrait/gradients/hair/(c)red.tres" id="2_2qy1r"]
[ext_resource type="Texture2D" uid="uid://s2ok31sncevx" path="res://external/test portrait/gradients/dark-hair.tres" id="3_5udns"]
[resource]
shader = ExtResource("1_sifog")

View File

@@ -1,10 +1,10 @@
[gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://b4uqjr4midqtn"]
[ext_resource type="Shader" uid="uid://dbcokq5fn2les" path="res://shaders/trigradient.tres" id="1_vrnn4"]
[ext_resource type="Texture2D" uid="uid://0dwdi7m62trg" path="res://external/Test Portrait/red-hair.tres" id="2_3qnj1"]
[ext_resource type="Texture2D" uid="uid://s2ok31sncevx" path="res://external/Test Portrait/dark-hair.tres" id="3_5xyld"]
[ext_resource type="Texture2D" uid="uid://cmi82onbn37hi" path="res://external/test portrait/gradients/hair/(c)blonde.tres" id="2_vrnn4"]
[ext_resource type="Texture2D" uid="uid://s2ok31sncevx" path="res://external/test portrait/gradients/dark-hair.tres" id="3_5xyld"]
[resource]
shader = ExtResource("1_vrnn4")
shader_parameter/Color_Gradient = ExtResource("2_3qnj1")
shader_parameter/Color_Gradient = ExtResource("2_vrnn4")
shader_parameter/Luminosity_Gradient = ExtResource("3_5xyld")

View File

@@ -1,16 +1,6 @@
[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://btx1o4kx78cbx"]
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://btx1o4kx78cbx"]
[ext_resource type="Shader" uid="uid://dbcokq5fn2les" path="res://shaders/trigradient.tres" id="1_5slik"]
[ext_resource type="Gradient" uid="uid://c14ufqed7o6fi" path="res://external/Test Portrait/brown-skin.tres" id="2_5slik"]
[ext_resource type="Gradient" uid="uid://doghspt7i0yml" path="res://external/Test Portrait/dark-skin.tres" id="3_s7k3v"]
[sub_resource type="GradientTexture1D" id="GradientTexture1D_blxgd"]
gradient = ExtResource("2_5slik")
[sub_resource type="GradientTexture1D" id="GradientTexture1D_qqpe0"]
gradient = ExtResource("3_s7k3v")
[ext_resource type="Shader" uid="uid://cru1otvka0qn5" path="res://external/test portrait/variant_color.gdshader" id="1_n3xwv"]
[resource]
shader = ExtResource("1_5slik")
shader_parameter/Color_Gradient = SubResource("GradientTexture1D_blxgd")
shader_parameter/Luminosity_Gradient = SubResource("GradientTexture1D_qqpe0")
shader = ExtResource("1_n3xwv")

View File

@@ -1,16 +1,16 @@
[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://dd6afqqkowc1j"]
[ext_resource type="Shader" uid="uid://dbcokq5fn2les" path="res://shaders/trigradient.tres" id="1_wsqbt"]
[ext_resource type="Gradient" uid="uid://c14ufqed7o6fi" path="res://external/Test Portrait/brown-skin.tres" id="2_xn0dn"]
[ext_resource type="Gradient" uid="uid://doghspt7i0yml" path="res://external/Test Portrait/dark-skin.tres" id="3_l1lmx"]
[ext_resource type="Gradient" uid="uid://d1654yf47rudx" path="res://external/test portrait/gradients/mid-skin.tres" id="2_wsqbt"]
[ext_resource type="Gradient" uid="uid://c5joet51774ii" path="res://external/test portrait/gradients/fair-skin.tres" id="3_xn0dn"]
[sub_resource type="GradientTexture1D" id="GradientTexture1D_blxgd"]
gradient = ExtResource("2_xn0dn")
[sub_resource type="GradientTexture1D" id="GradientTexture1D_l1lmx"]
gradient = ExtResource("2_wsqbt")
[sub_resource type="GradientTexture1D" id="GradientTexture1D_qqpe0"]
gradient = ExtResource("3_l1lmx")
[sub_resource type="GradientTexture1D" id="GradientTexture1D_ndlxs"]
gradient = ExtResource("3_xn0dn")
[resource]
shader = ExtResource("1_wsqbt")
shader_parameter/Color_Gradient = SubResource("GradientTexture1D_blxgd")
shader_parameter/Luminosity_Gradient = SubResource("GradientTexture1D_qqpe0")
shader_parameter/Color_Gradient = SubResource("GradientTexture1D_l1lmx")
shader_parameter/Luminosity_Gradient = SubResource("GradientTexture1D_ndlxs")

View File

@@ -0,0 +1,38 @@
shader_type canvas_item;
render_mode blend_mix;
uniform sampler2D color_gradient;
uniform sampler2D luminosity_gradient;
void vertex() {
}
void fragment() {
vec4 col = texture(TEXTURE, UV);
vec4 cgrad_col = texture(color_gradient, vec2(col.r));
vec3 c = vec3(cgrad_col.xyz);
vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
float d = q.x - min(q.w, q.y);
float e = 1.0e-10;
vec3 hsv = vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
vec4 l_col = texture(luminosity_gradient, vec2(col.g));
vec3 fin_hsv = vec3(hsv.x, hsv.y, l_col.x);
c = fin_hsv;
K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
vec3 p2 = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
vec3 fin_rgb = c.z * mix(K.xxx, clamp(p2 - K.xxx, 0.0, 1.0), c.y);
COLOR.rgb = fin_rgb;
COLOR.a = col.a;
}

View File

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

BIN
external/UI tests.clip vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
external/first-guild.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

40
external/first-guild.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dhjvnhb70u88h"
path="res://.godot/imported/first-guild.png-845bee99ec87175d7b0021b39c63acc9.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/first-guild.png"
dest_files=["res://.godot/imported/first-guild.png-845bee99ec87175d7b0021b39c63acc9.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/lvlup-circle.aseprite vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dgaj0f2qyjqq"
path="res://.godot/imported/photo-1539721972319-f0e80a00d424.jpg-b4abcd33452f13a967e4fb969169eda4.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/photo-1539721972319-f0e80a00d424.jpg"
dest_files=["res://.godot/imported/photo-1539721972319-f0e80a00d424.jpg-b4abcd33452f13a967e4fb969169eda4.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/portrait-2.clip vendored Normal file

Binary file not shown.

BIN
external/slime.clip vendored Normal file

Binary file not shown.

BIN
external/test-map.clip vendored Normal file

Binary file not shown.

Binary file not shown.

BIN
external/test_guild_base.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

40
external/test_guild_base.png.import vendored Normal file
View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

40
external/test_star.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bhupleoa6pkkb"
path="res://.godot/imported/test_star.png-820be8b49079e2bba356c5bfa2f2a4c2.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test_star.png"
dest_files=["res://.godot/imported/test_star.png-820be8b49079e2bba356c5bfa2f2a4c2.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/test_star2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

40
external/test_star2.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ct7y401wpmcdf"
path="res://.godot/imported/test_star2.png-59acbb6d73c93b6359f90b0ccc836ae5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test_star2.png"
dest_files=["res://.godot/imported/test_star2.png-59acbb6d73c93b6359f90b0ccc836ae5.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/test_star3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

40
external/test_star3.png.import vendored Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://debw0e5n02dov"
path="res://.godot/imported/test_star3.png-b89288350249746a17835cb979891c17.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://external/test_star3.png"
dest_files=["res://.godot/imported/test_star3.png-b89288350249746a17835cb979891c17.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 B

After

Width:  |  Height:  |  Size: 667 B

View File

@@ -0,0 +1,164 @@
[gd_scene load_steps=28 format=3 uid="uid://doxmdg4dpnjp1"]
[ext_resource type="Script" uid="uid://m86jmtwv1a22" path="res://scripts/adventurer_portrait.gd" id="1_x16tf"]
[ext_resource type="Texture2D" uid="uid://dj6fagfp2sbrx" path="res://external/test portrait/farmer_f/hat-bg.png" id="2_hh544"]
[ext_resource type="Shader" uid="uid://cru1otvka0qn5" path="res://external/test portrait/variant_color.gdshader" id="3_8fwpu"]
[ext_resource type="Texture2D" uid="uid://can8npg0ufr3f" path="res://external/test portrait/farmer_f/hair_bg.png" id="4_tfbiy"]
[ext_resource type="Script" uid="uid://cdi0oxcug1hup" path="res://scripts/color_variant.gd" id="5_tm83k"]
[ext_resource type="Texture2D" uid="uid://crrd8mpcuync2" path="res://external/test portrait/farmer_f/body.png" id="6_fq3ir"]
[ext_resource type="Texture2D" uid="uid://dbdjaye6srxhx" path="res://external/test portrait/farmer_f/head.png" id="7_gsk6r"]
[ext_resource type="Texture2D" uid="uid://li44lgsa0ky" path="res://external/test portrait/farmer_f/eyes_shadow.png" id="8_olupa"]
[ext_resource type="Texture2D" uid="uid://x4e86o28672u" path="res://external/test portrait/farmer_f/brow_shadow-2.png" id="9_m5lxo"]
[ext_resource type="Texture2D" uid="uid://cru775pghpate" path="res://external/test portrait/farmer_f/hair_fg_shadow.png" id="10_6p4cc"]
[ext_resource type="Texture2D" uid="uid://csp7xbtu0tpn7" path="res://external/test portrait/farmer_f/eye-white-1.png" id="11_okexh"]
[ext_resource type="Texture2D" uid="uid://mygmunn3voie" path="res://external/test portrait/farmer_f/eyes-iris-1.png" id="12_w7h2j"]
[ext_resource type="Texture2D" uid="uid://wnkr20dtf734" path="res://external/test portrait/farmer_f/eyes-lashes-1.png" id="13_4vusa"]
[ext_resource type="Material" uid="uid://btx1o4kx78cbx" path="res://external/test portrait/tri-skin.tres" id="14_42rh0"]
[ext_resource type="Texture2D" uid="uid://caow8dqiog7j4" path="res://external/test portrait/farmer_f/ear.png" id="15_j26n4"]
[ext_resource type="Texture2D" uid="uid://vt17lekvchdg" path="res://external/test portrait/farmer_f/hair_fg.png" id="16_ewrfp"]
[ext_resource type="Texture2D" uid="uid://dyeu4kwwnxjn5" path="res://external/test portrait/farmer_f/hat_fg.png" id="17_cxsyd"]
[ext_resource type="Texture2D" uid="uid://brmta1rtiau4a" path="res://external/test portrait/farmer_f/brows-2.png" id="18_6yrxn"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_6ofx4"]
shader = ExtResource("3_8fwpu")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_4lhir"]
shader = ExtResource("3_8fwpu")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_ufq70"]
shader = ExtResource("3_8fwpu")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_n24t2"]
shader = ExtResource("3_8fwpu")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_d4dbv"]
shader = ExtResource("3_8fwpu")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_8lmmt"]
resource_local_to_scene = true
shader = ExtResource("3_8fwpu")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_mrkia"]
shader = ExtResource("3_8fwpu")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fa2yd"]
shader = ExtResource("3_8fwpu")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5uixj"]
shader = ExtResource("3_8fwpu")
[node name="Portrait" type="Control"]
layout_mode = 3
offset_right = 40.0
offset_bottom = 40.0
scale = Vector2(0.5, 0.5)
script = ExtResource("1_x16tf")
[node name="Hat BG" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("2_hh544")
[node name="Hair BG" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_6ofx4")
layout_mode = 0
offset_right = 256.0
offset_bottom = 256.0
texture = ExtResource("4_tfbiy")
script = ExtResource("5_tm83k")
type = 1
[node name="Body" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("6_fq3ir")
[node name="Head" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_4lhir")
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("7_gsk6r")
script = ExtResource("5_tm83k")
[node name="Eye Shadows" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_ufq70")
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("8_olupa")
script = ExtResource("5_tm83k")
[node name="Brow Shadow" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_n24t2")
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("9_m5lxo")
script = ExtResource("5_tm83k")
[node name="Hair FG Shadow" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_d4dbv")
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("10_6p4cc")
script = ExtResource("5_tm83k")
[node name="Eyewhites" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("11_okexh")
[node name="Irises" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_8lmmt")
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("12_w7h2j")
script = ExtResource("5_tm83k")
type = 2
[node name="Eyelashes" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_mrkia")
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("13_4vusa")
script = ExtResource("5_tm83k")
type = 1
[node name="Ear" type="TextureRect" parent="."]
material = ExtResource("14_42rh0")
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("15_j26n4")
script = ExtResource("5_tm83k")
[node name="Hair FG" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_fa2yd")
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("16_ewrfp")
script = ExtResource("5_tm83k")
type = 1
[node name="Hat FG" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("17_cxsyd")
[node name="Brows" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_5uixj")
layout_mode = 0
offset_right = 128.0
offset_bottom = 128.0
texture = ExtResource("18_6yrxn")
script = ExtResource("5_tm83k")
type = 1

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 B

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://p7bvumalu3cs"
path="res://.godot/imported/levelup.png-83374038952bc8d181f4733646e86793.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/questview/levelup.png"
dest_files=["res://.godot/imported/levelup.png-83374038952bc8d181f4733646e86793.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bu0e077vc8qo1"
path="res://.godot/imported/lvlup-circle.png-0abc039b5ebc4ac403cf05c3aab337dc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/questview/lvlup-circle.png"
dest_files=["res://.godot/imported/lvlup-circle.png-0abc039b5ebc4ac403cf05c3aab337dc.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
graphics/shelf.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

40
graphics/shelf.png.import Normal file
View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://w8xkghjv3t6r"
path="res://.godot/imported/shelf.png-13fce443e1a7892f987166e7034a4620.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://graphics/shelf.png"
dest_files=["res://.godot/imported/shelf.png-13fce443e1a7892f987166e7034a4620.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
graphics/voidcircle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Some files were not shown because too many files have changed in this diff Show More