Shield Extend

This commit is contained in:
Marco 2025-03-21 09:41:22 +01:00
commit 242222a4d7
20 changed files with 456 additions and 28 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
ExternalMaterial/ShieldExtend/Shield_Extend_Animated.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://n4qg50uxnww6"
path="res://.godot/imported/Shield_Extend_Animated.png-1d0f7f646b527bfa4068858492221f1b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://ExternalMaterial/ShieldExtend/Shield_Extend_Animated.png"
dest_files=["res://.godot/imported/Shield_Extend_Animated.png-1d0f7f646b527bfa4068858492221f1b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -12,6 +12,7 @@ MaxHealth = 8.0
MovementSpeed = 20.0
Weapon = ExtResource("7_filx8")
LootDrops = Array[Object]([])
PlayerDetectionRange = 90.0
AlarmReactRange = 200.0
PlayerDisengageRange = 500.0
metadata/_custom_type_script = "uid://cd5o0ceb50jki"

View file

@ -12,6 +12,7 @@ MaxHealth = 14.0
MovementSpeed = 0.0
Weapon = ExtResource("1_yap8t")
LootDrops = Array[Object]([])
PlayerDetectionRange = 90.0
AlarmReactRange = 200.0
PlayerDisengageRange = 500.0
metadata/_custom_type_script = "uid://cd5o0ceb50jki"

View file

@ -1,14 +1,22 @@
[gd_resource type="Resource" script_class="LootItem" load_steps=3 format=3 uid="uid://ciybnocjfpshh"]
[gd_resource type="Resource" script_class="LootItem" load_steps=5 format=3 uid="uid://ciybnocjfpshh"]
[ext_resource type="Texture2D" uid="uid://c8fr1ea20odaw" path="res://Sprites/Items/Heart_Extend.png" id="1_00obu"]
[ext_resource type="Script" uid="uid://6cupx85nnda4" path="res://Scripts/Resources/ItemEffects/ResourceIncreaseEffectResource.cs" id="2_uaof8"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_1s60f"]
[sub_resource type="Resource" id="Resource_bltl4"]
script = ExtResource("2_uaof8")
IncreaseAmount = 4.0
ResourceType = 0
metadata/_custom_type_script = "uid://6cupx85nnda4"
[resource]
script = ExtResource("3_1s60f")
ItemName = &"Health Extend"
ItemDescription = &"Extends the max health"
ItemKey = &"HEALTH_EXTEND"
Item = 13
ItemEffect = SubResource("Resource_bltl4")
Amount = 1
Max = 10
PickupIfMaxed = false

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="LootItem" load_steps=5 format=3 uid="uid://bdpbekqhuuq4l"]
[ext_resource type="Texture2D" uid="uid://b2vmpi57d7vwy" path="res://Sprites/Items/Shield_Extend.png" id="1_e61f8"]
[ext_resource type="Script" uid="uid://6cupx85nnda4" path="res://Scripts/Resources/ItemEffects/ResourceIncreaseEffectResource.cs" id="2_da583"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_n442a"]
[sub_resource type="Resource" id="Resource_7h0ch"]
script = ExtResource("2_da583")
IncreaseAmount = 4.0
ResourceType = 1
metadata/_custom_type_script = "uid://6cupx85nnda4"
[resource]
script = ExtResource("2_n442a")
ItemName = &"Shield Extend"
ItemDescription = &"Extends the max shield"
ItemKey = &"SHIELD_EXTEND"
Item = 13
ItemEffect = SubResource("Resource_7h0ch")
Amount = 1
Max = 10
PickupIfMaxed = false
ConsumeOnUse = true
UiType = 0
Selectable = false
InventorySprite = ExtResource("1_e61f8")
DropScenePath = &"res://Scenes/Items/Shield_Extend_Pickup.tscn"
metadata/_custom_type_script = "uid://epnwjptvks3t"

View file

@ -129,6 +129,7 @@ EquippedWeapon = NodePath("../EnemyWeapon")
_playerDetection = NodePath("../PlayerDetection")
[node name="PlayerDetection" type="Area2D" parent="."]
visible = false
collision_layer = 0
collision_mask = 2
script = ExtResource("8_m5ma3")

View file

@ -0,0 +1,241 @@
[gd_scene load_steps=37 format=3 uid="uid://ey71mxa5ocpn"]
[ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_vewtw"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_thehf"]
[ext_resource type="Resource" uid="uid://bdpbekqhuuq4l" path="res://Resources/Items/Shield_Extend_Pickup.tres" id="3_vewtw"]
[ext_resource type="Texture2D" uid="uid://dq3jb5dsq45gq" path="res://Sprites/Items/Shield_Extend_Animated.png" id="4_vewtw"]
[sub_resource type="CircleShape2D" id="CircleShape2D_6vv2s"]
[sub_resource type="AtlasTexture" id="AtlasTexture_vewtw"]
atlas = ExtResource("4_vewtw")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_thehf"]
atlas = ExtResource("4_vewtw")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_e1ju8"]
atlas = ExtResource("4_vewtw")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_0gf2n"]
atlas = ExtResource("4_vewtw")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_202tj"]
atlas = ExtResource("4_vewtw")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6x4mj"]
atlas = ExtResource("4_vewtw")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_wbwbn"]
atlas = ExtResource("4_vewtw")
region = Rect2(96, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ilxvd"]
atlas = ExtResource("4_vewtw")
region = Rect2(112, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_kdy52"]
atlas = ExtResource("4_vewtw")
region = Rect2(128, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_rmc15"]
atlas = ExtResource("4_vewtw")
region = Rect2(144, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_cpy1x"]
atlas = ExtResource("4_vewtw")
region = Rect2(160, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_s7ssf"]
atlas = ExtResource("4_vewtw")
region = Rect2(176, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_skp13"]
atlas = ExtResource("4_vewtw")
region = Rect2(192, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_bhypf"]
atlas = ExtResource("4_vewtw")
region = Rect2(208, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_7r432"]
atlas = ExtResource("4_vewtw")
region = Rect2(224, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_x3e47"]
atlas = ExtResource("4_vewtw")
region = Rect2(240, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_eb2au"]
atlas = ExtResource("4_vewtw")
region = Rect2(256, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_wxbxv"]
atlas = ExtResource("4_vewtw")
region = Rect2(272, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_lftmg"]
atlas = ExtResource("4_vewtw")
region = Rect2(288, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_8pyrb"]
atlas = ExtResource("4_vewtw")
region = Rect2(304, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ng0tv"]
atlas = ExtResource("4_vewtw")
region = Rect2(320, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ul24d"]
atlas = ExtResource("4_vewtw")
region = Rect2(336, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_o71w5"]
atlas = ExtResource("4_vewtw")
region = Rect2(352, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_p5x2f"]
atlas = ExtResource("4_vewtw")
region = Rect2(368, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_r3ob8"]
atlas = ExtResource("4_vewtw")
region = Rect2(384, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_hef6x"]
atlas = ExtResource("4_vewtw")
region = Rect2(400, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_r1pjx"]
atlas = ExtResource("4_vewtw")
region = Rect2(416, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_nn5o2"]
atlas = ExtResource("4_vewtw")
region = Rect2(432, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_n4ph3"]
atlas = ExtResource("4_vewtw")
region = Rect2(448, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_0ula0"]
atlas = ExtResource("4_vewtw")
region = Rect2(464, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_h6hqm"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_vewtw")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_thehf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_e1ju8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0gf2n")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_202tj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6x4mj")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wbwbn")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ilxvd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kdy52")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_rmc15")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cpy1x")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_s7ssf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_skp13")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bhypf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7r432")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_x3e47")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_eb2au")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_wxbxv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_lftmg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8pyrb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ng0tv")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ul24d")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_o71w5")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_p5x2f")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_r3ob8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hef6x")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_r1pjx")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_nn5o2")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_n4ph3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0ula0")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="ShieldExtendPickup" type="Area2D" groups=["Interactable"]]
collision_layer = 4
collision_mask = 2
script = ExtResource("1_vewtw")
LootTable = Array[ExtResource("2_thehf")]([ExtResource("3_vewtw")])
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_6vv2s")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_h6hqm")
autoplay = "default"
frame = 7
frame_progress = 0.98584

File diff suppressed because one or more lines are too long

View file

@ -12,10 +12,10 @@ public partial class HealEffectResource : ItemEffectResource
public override IITemEffectMachine Execute(PlayerFSMItemUseModule parent, LootItem item)
{
return new HealEffectmachine(this, parent, item).Execute();
return new HealEffectMachine(this, parent, item).Execute();
}
public class HealEffectmachine(HealEffectResource resource, PlayerFSMItemUseModule parent, LootItem item)
public class HealEffectMachine(HealEffectResource resource, PlayerFSMItemUseModule parent, LootItem item)
: IITemEffectMachine
{
public IITemEffectMachine Execute()

View file

@ -0,0 +1,36 @@
using Cirno.Scripts.Components.FSM.Player;
using Godot;
namespace Cirno.Scripts.Resources.ItemEffects;
[GlobalClass]
public partial class ResourceIncreaseEffectResource : ItemEffectResource
{
[Export] public float IncreaseAmount { get; private set; } = 4f;
[Export] public HealEffectResource.HealResourceType ResourceType { get; private set; } = HealEffectResource.HealResourceType.Health;
public override IITemEffectMachine Execute(PlayerFSMItemUseModule parent, LootItem item)
{
return new ResourceIncreaseMachine(this, parent, item).Execute();
}
public class ResourceIncreaseMachine(
ResourceIncreaseEffectResource resource,
PlayerFSMItemUseModule parent,
LootItem item) : IITemEffectMachine
{
public IITemEffectMachine Execute()
{
switch (resource.ResourceType)
{
case HealEffectResource.HealResourceType.Health:
parent.Health.MaxResource += resource.IncreaseAmount;
break;
case HealEffectResource.HealResourceType.Shield:
parent.Shield.MaxResource += resource.IncreaseAmount;
break;
}
return this;
}
}
}

View file

@ -0,0 +1 @@
uid://6cupx85nnda4

BIN
Sprites/Items/Shield_Extend.aseprite (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Sprites/Items/Shield_Extend.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b2vmpi57d7vwy"
path="res://.godot/imported/Shield_Extend.png-b361e8c7e5b3222ebe425f5f7cedd9eb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Sprites/Items/Shield_Extend.png"
dest_files=["res://.godot/imported/Shield_Extend.png-b361e8c7e5b3222ebe425f5f7cedd9eb.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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
Sprites/Items/Shield_Extend_Animated.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dq3jb5dsq45gq"
path="res://.godot/imported/Shield_Extend_Animated.png-2d97a2fef20974f1e3b209226110f1ca.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Sprites/Items/Shield_Extend_Animated.png"
dest_files=["res://.godot/imported/Shield_Extend_Animated.png-2d97a2fef20974f1e3b209226110f1ca.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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