通用技能ui

master
chendian 2 years ago
parent 57f32187cf
commit 75bdca6884

@ -17,6 +17,7 @@
"res://config/player_skill/": { "res://config/player_skill/": {
"animation_name": true, "animation_name": true,
"has_animation": true, "has_animation": true,
"refresh_animation": true,
"resource_local_to_scene": true, "resource_local_to_scene": true,
"resource_name": true, "resource_name": true,
"sprite_frams": true "sprite_frams": true

@ -0,0 +1,23 @@
[gd_resource type="Resource" script_class="PlayerSkillCfg" load_steps=6 format=3 uid="uid://7e4fnj5sg72s"]
[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_bu2a5"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_yc8jq"]
[ext_resource type="Animation" uid="uid://t01a4jvp8srr" path="res://resource/skill_animation/hero01_fist_attack01.tres" id="3_b2pdb"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_ymqrn"]
[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="5_0ynk7"]
[resource]
script = ExtResource("2_yc8jq")
weapon = ExtResource("5_0ynk7")
stance_from = 0
stance_to = 1
break_level = 3
action = "attack_light"
name = ""
skill_animation = ExtResource("3_b2pdb")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_bu2a5")])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false
refresh_animation = false
sprite_frames = ExtResource("4_ymqrn")
animation_name = "fist_attack01"

@ -0,0 +1,23 @@
[gd_resource type="Resource" script_class="PlayerSkillCfg" load_steps=6 format=3 uid="uid://dubkvm86cj32f"]
[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_5lw1c"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_h70wx"]
[ext_resource type="Animation" uid="uid://cyu0yin1rpiak" path="res://resource/skill_animation/hero01_fist_attack02.tres" id="3_tllt1"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_fevaa"]
[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="5_gliie"]
[resource]
script = ExtResource("2_h70wx")
weapon = ExtResource("5_gliie")
stance_from = 1
stance_to = 2
break_level = 3
action = "attack_light"
name = ""
skill_animation = ExtResource("3_tllt1")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_5lw1c")])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false
refresh_animation = false
sprite_frames = ExtResource("4_fevaa")
animation_name = "fist_attack02"

@ -0,0 +1,23 @@
[gd_resource type="Resource" script_class="PlayerSkillCfg" load_steps=6 format=3 uid="uid://dekpkk8o6o8hk"]
[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_l5be5"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_fde7v"]
[ext_resource type="Animation" uid="uid://c6mk8tfdpniys" path="res://resource/skill_animation/hero01_fist_attack03.tres" id="3_6rajt"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_orcy6"]
[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="5_r5lmk"]
[resource]
script = ExtResource("2_fde7v")
weapon = ExtResource("5_r5lmk")
stance_from = 2
stance_to = 3
break_level = 3
action = "attack_light"
name = ""
skill_animation = ExtResource("3_6rajt")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_l5be5")])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false
refresh_animation = false
sprite_frames = ExtResource("4_orcy6")
animation_name = "fist_attack03"

@ -0,0 +1,23 @@
[gd_resource type="Resource" script_class="PlayerSkillCfg" load_steps=6 format=3 uid="uid://b4aysymwqtvtd"]
[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_x8plw"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_mhuew"]
[ext_resource type="Animation" uid="uid://6u3dhxly760l" path="res://resource/skill_animation/hero01_fist_attack04.tres" id="3_bst70"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_hyek5"]
[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="5_gn3tt"]
[resource]
script = ExtResource("2_mhuew")
weapon = ExtResource("5_gn3tt")
stance_from = 3
stance_to = 4
break_level = 3
action = "attack_light"
name = ""
skill_animation = ExtResource("3_bst70")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_x8plw")])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false
refresh_animation = false
sprite_frames = ExtResource("4_hyek5")
animation_name = "fist_attack04"

@ -0,0 +1,23 @@
[gd_resource type="Resource" script_class="PlayerSkillCfg" load_steps=6 format=3 uid="uid://0n2jnkdrwa2l"]
[ext_resource type="Resource" uid="uid://bsqk3q6mccllg" path="res://config/attack/normal_hit.tres" id="1_lw5xo"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="2_ym7q1"]
[ext_resource type="Animation" uid="uid://b2xdmgnem1h4g" path="res://resource/skill_animation/hero01_fist_attack05.tres" id="3_dbjmb"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="4_mhr07"]
[ext_resource type="Resource" uid="uid://c6alg8pmqfdxm" path="res://config/weapon/fist.tres" id="5_en30r"]
[resource]
script = ExtResource("2_ym7q1")
weapon = ExtResource("5_en30r")
stance_from = 4
stance_to = 5
break_level = 3
action = "attack_light"
name = ""
skill_animation = ExtResource("3_dbjmb")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_lw5xo")])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false
refresh_animation = false
sprite_frames = ExtResource("4_mhr07")
animation_name = "fist_attack05"

@ -16,6 +16,7 @@ action = "attack_light"
name = "" name = ""
skill_animation = ExtResource("3_1erk8") skill_animation = ExtResource("3_1erk8")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_x3v4o")]) attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_x3v4o")])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false free_lock = false
refresh_animation = false refresh_animation = false
sprite_frames = ExtResource("4_wrd60") sprite_frames = ExtResource("4_wrd60")

@ -16,6 +16,7 @@ action = "attack_light"
name = "" name = ""
skill_animation = ExtResource("2_6nbpq") skill_animation = ExtResource("2_6nbpq")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_6ven2")]) attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_6ven2")])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false free_lock = false
refresh_animation = false refresh_animation = false
sprite_frames = ExtResource("5_xel5p") sprite_frames = ExtResource("5_xel5p")

@ -1,9 +1,8 @@
[gd_resource type="Resource" script_class="PlayerSkillCfg" load_steps=7 format=3 uid="uid://huxlxrmyulo"] [gd_resource type="Resource" script_class="PlayerSkillCfg" load_steps=6 format=3 uid="uid://huxlxrmyulo"]
[ext_resource type="Resource" uid="uid://ckeuv5lhfk2s0" path="res://config/attack/normal_hit_back.tres" id="1_7ai5j"] [ext_resource type="Resource" uid="uid://ckeuv5lhfk2s0" path="res://config/attack/normal_hit_back.tres" id="1_7ai5j"]
[ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_uaib7"] [ext_resource type="Script" path="res://script/config/player_skill_cfg.gd" id="1_uaib7"]
[ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="2_8uqiw"] [ext_resource type="Resource" uid="uid://cy3wwalxeyro0" path="res://config/weapon/long.tres" id="2_8uqiw"]
[ext_resource type="PackedScene" uid="uid://bn2ktr7iynt5" path="res://scene/effect/particle/hero01_long_attack03_0.tscn" id="2_pykbt"]
[ext_resource type="Animation" uid="uid://c8yueqe7rjn60" path="res://resource/skill_animation/hero01_long_attack03.tres" id="2_ugt3f"] [ext_resource type="Animation" uid="uid://c8yueqe7rjn60" path="res://resource/skill_animation/hero01_long_attack03.tres" id="2_ugt3f"]
[ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="3_sr2og"] [ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="3_sr2og"]
@ -17,7 +16,7 @@ action = "attack_light"
name = "" name = ""
skill_animation = ExtResource("2_ugt3f") skill_animation = ExtResource("2_ugt3f")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_7ai5j")]) attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_7ai5j")])
attack_particle = ExtResource("2_pykbt") sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false free_lock = false
refresh_animation = false refresh_animation = false
sprite_frames = ExtResource("3_sr2og") sprite_frames = ExtResource("3_sr2og")

@ -16,6 +16,7 @@ action = "attack_light"
name = "" name = ""
skill_animation = ExtResource("2_sam6s") skill_animation = ExtResource("2_sam6s")
attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_7tise")]) attack_list = Array[Resource("res://script/config/attack_cfg.gd")]([ExtResource("1_7tise")])
sub_character_list = Array[Resource("res://script/config/character_cfg.gd")]([])
free_lock = false free_lock = false
refresh_animation = false refresh_animation = false
sprite_frames = ExtResource("3_w7h1m") sprite_frames = ExtResource("3_w7h1m")

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="WeaponCfg" load_steps=3 format=3 uid="uid://chjmqxgcrhcaa"] [gd_resource type="Resource" script_class="WeaponCfg" load_steps=3 format=3 uid="uid://chjmqxgcrhcaa"]
[ext_resource type="Texture2D" uid="uid://c3fhegpkyr54r" path="res://resource/ui/icon/chain.png" id="1_jnfil"] [ext_resource type="Texture2D" uid="uid://c3fhegpkyr54r" path="res://resource/ui/icon/weapon/chain.png" id="1_jnfil"]
[ext_resource type="Script" path="res://script/config/weapon_cfg.gd" id="1_yeb4s"] [ext_resource type="Script" path="res://script/config/weapon_cfg.gd" id="1_yeb4s"]
[resource] [resource]

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="WeaponCfg" load_steps=3 format=3 uid="uid://c6alg8pmqfdxm"] [gd_resource type="Resource" script_class="WeaponCfg" load_steps=3 format=3 uid="uid://c6alg8pmqfdxm"]
[ext_resource type="Script" path="res://script/config/weapon_cfg.gd" id="1_03rlg"] [ext_resource type="Script" path="res://script/config/weapon_cfg.gd" id="1_03rlg"]
[ext_resource type="Texture2D" uid="uid://b3m6ksvhbsrgq" path="res://resource/ui/icon/fist.png" id="1_24loa"] [ext_resource type="Texture2D" uid="uid://b3m6ksvhbsrgq" path="res://resource/ui/icon/weapon/fist.png" id="1_24loa"]
[resource] [resource]
script = ExtResource("1_03rlg") script = ExtResource("1_03rlg")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="WeaponCfg" load_steps=3 format=3 uid="uid://cy3wwalxeyro0"] [gd_resource type="Resource" script_class="WeaponCfg" load_steps=3 format=3 uid="uid://cy3wwalxeyro0"]
[ext_resource type="Script" path="res://script/config/weapon_cfg.gd" id="1_ihw7q"] [ext_resource type="Script" path="res://script/config/weapon_cfg.gd" id="1_ihw7q"]
[ext_resource type="Texture2D" uid="uid://ksw3dvkdv6ud" path="res://resource/ui/icon/long.png" id="1_v1ej3"] [ext_resource type="Texture2D" uid="uid://ksw3dvkdv6ud" path="res://resource/ui/icon/weapon/long.png" id="1_v1ej3"]
[resource] [resource]
script = ExtResource("1_ihw7q") script = ExtResource("1_ihw7q")

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="WeaponCfg" load_steps=3 format=3 uid="uid://pnhii1a83axg"] [gd_resource type="Resource" script_class="WeaponCfg" load_steps=3 format=3 uid="uid://pnhii1a83axg"]
[ext_resource type="Script" path="res://script/config/weapon_cfg.gd" id="1_gwwxv"] [ext_resource type="Script" path="res://script/config/weapon_cfg.gd" id="1_gwwxv"]
[ext_resource type="Texture2D" uid="uid://b08amntj1fmbu" path="res://resource/ui/icon/short.png" id="1_kjkjb"] [ext_resource type="Texture2D" uid="uid://b08amntj1fmbu" path="res://resource/ui/icon/weapon/short.png" id="1_kjkjb"]
[resource] [resource]
script = ExtResource("1_gwwxv") script = ExtResource("1_gwwxv")

@ -0,0 +1,10 @@
shader_type canvas_item;
uniform sampler2D mask_texture;
void fragment() {
vec4 colour = texture(TEXTURE, UV);
colour.a *= texture(mask_texture, UV).a;
COLOR = colour;
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,43 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://t01a4jvp8srr"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="1_552cf"]
[resource]
resource_name = "hero01_fist_attack01"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("View:sprite_frames")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_552cf")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("View:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": ["fist_attack01"]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4]
}

@ -0,0 +1,43 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://cyu0yin1rpiak"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="1_rwqx0"]
[resource]
resource_name = "hero01_fist_attack02"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("View:sprite_frames")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_rwqx0")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("View:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": ["fist_attack02"]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4]
}

@ -0,0 +1,43 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://c6mk8tfdpniys"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="1_ertyu"]
[resource]
resource_name = "hero01_fist_attack03"
length = 0.5
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("View:sprite_frames")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_ertyu")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("View:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": ["fist_attack03"]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4]
}

@ -0,0 +1,43 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://6u3dhxly760l"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="1_5f0k1"]
[resource]
resource_name = "hero01_fist_attack04"
length = 0.8
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("View:sprite_frames")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_5f0k1")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("View:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": ["fist_attack04"]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7]
}

@ -0,0 +1,43 @@
[gd_resource type="Animation" load_steps=2 format=3 uid="uid://b2xdmgnem1h4g"]
[ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="1_jhca1"]
[resource]
resource_name = "hero01_fist_attack05"
length = 0.7
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("View:sprite_frames")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [ExtResource("1_jhca1")]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("View:animation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": ["fist_attack05"]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("View:frame")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1),
"update": 1,
"values": [0, 1, 2, 3, 4, 5, 6]
}

@ -26,7 +26,7 @@ tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 1,
"values": ["short_attack01"] "values": ["short_attack01"]
} }
tracks/2/type = "value" tracks/2/type = "value"
@ -38,6 +38,6 @@ tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0, "update": 1,
"values": [0, 1, 2, 3, 4] "values": [0, 1, 2, 3, 4]
} }

@ -14,7 +14,7 @@ tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 1,
"values": [ExtResource("1_tj0pt")] "values": [ExtResource("1_tj0pt")]
} }
tracks/1/type = "value" tracks/1/type = "value"
@ -26,7 +26,7 @@ tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 1,
"values": ["short_attack02"] "values": ["short_attack02"]
} }
tracks/2/type = "value" tracks/2/type = "value"
@ -38,6 +38,6 @@ tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1),
"update": 0, "update": 1,
"values": [0, 1, 2, 3, 4] "values": [0, 1, 2, 3, 4]
} }

@ -14,7 +14,7 @@ tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 1,
"values": [ExtResource("1_pwjxo")] "values": [ExtResource("1_pwjxo")]
} }
tracks/1/type = "value" tracks/1/type = "value"
@ -26,7 +26,7 @@ tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 1,
"values": ["short_attack03"] "values": ["short_attack03"]
} }
tracks/2/type = "value" tracks/2/type = "value"
@ -38,6 +38,6 @@ tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 0, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7] "values": [0, 1, 2, 3, 4, 5, 6, 7]
} }

@ -14,7 +14,7 @@ tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 1,
"values": [ExtResource("1_n6b6e")] "values": [ExtResource("1_n6b6e")]
} }
tracks/1/type = "value" tracks/1/type = "value"
@ -26,7 +26,7 @@ tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 1,
"values": ["short_attack04"] "values": ["short_attack04"]
} }
tracks/2/type = "value" tracks/2/type = "value"
@ -38,6 +38,6 @@ tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 0, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7] "values": [0, 1, 2, 3, 4, 5, 6, 7]
} }

@ -14,7 +14,7 @@ tracks/0/loop_wrap = true
tracks/0/keys = { tracks/0/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 1,
"values": [ExtResource("1_7ykbn")] "values": [ExtResource("1_7ykbn")]
} }
tracks/1/type = "value" tracks/1/type = "value"
@ -26,7 +26,7 @@ tracks/1/loop_wrap = true
tracks/1/keys = { tracks/1/keys = {
"times": PackedFloat32Array(0), "times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1), "transitions": PackedFloat32Array(1),
"update": 0, "update": 1,
"values": ["attack01"] "values": ["attack01"]
} }
tracks/2/type = "value" tracks/2/type = "value"
@ -38,6 +38,6 @@ tracks/2/loop_wrap = true
tracks/2/keys = { tracks/2/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7), "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7),
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1),
"update": 0, "update": 1,
"values": [0, 1, 2, 3, 4, 5, 6, 7] "values": [0, 1, 2, 3, 4, 5, 6, 7]
} }

@ -1,12 +1,17 @@
[gd_resource type="AnimationLibrary" load_steps=16 format=3 uid="uid://croik07a1qko5"] [gd_resource type="AnimationLibrary" load_steps=21 format=3 uid="uid://croik07a1qko5"]
[ext_resource type="Animation" uid="uid://t01a4jvp8srr" path="res://resource/skill_animation/hero01_fist_attack01.tres" id="1_4bwwm"]
[ext_resource type="Animation" uid="uid://p8l0puqxrkwh" path="res://resource/skill_animation/hero01_long_air_attack01.tres" id="1_b46g3"] [ext_resource type="Animation" uid="uid://p8l0puqxrkwh" path="res://resource/skill_animation/hero01_long_air_attack01.tres" id="1_b46g3"]
[ext_resource type="Animation" uid="uid://daopmieibx3b7" path="res://resource/skill_animation/hero01_long_attack01.tres" id="1_nwjtl"] [ext_resource type="Animation" uid="uid://daopmieibx3b7" path="res://resource/skill_animation/hero01_long_attack01.tres" id="1_nwjtl"]
[ext_resource type="Animation" uid="uid://cjfy6ia1ukyiu" path="res://resource/skill_animation/hero01_long_air_attack02.tres" id="2_8wtap"] [ext_resource type="Animation" uid="uid://cjfy6ia1ukyiu" path="res://resource/skill_animation/hero01_long_air_attack02.tres" id="2_8wtap"]
[ext_resource type="Animation" uid="uid://bf6jaraltouun" path="res://resource/skill_animation/hero01_long_attack02.tres" id="2_klfcs"] [ext_resource type="Animation" uid="uid://bf6jaraltouun" path="res://resource/skill_animation/hero01_long_attack02.tres" id="2_klfcs"]
[ext_resource type="Animation" uid="uid://bh5s2t3cbobpp" path="res://resource/skill_animation/hero01_long_air_attack03.tres" id="2_nqaew"] [ext_resource type="Animation" uid="uid://bh5s2t3cbobpp" path="res://resource/skill_animation/hero01_long_air_attack03.tres" id="2_nqaew"]
[ext_resource type="Animation" uid="uid://cyu0yin1rpiak" path="res://resource/skill_animation/hero01_fist_attack02.tres" id="2_vx7p1"]
[ext_resource type="Animation" uid="uid://b2xdmgnem1h4g" path="res://resource/skill_animation/hero01_fist_attack05.tres" id="2_y7w3h"]
[ext_resource type="Animation" uid="uid://c8yueqe7rjn60" path="res://resource/skill_animation/hero01_long_attack03.tres" id="3_g8q4d"] [ext_resource type="Animation" uid="uid://c8yueqe7rjn60" path="res://resource/skill_animation/hero01_long_attack03.tres" id="3_g8q4d"]
[ext_resource type="Animation" uid="uid://c6mk8tfdpniys" path="res://resource/skill_animation/hero01_fist_attack03.tres" id="3_lo6yb"]
[ext_resource type="Animation" uid="uid://dk1o3gqhjmuvh" path="res://resource/skill_animation/hero01_long_attack04.tres" id="4_36e6x"] [ext_resource type="Animation" uid="uid://dk1o3gqhjmuvh" path="res://resource/skill_animation/hero01_long_attack04.tres" id="4_36e6x"]
[ext_resource type="Animation" uid="uid://6u3dhxly760l" path="res://resource/skill_animation/hero01_fist_attack04.tres" id="4_087em"]
[ext_resource type="Animation" uid="uid://cwm116apu63n1" path="res://resource/skill_animation/hero01_long_flash.tres" id="5_fumom"] [ext_resource type="Animation" uid="uid://cwm116apu63n1" path="res://resource/skill_animation/hero01_long_flash.tres" id="5_fumom"]
[ext_resource type="Animation" uid="uid://bjnkrte7660pt" path="res://resource/skill_animation/hero01_long_skill01.tres" id="5_kt0qw"] [ext_resource type="Animation" uid="uid://bjnkrte7660pt" path="res://resource/skill_animation/hero01_long_skill01.tres" id="5_kt0qw"]
[ext_resource type="Animation" uid="uid://iprcbf277rf4" path="res://resource/skill_animation/hero01_long_skill02.tres" id="7_ui68j"] [ext_resource type="Animation" uid="uid://iprcbf277rf4" path="res://resource/skill_animation/hero01_long_skill02.tres" id="7_ui68j"]
@ -18,6 +23,11 @@
[resource] [resource]
_data = { _data = {
"hero01_fist_attack01": ExtResource("1_4bwwm"),
"hero01_fist_attack02": ExtResource("2_vx7p1"),
"hero01_fist_attack03": ExtResource("3_lo6yb"),
"hero01_fist_attack04": ExtResource("4_087em"),
"hero01_fist_attack05": ExtResource("2_y7w3h"),
"hero01_long_air_attack01": ExtResource("1_b46g3"), "hero01_long_air_attack01": ExtResource("1_b46g3"),
"hero01_long_air_attack02": ExtResource("2_8wtap"), "hero01_long_air_attack02": ExtResource("2_8wtap"),
"hero01_long_air_attack03": ExtResource("2_nqaew"), "hero01_long_air_attack03": ExtResource("2_nqaew"),

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d1p6frj6673py"
path="res://.godot/imported/boss_status_hp.png-9545df526bd11c78080634cd8a2ad6d6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resource/ui/hud/boss_status_hp.png"
dest_files=["res://.godot/imported/boss_status_hp.png-9545df526bd11c78080634cd8a2ad6d6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
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=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bp7cve5pxkvv0"
path="res://.godot/imported/boss_status_hp_empty.png-f995a85440d203616c211efcd0f9a4e7.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resource/ui/hud/boss_status_hp_empty.png"
dest_files=["res://.godot/imported/boss_status_hp_empty.png-f995a85440d203616c211efcd0f9a4e7.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
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=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://clh4rxsuj5hh4"
path="res://.godot/imported/skill_icon_mask.png-bffaa4125ea4f047d09facca7a5182a6.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resource/ui/hud/skill_icon_mask.png"
dest_files=["res://.godot/imported/skill_icon_mask.png-bffaa4125ea4f047d09facca7a5182a6.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
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=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dcld8q2hgpwji"
path="res://.godot/imported/skill_slot.png-9d1c2919ecc0ea96b2529179cfbc4cfa.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resource/ui/hud/skill_slot.png"
dest_files=["res://.godot/imported/skill_slot.png-9d1c2919ecc0ea96b2529179cfbc4cfa.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
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=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1s8mmat4sj4j"
path="res://.godot/imported/default.png-1215eb82462b34d167d36a2741c7ffb1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resource/ui/icon/skill/default.png"
dest_files=["res://.godot/imported/default.png-1215eb82462b34d167d36a2741c7ffb1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
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=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bsdm18hj6gufo"
path="res://.godot/imported/hero01_common_skill0101.png-5bc2e8fdb8db34b020d90f986ff0b044.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resource/ui/icon/skill/hero01_common_skill0101.png"
dest_files=["res://.godot/imported/hero01_common_skill0101.png-5bc2e8fdb8db34b020d90f986ff0b044.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=0
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=false
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=0

Before

Width:  |  Height:  |  Size: 916 B

After

Width:  |  Height:  |  Size: 916 B

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://c3fhegpkyr54r" uid="uid://c3fhegpkyr54r"
path="res://.godot/imported/chain.png-7b7acb3d808d6512c3b713380a1e477d.ctex" path="res://.godot/imported/chain.png-985485f15957929e15bca98e8342687f.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://resource/ui/icon/chain.png" source_file="res://resource/ui/icon/weapon/chain.png"
dest_files=["res://.godot/imported/chain.png-7b7acb3d808d6512c3b713380a1e477d.ctex"] dest_files=["res://.godot/imported/chain.png-985485f15957929e15bca98e8342687f.ctex"]
[params] [params]

Before

Width:  |  Height:  |  Size: 997 B

After

Width:  |  Height:  |  Size: 997 B

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b3m6ksvhbsrgq" uid="uid://b3m6ksvhbsrgq"
path="res://.godot/imported/fist.png-2d4cf0e40d05495c4dd8edd9aa79da8b.ctex" path="res://.godot/imported/fist.png-a4c2ce81d9ef5ef175ccf91269256d0e.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://resource/ui/icon/fist.png" source_file="res://resource/ui/icon/weapon/fist.png"
dest_files=["res://.godot/imported/fist.png-2d4cf0e40d05495c4dd8edd9aa79da8b.ctex"] dest_files=["res://.godot/imported/fist.png-a4c2ce81d9ef5ef175ccf91269256d0e.ctex"]
[params] [params]

Before

Width:  |  Height:  |  Size: 759 B

After

Width:  |  Height:  |  Size: 759 B

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://ksw3dvkdv6ud" uid="uid://ksw3dvkdv6ud"
path="res://.godot/imported/long.png-fcc62240e454dee10a26599dc280a754.ctex" path="res://.godot/imported/long.png-36dc1964872e5d53be859cf669b9f7d2.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://resource/ui/icon/long.png" source_file="res://resource/ui/icon/weapon/long.png"
dest_files=["res://.godot/imported/long.png-fcc62240e454dee10a26599dc280a754.ctex"] dest_files=["res://.godot/imported/long.png-36dc1964872e5d53be859cf669b9f7d2.ctex"]
[params] [params]

Before

Width:  |  Height:  |  Size: 538 B

After

Width:  |  Height:  |  Size: 538 B

@ -3,15 +3,15 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b08amntj1fmbu" uid="uid://b08amntj1fmbu"
path="res://.godot/imported/short.png-d108f7418edf48fbc177f96299bea103.ctex" path="res://.godot/imported/short.png-cdb7b82acf96ee5b46e902b67edc27fa.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://resource/ui/icon/short.png" source_file="res://resource/ui/icon/weapon/short.png"
dest_files=["res://.godot/imported/short.png-d108f7418edf48fbc177f96299bea103.ctex"] dest_files=["res://.godot/imported/short.png-cdb7b82acf96ee5b46e902b67edc27fa.ctex"]
[params] [params]

@ -1,15 +1,15 @@
[gd_scene load_steps=4 format=3 uid="uid://c43cuvaiu2jha"] [gd_scene load_steps=4 format=3 uid="uid://c43cuvaiu2jha"]
[ext_resource type="PackedScene" uid="uid://ksxwg0alt2us" path="res://scene/character/character.tscn" id="1_f620f"] [ext_resource type="PackedScene" uid="uid://8rcvw1vnjcf7" path="res://scene/character/character.tscn" id="1_f620f"]
[ext_resource type="SpriteFrames" uid="uid://ce83cuqwgwwi4" path="res://resource/animation/character/hero01_long_attack.aseprite" id="2_irmil"] [ext_resource type="SpriteFrames" uid="uid://bhsotj76tuovy" path="res://resource/animation/character/hero01_fist_attack.aseprite" id="2_sjv5x"]
[ext_resource type="Script" path="res://script/character/ai/bullet_ai.gd" id="3_c6unk"] [ext_resource type="Script" path="res://script/character/ai/bullet_ai.gd" id="3_c6unk"]
[node name="Character" instance=ExtResource("1_f620f")] [node name="Character" instance=ExtResource("1_f620f")]
[node name="View" parent="." index="2"] [node name="View" parent="." index="2"]
cast_shadow = 0 cast_shadow = 0
sprite_frames = ExtResource("2_irmil") sprite_frames = ExtResource("2_sjv5x")
animation = &"long_air_attack01" animation = &"fist_attack01"
[node name="BulletAI" type="Node3D" parent="." index="8"] [node name="BulletAI" type="Node3D" parent="." index="8"]
script = ExtResource("3_c6unk") script = ExtResource("3_c6unk")

@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://ksxwg0alt2us"] [gd_scene load_steps=15 format=3 uid="uid://8rcvw1vnjcf7"]
[ext_resource type="Script" path="res://script/character/character.gd" id="1_tonbs"] [ext_resource type="Script" path="res://script/character/character.gd" id="1_tonbs"]
[ext_resource type="Script" path="res://script/character/status.gd" id="2_txdip"] [ext_resource type="Script" path="res://script/character/status.gd" id="2_txdip"]
@ -6,7 +6,7 @@
[ext_resource type="Script" path="res://script/character/move.gd" id="4_66r53"] [ext_resource type="Script" path="res://script/character/move.gd" id="4_66r53"]
[ext_resource type="Texture2D" uid="uid://daqn6aqfp1hva" path="res://resource/animation/character/hero01_long_attack.png" id="4_fcd8a"] [ext_resource type="Texture2D" uid="uid://daqn6aqfp1hva" path="res://resource/animation/character/hero01_long_attack.png" id="4_fcd8a"]
[ext_resource type="Script" path="res://script/character/view.gd" id="4_vijjv"] [ext_resource type="Script" path="res://script/character/view.gd" id="4_vijjv"]
[ext_resource type="SpriteFrames" uid="uid://cndpnxtdh37ii" path="res://resource/animation/character/hero01_short_attack.aseprite" id="5_ijdkd"] [ext_resource type="SpriteFrames" uid="uid://bs74u0yvluhky" path="res://resource/animation/character/monster01_attack.aseprite" id="5_7iibe"]
[ext_resource type="Script" path="res://script/character/skill.gd" id="6_h4xqy"] [ext_resource type="Script" path="res://script/character/skill.gd" id="6_h4xqy"]
[ext_resource type="AnimationLibrary" uid="uid://croik07a1qko5" path="res://resource/skill_animation_library/animation_library.tres" id="6_pakq5"] [ext_resource type="AnimationLibrary" uid="uid://croik07a1qko5" path="res://resource/skill_animation_library/animation_library.tres" id="6_pakq5"]
[ext_resource type="Script" path="res://script/character/battle.gd" id="8_w84sf"] [ext_resource type="Script" path="res://script/character/battle.gd" id="8_w84sf"]
@ -49,8 +49,8 @@ pixel_size = 0.02
double_sided = false double_sided = false
alpha_cut = 2 alpha_cut = 2
texture_filter = 0 texture_filter = 0
sprite_frames = ExtResource("5_ijdkd") sprite_frames = ExtResource("5_7iibe")
animation = &"short_attack01" animation = &"attack01"
script = ExtResource("4_vijjv") script = ExtResource("4_vijjv")
[node name="Move" type="Node3D" parent="."] [node name="Move" type="Node3D" parent="."]

@ -1,6 +1,6 @@
[gd_scene load_steps=7 format=3 uid="uid://c37rf5ecfrvwn"] [gd_scene load_steps=7 format=3 uid="uid://c37rf5ecfrvwn"]
[ext_resource type="PackedScene" uid="uid://ksxwg0alt2us" path="res://scene/character/character.tscn" id="1_eshlr"] [ext_resource type="PackedScene" uid="uid://8rcvw1vnjcf7" path="res://scene/character/character.tscn" id="1_eshlr"]
[ext_resource type="Script" path="res://script/character/ai/ai.gd" id="2_7ei2q"] [ext_resource type="Script" path="res://script/character/ai/ai.gd" id="2_7ei2q"]
[ext_resource type="Script" path="res://addons/beehave/nodes/beehave_tree.gd" id="3_x3u4t"] [ext_resource type="Script" path="res://addons/beehave/nodes/beehave_tree.gd" id="3_x3u4t"]
[ext_resource type="Script" path="res://addons/beehave/nodes/composites/sequence.gd" id="4_k2hsy"] [ext_resource type="Script" path="res://addons/beehave/nodes/composites/sequence.gd" id="4_k2hsy"]

@ -1,4 +1,4 @@
[gd_scene load_steps=21 format=3 uid="uid://126wph4owvoy"] [gd_scene load_steps=25 format=3 uid="uid://126wph4owvoy"]
[ext_resource type="Script" path="res://script/ui/hud/hud_page.gd" id="1_t7dgf"] [ext_resource type="Script" path="res://script/ui/hud/hud_page.gd" id="1_t7dgf"]
[ext_resource type="Texture2D" uid="uid://c2cwtc10ine84" path="res://resource/ui/design/hud_design.png" id="2_ouq6l"] [ext_resource type="Texture2D" uid="uid://c2cwtc10ine84" path="res://resource/ui/design/hud_design.png" id="2_ouq6l"]
@ -13,7 +13,11 @@
[ext_resource type="Texture2D" uid="uid://dx2vp753yvh4y" path="res://render/texture/shape/lock.png" id="6_hmslt"] [ext_resource type="Texture2D" uid="uid://dx2vp753yvh4y" path="res://render/texture/shape/lock.png" id="6_hmslt"]
[ext_resource type="Script" path="res://script/ui/hud/weapon_item.gd" id="7_3g1k3"] [ext_resource type="Script" path="res://script/ui/hud/weapon_item.gd" id="7_3g1k3"]
[ext_resource type="Texture2D" uid="uid://bvuv86ujfaqfx" path="res://resource/ui/hud/player_status_mp_sub.png" id="7_wiq06"] [ext_resource type="Texture2D" uid="uid://bvuv86ujfaqfx" path="res://resource/ui/hud/player_status_mp_sub.png" id="7_wiq06"]
[ext_resource type="Texture2D" uid="uid://bp7cve5pxkvv0" path="res://resource/ui/hud/boss_status_hp_empty.png" id="9_3sg6t"]
[ext_resource type="Shader" path="res://render/shader/loading.gdshader" id="9_lv4gd"] [ext_resource type="Shader" path="res://render/shader/loading.gdshader" id="9_lv4gd"]
[ext_resource type="Texture2D" uid="uid://d1p6frj6673py" path="res://resource/ui/hud/boss_status_hp.png" id="10_o72w7"]
[ext_resource type="PackedScene" uid="uid://dfjudjr7aq205" path="res://scene/ui/item/skill_item.tscn" id="12_gotas"]
[ext_resource type="Script" path="res://script/ui/hud/skill_item.gd" id="12_s7xys"]
[sub_resource type="Animation" id="Animation_ikdwl"] [sub_resource type="Animation" id="Animation_ikdwl"]
resource_name = "rotate" resource_name = "rotate"
@ -96,10 +100,11 @@ texture = ExtResource("2_ouq6l")
[node name="PlayerStatusItem" type="Control" parent="HudPage"] [node name="PlayerStatusItem" type="Control" parent="HudPage"]
anchors_preset = 0 anchors_preset = 0
offset_left = 32.0 offset_left = 16.0
offset_top = 32.0 offset_top = 16.0
offset_right = 32.0 offset_right = 48.0
offset_bottom = 32.0 offset_bottom = 48.0
pivot_offset = Vector2(16, 16)
script = ExtResource("3_uokru") script = ExtResource("3_uokru")
[node name="Background" type="TextureRect" parent="HudPage/PlayerStatusItem"] [node name="Background" type="TextureRect" parent="HudPage/PlayerStatusItem"]
@ -115,36 +120,81 @@ offset_right = 32.0
offset_bottom = 16.0 offset_bottom = 16.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
pivot_offset = Vector2(32, 16)
texture = ExtResource("3_nlb4w") texture = ExtResource("3_nlb4w")
stretch_mode = 2 stretch_mode = 2
[node name="HpBar" type="TextureProgressBar" parent="HudPage/PlayerStatusItem"] [node name="HpBar" type="TextureProgressBar" parent="HudPage/PlayerStatusItem"]
layout_mode = 0 layout_mode = 0
offset_left = 6.0 offset_left = 23.0
offset_top = -10.0 offset_top = 6.0
offset_right = 102.0 offset_right = 119.0
offset_bottom = 6.0 offset_bottom = 22.0
value = 50.0 value = 50.0
texture_under = ExtResource("4_wyg3a") texture_under = ExtResource("4_wyg3a")
texture_progress = ExtResource("5_b0cyb") texture_progress = ExtResource("5_b0cyb")
[node name="MpSubBar" type="TextureProgressBar" parent="HudPage/PlayerStatusItem"] [node name="MpSubBar" type="TextureProgressBar" parent="HudPage/PlayerStatusItem"]
layout_mode = 0 layout_mode = 0
offset_left = 16.0 offset_left = 33.0
offset_right = 112.0 offset_top = 16.0
offset_bottom = 16.0 offset_right = 129.0
offset_bottom = 32.0
value = 50.0 value = 50.0
texture_under = ExtResource("6_fqaaa") texture_under = ExtResource("6_fqaaa")
texture_progress = ExtResource("7_wiq06") texture_progress = ExtResource("7_wiq06")
[node name="MpList" type="HBoxContainer" parent="HudPage/PlayerStatusItem"] [node name="MpList" type="HBoxContainer" parent="HudPage/PlayerStatusItem"]
layout_mode = 0 layout_mode = 0
offset_left = 8.0 offset_left = 25.0
offset_top = 5.0 offset_top = 21.0
offset_right = 48.0 offset_right = 65.0
offset_bottom = 12.0 offset_bottom = 28.0
theme_override_constants/separation = -5 theme_override_constants/separation = -5
[node name="BossStatusItem" type="Control" parent="HudPage"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = 284.0
offset_top = 284.0
offset_right = 316.0
offset_bottom = 316.0
grow_horizontal = 2
grow_vertical = 2
pivot_offset = Vector2(16, 16)
script = ExtResource("3_uokru")
[node name="HpBar" type="TextureProgressBar" parent="HudPage/BossStatusItem"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -192.0
offset_top = -8.0
offset_right = 192.0
offset_bottom = 8.0
grow_horizontal = 2
grow_vertical = 2
value = 50.0
nine_patch_stretch = true
texture_under = ExtResource("9_3sg6t")
texture_progress = ExtResource("10_o72w7")
[node name="BossName" type="Label" parent="HudPage/BossStatusItem"]
layout_mode = 0
offset_left = -160.0
offset_top = -16.0
offset_right = -92.0
offset_bottom = 7.0
theme_override_font_sizes/font_size = 14
text = "Boss名字"
[node name="LockItem" type="Control" parent="HudPage"] [node name="LockItem" type="Control" parent="HudPage"]
anchors_preset = 0 anchors_preset = 0
offset_left = 424.0 offset_left = 424.0
@ -171,6 +221,39 @@ offset_bottom = 328.0
pivot_offset = Vector2(16, 16) pivot_offset = Vector2(16, 16)
script = ExtResource("7_3g1k3") script = ExtResource("7_3g1k3")
[node name="SkillItem" type="Control" parent="HudPage"]
anchors_preset = 0
offset_left = 560.0
offset_top = 288.0
offset_right = 592.0
offset_bottom = 320.0
pivot_offset = Vector2(16, 16)
script = ExtResource("12_s7xys")
[node name="SkillLeft" parent="HudPage/SkillItem" instance=ExtResource("12_gotas")]
layout_mode = 1
offset_left = -40.0
offset_right = -8.0
[node name="SkillRight" parent="HudPage/SkillItem" instance=ExtResource("12_gotas")]
layout_mode = 1
offset_left = 8.0
offset_right = 40.0
[node name="SkillUp" parent="HudPage/SkillItem" instance=ExtResource("12_gotas")]
layout_mode = 1
offset_left = -16.0
offset_top = -32.0
offset_right = 16.0
offset_bottom = 0.0
[node name="SkillDown" parent="HudPage/SkillItem" instance=ExtResource("12_gotas")]
layout_mode = 1
offset_left = -16.0
offset_top = 0.0
offset_right = 16.0
offset_bottom = 32.0
[node name="HeadBarPage" type="Control" parent="."] [node name="HeadBarPage" type="Control" parent="."]
layout_mode = 3 layout_mode = 3
anchors_preset = 0 anchors_preset = 0

@ -0,0 +1,58 @@
[gd_scene load_steps=7 format=3 uid="uid://dfjudjr7aq205"]
[ext_resource type="Script" path="res://script/ui/hud/skill_item_sub.gd" id="1_awokc"]
[ext_resource type="Texture2D" uid="uid://dcld8q2hgpwji" path="res://resource/ui/hud/skill_slot.png" id="2_bl1f4"]
[ext_resource type="Shader" path="res://render/shader/ui_skill_icon.gdshader" id="3_lbcyi"]
[ext_resource type="Texture2D" uid="uid://clh4rxsuj5hh4" path="res://resource/ui/hud/skill_icon_mask.png" id="4_ccxg7"]
[ext_resource type="Texture2D" uid="uid://1s8mmat4sj4j" path="res://resource/ui/icon/skill/default.png" id="5_p7y4q"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_vtxiw"]
shader = ExtResource("3_lbcyi")
shader_parameter/mask_texture = ExtResource("4_ccxg7")
[node name="Skill" type="Control"]
layout_mode = 3
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -80.0
offset_top = -16.0
offset_right = -48.0
offset_bottom = 16.0
grow_horizontal = 2
grow_vertical = 2
pivot_offset = Vector2(16, 16)
script = ExtResource("1_awokc")
[node name="SkillSlot" type="TextureRect" parent="."]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -16.0
offset_top = -16.0
offset_right = 16.0
offset_bottom = 16.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_bl1f4")
[node name="SkillIcon" type="TextureRect" parent="."]
material = SubResource("ShaderMaterial_vtxiw")
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -16.0
offset_top = -16.0
offset_right = 16.0
offset_bottom = 16.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("5_p7y4q")

@ -167,25 +167,25 @@ func refresh_animation_by_sprite_frames(animation_path:String,sprite_frames:Spri
print("refresh_animation: ",animation_name ,"(",animation_frame_count, " frames)") print("refresh_animation: ",animation_name ,"(",animation_frame_count, " frames)")
ResourceSaver.save(animation,animation_path) ResourceSaver.save(animation,animation_path)
func get_all_player_skill(): func get_all_skill_player_weapon():
var ret = [] var ret = []
var dir_path = "res://config/player_skill" var dir_path = "res://config/skill_player_weapon"
var dir = DirAccess.open(dir_path) var dir = DirAccess.open(dir_path)
for file in dir.get_files(): for file in dir.get_files():
var path = dir_path + "/" + file var path = dir_path + "/" + file
var res = load(path) var res = load(path)
if res is PlayerSkillCfg: if res is SkillPlayerCfg:
ret.append(res) ret.append(res)
return ret return ret
func get_player_skill_by_weapon(weapon:WeaponCfg): func get_skill_player_weapon_by_weapon(weapon:WeaponCfg):
var ret = [] var ret = []
var dir_path = "res://config/player_skill" var dir_path = "res://config/skill_player_weapon"
var dir = DirAccess.open(dir_path) var dir = DirAccess.open(dir_path)
for file in dir.get_files(): for file in dir.get_files():
var path = dir_path + "/" + file var path = dir_path + "/" + file
var res = load(path) var res = load(path)
if res is PlayerSkillCfg: if res is SkillPlayerCfg:
if res.weapon == weapon: if res.weapon == weapon:
ret.append(res) ret.append(res)
return ret return ret

@ -70,17 +70,17 @@ func update_break_by_level(break_level:Enum.EBreakLevel):
if not input.action in skill_map: if not input.action in skill_map:
continue continue
for skill_cfg in skill_map[input.action]: for skill_cfg in skill_map[input.action]:
var player_skill_cfg = skill_cfg as PlayerSkillCfg var skill_player_weapon_cfg = skill_cfg as SkillPlayerCfg
if player_skill_cfg.break_level != break_level: if skill_player_weapon_cfg.break_level != break_level:
continue continue
var stance_from = player_skill_cfg.stance_from var stance_from = skill_player_weapon_cfg.stance_from
if stance_from != status.stance and stance_from != Enum.EStance.Any: if stance_from != status.stance and stance_from != Enum.EStance.Any:
continue continue
if player_skill_cfg.weapon: if skill_player_weapon_cfg.weapon:
if player_skill_cfg.weapon != status.weapon_list[status.weapon_index]: if skill_player_weapon_cfg.weapon != status.weapon_list[status.weapon_index]:
continue continue
skill.cast_skill(skill_cfg,status.input_dir) skill.cast_skill(skill_cfg,status.input_dir)
status.stance = player_skill_cfg.stance_to status.stance = skill_player_weapon_cfg.stance_to
refresh_input(i) refresh_input(i)
return return
@ -104,16 +104,16 @@ func add_input_action(action:String):
new_input.alive_time = Setting.input_alive_time new_input.alive_time = Setting.input_alive_time
input_list.append(new_input) input_list.append(new_input)
func add_skill(action:String,skillCfg:PlayerSkillCfg): func add_skill(action:String,skillCfg:SkillPlayerCfg):
if not action in skill_map: if not action in skill_map:
skill_map[action] = [] skill_map[action] = []
skill_map[action].append(skillCfg) skill_map[action].append(skillCfg)
func add_weapon(weapon:WeaponCfg): func add_weapon(weapon:WeaponCfg):
status.weapon_list.append(weapon) status.weapon_list.append(weapon)
for player_skill_res in Util.get_player_skill_by_weapon(weapon): for skill_player_weapon_res in Util.get_skill_player_weapon_by_weapon(weapon):
var player_skill = player_skill_res as PlayerSkillCfg var skill_player_weapon = skill_player_weapon_res as SkillPlayerCfg
add_skill(player_skill.action,player_skill_res) add_skill(skill_player_weapon.action,skill_player_weapon_res)
status.emit_status("weapon_list") status.emit_status("weapon_list")
status.set_status("weapon_index",0) status.set_status("weapon_index",0)

@ -1,7 +1,7 @@
@tool @tool
extends SkillCfg extends SkillCfg
class_name PlayerSkillCfg class_name SkillPlayerCfg
@export var weapon : WeaponCfg @export var weapon : WeaponCfg
@export var stance_from : Enum.EStance @export var stance_from : Enum.EStance

@ -6,6 +6,7 @@ class_name SkillCfg
@export var name : String @export var name : String
@export var skill_animation : Animation @export var skill_animation : Animation
@export var attack_list : Array[AttackCfg] @export var attack_list : Array[AttackCfg]
@export var sub_character_list : Array[CharacterCfg]
@export var free_lock : bool @export var free_lock : bool
@export var refresh_animation : bool : @export var refresh_animation : bool :

@ -43,8 +43,8 @@ func target_pos_lerp(index:int,delta:float,delta_scale:float):
var weight = max(delta * delta_scale,weight_min) var weight = max(delta * delta_scale,weight_min)
target_pos_now[index] = lerp(target_pos_now[index], target_pos[index], weight) target_pos_now[index] = lerp(target_pos_now[index], target_pos[index], weight)
func on_character_create(id:int,is_player:bool,pos:Vector3): func on_character_create(id:int,type:int,pos:Vector3):
if is_player: if type == Enum.ECharacterType.Player:
target = id target = id
on_character_pos_changed(id,pos) on_character_pos_changed(id,pos)
on_character_hit_floor(id,pos) on_character_hit_floor(id,pos)

@ -36,9 +36,9 @@ func create_character(cfg:CharacterCfg,team:Enum.ETeam,pos:Vector3)->Character:
character.init(character_idx,cfg,team) character.init(character_idx,cfg,team)
character.set_material(ResourceManager.material_character.duplicate(),ResourceManager.material_character_sub.duplicate()) character.set_material(ResourceManager.material_character.duplicate(),ResourceManager.material_character_sub.duplicate())
character.set_pos(pos) character.set_pos(pos)
var is_player = cfg.type == Enum.ECharacterType.Player SignalManager.character_create.emit(character_idx,cfg.type,character.ui_pos())
SignalManager.character_create.emit(character_idx,is_player,character.ui_pos()) if cfg.type == Enum.ECharacterType.Player:
if is_player:player_id = character_idx player_id = character_idx
character.init_after() character.init_after()
return character return character

@ -0,0 +1,31 @@
extends Control
@onready var mp_scene = preload("res://scene/ui/item/mp_item.tscn")
@onready var hp_bar = $HpBar as TextureProgressBar
@onready var mp_sub_bar = $MpSubBar as TextureProgressBar
@onready var mp_list = $MpList as HBoxContainer
func on_hp_max_changed(value:float):
hp_bar.max_value = value
func on_hp_changed(value:float):
hp_bar.value = value
func on_mp_sub_max_changed(value:float):
mp_sub_bar.max_value = value
func on_mp_sub_changed(value:float):
mp_sub_bar.value = value
func on_mp_max_changed(value:int):
for child in mp_list.get_children():
child.queue_free()
for i in range(value):
var mp_item = mp_scene.instantiate() as MpItemSub
mp_list.add_child(mp_item)
func on_mp_changed(value:int):
for i in range(mp_list.get_child_count()):
var mp_item = mp_list.get_child(i) as MpItemSub
mp_item.set_active(i<value)

@ -24,8 +24,8 @@ func _process(delta):
var headbar_meta = headbar_map[k] as HeadbarMeta var headbar_meta = headbar_map[k] as HeadbarMeta
headbar_meta.headbar.position = camera.get_screen_pos(headbar_meta.pos) headbar_meta.headbar.position = camera.get_screen_pos(headbar_meta.pos)
func on_character_create(id:int,is_player:bool,pos:Vector3): func on_character_create(id:int,type:int,pos:Vector3):
if not is_player: if type != Enum.ECharacterType.Monster:
return return
var new_headbar_meta = HeadbarMeta.new() var new_headbar_meta = HeadbarMeta.new()
new_headbar_meta.pos = pos new_headbar_meta.pos = pos

@ -1,6 +1,6 @@
extends Control extends Control
@onready var sub_item_list = [$LockItem,$WeaponItem,$PlayerStatusItem] @onready var sub_item_list = [$LockItem,$SkillItem,$WeaponItem,$PlayerStatusItem]
func _ready(): func _ready():
SignalManager.character_status_changed.connect(on_character_status_changed) SignalManager.character_status_changed.connect(on_character_status_changed)

@ -0,0 +1,4 @@
extends Control
func _process(delta):
pass

@ -0,0 +1,16 @@
extends Control
class_name SkillItemSub
var icon : TextureRect
var slot : TextureRect
func init(value:Texture2D):
icon = $WeaponIcon
slot = $WeaponSlot
icon.texture = value
func update_alpha(alpha_from:float,alpha_to:float,rate:float):
var alpha = lerp(alpha_from,alpha_to,rate)
icon.modulate = Color(1,1,1,alpha)
slot.modulate = Color(1,1,1,alpha)
Loading…
Cancel
Save