Movement friction

This commit is contained in:
Marco 2025-05-05 13:59:12 +02:00
commit b16e633451
19 changed files with 143 additions and 54 deletions

View file

@ -1,4 +1,4 @@
<Project Sdk="Godot.NET.Sdk/4.4.0">
<Project Sdk="Godot.NET.Sdk/4.4.1">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<EnableDynamicLoading>true</EnableDynamicLoading>

View file

@ -1,10 +1,11 @@
[gd_resource type="Resource" script_class="BossScript" load_steps=3 format=3 uid="uid://umimlgb0hs7k"]
[gd_resource type="Resource" script_class="BossScript" load_steps=4 format=3 uid="uid://umimlgb0hs7k"]
[ext_resource type="Script" uid="uid://cdd6q2h0t1hhq" path="res://Scripts/Resources/BossPhase.cs" id="1_2i700"]
[ext_resource type="Resource" uid="uid://go6rfnglefe8" path="res://Resources/BossPhases/Roguelite/Roguelite_Boss_1.tres" id="2_bv4fb"]
[ext_resource type="Script" uid="uid://inasa76li3ym" path="res://Scripts/Resources/ScriptableBullets/BossScript.cs" id="3_hj6ge"]
[resource]
script = ExtResource("3_hj6ge")
BossName = &"Test"
Phases = [ExtResource("2_bv4fb")]
Phases = Array[ExtResource("1_2i700")]([ExtResource("2_bv4fb")])
metadata/_custom_type_script = "uid://inasa76li3ym"

View file

@ -49,6 +49,7 @@ burstInterval = 2.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -95,6 +96,7 @@ burstInterval = 6.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -134,6 +136,7 @@ burstInterval = 2.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -173,6 +176,7 @@ burstInterval = 6.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -212,6 +216,7 @@ burstInterval = 2.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -251,6 +256,7 @@ burstInterval = 6.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -312,6 +318,7 @@ burstInterval = 1.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = true
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -359,6 +366,7 @@ burstInterval = 1.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -406,6 +414,7 @@ burstInterval = 1.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -453,6 +462,7 @@ burstInterval = 1.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false

View file

@ -65,6 +65,7 @@ burstInterval = 0.4
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -113,6 +114,7 @@ burstInterval = 0.4
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false

View file

@ -54,6 +54,7 @@ MovementSpeed = 30.0
Weapon = ExtResource("7_xkg5o")
LootDrops = Array[ExtResource("2_sxbtw")]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")])
MotivationReward = 4.0
PredictPlayer = false
PlayerDetectionRange = 90.0
ViewRange = 120.0
AlarmReactRange = 150.0

View file

@ -54,6 +54,7 @@ MovementSpeed = 30.0
Weapon = ExtResource("7_tf7s2")
LootDrops = Array[ExtResource("1_tf7s2")]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")])
MotivationReward = 4.0
PredictPlayer = false
PlayerDetectionRange = 90.0
ViewRange = 120.0
AlarmReactRange = 150.0

View file

@ -19,6 +19,7 @@ MovementSpeed = 40.0
Weapon = ExtResource("8_w06jt")
LootDrops = Array[ExtResource("2_3teuq")]([])
MotivationReward = 100.0
PredictPlayer = false
PlayerDetectionRange = 90.0
ViewRange = 120.0
AlarmReactRange = 150.0

View file

@ -19,6 +19,7 @@ MovementSpeed = 38.0
Weapon = ExtResource("2_f3huq")
LootDrops = Array[ExtResource("1_f3huq")]([])
MotivationReward = 4.0
PredictPlayer = false
PlayerDetectionRange = 90.0
ViewRange = 120.0
AlarmReactRange = 200.0

View file

@ -16,6 +16,7 @@ burstInterval = 0.3
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = true
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false

View file

@ -36,6 +36,7 @@ burstInterval = 2.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -75,6 +76,7 @@ burstInterval = 2.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
@ -114,6 +116,7 @@ burstInterval = 2.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=87 format=3 uid="uid://c4pr2707hbeph"]
[gd_scene load_steps=88 format=3 uid="uid://c4pr2707hbeph"]
[ext_resource type="Script" uid="uid://d2ubk5gucny6s" path="res://Scripts/Components/FSM/PlayerFSMProxy.cs" id="1_g3wua"]
[ext_resource type="Script" uid="uid://bw2hakslndaxm" path="res://Scripts/Components/FSM/PlayerStateMachine.cs" id="1_mpmil"]
@ -19,6 +19,7 @@
[ext_resource type="Script" uid="uid://d208gvthkstvc" path="res://Scripts/Components/Actors/PlayerCrosshairProvider.cs" id="9_s0ir4"]
[ext_resource type="Script" uid="uid://bgve2lktony00" path="res://Scripts/Components/FSM/Player/Drowning.cs" id="10_es1gk"]
[ext_resource type="Script" uid="uid://3jxrxcqp3ndr" path="res://Scripts/Components/Actors/PlayerHitboxSpriteProvider.cs" id="10_gp3hw"]
[ext_resource type="Texture2D" uid="uid://cvngivvogv17l" path="res://Sprites/Actors/Cirno-Shadow.png" id="11_m1iep"]
[ext_resource type="Texture2D" uid="uid://bwjrdlnysft15" path="res://Sprites/Actors/Focus_Circle.png" id="12_8dcio"]
[ext_resource type="Texture2D" uid="uid://bf37ce6jskdel" path="res://Sprites/SmallHitbox.png" id="13_pmkfo"]
[ext_resource type="Script" uid="uid://dkmsw828qwikk" path="res://Scripts/Components/Actors/PlayerDamageReceiver.cs" id="14_igu66"]
@ -346,7 +347,9 @@ _storageModule = NodePath("../../Storage")
[node name="Active" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_weaponProvider", "_animationProvider", "_crosshairProvider", "_hitboxSpriteProvider", "_inputProvider", "_damageReceiver", "_activationProvider", "_interactionController", "_storageModule", "_moduleNodes")]
script = ExtResource("3_3tuio")
Speed = 55
Speed = 80
Acceleration = 300.0
Deceleration = 150.0
_weaponProvider = NodePath("../../WeaponProvider")
_animationProvider = NodePath("../../AnimationProvider")
_crosshairProvider = NodePath("../../CrosshairProvider")
@ -388,6 +391,11 @@ _animationProvider = NodePath("../../AnimationProvider")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_b3hxm")
[node name="Shadow" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0.227451)
position = Vector2(0, 2)
texture = ExtResource("11_m1iep")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
material = ExtResource("4_5qlss")
sprite_frames = ExtResource("4_s0ir4")

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=29 format=4 uid="uid://24wh7h2dbljf"]
[gd_scene load_steps=30 format=4 uid="uid://24wh7h2dbljf"]
[ext_resource type="Script" uid="uid://b2j00riayxkit" path="res://Scripts/Controllers/RogueliteRoom.cs" id="1_vhsym"]
[ext_resource type="Resource" uid="uid://dn3ai56rrxfnk" path="res://Resources/RogueliteMaps/Beginner1.tres" id="2_vhsym"]
@ -7,6 +7,7 @@
[ext_resource type="PackedScene" uid="uid://cl7s06sk106uo" path="res://Scenes/Props/VendingMachine.tscn" id="6_70a8f"]
[ext_resource type="PackedScene" uid="uid://4q82gggqax87" path="res://Scenes/Items/Cheat_Gun_Pickup.tscn" id="6_pys6w"]
[ext_resource type="PackedScene" uid="uid://djf0y08ix66fn" path="res://Scenes/Interactable/Chest.tscn" id="7_kublc"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="8_5uxd1"]
[ext_resource type="Resource" uid="uid://cltxhkrqp055v" path="res://Resources/Items/Money_Pickup.tres" id="9_5yebg"]
[ext_resource type="Resource" uid="uid://cajqlnyvlmybe" path="res://Resources/Items/IcicleRepeater_Improved.tres" id="10_6gtn1"]
[ext_resource type="Resource" uid="uid://dwwbyyy3fo4bt" path="res://Resources/Items/IcicleRepeater_Advanced.tres" id="11_0a3am"]
@ -74,7 +75,7 @@ position = Vector2(275, -100)
[node name="Chest" parent="Actors" instance=ExtResource("7_kublc")]
position = Vector2(220, -109)
LootTable = [ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("10_6gtn1"), ExtResource("11_0a3am"), ExtResource("12_t3lr8"), ExtResource("13_ii24s"), ExtResource("14_15ruc"), ExtResource("15_5uxd1"), ExtResource("16_iyfx3"), ExtResource("17_45mmk"), ExtResource("18_ipsj4"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("26_iyfx3")]
LootTable = Array[ExtResource("8_5uxd1")]([ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("9_5yebg"), ExtResource("10_6gtn1"), ExtResource("11_0a3am"), ExtResource("12_t3lr8"), ExtResource("13_ii24s"), ExtResource("14_15ruc"), ExtResource("15_5uxd1"), ExtResource("16_iyfx3"), ExtResource("17_45mmk"), ExtResource("18_ipsj4"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("19_ii24s"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("20_15ruc"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("21_5uxd1"), ExtResource("26_iyfx3")])
[node name="Label" type="Label" parent="Actors"]
offset_left = 153.0

View file

@ -32,7 +32,7 @@ RoomClearActivation = []
[node name="Tilemaps" type="Node2D" parent="." groups=["navigation_polygon_source_geometry_group"]]
[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayers") groups=["Solid"]]
tile_map_data = PackedByteArray("AAAAAAIAAAAEAAIAAAAAAAMAAAAEAAIAAAAAAAQAAAAEAAIAAAAAAAUAAAAEAAIAAAAAAAYAAAAEAAIAAAAAAAcAAAAEAAIAAAAAAAgAAAAEAAIAAAAAAAkAAAAEAAIAAAABAAIAAAAEAAIAAAABAAMAAAAEAAIAAAABAAQAAAAEAAIAAAABAAUAAAAEAAIAAAABAAYAAAAEAAIAAAABAAcAAAAEAAIAAAABAAgAAAAEAAIAAAABAAkAAAAEAAIAAAACAAIAAAAEAAIAAAACAAMAAAAEAAIAAAACAAQAAAAEAAIAAAACAAUAAAAEAAIAAAACAAYAAAAEAAIAAAACAAcAAAAEAAIAAAACAAgAAAAEAAIAAAACAAkAAAAEAAIAAAADAAIAAAAEAAIAAAADAAMAAAAEAAIAAAADAAQAAAAEAAIAAAADAAUAAAAEAAIAAAADAAYAAAAEAAIAAAADAAcAAAAEAAIAAAADAAgAAAAEAAIAAAADAAkAAAAEAAIAAAAEAAIAAAAEAAIAAAAEAAMAAAAEAAIAAAAEAAQAAAAEAAIAAAAEAAUAAAAEAAIAAAAEAAYAAAAEAAIAAAAEAAcAAAAEAAIAAAAEAAgAAAAEAAIAAAAEAAkAAAAEAAIAAAAFAAIAAAAEAAIAAAAFAAMAAAAEAAIAAAAFAAQAAAAEAAIAAAAFAAUAAAAEAAIAAAAFAAYAAAAEAAIAAAAFAAcAAAAEAAIAAAAFAAgAAAAEAAIAAAAFAAkAAAAEAAIAAAAGAAIAAAAEAAIAAAAGAAMAAAAEAAIAAAAGAAQAAAAEAAIAAAAGAAUAAAAEAAIAAAAGAAYAAAAEAAIAAAAGAAcAAAAEAAIAAAAGAAgAAAAEAAIAAAAGAAkAAAAEAAIAAAAHAAIAAAAEAAIAAAAHAAMAAAAEAAIAAAAHAAQAAAAEAAIAAAAHAAUAAAAEAAIAAAAHAAYAAAAEAAIAAAAHAAcAAAAEAAIAAAAHAAgAAAAEAAIAAAAHAAkAAAAEAAIAAAAIAAIAAAAEAAIAAAAIAAMAAAAEAAIAAAAIAAQAAAAEAAIAAAAIAAUAAAAEAAIAAAAIAAYAAAAEAAIAAAAIAAcAAAAEAAIAAAAIAAgAAAAEAAIAAAAIAAkAAAAEAAIAAAAJAAIAAAAEAAIAAAAJAAMAAAAEAAIAAAAJAAQAAAAEAAIAAAAJAAUAAAAEAAIAAAAJAAYAAAAEAAIAAAAJAAcAAAAEAAIAAAAJAAgAAAAEAAIAAAAJAAkAAAAEAAIAAAAKAAIAAAAEAAIAAAAKAAMAAAAEAAIAAAAKAAQAAAAEAAIAAAAKAAUAAAAEAAIAAAAKAAYAAAAEAAIAAAAKAAcAAAAEAAIAAAAKAAgAAAAEAAIAAAAKAAkAAAAEAAIAAAALAAIAAAAEAAIAAAALAAUAAAAEAAIAAAALAAYAAAAEAAIAAAALAAcAAAAEAAIAAAALAAgAAAAEAAIAAAALAAkAAAAEAAIAAAAMAAIAAAAEAAIAAAAMAAUAAAAEAAIAAAAMAAYAAAAEAAIAAAAMAAcAAAAEAAIAAAAMAAgAAAAEAAIAAAAMAAkAAAAEAAIAAAANAAIAAAAEAAIAAAANAAMAAAAEAAIAAAANAAQAAAAEAAIAAAANAAUAAAAEAAIAAAANAAYAAAAEAAIAAAANAAcAAAAEAAIAAAANAAgAAAAEAAIAAAANAAkAAAAEAAIAAAAOAAIAAAAEAAIAAAAOAAMAAAAEAAIAAAAOAAQAAAAEAAIAAAAOAAUAAAAEAAIAAAAOAAYAAAAEAAIAAAAOAAcAAAAEAAIAAAAOAAgAAAAEAAIAAAAOAAkAAAAEAAIAAAAPAAIAAAAEAAIAAAAPAAMAAAAEAAIAAAAPAAQAAAAEAAIAAAAPAAUAAAAEAAIAAAAPAAYAAAAEAAIAAAAPAAcAAAAEAAIAAAAPAAgAAAAEAAIAAAAPAAkAAAAEAAIAAAAQAAIAAAAEAAIAAAAQAAMAAAAEAAIAAAAQAAQAAAAEAAIAAAAQAAUAAAAEAAIAAAAQAAYAAAAEAAIAAAAQAAcAAAAEAAIAAAAQAAgAAAAEAAIAAAAQAAkAAAAEAAIAAAARAAIAAAAEAAIAAAARAAMAAAAEAAIAAAARAAQAAAAEAAIAAAARAAUAAAAEAAIAAAARAAYAAAAEAAIAAAARAAcAAAAEAAIAAAARAAgAAAAEAAIAAAARAAkAAAAEAAIAAAASAAIAAAAEAAIAAAASAAMAAAAEAAIAAAASAAQAAAAEAAIAAAASAAUAAAAEAAIAAAASAAYAAAAEAAIAAAASAAcAAAAEAAIAAAASAAgAAAAEAAIAAAASAAkAAAAEAAIAAAATAAIAAAAEAAIAAAATAAMAAAAEAAIAAAATAAQAAAAEAAIAAAATAAUAAAAEAAIAAAATAAYAAAAEAAIAAAATAAcAAAAEAAIAAAATAAgAAAAEAAIAAAATAAkAAAAEAAIAAAAAAAAAAAAEAAIAAAAAAAEAAAAEAAIAAAABAAAAAAAEAAIAAAABAAEAAAAEAAIAAAACAAAAAAAEAAIAAAACAAEAAAAEAAIAAAADAAAAAAAEAAIAAAADAAEAAAAEAAIAAAAEAAAAAAAEAAIAAAAEAAEAAAAEAAIAAAAFAAAAAAAEAAIAAAAFAAEAAAAEAAIAAAAGAAAAAAAEAAIAAAAGAAEAAAAEAAIAAAAHAAAAAAAEAAIAAAAHAAEAAAAEAAIAAAAIAAAAAAAEAAIAAAAIAAEAAAAEAAIAAAAJAAAAAAAEAAIAAAAJAAEAAAAEAAIAAAAKAAAAAAAEAAIAAAAKAAEAAAAEAAIAAAALAAAAAAAEAAIAAAALAAEAAAAEAAIAAAALAAMAAAAEAAIAAAALAAQAAAAEAAIAAAAMAAAAAAAEAAIAAAAMAAEAAAAEAAIAAAAMAAMAAAAEAAIAAAAMAAQAAAAEAAIAAAANAAAAAAAEAAIAAAANAAEAAAAEAAIAAAAOAAAAAAAEAAIAAAAOAAEAAAAEAAIAAAAPAAAAAAAEAAIAAAAPAAEAAAAEAAIAAAAQAAAAAAAEAAIAAAAQAAEAAAAEAAIAAAARAAAAAAAEAAIAAAARAAEAAAAEAAIAAAASAAAAAAAEAAIAAAASAAEAAAAEAAIAAAATAAAAAAAEAAIAAAATAAEAAAAEAAIAAAA=")
tile_map_data = PackedByteArray("AAAAAAIABgAAAAEAAAAAAAMABgAAAAEAAAAAAAQABgAAAAEAAAAAAAUABgAAAAEAAAAAAAYABgAAAAEAAAAAAAcABgAAAAEAAAAAAAgABgAAAAEAAAAAAAkABgAAAAEAAAABAAIABgAAAAEAAAABAAMABgAAAAEAAAABAAQABgAAAAEAAAABAAUABgAAAAEAAAABAAYABgAAAAEAAAABAAcABgAAAAEAAAABAAgABgAAAAEAAAABAAkABgAAAAEAAAACAAIABgAAAAEAAAACAAMABgAAAAEAAAACAAQABgAGAAEAAAACAAUABgAGAAEAAAACAAYABgAGAAEAAAACAAcABgAGAAEAAAACAAgABgAAAAEAAAACAAkABgAAAAEAAAADAAIABgAAAAEAAAADAAMABgAAAAEAAAADAAQABgAGAAEAAAADAAUABgAGAAEAAAADAAYABgAGAAEAAAADAAcABgAGAAEAAAADAAgABgAAAAEAAAADAAkABgAAAAEAAAAEAAIABgAAAAEAAAAEAAMABgAAAAEAAAAEAAQABgAGAAEAAAAEAAUABgAGAAEAAAAEAAYABgAGAAEAAAAEAAcABgAGAAEAAAAEAAgABgAAAAEAAAAEAAkABgAAAAEAAAAFAAIABgAAAAEAAAAFAAMABgAAAAEAAAAFAAQABgAGAAEAAAAFAAUABgAGAAEAAAAFAAYABgAGAAEAAAAFAAcABgAGAAEAAAAFAAgABgAAAAEAAAAFAAkABgAAAAEAAAAGAAIABgAAAAEAAAAGAAMABgAAAAEAAAAGAAQABgAGAAEAAAAGAAUABgAGAAEAAAAGAAYABgAGAAEAAAAGAAcABgAGAAEAAAAGAAgABgAAAAEAAAAGAAkABgAAAAEAAAAHAAIABgAAAAEAAAAHAAMABgAAAAEAAAAHAAQABgAGAAEAAAAHAAUABgAGAAEAAAAHAAYABgAGAAEAAAAHAAcABgAGAAEAAAAHAAgABgAAAAEAAAAHAAkABgAAAAEAAAAIAAIABgAAAAEAAAAIAAMABgAAAAEAAAAIAAQABgAGAAEAAAAIAAUABgAGAAEAAAAIAAYABgAGAAEAAAAIAAcABgAGAAEAAAAIAAgABgAAAAEAAAAIAAkABgAAAAEAAAAJAAIABgAAAAEAAAAJAAMABgAAAAEAAAAJAAQABgAGAAEAAAAJAAUABgAGAAEAAAAJAAYABgAGAAEAAAAJAAcABgAGAAEAAAAJAAgABgAAAAEAAAAJAAkABgAAAAEAAAAKAAIABgAAAAEAAAAKAAMABgAAAAEAAAAKAAQABgAGAAEAAAAKAAUABgAGAAEAAAAKAAYABgAGAAEAAAAKAAcABgAGAAEAAAAKAAgABgAAAAEAAAAKAAkABgAAAAEAAAALAAIABgAAAAEAAAALAAUABgAGAAEAAAALAAYABgAGAAEAAAALAAcABgAGAAEAAAALAAgABgAAAAEAAAALAAkABgAAAAEAAAAMAAIABgAAAAEAAAAMAAUABgAGAAEAAAAMAAYABgAGAAEAAAAMAAcABgAGAAEAAAAMAAgABgAAAAEAAAAMAAkABgAAAAEAAAANAAIABgAAAAEAAAANAAMABgAAAAEAAAANAAQABgAGAAEAAAANAAUABgAGAAEAAAANAAYABgAGAAEAAAANAAcABgAGAAEAAAANAAgABgAAAAEAAAANAAkABgAAAAEAAAAOAAIABgAAAAEAAAAOAAMABgAAAAEAAAAOAAQABgAGAAEAAAAOAAUABgAGAAEAAAAOAAYABgAGAAEAAAAOAAcABgAGAAEAAAAOAAgABgAAAAEAAAAOAAkABgAAAAEAAAAPAAIABgAAAAEAAAAPAAMABgAAAAEAAAAPAAQABgAGAAEAAAAPAAUABgAGAAEAAAAPAAYABgAGAAEAAAAPAAcABgAGAAEAAAAPAAgABgAAAAEAAAAPAAkABgAAAAEAAAAQAAIABgAAAAEAAAAQAAMABgAAAAEAAAAQAAQABgAGAAEAAAAQAAUABgAGAAEAAAAQAAYABgAGAAEAAAAQAAcABgAGAAEAAAAQAAgABgAAAAEAAAAQAAkABgAAAAEAAAARAAIABgAAAAEAAAARAAMABgAAAAEAAAARAAQABgAGAAEAAAARAAUABgAGAAEAAAARAAYABgAGAAEAAAARAAcABgAGAAEAAAARAAgABgAAAAEAAAARAAkABgAAAAEAAAASAAIABgAAAAEAAAASAAMABgAAAAEAAAASAAQABgAAAAEAAAASAAUABgAAAAEAAAASAAYABgAAAAEAAAASAAcABgAAAAEAAAASAAgABgAAAAEAAAASAAkABgAAAAEAAAATAAIABgAAAAEAAAATAAMABgAAAAEAAAATAAQABgAAAAEAAAATAAUABgAAAAEAAAATAAYABgAAAAEAAAATAAcABgAAAAEAAAATAAgABgAAAAEAAAATAAkABgAAAAEAAAAAAAAABgAAAAEAAAAAAAEABgAAAAEAAAABAAAABgAAAAEAAAABAAEABgAAAAEAAAACAAAABgAAAAEAAAACAAEABgAAAAEAAAADAAAABgAAAAEAAAADAAEABgAAAAEAAAAEAAAABgAAAAEAAAAEAAEABgAAAAEAAAAFAAAABgAAAAEAAAAFAAEABgAAAAEAAAAGAAAABgAAAAEAAAAGAAEABgAAAAEAAAAHAAAABgAAAAEAAAAHAAEABgAAAAEAAAAIAAAABgAAAAEAAAAIAAEABgAAAAEAAAAJAAAABgAAAAEAAAAJAAEABgAAAAEAAAAKAAAABgAAAAEAAAAKAAEABgAAAAEAAAALAAAABgAAAAEAAAALAAEABgAAAAEAAAALAAMABgAAAAEAAAALAAQABgAGAAEAAAAMAAAABgAAAAEAAAAMAAEABgAAAAEAAAAMAAMABgAAAAEAAAAMAAQABgAGAAEAAAANAAAABgAAAAEAAAANAAEABgAAAAEAAAAOAAAABgAAAAEAAAAOAAEABgAAAAEAAAAPAAAABgAAAAEAAAAPAAEABgAAAAEAAAAQAAAABgAAAAEAAAAQAAEABgAAAAEAAAARAAAABgAAAAEAAAARAAEABgAAAAEAAAASAAAABgAAAAEAAAASAAEABgAAAAEAAAATAAAABgAAAAEAAAATAAEABgAAAAEAAAA=")
tile_set = ExtResource("5_q5p8k")
navigation_enabled = false
script = ExtResource("6_81nvh")

View file

@ -8,43 +8,38 @@ public partial class Active : PlayerStateBase
{
public override PlayerState StateId => PlayerState.Active;
private Vector2 _movementDirection { get; set; }
public Vector2 FacingDirection
{
get => _storageModule.FacingDirection;
private set => _storageModule.FacingDirection = value;
}
[Export]
public int Speed { get; set; } = 45;
[Export]
public int StrafeSpeed { get; set; } = 35;
[ExportCategory("Providers")]
[Export]
private PlayerWeaponProvider _weaponProvider;
[Export]
private PlayerAnimationProvider _animationProvider;
[Export]
private PlayerCrosshairProvider _crosshairProvider;
[Export] public int Speed { get; set; } = 45;
[Export] public int StrafeSpeed { get; set; } = 35;
[Export] public float Acceleration = 8f;
[Export] public float Deceleration = 8f;
[ExportCategory("Providers")] [Export] private PlayerWeaponProvider _weaponProvider;
[Export] private PlayerAnimationProvider _animationProvider;
[Export] private PlayerCrosshairProvider _crosshairProvider;
[Export] private PlayerHitboxSpriteProvider _hitboxSpriteProvider;
[Export]
private InputProvider _inputProvider;
[Export] private InputProvider _inputProvider;
[Export] private PlayerDamageReceiver _damageReceiver;
[Export] private ActivationProvider _activationProvider;
[Export] private InteractionController _interactionController;
[Export] private PlayerStorageModule _storageModule;
private bool _isStrafing;
public int MovementSpeed => _isStrafing ? StrafeSpeed : Speed;
private CharacterBody2D _player;
private Hud _hud;
public override void Init(IStateMachine<PlayerState, CharacterBody2D> machine)
@ -53,10 +48,7 @@ public partial class Active : PlayerStateBase
_hud = Hud.Instance;
_damageReceiver.Death += () =>
{
ChangeState(PlayerState.Dead);
};
_damageReceiver.Death += () => { ChangeState(PlayerState.Dead); };
_damageReceiver.HealthDecreased += (value, newValue, maxValue) =>
{
@ -69,14 +61,14 @@ public partial class Active : PlayerStateBase
_animationProvider.PlayShieldAnimation();
//_hud.UpdateShield(value, maxValue);
};
_damageReceiver.Init(StateMachine);
_damageReceiver.RefillHealth();
_damageReceiver.RefillShield();
_activationProvider.Init(MainObject);
//_weaponProvider = stateMachine.GetNode<PlayerWeaponProvider>("WeaponProvider");
//_animationProvider = stateMachine.GetNode<PlayerAnimationProvider>("AnimationProvider");
@ -93,6 +85,9 @@ public partial class Active : PlayerStateBase
_damageReceiver.Enabled = true;
_activationProvider.Enabled = true;
_interactionController.Enabled = true;
_accelerationPerSecond = Speed / Acceleration;
_decelerationPerSecond = Speed / Deceleration;
}
public override void ExitState()
@ -102,59 +97,79 @@ public partial class Active : PlayerStateBase
//_animationProvider.SetAnimation(Vector2.Zero);
_crosshairProvider.Hide();
_hitboxSpriteProvider.Hide();
_damageReceiver.Enabled = false;
_activationProvider.Enabled = false;
_interactionController.Enabled = false;
}
private float _accelerationPerSecond;
private float _decelerationPerSecond;
public override void PhysicsProcessState(double delta)
{
{
// Reset at start of frame
MainObject.Velocity = Vector2.Zero;
//MainObject.Velocity = Vector2.Zero;
// Process modules
base.PhysicsProcessState(delta);
MainObject.Velocity += _movementDirection * MovementSpeed;
if (_isStrafing)
{
// Instant movement at strafe speed
MainObject.Velocity = _movementDirection * StrafeSpeed;
}
else
{
Vector2 targetVelocity = _movementDirection * Speed;
if (_movementDirection != Vector2.Zero)
{
MainObject.Velocity = MainObject.Velocity.MoveToward(targetVelocity, Acceleration * (float)delta);
}
else
{
MainObject.Velocity = MainObject.Velocity.MoveToward(Vector2.Zero, Deceleration * (float)delta);
}
}
//MainObject.Velocity += _movementDirection * MovementSpeed;
MainObject.MoveAndSlide();
}
public override void ProcessState(double delta)
{
base.ProcessState(delta);
_movementDirection = _inputProvider.GetMovementInput().Normalized();
_isStrafing = _inputProvider.GetStrafePressed();
// Toggle visibility of the hitbox sprite based on strafing
_hitboxSpriteProvider.SetVisibility(_isStrafing);
var rightStickInput = _inputProvider.GetAimInput().Normalized();
// Update Facing Direction
// if (!_isStrafing)
// {
if (rightStickInput.Length() > 0.1f) // If the right stick is moved
{
FacingDirection = rightStickInput;
}
else if (_movementDirection != Vector2.Zero) // Fall back to movement direction
{
FacingDirection = _movementDirection;
}
if (rightStickInput.Length() > 0.1f) // If the right stick is moved
{
FacingDirection = rightStickInput;
}
else if (_movementDirection != Vector2.Zero) // Fall back to movement direction
{
FacingDirection = _movementDirection;
}
// }
_animationProvider.SetAnimationSpeed(MainObject.Velocity);
_animationProvider.SetAnimation(FacingDirection);
_crosshairProvider.UpdatePosition(FacingDirection);
HandleShoot();
HandleInteraction();
// FindInteractable();
@ -199,4 +214,4 @@ public partial class Active : PlayerStateBase
_weaponProvider.PreviousWeapon();
}
}
}
}

View file

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

BIN
Sprites/Actors/Cirno-Shadow.aseprite (Stored with Git LFS) Normal file

Binary file not shown.

BIN
Sprites/Actors/Cirno-Shadow.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cvngivvogv17l"
path="res://.godot/imported/Cirno-Shadow.png-6878e16fc4e2656f255c377fa11ab7dd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Sprites/Actors/Cirno-Shadow.png"
dest_files=["res://.godot/imported/Cirno-Shadow.png-6878e16fc4e2656f255c377fa11ab7dd.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/Actors/Cirno_Float.aseprite (Stored with Git LFS) Normal file

Binary file not shown.