Added shadows to enemies
@@ -1,4 +1,4 @@
|
|||||||
<Project Sdk="Godot.NET.Sdk/4.4.0">
|
<Project Sdk="Godot.NET.Sdk/4.4.1">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<EnableDynamicLoading>true</EnableDynamicLoading>
|
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||||
|
|||||||
38
Zennysoft.Game.Ma/Ma.csproj.old.5
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<Project Sdk="Godot.NET.Sdk/4.4.0">
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
|
<EnableDynamicLoading>true</EnableDynamicLoading>
|
||||||
|
<WarningsAsErrors>CS9057</WarningsAsErrors>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Chickensoft.AutoInject" Version="2.5.0" />
|
||||||
|
<PackageReference Include="Chickensoft.GodotNodeInterfaces" Version="2.4.0" />
|
||||||
|
<PackageReference Include="Chickensoft.Introspection" Version="2.2.0" />
|
||||||
|
<PackageReference Include="Chickensoft.Introspection.Generator" Version="2.2.0" />
|
||||||
|
<PackageReference Include="Chickensoft.LogicBlocks" Version="5.16.0" />
|
||||||
|
<PackageReference Include="Chickensoft.LogicBlocks.DiagramGenerator" Version="5.16.0" />
|
||||||
|
<PackageReference Include="Chickensoft.SaveFileBuilder" Version="1.1.0" />
|
||||||
|
<PackageReference Include="Chickensoft.Serialization.Godot" Version="0.7.6" />
|
||||||
|
<PackageReference Include="GodotSharp.SourceGenerators" Version="2.6.0-250131-2115.Release" />
|
||||||
|
<PackageReference Include="SimpleInjector" Version="5.5.0" />
|
||||||
|
<PackageReference Include="SSH.NET" Version="2024.2.0" />
|
||||||
|
<PackageReference Include="System.IO.Abstractions" Version="22.0.11" />
|
||||||
|
<PackageReference Include="Zeroconf" Version="3.7.16" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include=".editorconfig" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Zennysoft.Game.Godot.Implementation\Zennysoft.Game.Implementation.csproj" />
|
||||||
|
<ProjectReference Include="..\Zennysoft.Game.Ma.Implementation\Zennysoft.Ma.Adapter.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Update="Godot.SourceGenerators" Version="4.4.0-dev.2" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Update="GodotSharp" Version="4.4.0-dev.2" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Update="GodotSharpEditor" Version="4.4.0-dev.2" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
@@ -1,4 +1,8 @@
|
|||||||
[gd_resource type="AudioBusLayout" load_steps=2 format=3 uid="uid://c2mk6c27y0mdf"]
|
[gd_resource type="AudioBusLayout" load_steps=4 format=3 uid="uid://c2mk6c27y0mdf"]
|
||||||
|
|
||||||
|
[sub_resource type="AudioEffectLimiter" id="AudioEffectLimiter_j3pel"]
|
||||||
|
resource_name = "Limiter"
|
||||||
|
soft_clip_db = 1.0
|
||||||
|
|
||||||
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_j3pel"]
|
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_j3pel"]
|
||||||
resource_name = "Reverb"
|
resource_name = "Reverb"
|
||||||
@@ -7,8 +11,16 @@ damping = 0.9
|
|||||||
dry = 0.99
|
dry = 0.99
|
||||||
wet = 0.05
|
wet = 0.05
|
||||||
|
|
||||||
|
[sub_resource type="AudioEffectLimiter" id="AudioEffectLimiter_g28q7"]
|
||||||
|
resource_name = "Limiter"
|
||||||
|
ceiling_db = -0.5
|
||||||
|
threshold_db = -0.6
|
||||||
|
soft_clip_db = 1.5
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
bus/0/volume_db = -0.130497
|
bus/0/volume_db = -0.130497
|
||||||
|
bus/0/effect/0/effect = SubResource("AudioEffectLimiter_j3pel")
|
||||||
|
bus/0/effect/0/enabled = true
|
||||||
bus/1/name = &"AMBIENT"
|
bus/1/name = &"AMBIENT"
|
||||||
bus/1/solo = false
|
bus/1/solo = false
|
||||||
bus/1/mute = false
|
bus/1/mute = false
|
||||||
@@ -23,6 +35,8 @@ bus/2/volume_db = 0.0
|
|||||||
bus/2/send = &"Master"
|
bus/2/send = &"Master"
|
||||||
bus/2/effect/0/effect = SubResource("AudioEffectReverb_j3pel")
|
bus/2/effect/0/effect = SubResource("AudioEffectReverb_j3pel")
|
||||||
bus/2/effect/0/enabled = true
|
bus/2/effect/0/enabled = true
|
||||||
|
bus/2/effect/1/effect = SubResource("AudioEffectLimiter_g28q7")
|
||||||
|
bus/2/effect/1/enabled = true
|
||||||
bus/3/name = &"MUSIC"
|
bus/3/name = &"MUSIC"
|
||||||
bus/3/solo = false
|
bus/3/solo = false
|
||||||
bus/3/mute = false
|
bus/3/mute = false
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ public partial class EnemyModelView2D : EnemyModelView, IEnemyModelView
|
|||||||
|
|
||||||
public new void OnReady()
|
public new void OnReady()
|
||||||
{
|
{
|
||||||
Hitbox.AreaEntered += Hitbox_AreaEntered;
|
Hitbox.AreaEntered += Hitbox_AreaEntered;
|
||||||
base.OnReady();
|
base.OnReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Hitbox_AreaEntered(Area3D area) => OnPlayerHit(new AttackEventArgs(AttackData));
|
private void Hitbox_AreaEntered(Area3D area) => OnPlayerHit(new AttackEventArgs(AttackData));
|
||||||
@@ -40,102 +40,102 @@ public partial class EnemyModelView2D : EnemyModelView, IEnemyModelView
|
|||||||
|
|
||||||
public override void PlayHitAnimation()
|
public override void PlayHitAnimation()
|
||||||
{
|
{
|
||||||
LoadShader("res://src/vfx/shaders/DamageHit.gdshader");
|
LoadShader("res://src/vfx/shaders/DamageHit.gdshader");
|
||||||
var tweener = GetTree().CreateTween();
|
var tweener = GetTree().CreateTween();
|
||||||
tweener.TweenMethod(Callable.From((float x) => SetShaderValue(x)), 0.0f, 1.0f, 1.0f);
|
tweener.TweenMethod(Callable.From((float x) => SetShaderValue(x)), 0.0f, 1.0f, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void PlayDeathAnimation()
|
public override void PlayDeathAnimation()
|
||||||
{
|
{
|
||||||
LoadShader("res://src/vfx/shaders/PixelMelt.gdshader");
|
LoadShader("res://src/vfx/shaders/PixelMelt.gdshader");
|
||||||
var tweener = GetTree().CreateTween();
|
var tweener = GetTree().CreateTween();
|
||||||
tweener.TweenMethod(Callable.From((float x) => SetShaderValue(x)), 0.0f, 1.0f, 0.8f);
|
tweener.TweenMethod(Callable.From((float x) => SetShaderValue(x)), 0.0f, 1.0f, 0.8f);
|
||||||
}
|
}
|
||||||
|
|
||||||
private EnemyDirection GetEnemyDirection(
|
private EnemyDirection GetEnemyDirection(
|
||||||
Basis enemyBasis,
|
Basis enemyBasis,
|
||||||
Vector3 cameraDirection,
|
Vector3 cameraDirection,
|
||||||
float rotateUpperThreshold,
|
float rotateUpperThreshold,
|
||||||
float rotateLowerThreshold)
|
float rotateLowerThreshold)
|
||||||
{
|
{
|
||||||
var enemyForwardDirection = enemyBasis.Z;
|
var enemyForwardDirection = enemyBasis.Z;
|
||||||
var enemyLeftDirection = enemyBasis.X;
|
var enemyLeftDirection = enemyBasis.X;
|
||||||
|
|
||||||
var leftDotProduct = enemyLeftDirection.Dot(cameraDirection);
|
var leftDotProduct = enemyLeftDirection.Dot(cameraDirection);
|
||||||
var forwardDotProduct = enemyForwardDirection.Dot(cameraDirection);
|
var forwardDotProduct = enemyForwardDirection.Dot(cameraDirection);
|
||||||
|
|
||||||
// Check if forward facing. If the dot product is -1, the enemy is facing the camera.
|
// Check if forward facing. If the dot product is -1, the enemy is facing the camera.
|
||||||
if (forwardDotProduct < _lowerThreshold)
|
if (forwardDotProduct < _lowerThreshold)
|
||||||
{
|
{
|
||||||
SetForward();
|
SetForward();
|
||||||
return EnemyDirection.Forward;
|
return EnemyDirection.Forward;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if backward facing. If the dot product is 1, the enemy is facing the same direction as the camera.
|
// Check if backward facing. If the dot product is 1, the enemy is facing the same direction as the camera.
|
||||||
else if (forwardDotProduct > rotateUpperThreshold)
|
else if (forwardDotProduct > rotateUpperThreshold)
|
||||||
{
|
{
|
||||||
SetBack();
|
SetBack();
|
||||||
return EnemyDirection.Backward;
|
return EnemyDirection.Backward;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// If the dot product of the perpendicular direction is positive (up to 1), the enemy is facing to the left (since it's mirrored).
|
// If the dot product of the perpendicular direction is positive (up to 1), the enemy is facing to the left (since it's mirrored).
|
||||||
if (leftDotProduct < _lowerThreshold)
|
if (leftDotProduct < _lowerThreshold)
|
||||||
{
|
{
|
||||||
SetRight();
|
SetRight();
|
||||||
return EnemyDirection.Left;
|
return EnemyDirection.Left;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if side facing. If the dot product is close to zero in the positive or negative direction, its close to the threshold for turning.
|
// Check if side facing. If the dot product is close to zero in the positive or negative direction, its close to the threshold for turning.
|
||||||
if (leftDotProduct > rotateUpperThreshold)
|
if (leftDotProduct > rotateUpperThreshold)
|
||||||
{
|
{
|
||||||
SetLeft();
|
SetLeft();
|
||||||
return EnemyDirection.Right;
|
return EnemyDirection.Right;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return _enemyDirection;
|
return _enemyDirection;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void LoadShader(string shaderPath)
|
private void LoadShader(string shaderPath)
|
||||||
{
|
{
|
||||||
var shader = GD.Load<Shader>(shaderPath);
|
var shader = GD.Load<Shader>(shaderPath);
|
||||||
var sprites = FindChildren("*", "AnimatedSprite2D", true).Cast<AnimatedSprite2D>();
|
var sprites = FindChildren("*", "AnimatedSprite2D", true).Cast<AnimatedSprite2D>();
|
||||||
foreach (var sprite in sprites)
|
foreach (var sprite in sprites)
|
||||||
{
|
{
|
||||||
sprite.Material = new ShaderMaterial();
|
sprite.Material = new ShaderMaterial();
|
||||||
var shaderMaterial = (ShaderMaterial)sprite.Material;
|
var shaderMaterial = (ShaderMaterial)sprite.Material;
|
||||||
shaderMaterial.Shader = shader;
|
shaderMaterial.Shader = shader;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetShaderValue(float shaderValue)
|
private void SetShaderValue(float shaderValue)
|
||||||
{
|
{
|
||||||
var sprites = FindChildren("*", "AnimatedSprite2D", true).Cast<AnimatedSprite2D>();
|
var sprites = FindChildren("*", "AnimatedSprite2D", true).Cast<AnimatedSprite2D>();
|
||||||
foreach (var sprite in sprites)
|
foreach (var sprite in sprites)
|
||||||
{
|
{
|
||||||
var shaderMaterial = (ShaderMaterial)sprite.Material;
|
var shaderMaterial = (ShaderMaterial)sprite.Material;
|
||||||
shaderMaterial.SetShaderParameter("progress", shaderValue);
|
shaderMaterial.SetShaderParameter("progress", shaderValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetForward()
|
private void SetForward()
|
||||||
{
|
{
|
||||||
_enemyDirection = EnemyDirection.Forward;
|
_enemyDirection = EnemyDirection.Forward;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetLeft()
|
private void SetLeft()
|
||||||
{
|
{
|
||||||
_enemyDirection = EnemyDirection.Left;
|
_enemyDirection = EnemyDirection.Left;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetRight()
|
private void SetRight()
|
||||||
{
|
{
|
||||||
_enemyDirection = EnemyDirection.Right;
|
_enemyDirection = EnemyDirection.Right;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetBack()
|
private void SetBack()
|
||||||
{
|
{
|
||||||
_enemyDirection = EnemyDirection.Backward;
|
_enemyDirection = EnemyDirection.Backward;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=79 format=3 uid="uid://bimjnsu52y3xi"]
|
[gd_scene load_steps=80 format=3 uid="uid://bimjnsu52y3xi"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_oh25a"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_oh25a"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dd0ia6isdqg61" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 1.png" id="1_pbx41"]
|
[ext_resource type="Texture2D" uid="uid://dd0ia6isdqg61" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 1.png" id="1_pbx41"]
|
||||||
@@ -59,6 +59,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://b1cmx8l4ia3fv" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 14.png" id="54_jdvn0"]
|
[ext_resource type="Texture2D" uid="uid://b1cmx8l4ia3fv" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 14.png" id="54_jdvn0"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c7t4626rox02s" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 15.png" id="55_2eqor"]
|
[ext_resource type="Texture2D" uid="uid://c7t4626rox02s" path="res://src/enemy/enemy_types/01. sproingy/animations/IDLE_WALK_SIDE/Layer 15.png" id="55_2eqor"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="60_x7uye"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="60_x7uye"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="61_djeua"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="62_8wbs7"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="62_8wbs7"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_ivy74"]
|
[sub_resource type="Resource" id="Resource_ivy74"]
|
||||||
@@ -715,3 +716,10 @@ anim_player = NodePath("../AnimationPlayer")
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
autoplay = true
|
autoplay = true
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(0.115, 0, 0, 0, -5.02681e-09, 0.115, 0, -0.115, -5.02681e-09, -0.00018537, -1.10125, 0.0453106)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("61_djeua")
|
||||||
|
|||||||
@@ -18,23 +18,23 @@ public partial class Michael : Enemy2D, IHavePatrolBehavior, IHaveEngagePlayerBe
|
|||||||
|
|
||||||
public void OnReady()
|
public void OnReady()
|
||||||
{
|
{
|
||||||
FollowBehavior.Init(NavigationAgent);
|
FollowBehavior.Init(NavigationAgent);
|
||||||
PatrolBehavior.Init(NavigationAgent);
|
PatrolBehavior.Init(NavigationAgent);
|
||||||
PatrolBehavior.HomePosition = GlobalPosition;
|
PatrolBehavior.HomePosition = GlobalPosition;
|
||||||
PatrolBehavior.OnVelocityComputed += OnVelocityComputed;
|
PatrolBehavior.OnVelocityComputed += OnVelocityComputed;
|
||||||
FollowBehavior.OnVelocityComputed += OnVelocityComputed;
|
FollowBehavior.OnVelocityComputed += OnVelocityComputed;
|
||||||
EngagePlayerBehavior.TakeAction += EngagePlayerBehavior_TakeAction;
|
EngagePlayerBehavior.TakeAction += EngagePlayerBehavior_TakeAction;
|
||||||
EngagePlayerBehavior.AcquireTarget += EngagePlayerBehavior_AcquireTarget;
|
EngagePlayerBehavior.AcquireTarget += EngagePlayerBehavior_AcquireTarget;
|
||||||
PlayerDetector.BodyEntered += PlayerDetector_BodyEntered;
|
PlayerDetector.BodyEntered += PlayerDetector_BodyEntered;
|
||||||
PlayerDetector.BodyExited += PlayerDetector_BodyExited;
|
PlayerDetector.BodyExited += PlayerDetector_BodyExited;
|
||||||
SetPhysicsProcess(true);
|
SetPhysicsProcess(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnResolved()
|
public void OnResolved()
|
||||||
{
|
{
|
||||||
_enemyLogic.Input(new EnemyLogic.Input.Patrol());
|
_enemyLogic.Input(new EnemyLogic.Input.Patrol());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public override void Move() => EnemyModelView.PlayIdleAnimation();
|
public override void Move() => EnemyModelView.PlayIdleAnimation();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ shape = SubResource("CapsuleShape3D_0h5s2")
|
|||||||
|
|
||||||
[node name="EnemyModelView" parent="." instance=ExtResource("3_wrps7")]
|
[node name="EnemyModelView" parent="." instance=ExtResource("3_wrps7")]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0799522, 0, 0)
|
||||||
|
|
||||||
[node name="PlayerDetector" type="Area3D" parent="."]
|
[node name="PlayerDetector" type="Area3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=141 format=3 uid="uid://bjg8wyvp8q6oc"]
|
[gd_scene load_steps=142 format=3 uid="uid://bjg8wyvp8q6oc"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_o4cc2"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_o4cc2"]
|
||||||
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_3eot4"]
|
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_3eot4"]
|
||||||
@@ -75,6 +75,7 @@
|
|||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="74_fxhv6"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="74_fxhv6"]
|
||||||
[ext_resource type="Texture2D" uid="uid://duygq1qfer5oa" path="res://src/vfx/Enemy/michael_attack.png" id="74_mip6u"]
|
[ext_resource type="Texture2D" uid="uid://duygq1qfer5oa" path="res://src/vfx/Enemy/michael_attack.png" id="74_mip6u"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="74_pxi1p"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="74_pxi1p"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="76_fxhv6"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_gby04"]
|
[sub_resource type="Resource" id="Resource_gby04"]
|
||||||
script = ExtResource("2_3eot4")
|
script = ExtResource("2_3eot4")
|
||||||
@@ -1246,3 +1247,11 @@ sprite_frames = SubResource("SpriteFrames_suy1t")
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
autoplay = true
|
autoplay = true
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(0.38, 0, 0, 0, -1.66103e-08, 0.38, 0, -0.38, -1.66103e-08, 0.00393164, -1.31885, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("76_fxhv6")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=420 format=3 uid="uid://bup8c4x1na3aw"]
|
[gd_scene load_steps=421 format=3 uid="uid://bup8c4x1na3aw"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_718m1"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_718m1"]
|
||||||
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_krqul"]
|
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_krqul"]
|
||||||
@@ -193,6 +193,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://cvivq23738fvf" path="res://src/enemy/enemy_types/03. filth_eater/animations/Filth Side Attacks Frames/ATTACK 2 SIDE/frame_072_delay-0.01s.png" id="189_uqsli"]
|
[ext_resource type="Texture2D" uid="uid://cvivq23738fvf" path="res://src/enemy/enemy_types/03. filth_eater/animations/Filth Side Attacks Frames/ATTACK 2 SIDE/frame_072_delay-0.01s.png" id="189_uqsli"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bxijhjyqvfrip" path="res://src/enemy/enemy_types/03. filth_eater/animations/Filth Side Attacks Frames/ATTACK 2 SIDE/frame_073_delay-0.01s.png" id="190_wg32o"]
|
[ext_resource type="Texture2D" uid="uid://bxijhjyqvfrip" path="res://src/enemy/enemy_types/03. filth_eater/animations/Filth Side Attacks Frames/ATTACK 2 SIDE/frame_073_delay-0.01s.png" id="190_wg32o"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dl818xjlcm7vu" path="res://src/audio/sfx/ENEMY_FILTH_ATTACK.ogg" id="193_4h5gj"]
|
[ext_resource type="AudioStream" uid="uid://dl818xjlcm7vu" path="res://src/audio/sfx/ENEMY_FILTH_ATTACK.ogg" id="193_4h5gj"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="193_e5pq0"]
|
||||||
[ext_resource type="PackedScene" uid="uid://diaxvpmwgl65u" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="193_krqul"]
|
[ext_resource type="PackedScene" uid="uid://diaxvpmwgl65u" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="193_krqul"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d0q5jru1am4v0" path="res://src/vfx/Enemy/FILTH_BLAST.png" id="194_pyy2h"]
|
[ext_resource type="Texture2D" uid="uid://d0q5jru1am4v0" path="res://src/vfx/Enemy/FILTH_BLAST.png" id="194_pyy2h"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="194_u5xjp"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="194_u5xjp"]
|
||||||
@@ -3338,6 +3339,14 @@ rotation = 0.0174533
|
|||||||
sprite_frames = SubResource("SpriteFrames_673a4")
|
sprite_frames = SubResource("SpriteFrames_673a4")
|
||||||
animation = &"idle_back_walk"
|
animation = &"idle_back_walk"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="Sprite3D"]
|
||||||
|
transform = Transform3D(0.93, 0, 0, 0, -4.06516e-08, 0.93, 0, -0.93, -4.06516e-08, 0.00393164, -0.670112, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("193_e5pq0")
|
||||||
|
|
||||||
[node name="Hitbox" type="Area3D" parent="."]
|
[node name="Hitbox" type="Area3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 0, 0)
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 0, 0)
|
||||||
|
|||||||
@@ -23,30 +23,30 @@ public partial class Sara : Enemy2D, IHavePatrolBehavior, IHaveEngagePlayerBehav
|
|||||||
|
|
||||||
public void OnReady()
|
public void OnReady()
|
||||||
{
|
{
|
||||||
FollowBehavior.Init(NavigationAgent);
|
FollowBehavior.Init(NavigationAgent);
|
||||||
PatrolBehavior.Init(NavigationAgent);
|
PatrolBehavior.Init(NavigationAgent);
|
||||||
PatrolBehavior.HomePosition = GlobalPosition;
|
PatrolBehavior.HomePosition = GlobalPosition;
|
||||||
PatrolBehavior.OnVelocityComputed += OnVelocityComputed;
|
PatrolBehavior.OnVelocityComputed += OnVelocityComputed;
|
||||||
FollowBehavior.OnVelocityComputed += OnVelocityComputed;
|
FollowBehavior.OnVelocityComputed += OnVelocityComputed;
|
||||||
EngagePlayerBehavior.TakeAction += EngagePlayerBehavior_TakeAction;
|
EngagePlayerBehavior.TakeAction += EngagePlayerBehavior_TakeAction;
|
||||||
EngagePlayerBehavior.AcquireTarget += EngagePlayerBehavior_AcquireTarget;
|
EngagePlayerBehavior.AcquireTarget += EngagePlayerBehavior_AcquireTarget;
|
||||||
PlayerDetector.BodyEntered += PlayerDetector_BodyEntered;
|
PlayerDetector.BodyEntered += PlayerDetector_BodyEntered;
|
||||||
PlayerDetector.BodyExited += PlayerDetector_BodyExited;
|
PlayerDetector.BodyExited += PlayerDetector_BodyExited;
|
||||||
SetPhysicsProcess(true);
|
SetPhysicsProcess(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnResolved()
|
public void OnResolved()
|
||||||
{
|
{
|
||||||
_enemyLogic.Input(new EnemyLogic.Input.Patrol());
|
_enemyLogic.Input(new EnemyLogic.Input.Patrol());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Move() => EnemyModelView.PlayIdleAnimation();
|
public override void Move() => EnemyModelView.PlayIdleAnimation();
|
||||||
|
|
||||||
public override void PerformAction()
|
public override void PerformAction()
|
||||||
{
|
{
|
||||||
var rng = new RandomNumberGenerator();
|
var rng = new RandomNumberGenerator();
|
||||||
var options = new List<Action>() { EnemyModelView.PlayPrimaryAttackAnimation, EnemyModelView.PlaySecondaryAttackAnimation };
|
var options = new List<Action>() { EnemyModelView.PlayPrimaryAttackAnimation, EnemyModelView.PlaySecondaryAttackAnimation };
|
||||||
var selection = rng.RandWeighted([PrimaryAttackChance, SecondaryAttackChance]);
|
var selection = rng.RandWeighted([PrimaryAttackChance, SecondaryAttackChance]);
|
||||||
options[(int)selection].Invoke();
|
options[(int)selection].Invoke();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=14 format=3 uid="uid://bksq62muhk3h5"]
|
[gd_scene load_steps=15 format=3 uid="uid://bksq62muhk3h5"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://jjulhqd5g3bd" path="res://src/enemy/enemy_types/04. sara/Sara.cs" id="1_3ejdn"]
|
[ext_resource type="Script" uid="uid://jjulhqd5g3bd" path="res://src/enemy/enemy_types/04. sara/Sara.cs" id="1_3ejdn"]
|
||||||
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_8ymq6"]
|
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_8ymq6"]
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_lxgpb"]
|
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_lxgpb"]
|
||||||
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_ddchx"]
|
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_ddchx"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_746fv"]
|
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_746fv"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="10_746fv"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bemrovoemoq5u" path="res://src/audio/sfx/ENEMY_APSARA_AGGRO.ogg" id="10_ddchx"]
|
[ext_resource type="AudioStream" uid="uid://bemrovoemoq5u" path="res://src/audio/sfx/ENEMY_APSARA_AGGRO.ogg" id="10_ddchx"]
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
|
||||||
@@ -119,3 +120,11 @@ bus = &"SFX"
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
stream = ExtResource("10_ddchx")
|
stream = ExtResource("10_ddchx")
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(0.925, 0, 0, 0, -4.0433e-08, 0.925, 0, -0.925, -4.0433e-08, 0.00393164, -1.00089, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("10_746fv")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=172 format=3 uid="uid://c5xijwxkg4pf6"]
|
[gd_scene load_steps=173 format=3 uid="uid://c5xijwxkg4pf6"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_ueqp5"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_ueqp5"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bgkx485uy065" path="res://src/enemy/enemy_types/05. ballos/animations/WALK BACK/1.png" id="3_b3ny6"]
|
[ext_resource type="Texture2D" uid="uid://bgkx485uy065" path="res://src/enemy/enemy_types/05. ballos/animations/WALK BACK/1.png" id="3_b3ny6"]
|
||||||
@@ -99,6 +99,7 @@
|
|||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://clybvwx3itfeo" path="res://src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres" id="97_i3hgg"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://clybvwx3itfeo" path="res://src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres" id="97_i3hgg"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="97_ktg2j"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="97_ktg2j"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cy2ngl55c0rws" path="res://src/enemy/animation_state_machines/WalkingStateMachine.tres" id="98_ktg2j"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cy2ngl55c0rws" path="res://src/enemy/animation_state_machines/WalkingStateMachine.tres" id="98_ktg2j"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="100_ktg2j"]
|
||||||
|
|
||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
|
||||||
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
|
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
|
||||||
@@ -1533,3 +1534,11 @@ unique_name_in_owner = true
|
|||||||
stream = ExtResource("94_i3hgg")
|
stream = ExtResource("94_i3hgg")
|
||||||
autoplay = true
|
autoplay = true
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(1.265, 0, 0, 0, -5.52949e-08, 1.265, 0, -1.265, -5.52949e-08, 0.00393164, -1.31885, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("100_ktg2j")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=1238 format=3 uid="uid://dcm53j3rncxdm"]
|
[gd_scene load_steps=1239 format=3 uid="uid://dcm53j3rncxdm"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://ckxqmb4tu4rml" path="res://src/enemy/enemy_types/06. chariot/ChariotModelView.cs" id="1_behrq"]
|
[ext_resource type="Script" uid="uid://ckxqmb4tu4rml" path="res://src/enemy/enemy_types/06. chariot/ChariotModelView.cs" id="1_behrq"]
|
||||||
[ext_resource type="Texture2D" uid="uid://2gwychj1wbtx" path="res://src/enemy/enemy_types/06. chariot/animations/APPEAR/F/0051.png" id="2_1844k"]
|
[ext_resource type="Texture2D" uid="uid://2gwychj1wbtx" path="res://src/enemy/enemy_types/06. chariot/animations/APPEAR/F/0051.png" id="2_1844k"]
|
||||||
@@ -979,6 +979,7 @@
|
|||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cy2ngl55c0rws" path="res://src/enemy/animation_state_machines/WalkingStateMachine.tres" id="976_vxyya"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cy2ngl55c0rws" path="res://src/enemy/animation_state_machines/WalkingStateMachine.tres" id="976_vxyya"]
|
||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="978_jrkfh"]
|
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="978_jrkfh"]
|
||||||
[ext_resource type="Texture2D" uid="uid://f32ew15v8v30" path="res://src/vfx/Enemy/chariot_projectile.png" id="979_p70s4"]
|
[ext_resource type="Texture2D" uid="uid://f32ew15v8v30" path="res://src/vfx/Enemy/chariot_projectile.png" id="979_p70s4"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="980_jrkfh"]
|
||||||
|
|
||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_vr4bf"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_vr4bf"]
|
||||||
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
|
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
|
||||||
@@ -8098,3 +8099,11 @@ libraries = {
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
autoplay = true
|
autoplay = true
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(1.08, 0, 0, 0, -4.72083e-08, 1.08, 0, -1.08, -4.72083e-08, 0.00393164, -1.92335, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("980_jrkfh")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=504 format=3 uid="uid://byd7cwxq1be6f"]
|
[gd_scene load_steps=505 format=3 uid="uid://byd7cwxq1be6f"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_6dej3"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_6dej3"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dnd6d5cx7x7i8" path="res://src/enemy/enemy_types/07. chinthe/animations/CHINTHE - RERENDER/BACK/0400.png" id="2_3sdh3"]
|
[ext_resource type="Texture2D" uid="uid://dnd6d5cx7x7i8" path="res://src/enemy/enemy_types/07. chinthe/animations/CHINTHE - RERENDER/BACK/0400.png" id="2_3sdh3"]
|
||||||
@@ -396,6 +396,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://csdrkeer8xklt" path="res://src/enemy/enemy_types/07. chinthe/animations/CHINTHE - RERENDER/FRONT/0354.png" id="390_ksvn0"]
|
[ext_resource type="Texture2D" uid="uid://csdrkeer8xklt" path="res://src/enemy/enemy_types/07. chinthe/animations/CHINTHE - RERENDER/FRONT/0354.png" id="390_ksvn0"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dr7w0i4v8qqip" path="res://src/audio/sfx/enemy_chinthe_land.ogg" id="391_5lbxl"]
|
[ext_resource type="AudioStream" uid="uid://dr7w0i4v8qqip" path="res://src/audio/sfx/enemy_chinthe_land.ogg" id="391_5lbxl"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bq4te4d8m0uiw" path="res://src/audio/sfx/enemy_chinthe_mainattack.ogg" id="392_li182"]
|
[ext_resource type="AudioStream" uid="uid://bq4te4d8m0uiw" path="res://src/audio/sfx/enemy_chinthe_mainattack.ogg" id="392_li182"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="392_sgkk0"]
|
||||||
[ext_resource type="AudioStream" uid="uid://b0w77kgmtd3g5" path="res://src/audio/sfx/enemy_chinthe_teleport.ogg" id="393_sgkk0"]
|
[ext_resource type="AudioStream" uid="uid://b0w77kgmtd3g5" path="res://src/audio/sfx/enemy_chinthe_teleport.ogg" id="393_sgkk0"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="394_ldtka"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="394_ldtka"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c7pf2dib2ilhs" path="res://src/vfx/Enemy/CHINTHE_BLAST.png" id="395_ymova"]
|
[ext_resource type="Texture2D" uid="uid://c7pf2dib2ilhs" path="res://src/vfx/Enemy/CHINTHE_BLAST.png" id="395_ymova"]
|
||||||
@@ -3522,6 +3523,14 @@ sprite_frames = SubResource("SpriteFrames_22ecf")
|
|||||||
animation = &"idle_front_walk"
|
animation = &"idle_front_walk"
|
||||||
offset = Vector2(500, 500)
|
offset = Vector2(500, 500)
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="Sprite3D"]
|
||||||
|
transform = Transform3D(0.5, 0, 0, 0, -2.18557e-08, 0.5, 0, -0.5, -2.18557e-08, 0.00393164, -0.943969, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("392_sgkk0")
|
||||||
|
|
||||||
[node name="Hitbox" type="Area3D" parent="."]
|
[node name="Hitbox" type="Area3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 0, 0)
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 0, 0)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=299 format=3 uid="uid://c2i8ylr3y0bri"]
|
[gd_scene load_steps=300 format=3 uid="uid://c2i8ylr3y0bri"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_h27bt"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_h27bt"]
|
||||||
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_yyynn"]
|
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_yyynn"]
|
||||||
@@ -266,6 +266,7 @@
|
|||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cy2ngl55c0rws" path="res://src/enemy/animation_state_machines/WalkingStateMachine.tres" id="263_312rt"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cy2ngl55c0rws" path="res://src/enemy/animation_state_machines/WalkingStateMachine.tres" id="263_312rt"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="263_sroq1"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="263_sroq1"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://clybvwx3itfeo" path="res://src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres" id="264_dcx20"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://clybvwx3itfeo" path="res://src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres" id="264_dcx20"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="267_evddb"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_f45wt"]
|
[sub_resource type="Resource" id="Resource_f45wt"]
|
||||||
script = ExtResource("2_yyynn")
|
script = ExtResource("2_yyynn")
|
||||||
@@ -2059,3 +2060,11 @@ bus = &"SFX"
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
autoplay = true
|
autoplay = true
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(0.835, 0, 0, 0, -3.6499e-08, 0.835, 0, -0.835, -3.6499e-08, 0.00393164, -1.31885, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("267_evddb")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=299 format=3 uid="uid://72lbcmp4bcx4"]
|
[gd_scene load_steps=300 format=3 uid="uid://72lbcmp4bcx4"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_a8qtn"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_a8qtn"]
|
||||||
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_xa3ug"]
|
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_xa3ug"]
|
||||||
@@ -261,6 +261,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://dg7l1crtk7m3s" path="res://src/enemy/enemy_types/08b. Ambassador (red)/animations/SIDE/0197.png" id="259_ymdu4"]
|
[ext_resource type="Texture2D" uid="uid://dg7l1crtk7m3s" path="res://src/enemy/enemy_types/08b. Ambassador (red)/animations/SIDE/0197.png" id="259_ymdu4"]
|
||||||
[ext_resource type="Texture2D" uid="uid://by2vqyh68egwr" path="res://src/enemy/enemy_types/08b. Ambassador (red)/animations/SIDE/0199.png" id="260_jtq5d"]
|
[ext_resource type="Texture2D" uid="uid://by2vqyh68egwr" path="res://src/enemy/enemy_types/08b. Ambassador (red)/animations/SIDE/0199.png" id="260_jtq5d"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bgumf0x52xmby" path="res://src/audio/sfx/enemy_ambassador_kick.ogg" id="261_qerwx"]
|
[ext_resource type="AudioStream" uid="uid://bgumf0x52xmby" path="res://src/audio/sfx/enemy_ambassador_kick.ogg" id="261_qerwx"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="261_xxvov"]
|
||||||
[ext_resource type="PackedScene" uid="uid://diaxvpmwgl65u" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="262_a3dro"]
|
[ext_resource type="PackedScene" uid="uid://diaxvpmwgl65u" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="262_a3dro"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="263_qerwx"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="263_qerwx"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="264_xxvov"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="264_xxvov"]
|
||||||
@@ -1976,6 +1977,14 @@ scale = Vector2(0.25, 0.25)
|
|||||||
sprite_frames = SubResource("SpriteFrames_6drt6")
|
sprite_frames = SubResource("SpriteFrames_6drt6")
|
||||||
animation = &"idle_front"
|
animation = &"idle_front"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="Sprite3D"]
|
||||||
|
transform = Transform3D(0.29, 0, 0, 0, -1.26763e-08, 0.29, 0, -0.29, -1.26763e-08, 0.00393164, -0.492758, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("261_xxvov")
|
||||||
|
|
||||||
[node name="Hitbox" type="Area3D" parent="."]
|
[node name="Hitbox" type="Area3D" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 0, 0)
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -0.152949, 0, 0)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=300 format=3 uid="uid://lc5koiqn1sca"]
|
[gd_scene load_steps=301 format=3 uid="uid://lc5koiqn1sca"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_s0qsg"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_s0qsg"]
|
||||||
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_84ebe"]
|
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_84ebe"]
|
||||||
@@ -267,6 +267,7 @@
|
|||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="264_5tr5n"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="264_5tr5n"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://clybvwx3itfeo" path="res://src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres" id="265_yj1cx"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://clybvwx3itfeo" path="res://src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres" id="265_yj1cx"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://cy2ngl55c0rws" path="res://src/enemy/animation_state_machines/WalkingStateMachine.tres" id="266_jq47d"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://cy2ngl55c0rws" path="res://src/enemy/animation_state_machines/WalkingStateMachine.tres" id="266_jq47d"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="268_yj1cx"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_f45wt"]
|
[sub_resource type="Resource" id="Resource_f45wt"]
|
||||||
script = ExtResource("2_84ebe")
|
script = ExtResource("2_84ebe")
|
||||||
@@ -2063,3 +2064,11 @@ bus = &"SFX"
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
autoplay = true
|
autoplay = true
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(0.665, 0, 0, 0, -2.90681e-08, 0.665, 0, -0.665, -2.90681e-08, 0.00393164, -1.31885, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("268_yj1cx")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=387 format=3 uid="uid://dxwwfbt2mtmer"]
|
[gd_scene load_steps=388 format=3 uid="uid://dxwwfbt2mtmer"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_yke7o"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_yke7o"]
|
||||||
[ext_resource type="Texture2D" uid="uid://cob5mo4lrbkrp" path="res://src/enemy/enemy_types/11. Palan/animations/B/frame_000_delay-0.01s.png" id="2_lf0wi"]
|
[ext_resource type="Texture2D" uid="uid://cob5mo4lrbkrp" path="res://src/enemy/enemy_types/11. Palan/animations/B/frame_000_delay-0.01s.png" id="2_lf0wi"]
|
||||||
@@ -211,6 +211,7 @@
|
|||||||
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="208_0yqqu"]
|
[ext_resource type="Script" uid="uid://cqm6u7qa8japr" path="res://src/system/Projectile.cs" id="208_0yqqu"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bn83xiolaxr6j" path="res://src/vfx/Enemy/PALANQUIN ATTACK 1.png" id="208_1bumx"]
|
[ext_resource type="Texture2D" uid="uid://bn83xiolaxr6j" path="res://src/vfx/Enemy/PALANQUIN ATTACK 1.png" id="208_1bumx"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dy8vmgvihf313" path="res://src/vfx/Enemy/sunlance.png" id="211_r6aec"]
|
[ext_resource type="Texture2D" uid="uid://dy8vmgvihf313" path="res://src/vfx/Enemy/sunlance.png" id="211_r6aec"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="212_lid5r"]
|
||||||
|
|
||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
|
||||||
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
|
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
|
||||||
@@ -3025,3 +3026,11 @@ libraries = {
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
autoplay = true
|
autoplay = true
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(1.445, 0, 0, 0, -6.3163e-08, 1.445, 0, -1.445, -6.3163e-08, 0.00393164, -1.53476, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("212_lid5r")
|
||||||
|
|||||||
@@ -17,25 +17,25 @@ public partial class ShieldOfHeaven : Enemy2D, IHavePatrolBehavior, IHaveEngageP
|
|||||||
|
|
||||||
public void OnReady()
|
public void OnReady()
|
||||||
{
|
{
|
||||||
FollowBehavior.Init(NavigationAgent);
|
FollowBehavior.Init(NavigationAgent);
|
||||||
PatrolBehavior.Init(NavigationAgent);
|
PatrolBehavior.Init(NavigationAgent);
|
||||||
PatrolBehavior.HomePosition = GlobalPosition;
|
PatrolBehavior.HomePosition = GlobalPosition;
|
||||||
PatrolBehavior.OnVelocityComputed += OnVelocityComputed;
|
PatrolBehavior.OnVelocityComputed += OnVelocityComputed;
|
||||||
FollowBehavior.OnVelocityComputed += OnVelocityComputed;
|
FollowBehavior.OnVelocityComputed += OnVelocityComputed;
|
||||||
EngagePlayerBehavior.TakeAction += EngagePlayerBehavior_TakeAction;
|
EngagePlayerBehavior.TakeAction += EngagePlayerBehavior_TakeAction;
|
||||||
EngagePlayerBehavior.AcquireTarget += EngagePlayerBehavior_AcquireTarget;
|
EngagePlayerBehavior.AcquireTarget += EngagePlayerBehavior_AcquireTarget;
|
||||||
PlayerDetector.BodyEntered += PlayerDetector_BodyEntered;
|
PlayerDetector.BodyEntered += PlayerDetector_BodyEntered;
|
||||||
PlayerDetector.BodyExited += PlayerDetector_BodyExited;
|
PlayerDetector.BodyExited += PlayerDetector_BodyExited;
|
||||||
SetPhysicsProcess(true);
|
SetPhysicsProcess(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _ExitTree()
|
public override void _ExitTree()
|
||||||
{
|
{
|
||||||
PatrolBehavior.OnVelocityComputed -= OnVelocityComputed;
|
PatrolBehavior.OnVelocityComputed -= OnVelocityComputed;
|
||||||
FollowBehavior.OnVelocityComputed -= OnVelocityComputed;
|
FollowBehavior.OnVelocityComputed -= OnVelocityComputed;
|
||||||
EngagePlayerBehavior.TakeAction -= EngagePlayerBehavior_TakeAction;
|
EngagePlayerBehavior.TakeAction -= EngagePlayerBehavior_TakeAction;
|
||||||
EngagePlayerBehavior.AcquireTarget -= EngagePlayerBehavior_AcquireTarget;
|
EngagePlayerBehavior.AcquireTarget -= EngagePlayerBehavior_AcquireTarget;
|
||||||
PlayerDetector.BodyEntered -= PlayerDetector_BodyEntered;
|
PlayerDetector.BodyEntered -= PlayerDetector_BodyEntered;
|
||||||
PlayerDetector.BodyExited -= PlayerDetector_BodyExited;
|
PlayerDetector.BodyExited -= PlayerDetector_BodyExited;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=13 format=3 uid="uid://5s7c4dsb1wwk"]
|
[gd_scene load_steps=14 format=3 uid="uid://5s7c4dsb1wwk"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cjdivu0v1kfhy" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs" id="1_oxa5b"]
|
[ext_resource type="Script" uid="uid://cjdivu0v1kfhy" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs" id="1_oxa5b"]
|
||||||
[ext_resource type="PackedScene" uid="uid://drkaq6grim1fb" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldModelView.tscn" id="3_r2swr"]
|
[ext_resource type="PackedScene" uid="uid://drkaq6grim1fb" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldModelView.tscn" id="3_r2swr"]
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_uwf0x"]
|
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_uwf0x"]
|
||||||
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_8rh66"]
|
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_8rh66"]
|
||||||
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_m1i5i"]
|
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_m1i5i"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="9_cacc5"]
|
||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
|
||||||
radius = 0.226425
|
radius = 0.226425
|
||||||
@@ -112,3 +113,11 @@ bus = &"SFX"
|
|||||||
[node name="AggroSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
[node name="AggroSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(1.955, 0, 0, 0, -8.54558e-08, 1.955, 0, -1.955, -8.54558e-08, 0.00393164, -2.8107, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("9_cacc5")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=68 format=3 uid="uid://dobiqowi8mhfi"]
|
[gd_scene load_steps=69 format=3 uid="uid://dobiqowi8mhfi"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_7w22e"]
|
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_7w22e"]
|
||||||
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_ca1o5"]
|
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_ca1o5"]
|
||||||
@@ -49,6 +49,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://cssrkfehdhgp5" path="res://src/enemy/enemy_types/13. gold sproingy/animations/GOLD_SPROING_SIDE/Layer 13.png" id="30_lcdw8"]
|
[ext_resource type="Texture2D" uid="uid://cssrkfehdhgp5" path="res://src/enemy/enemy_types/13. gold sproingy/animations/GOLD_SPROING_SIDE/Layer 13.png" id="30_lcdw8"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dl12u2wcp0fkb" path="res://src/enemy/enemy_types/13. gold sproingy/animations/GOLD_SPROING_SIDE/Layer 14.png" id="31_ie1nt"]
|
[ext_resource type="Texture2D" uid="uid://dl12u2wcp0fkb" path="res://src/enemy/enemy_types/13. gold sproingy/animations/GOLD_SPROING_SIDE/Layer 14.png" id="31_ie1nt"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bcu6ei8kbcv2w" path="res://src/enemy/enemy_types/13. gold sproingy/animations/GOLD_SPROING_SIDE/Layer 15.png" id="32_u2p8a"]
|
[ext_resource type="Texture2D" uid="uid://bcu6ei8kbcv2w" path="res://src/enemy/enemy_types/13. gold sproingy/animations/GOLD_SPROING_SIDE/Layer 15.png" id="32_u2p8a"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="51_smvnd"]
|
||||||
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="60_uwoec"]
|
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="60_uwoec"]
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_ivy74"]
|
[sub_resource type="Resource" id="Resource_ivy74"]
|
||||||
@@ -668,3 +669,11 @@ anim_player = NodePath("../AnimationPlayer")
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
autoplay = true
|
autoplay = true
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(0.29, 0, 0, 0, -1.26763e-08, 0.29, 0, -0.29, -1.26763e-08, 0.00393164, -1.31885, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("51_smvnd")
|
||||||
|
|||||||
@@ -25,14 +25,14 @@ public partial class DemonWallArm : EnemyModelView
|
|||||||
|
|
||||||
public new void OnReady()
|
public new void OnReady()
|
||||||
{
|
{
|
||||||
Hitbox.AreaEntered += Hitbox_AreaEntered;
|
Hitbox.AreaEntered += Hitbox_AreaEntered;
|
||||||
base.OnReady();
|
base.OnReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Hitbox_AreaEntered(Area3D area)
|
private void Hitbox_AreaEntered(Area3D area)
|
||||||
{
|
{
|
||||||
var target = area.GetOwner();
|
var target = area.GetOwner();
|
||||||
if (target is IPlayer player)
|
if (target is IPlayer player)
|
||||||
base.OnPlayerHit(new AttackEventArgs(AttackData));
|
base.OnPlayerHit(new AttackEventArgs(AttackData));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,23 +27,23 @@ public partial class Altar : Node3D, IDungeonFloor
|
|||||||
|
|
||||||
public override void _Ready()
|
public override void _Ready()
|
||||||
{
|
{
|
||||||
Show();
|
Show();
|
||||||
Exit.AreaEntered += Exit_AreaEntered;
|
Exit.AreaEntered += Exit_AreaEntered;
|
||||||
NoExitArea.AreaEntered += NoExitArea_AreaEntered;
|
NoExitArea.AreaEntered += NoExitArea_AreaEntered;
|
||||||
FloorIsLoaded = true;
|
FloorIsLoaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void NoExitArea_AreaEntered(Area3D area)
|
private void NoExitArea_AreaEntered(Area3D area)
|
||||||
{
|
{
|
||||||
DialogueController.ShowDialogue(Dialogue, "no_exit");
|
DialogueController.ShowDialogue(Dialogue, "no_exit");
|
||||||
//if (area.GetOwner() is IPlayer player)
|
//if (area.GetOwner() is IPlayer player)
|
||||||
// player.Deactivate();
|
// player.Deactivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Exit_AreaEntered(Area3D area)
|
private void Exit_AreaEntered(Area3D area)
|
||||||
{
|
{
|
||||||
if (area.GetOwner() is IPlayer)
|
if (area.GetOwner() is IPlayer)
|
||||||
ExitReached();
|
ExitReached();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ExitReached() => Game.FloorExitReached();
|
public void ExitReached() => Game.FloorExitReached();
|
||||||
|
|||||||
@@ -35,45 +35,45 @@ public partial class BossRoomA : Node3D, IBossRoom, IDungeonFloor
|
|||||||
|
|
||||||
public void OnReady()
|
public void OnReady()
|
||||||
{
|
{
|
||||||
ActivateTrap.BodyEntered += ActivateTrap_BodyEntered;
|
ActivateTrap.BodyEntered += ActivateTrap_BodyEntered;
|
||||||
_exit.AreaEntered += Exit_AreaEntered;
|
_exit.AreaEntered += Exit_AreaEntered;
|
||||||
OxFace.HealthComponent.HealthReachedZero += CheckForBossFightEnd;
|
OxFace.HealthComponent.HealthReachedZero += CheckForBossFightEnd;
|
||||||
HorseFace.HealthComponent.HealthReachedZero += CheckForBossFightEnd;
|
HorseFace.HealthComponent.HealthReachedZero += CheckForBossFightEnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ActivateTrap_BodyEntered(Node3D body)
|
private void ActivateTrap_BodyEntered(Node3D body)
|
||||||
{
|
{
|
||||||
ActivateTrap.BodyEntered -= ActivateTrap_BodyEntered;
|
ActivateTrap.BodyEntered -= ActivateTrap_BodyEntered;
|
||||||
StartBossFight();
|
StartBossFight();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartBossFight()
|
public void StartBossFight()
|
||||||
{
|
{
|
||||||
OxFaceStatue.Hide();
|
OxFaceStatue.Hide();
|
||||||
HorseHeadStatue.Hide();
|
HorseHeadStatue.Hide();
|
||||||
OxFace.StartFight();
|
OxFace.StartFight();
|
||||||
HorseFace.StartFight();
|
HorseFace.StartFight();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CheckForBossFightEnd()
|
private void CheckForBossFightEnd()
|
||||||
{
|
{
|
||||||
if (OxFace.HealthComponent.CurrentHP.Value <= 0 && HorseFace.HealthComponent.CurrentHP.Value <= 0)
|
if (OxFace.HealthComponent.CurrentHP.Value <= 0 && HorseFace.HealthComponent.CurrentHP.Value <= 0)
|
||||||
OnBossFightEnded();
|
OnBossFightEnded();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnBossFightEnded()
|
public void OnBossFightEnded()
|
||||||
{
|
{
|
||||||
GateCollision.CallDeferred(MethodName.QueueFree);
|
GateCollision.CallDeferred(MethodName.QueueFree);
|
||||||
LOCKEDGATE.Hide();
|
LOCKEDGATE.Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ExitReached()
|
public void ExitReached()
|
||||||
=> Game.FloorExitReached();
|
=> Game.FloorExitReached();
|
||||||
|
|
||||||
private void Exit_AreaEntered(Area3D area)
|
private void Exit_AreaEntered(Area3D area)
|
||||||
{
|
{
|
||||||
if (area.GetOwner() is IPlayer)
|
if (area.GetOwner() is IPlayer)
|
||||||
ExitReached();
|
ExitReached();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitializeDungeon()
|
public void InitializeDungeon()
|
||||||
|
|||||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,37 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dlpcuirysjp77"
|
||||||
|
path="res://.godot/imported/02_ALTAR_FLOOR_ZER0_VER_OW_DARKEST_METAL.png-28db5fdfd504ec79e984b7d43831cf12.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
generator_parameters={
|
||||||
|
"md5": "4da9381ca1fc26de61546f73fb816d84"
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/map/dungeon/models/Special Floors & Rooms/Altar/02_ALTAR_FLOOR_ZER0_VER_OW_DARKEST_METAL.png"
|
||||||
|
dest_files=["res://.godot/imported/02_ALTAR_FLOOR_ZER0_VER_OW_DARKEST_METAL.png-28db5fdfd504ec79e984b7d43831cf12.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=true
|
||||||
|
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=0
|
||||||
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 25 KiB |
@@ -8,7 +8,7 @@ metadata={
|
|||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
generator_parameters={
|
generator_parameters={
|
||||||
"md5": "7b53babe76d0484b408a519f8fc329b5"
|
"md5": "9635fa0f67978d0bbc3cd49048bec1c6"
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|||||||
@@ -81,8 +81,9 @@ collision_mask = 16
|
|||||||
shape = SubResource("CylinderShape3D_nwuwj")
|
shape = SubResource("CylinderShape3D_nwuwj")
|
||||||
|
|
||||||
[node name="Shadow" type="Sprite3D" parent="."]
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
transform = Transform3D(0.825, 0, 0, 0, -3.60619e-08, 0.825, 0, -0.825, -3.60619e-08, -0.00469795, -2.65632, 0)
|
transform = Transform3D(1.385, 0, 0, 0, -6.05403e-08, 1.385, 0, -1.385, -6.05403e-08, -0.00469795, -2.65632, 0)
|
||||||
transparency = 0.1
|
transparency = 0.1
|
||||||
cast_shadow = 0
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.669)
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
texture = ExtResource("7_lsxy3")
|
texture = ExtResource("7_lsxy3")
|
||||||
|
|||||||
@@ -85,8 +85,9 @@ collision_mask = 2068
|
|||||||
shape = SubResource("CylinderShape3D_nwuwj")
|
shape = SubResource("CylinderShape3D_nwuwj")
|
||||||
|
|
||||||
[node name="Shadow" type="Sprite3D" parent="."]
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
transform = Transform3D(0.825, 0, 0, 0, -3.60619e-08, 0.825, 0, -0.825, -3.60619e-08, 0.94821, -1.76158, 0)
|
transform = Transform3D(1.075, 0, 0, 0, -4.69897e-08, 1.075, 0, -1.075, -4.69897e-08, 0.94821, -1.76158, 0)
|
||||||
transparency = 0.1
|
transparency = 0.1
|
||||||
cast_shadow = 0
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.625)
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
texture = ExtResource("7_xlatl")
|
texture = ExtResource("7_xlatl")
|
||||||
|
|||||||
@@ -86,5 +86,6 @@ shape = SubResource("CylinderShape3D_nwuwj")
|
|||||||
transform = Transform3D(0.825, 0, 0, 0, -3.60619e-08, 0.825, 0, -0.825, -3.60619e-08, -0.00469795, -1.76158, 0)
|
transform = Transform3D(0.825, 0, 0, 0, -3.60619e-08, 0.825, 0, -0.825, -3.60619e-08, -0.00469795, -1.76158, 0)
|
||||||
transparency = 0.1
|
transparency = 0.1
|
||||||
cast_shadow = 0
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.785)
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
texture = ExtResource("7_fytn6")
|
texture = ExtResource("7_fytn6")
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ transform = Transform3D(0.825, 0, 0, 0, -3.60619e-08, 0.825, 0, -0.825, -3.60619
|
|||||||
transparency = 0.1
|
transparency = 0.1
|
||||||
cast_shadow = 0
|
cast_shadow = 0
|
||||||
offset = Vector2(13, 0)
|
offset = Vector2(13, 0)
|
||||||
|
modulate = Color(1, 1, 1, 0.575)
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
texture = ExtResource("7_p8o3h")
|
texture = ExtResource("7_p8o3h")
|
||||||
|
|
||||||
|
|||||||
@@ -86,5 +86,6 @@ shape = SubResource("CylinderShape3D_nwuwj")
|
|||||||
transform = Transform3D(0.825, 0, 0, 0, -3.60619e-08, 0.825, 0, -0.825, -3.60619e-08, -0.00018537, -2.2047, 0.0453106)
|
transform = Transform3D(0.825, 0, 0, 0, -3.60619e-08, 0.825, 0, -0.825, -3.60619e-08, -0.00018537, -2.2047, 0.0453106)
|
||||||
transparency = 0.1
|
transparency = 0.1
|
||||||
cast_shadow = 0
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.63)
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
texture = ExtResource("7_kvk3a")
|
texture = ExtResource("7_kvk3a")
|
||||||
|
|||||||
@@ -150,8 +150,9 @@ collision_mask = 2068
|
|||||||
shape = SubResource("CylinderShape3D_nwuwj")
|
shape = SubResource("CylinderShape3D_nwuwj")
|
||||||
|
|
||||||
[node name="Shadow" type="Sprite3D" parent="."]
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
transform = Transform3D(0.825, 0, 0, 0, -3.60619e-08, 0.825, 0, -0.825, -3.60619e-08, -0.00337198, -2.13394, 0)
|
transform = Transform3D(1.185, 0, 0, 0, -5.1798e-08, 1.185, 0, -1.185, -5.1798e-08, -0.00337198, -2.30884, 0)
|
||||||
transparency = 0.1
|
transparency = 0.1
|
||||||
cast_shadow = 0
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.663)
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
texture = ExtResource("11_vbqit")
|
texture = ExtResource("11_vbqit")
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=50 format=3 uid="uid://jds3hr41coal"]
|
[gd_scene load_steps=51 format=3 uid="uid://jds3hr41coal"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dcqssoikr3pl7" path="res://src/npc/Npc.cs" id="1_f3624"]
|
[ext_resource type="Script" uid="uid://dcqssoikr3pl7" path="res://src/npc/Npc.cs" id="1_f3624"]
|
||||||
[ext_resource type="Resource" uid="uid://lao0opxww3ib" path="res://src/dialog/Dialogue.dialogue" id="2_3udpp"]
|
[ext_resource type="Resource" uid="uid://lao0opxww3ib" path="res://src/dialog/Dialogue.dialogue" id="2_3udpp"]
|
||||||
@@ -37,6 +37,7 @@
|
|||||||
[ext_resource type="Texture2D" uid="uid://wf1fy2oq6pwu" path="res://src/npc/Ran/animations/Layer 33.png" id="36_6n1aa"]
|
[ext_resource type="Texture2D" uid="uid://wf1fy2oq6pwu" path="res://src/npc/Ran/animations/Layer 33.png" id="36_6n1aa"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dm1jtlih2wgey" path="res://src/npc/Ran/animations/Layer 34.png" id="37_jmakl"]
|
[ext_resource type="Texture2D" uid="uid://dm1jtlih2wgey" path="res://src/npc/Ran/animations/Layer 34.png" id="37_jmakl"]
|
||||||
[ext_resource type="Texture2D" uid="uid://c0e8nly838i80" path="res://src/npc/Ran/animations/Layer 35.png" id="38_10y76"]
|
[ext_resource type="Texture2D" uid="uid://c0e8nly838i80" path="res://src/npc/Ran/animations/Layer 35.png" id="38_10y76"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="39_bww12"]
|
||||||
[ext_resource type="Texture2D" uid="uid://d3jn2tx8ifapd" path="res://src/npc/Ran/animations/Layer 36.png" id="39_vht5v"]
|
[ext_resource type="Texture2D" uid="uid://d3jn2tx8ifapd" path="res://src/npc/Ran/animations/Layer 36.png" id="39_vht5v"]
|
||||||
|
|
||||||
[sub_resource type="ViewportTexture" id="ViewportTexture_3udpp"]
|
[sub_resource type="ViewportTexture" id="ViewportTexture_3udpp"]
|
||||||
@@ -311,3 +312,11 @@ autoplay = "idle"
|
|||||||
[node name="AnimationTree" type="AnimationTree" parent="."]
|
[node name="AnimationTree" type="AnimationTree" parent="."]
|
||||||
tree_root = SubResource("AnimationNodeStateMachine_3udpp")
|
tree_root = SubResource("AnimationNodeStateMachine_3udpp")
|
||||||
anim_player = NodePath("../AnimationPlayer")
|
anim_player = NodePath("../AnimationPlayer")
|
||||||
|
|
||||||
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
|
transform = Transform3D(3.455, 0, 0, 0, -1.51023e-07, 3.455, 0, -3.455, -1.51023e-07, 0.00393164, -1.50972, 0.0077811)
|
||||||
|
transparency = 0.1
|
||||||
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.591)
|
||||||
|
texture_filter = 0
|
||||||
|
texture = ExtResource("39_bww12")
|
||||||
|
|||||||
@@ -106,9 +106,10 @@ sprite_frames = SubResource("SpriteFrames_02w3f")
|
|||||||
autoplay = "default"
|
autoplay = "default"
|
||||||
|
|
||||||
[node name="Shadow" type="Sprite3D" parent="AnimatedSprite3D"]
|
[node name="Shadow" type="Sprite3D" parent="AnimatedSprite3D"]
|
||||||
transform = Transform3D(0.825, 0, 0, 0, -3.60619e-08, 0.825, 0, -0.825, -3.60619e-08, 0.013224, -1.44129, 0.0211143)
|
transform = Transform3D(1.05, 0, 0, 0, -4.5897e-08, 1.05, 0, -1.05, -4.5897e-08, 0.013224, -1.44129, 0.0211143)
|
||||||
transparency = 0.1
|
transparency = 0.1
|
||||||
cast_shadow = 0
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.553)
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
texture = ExtResource("7_gb32p")
|
texture = ExtResource("7_gb32p")
|
||||||
|
|
||||||
|
|||||||
@@ -84,8 +84,9 @@ collision_mask = 2068
|
|||||||
shape = SubResource("CylinderShape3D_nwuwj")
|
shape = SubResource("CylinderShape3D_nwuwj")
|
||||||
|
|
||||||
[node name="Shadow" type="Sprite3D" parent="."]
|
[node name="Shadow" type="Sprite3D" parent="."]
|
||||||
transform = Transform3D(0.825, 0, 0, 0, -3.60619e-08, 0.825, 0, -0.825, -3.60619e-08, 0, -2, 0)
|
transform = Transform3D(0.98, 0, 0, 0, -4.28372e-08, 0.98, 0, -0.98, -4.28372e-08, 0, -2, 0)
|
||||||
transparency = 0.1
|
transparency = 0.1
|
||||||
cast_shadow = 0
|
cast_shadow = 0
|
||||||
|
modulate = Color(1, 1, 1, 0.635)
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
texture = ExtResource("7_8crcx")
|
texture = ExtResource("7_8crcx")
|
||||||
|
|||||||
@@ -107,182 +107,182 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
|||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
var container = new SimpleInjector.Container();
|
var container = new SimpleInjector.Container();
|
||||||
container.Register<IPlayerLogic, PlayerLogic>(Lifestyle.Singleton);
|
container.Register<IPlayerLogic, PlayerLogic>(Lifestyle.Singleton);
|
||||||
|
|
||||||
PlayerLogic = container.GetInstance<IPlayerLogic>();
|
PlayerLogic = container.GetInstance<IPlayerLogic>();
|
||||||
PlayerLogic.Set(this as IPlayer);
|
PlayerLogic.Set(this as IPlayer);
|
||||||
PlayerLogic.Set(Settings);
|
PlayerLogic.Set(Settings);
|
||||||
|
|
||||||
Inventory = new Inventory();
|
Inventory = new Inventory();
|
||||||
HealthComponent = new HealthComponent(InitialHP);
|
HealthComponent = new HealthComponent(InitialHP);
|
||||||
VTComponent = new VTComponent(InitialVT);
|
VTComponent = new VTComponent(InitialVT);
|
||||||
AttackComponent = new AttackComponent(InitialAttack);
|
AttackComponent = new AttackComponent(InitialAttack);
|
||||||
DefenseComponent = new DefenseComponent(InitialDefense);
|
DefenseComponent = new DefenseComponent(InitialDefense);
|
||||||
ExperiencePointsComponent = new ExperiencePointsComponent();
|
ExperiencePointsComponent = new ExperiencePointsComponent();
|
||||||
LuckComponent = new LuckComponent(InitialLuck);
|
LuckComponent = new LuckComponent(InitialLuck);
|
||||||
EquipmentComponent = new EquipmentComponent();
|
EquipmentComponent = new EquipmentComponent();
|
||||||
|
|
||||||
_itemReroller = new ItemReroller(ItemDatabase.Instance);
|
_itemReroller = new ItemReroller(ItemDatabase.Instance);
|
||||||
|
|
||||||
Settings = new PlayerLogic.Settings() { RotationSpeed = RotationSpeed, MoveSpeed = MoveSpeed, Acceleration = Acceleration };
|
Settings = new PlayerLogic.Settings() { RotationSpeed = RotationSpeed, MoveSpeed = MoveSpeed, Acceleration = Acceleration };
|
||||||
|
|
||||||
PlayerBinding = PlayerLogic.Bind();
|
PlayerBinding = PlayerLogic.Bind();
|
||||||
|
|
||||||
PlayerBinding
|
PlayerBinding
|
||||||
.Handle((in PlayerLogic.Output.ThrowItem output) =>
|
.Handle((in PlayerLogic.Output.ThrowItem output) =>
|
||||||
{
|
{
|
||||||
})
|
})
|
||||||
.Handle((in PlayerLogic.Output.Move output) =>
|
.Handle((in PlayerLogic.Output.Move output) =>
|
||||||
{
|
{
|
||||||
Move(output.delta);
|
Move(output.delta);
|
||||||
});
|
});
|
||||||
|
|
||||||
PlayerLogic.Start();
|
PlayerLogic.Start();
|
||||||
this.Provide();
|
this.Provide();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ResetPlayerData()
|
public void ResetPlayerData()
|
||||||
{
|
{
|
||||||
foreach (var item in Inventory.Items)
|
foreach (var item in Inventory.Items)
|
||||||
Inventory.Remove(item);
|
Inventory.Remove(item);
|
||||||
|
|
||||||
HealthComponent.Reset();
|
HealthComponent.Reset();
|
||||||
VTComponent.Reset();
|
VTComponent.Reset();
|
||||||
AttackComponent.Reset();
|
AttackComponent.Reset();
|
||||||
DefenseComponent.Reset();
|
DefenseComponent.Reset();
|
||||||
ExperiencePointsComponent.Reset();
|
ExperiencePointsComponent.Reset();
|
||||||
LuckComponent.Reset();
|
LuckComponent.Reset();
|
||||||
EquipmentComponent.Reset();
|
EquipmentComponent.Reset();
|
||||||
|
|
||||||
HealthTimer.Timeout += OnHealthTimerTimeout;
|
HealthTimer.Timeout += OnHealthTimerTimeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Initialization
|
#region Initialization
|
||||||
public void OnReady()
|
public void OnReady()
|
||||||
{
|
{
|
||||||
Hitbox.AreaEntered += Hitbox_AreaEntered;
|
Hitbox.AreaEntered += Hitbox_AreaEntered;
|
||||||
CollisionDetector.AreaEntered += CollisionDetector_AreaEntered;
|
CollisionDetector.AreaEntered += CollisionDetector_AreaEntered;
|
||||||
HealthComponent.HealthReachedZero += Die;
|
HealthComponent.HealthReachedZero += Die;
|
||||||
HealthTimer.WaitTime = _healthTimerWaitTime;
|
HealthTimer.WaitTime = _healthTimerWaitTime;
|
||||||
SetProcessInput(false);
|
SetProcessInput(false);
|
||||||
SetPhysicsProcess(false);
|
SetPhysicsProcess(false);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public void Activate()
|
public void Activate()
|
||||||
{
|
{
|
||||||
SetProcessInput(true);
|
SetProcessInput(true);
|
||||||
SetPhysicsProcess(true);
|
SetPhysicsProcess(true);
|
||||||
SetHealthTimerStatus(HealthTimerIsActive);
|
SetHealthTimerStatus(HealthTimerIsActive);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Deactivate()
|
public void Deactivate()
|
||||||
{
|
{
|
||||||
Velocity = Vector3.Zero;
|
Velocity = Vector3.Zero;
|
||||||
SetProcessInput(false);
|
SetProcessInput(false);
|
||||||
SetPhysicsProcess(false);
|
SetPhysicsProcess(false);
|
||||||
SetHealthTimerStatus(false);
|
SetHealthTimerStatus(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetHealthTimerStatus(bool isActive)
|
private void SetHealthTimerStatus(bool isActive)
|
||||||
{
|
{
|
||||||
if (isActive)
|
if (isActive)
|
||||||
HealthTimer.Start();
|
HealthTimer.Start();
|
||||||
else
|
else
|
||||||
HealthTimer.Stop();
|
HealthTimer.Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TeleportPlayer(Transform3D newTransform)
|
public void TeleportPlayer(Transform3D newTransform)
|
||||||
{
|
{
|
||||||
Transform = newTransform;
|
Transform = newTransform;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TakeDamage(AttackData damage)
|
public void TakeDamage(AttackData damage)
|
||||||
{
|
{
|
||||||
_camera3D.AddShake(1.0f);
|
_camera3D.AddShake(1.0f);
|
||||||
TakeDamageAnimationPlayer.Play("take_damage");
|
TakeDamageAnimationPlayer.Play("take_damage");
|
||||||
var damageReceived = DamageCalculator.CalculateDamage(damage, DefenseComponent.CurrentDefense.Value + EquipmentComponent.BonusDefense, EquipmentComponent.ElementalResistance);
|
var damageReceived = DamageCalculator.CalculateDamage(damage, DefenseComponent.CurrentDefense.Value + EquipmentComponent.BonusDefense, EquipmentComponent.ElementalResistance);
|
||||||
HealthComponent.Damage(damageReceived);
|
HealthComponent.Damage(damageReceived);
|
||||||
SfxDatabase.Instance.Play(SoundEffect.TakeDamage);
|
SfxDatabase.Instance.Play(SoundEffect.TakeDamage);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Knockback(float impulse)
|
public void Knockback(float impulse)
|
||||||
{
|
{
|
||||||
_knockbackStrength = impulse;
|
_knockbackStrength = impulse;
|
||||||
_knockbackDirection = GlobalBasis.Z.Normalized();
|
_knockbackDirection = GlobalBasis.Z.Normalized();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LevelUp()
|
public void LevelUp()
|
||||||
{
|
{
|
||||||
var rng = new RandomNumberGenerator();
|
var rng = new RandomNumberGenerator();
|
||||||
rng.Randomize();
|
rng.Randomize();
|
||||||
var hpIncrease = rng.RandiRange(3, 6);
|
var hpIncrease = rng.RandiRange(3, 6);
|
||||||
HealthComponent.RaiseMaximumHP(hpIncrease);
|
HealthComponent.RaiseMaximumHP(hpIncrease);
|
||||||
ExperiencePointsComponent.LevelUp();
|
ExperiencePointsComponent.LevelUp();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Die()
|
public void Die()
|
||||||
{
|
{
|
||||||
PlayerFXAnimations.Play("death");
|
PlayerFXAnimations.Play("death");
|
||||||
HealthTimer.WaitTime = _healthTimerWaitTime;
|
HealthTimer.WaitTime = _healthTimerWaitTime;
|
||||||
HealthTimer.Timeout -= OnHealthTimerTimeout;
|
HealthTimer.Timeout -= OnHealthTimerTimeout;
|
||||||
SetProcessInput(false);
|
SetProcessInput(false);
|
||||||
SetPhysicsProcess(false);
|
SetPhysicsProcess(false);
|
||||||
PlayerDied?.Invoke();
|
PlayerDied?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void _Input(InputEvent @event)
|
public override void _Input(InputEvent @event)
|
||||||
{
|
{
|
||||||
if (@event.IsActionPressed(GameInputs.Attack))
|
if (@event.IsActionPressed(GameInputs.Attack))
|
||||||
Attack();
|
Attack();
|
||||||
if (@event.IsActionPressed(GameInputs.Sprint))
|
if (@event.IsActionPressed(GameInputs.Sprint))
|
||||||
Settings.MoveSpeed *= 2;
|
Settings.MoveSpeed *= 2;
|
||||||
if (@event.IsActionReleased(GameInputs.Sprint))
|
if (@event.IsActionReleased(GameInputs.Sprint))
|
||||||
Settings.MoveSpeed /= 2;
|
Settings.MoveSpeed /= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnPhysicsProcess(double delta)
|
public void OnPhysicsProcess(double delta)
|
||||||
{
|
{
|
||||||
PlayerLogic.Input(new PlayerLogic.Input.PhysicsTick(delta));
|
PlayerLogic.Input(new PlayerLogic.Input.PhysicsTick(delta));
|
||||||
PlayerLogic.Input(new PlayerLogic.Input.Moved(GlobalPosition, GlobalTransform));
|
PlayerLogic.Input(new PlayerLogic.Input.Moved(GlobalPosition, GlobalTransform));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Equip(EquipableItem equipable)
|
public void Equip(EquipableItem equipable)
|
||||||
{
|
{
|
||||||
if (equipable.ItemTag == ItemTag.MysteryItem)
|
if (equipable.ItemTag == ItemTag.MysteryItem)
|
||||||
{
|
{
|
||||||
var rerolledItem = _itemReroller.RerollItem(equipable, Inventory);
|
var rerolledItem = _itemReroller.RerollItem(equipable, Inventory);
|
||||||
Equip(rerolledItem);
|
Equip(rerolledItem);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
HealthComponent.RaiseMaximumHP(equipable.BonusHP, false);
|
HealthComponent.RaiseMaximumHP(equipable.BonusHP, false);
|
||||||
VTComponent.RaiseMaximumVT(equipable.BonusVT, false);
|
VTComponent.RaiseMaximumVT(equipable.BonusVT, false);
|
||||||
|
|
||||||
EquipmentComponent.Equip(equipable);
|
EquipmentComponent.Equip(equipable);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Unequip(EquipableItem equipable)
|
public void Unequip(EquipableItem equipable)
|
||||||
{
|
{
|
||||||
HealthComponent.SetMaximumHealth(HealthComponent.MaximumHP.Value - equipable.BonusHP);
|
HealthComponent.SetMaximumHealth(HealthComponent.MaximumHP.Value - equipable.BonusHP);
|
||||||
VTComponent.SetMaximumVT(VTComponent.MaximumVT.Value - equipable.BonusVT);
|
VTComponent.SetMaximumVT(VTComponent.MaximumVT.Value - equipable.BonusVT);
|
||||||
|
|
||||||
EquipmentComponent.Unequip(equipable);
|
EquipmentComponent.Unequip(equipable);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Vector3 GlobalInputVector
|
private static Vector3 GlobalInputVector
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var rawInput = Input.GetVector(GameInputs.MoveLeft, GameInputs.MoveRight, GameInputs.MoveUp, GameInputs.MoveDown);
|
var rawInput = Input.GetVector(GameInputs.MoveLeft, GameInputs.MoveRight, GameInputs.MoveUp, GameInputs.MoveDown);
|
||||||
var input = new Vector3
|
var input = new Vector3
|
||||||
{
|
{
|
||||||
X = rawInput.X,
|
X = rawInput.X,
|
||||||
Z = rawInput.Y
|
Z = rawInput.Y
|
||||||
};
|
};
|
||||||
return input with { Y = 0f };
|
return input with { Y = 0f };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static float LeftStrafeInputVector => Input.GetActionStrength(GameInputs.StrafeLeft);
|
private static float LeftStrafeInputVector => Input.GetActionStrength(GameInputs.StrafeLeft);
|
||||||
@@ -291,143 +291,143 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
|||||||
|
|
||||||
private void Attack()
|
private void Attack()
|
||||||
{
|
{
|
||||||
if (PlayerIsHittingGeometry())
|
if (PlayerIsHittingGeometry())
|
||||||
AnimationPlayer.Play("hit_wall");
|
AnimationPlayer.Play("hit_wall");
|
||||||
else if (!AnimationPlayer.IsPlaying())
|
else if (!AnimationPlayer.IsPlaying())
|
||||||
PlayAttackAnimation();
|
PlayAttackAnimation();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ThrowItem()
|
private void ThrowItem()
|
||||||
{
|
{
|
||||||
var itemScene = GD.Load<PackedScene>("res://src/items/throwable/ThrowableItem.tscn");
|
var itemScene = GD.Load<PackedScene>("res://src/items/throwable/ThrowableItem.tscn");
|
||||||
var throwItem = itemScene.Instantiate<ThrowableItem>();
|
var throwItem = itemScene.Instantiate<ThrowableItem>();
|
||||||
GetTree().Root.AddChildEx(throwItem);
|
GetTree().Root.AddChildEx(throwItem);
|
||||||
throwItem.GlobalPosition = CurrentPosition + new Vector3(0, 3.5f, 0);
|
throwItem.GlobalPosition = CurrentPosition + new Vector3(0, 3.5f, 0);
|
||||||
throwItem.GlobalRotation = GlobalRotation;
|
throwItem.GlobalRotation = GlobalRotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PlayAttackAnimation()
|
private void PlayAttackAnimation()
|
||||||
{
|
{
|
||||||
SfxDatabase.Instance.Play(((Weapon)EquipmentComponent.EquippedWeapon.Value).SoundEffect);
|
SfxDatabase.Instance.Play(((Weapon)EquipmentComponent.EquippedWeapon.Value).SoundEffect);
|
||||||
var attackSpeed = ((Weapon)EquipmentComponent.EquippedWeapon.Value).AttackSpeed;
|
var attackSpeed = ((Weapon)EquipmentComponent.EquippedWeapon.Value).AttackSpeed;
|
||||||
AnimationPlayer.SetSpeedScale((float)attackSpeed);
|
AnimationPlayer.SetSpeedScale((float)attackSpeed);
|
||||||
AnimationPlayer.Play("attack");
|
AnimationPlayer.Play("attack");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnExitTree()
|
private void OnExitTree()
|
||||||
{
|
{
|
||||||
PlayerLogic.Stop();
|
PlayerLogic.Stop();
|
||||||
PlayerBinding.Dispose();
|
PlayerBinding.Dispose();
|
||||||
Hitbox.AreaEntered -= Hitbox_AreaEntered;
|
Hitbox.AreaEntered -= Hitbox_AreaEntered;
|
||||||
CollisionDetector.AreaEntered -= CollisionDetector_AreaEntered;
|
CollisionDetector.AreaEntered -= CollisionDetector_AreaEntered;
|
||||||
HealthComponent.HealthReachedZero -= Die;
|
HealthComponent.HealthReachedZero -= Die;
|
||||||
HealthTimer.Timeout -= OnHealthTimerTimeout;
|
HealthTimer.Timeout -= OnHealthTimerTimeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Move(float delta)
|
private void Move(float delta)
|
||||||
{
|
{
|
||||||
var rawInput = GlobalInputVector;
|
var rawInput = GlobalInputVector;
|
||||||
var strafeLeftInput = LeftStrafeInputVector;
|
var strafeLeftInput = LeftStrafeInputVector;
|
||||||
var strafeRightInput = RightStrafeInputVector;
|
var strafeRightInput = RightStrafeInputVector;
|
||||||
|
|
||||||
var transform = Transform;
|
var transform = Transform;
|
||||||
transform.Basis = new Basis(Vector3.Up, Settings.RotationSpeed * -rawInput.X * delta) * transform.Basis;
|
transform.Basis = new Basis(Vector3.Up, Settings.RotationSpeed * -rawInput.X * delta) * transform.Basis;
|
||||||
var moveDirection = new Vector3(strafeRightInput - strafeLeftInput, 0, rawInput.Z).Normalized();
|
var moveDirection = new Vector3(strafeRightInput - strafeLeftInput, 0, rawInput.Z).Normalized();
|
||||||
var velocity = Basis * moveDirection * Settings.MoveSpeed * Settings.Acceleration;
|
var velocity = Basis * moveDirection * Settings.MoveSpeed * Settings.Acceleration;
|
||||||
_knockbackStrength *= 0.9f;
|
_knockbackStrength *= 0.9f;
|
||||||
Transform = Transform with { Basis = transform.Basis };
|
Transform = Transform with { Basis = transform.Basis };
|
||||||
Velocity = velocity + (_knockbackDirection * _knockbackStrength);
|
Velocity = velocity + (_knockbackDirection * _knockbackStrength);
|
||||||
if (!WalkSFX.Playing && !Velocity.IsZeroApprox())
|
if (!WalkSFX.Playing && !Velocity.IsZeroApprox())
|
||||||
WalkSFX.Play();
|
WalkSFX.Play();
|
||||||
else if (Velocity.IsZeroApprox())
|
else if (Velocity.IsZeroApprox())
|
||||||
WalkSFX.Stop();
|
WalkSFX.Stop();
|
||||||
MoveAndSlide();
|
MoveAndSlide();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnPlayerPositionUpdated(Vector3 globalPosition) => GlobalPosition = globalPosition;
|
private void OnPlayerPositionUpdated(Vector3 globalPosition) => GlobalPosition = globalPosition;
|
||||||
|
|
||||||
private void OnHealthTimerTimeout()
|
private void OnHealthTimerTimeout()
|
||||||
{
|
{
|
||||||
if (VTComponent.CurrentVT.Value > 0)
|
if (VTComponent.CurrentVT.Value > 0)
|
||||||
{
|
{
|
||||||
if (((Accessory)EquipmentComponent.EquippedAccessory.Value).AccessoryTag == AccessoryTag.HalfVTConsumption)
|
if (((Accessory)EquipmentComponent.EquippedAccessory.Value).AccessoryTag == AccessoryTag.HalfVTConsumption)
|
||||||
reduceOnTick = !reduceOnTick;
|
reduceOnTick = !reduceOnTick;
|
||||||
|
|
||||||
HealthComponent.Heal(1);
|
HealthComponent.Heal(1);
|
||||||
|
|
||||||
if (reduceOnTick)
|
if (reduceOnTick)
|
||||||
VTComponent.Reduce(1);
|
VTComponent.Reduce(1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
HealthComponent.Damage(1);
|
HealthComponent.Damage(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Hitbox_AreaEntered(Area3D area)
|
private void Hitbox_AreaEntered(Area3D area)
|
||||||
{
|
{
|
||||||
var target = area.GetOwner();
|
var target = area.GetOwner();
|
||||||
if (target is IEnemy enemy)
|
if (target is IEnemy enemy)
|
||||||
HitEnemy(enemy);
|
HitEnemy(enemy);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void HitEnemy(IEnemy enemy)
|
private void HitEnemy(IEnemy enemy)
|
||||||
{
|
{
|
||||||
var ignoreElementalResistance = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponTag == WeaponTag.IgnoreAffinity;
|
var ignoreElementalResistance = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponTag == WeaponTag.IgnoreAffinity;
|
||||||
var ignoreDefense = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponTag == WeaponTag.IgnoreDefense;
|
var ignoreDefense = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponTag == WeaponTag.IgnoreDefense;
|
||||||
var isCriticalHit = BattleExtensions.IsCriticalHit(LuckComponent.Luck.Value + EquipmentComponent.BonusLuck);
|
var isCriticalHit = BattleExtensions.IsCriticalHit(LuckComponent.Luck.Value + EquipmentComponent.BonusLuck);
|
||||||
var totalDamage = AttackComponent.CurrentAttack.Value + EquipmentComponent.BonusAttack;
|
var totalDamage = AttackComponent.CurrentAttack.Value + EquipmentComponent.BonusAttack;
|
||||||
var element = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponElement;
|
var element = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponElement;
|
||||||
|
|
||||||
if (isCriticalHit)
|
if (isCriticalHit)
|
||||||
{
|
{
|
||||||
totalDamage += (int)(totalDamage * 0.5f);
|
totalDamage += (int)(totalDamage * 0.5f);
|
||||||
SfxDatabase.Instance.Play(SoundEffect.Crit);
|
SfxDatabase.Instance.Play(SoundEffect.Crit);
|
||||||
}
|
}
|
||||||
|
|
||||||
var baseAttack = new AttackData(totalDamage, element, ignoreDefense, ignoreElementalResistance);
|
var baseAttack = new AttackData(totalDamage, element, ignoreDefense, ignoreElementalResistance);
|
||||||
var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.CurrentDefense.Value, ElementalResistanceSet.None);
|
var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.CurrentDefense.Value, ElementalResistanceSet.None);
|
||||||
enemy.HealthComponent.Damage(damageDealt);
|
enemy.HealthComponent.Damage(damageDealt);
|
||||||
|
|
||||||
if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.Knockback && enemy is IKnockbackable knockbackable)
|
if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.Knockback && enemy is IKnockbackable knockbackable)
|
||||||
knockbackable.Knockback(0.3f, -CurrentBasis.Z.Normalized());
|
knockbackable.Knockback(0.3f, -CurrentBasis.Z.Normalized());
|
||||||
if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.SelfDamage)
|
if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.SelfDamage)
|
||||||
HealthComponent.Damage(5);
|
HealthComponent.Damage(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CollisionDetector_AreaEntered(Area3D area)
|
private void CollisionDetector_AreaEntered(Area3D area)
|
||||||
{
|
{
|
||||||
if (area.GetParent() is InventoryItem inventoryItem)
|
if (area.GetParent() is InventoryItem inventoryItem)
|
||||||
{
|
{
|
||||||
var isAdded = Inventory.PickUpItem(inventoryItem);
|
var isAdded = Inventory.PickUpItem(inventoryItem);
|
||||||
if (isAdded)
|
if (isAdded)
|
||||||
inventoryItem.QueueFree();
|
inventoryItem.QueueFree();
|
||||||
}
|
}
|
||||||
if (area.GetParent() is DroppedItem droppedItem)
|
if (area.GetParent() is DroppedItem droppedItem)
|
||||||
{
|
{
|
||||||
var isAdded = Inventory.PickUpItem(droppedItem.Item);
|
var isAdded = Inventory.PickUpItem(droppedItem.Item);
|
||||||
if (isAdded)
|
if (isAdded)
|
||||||
droppedItem.QueueFree();
|
droppedItem.QueueFree();
|
||||||
}
|
}
|
||||||
if (area.GetParent() is ThrownItem thrownItem)
|
if (area.GetParent() is ThrownItem thrownItem)
|
||||||
{
|
{
|
||||||
var isAdded = Inventory.PickUpItem(thrownItem.ItemThatIsThrown);
|
var isAdded = Inventory.PickUpItem(thrownItem.ItemThatIsThrown);
|
||||||
if (isAdded)
|
if (isAdded)
|
||||||
thrownItem.QueueFree();
|
thrownItem.QueueFree();
|
||||||
}
|
}
|
||||||
if (area.GetParent() is Restorative restorative)
|
if (area.GetParent() is Restorative restorative)
|
||||||
{
|
{
|
||||||
restorative.QueueFree();
|
restorative.QueueFree();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool PlayerIsHittingGeometry()
|
private bool PlayerIsHittingGeometry()
|
||||||
{
|
{
|
||||||
var collisions = WallCheck.GetCollidingBodies();
|
var collisions = WallCheck.GetCollidingBodies();
|
||||||
return collisions.Count > 0;
|
return collisions.Count > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WallCheck_BodyEntered(Node body)
|
private void WallCheck_BodyEntered(Node body)
|
||||||
{
|
{
|
||||||
GD.Print("Hit wall");
|
GD.Print("Hit wall");
|
||||||
AnimationPlayer.Stop();
|
AnimationPlayer.Stop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/BOD_B.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/BOD_B.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://holv8bks3o5g"
|
||||||
|
path="res://.godot/imported/BOD_B.TTF-c1bc2d8021d5a561a66516e20372bd6b.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/BOD_B.TTF"
|
||||||
|
dest_files=["res://.godot/imported/BOD_B.TTF-c1bc2d8021d5a561a66516e20372bd6b.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/BOD_BI.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/BOD_BI.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://kanchroaxc6"
|
||||||
|
path="res://.godot/imported/BOD_BI.TTF-189448d8cc7a748bf609986cc08a1db0.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/BOD_BI.TTF"
|
||||||
|
dest_files=["res://.godot/imported/BOD_BI.TTF-189448d8cc7a748bf609986cc08a1db0.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/BOD_BLAI.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/BOD_BLAI.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://dn7lus3sgvvd1"
|
||||||
|
path="res://.godot/imported/BOD_BLAI.TTF-1f79464d61c8112a88b9a4b163b8aef6.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/BOD_BLAI.TTF"
|
||||||
|
dest_files=["res://.godot/imported/BOD_BLAI.TTF-1f79464d61c8112a88b9a4b163b8aef6.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/BOD_BLAR.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/BOD_BLAR.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://bll7nec5gg8e6"
|
||||||
|
path="res://.godot/imported/BOD_BLAR.TTF-2f71d9f113ce7703df7981c959d1156e.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/BOD_BLAR.TTF"
|
||||||
|
dest_files=["res://.godot/imported/BOD_BLAR.TTF-2f71d9f113ce7703df7981c959d1156e.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/BOD_CB.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/BOD_CB.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://v3s2v2r3ferw"
|
||||||
|
path="res://.godot/imported/BOD_CB.TTF-1fbb8817d82ad798195b69be73e5a717.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/BOD_CB.TTF"
|
||||||
|
dest_files=["res://.godot/imported/BOD_CB.TTF-1fbb8817d82ad798195b69be73e5a717.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/BOD_CBI.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/BOD_CBI.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://bxukmc24hf4xw"
|
||||||
|
path="res://.godot/imported/BOD_CBI.TTF-8e30d1d899fb6a60a92707df230c0fc7.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/BOD_CBI.TTF"
|
||||||
|
dest_files=["res://.godot/imported/BOD_CBI.TTF-8e30d1d899fb6a60a92707df230c0fc7.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/BOD_CI.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/BOD_CI.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://bcda52ngp12o6"
|
||||||
|
path="res://.godot/imported/BOD_CI.TTF-e2607effa44e74648fda54443ea220d8.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/BOD_CI.TTF"
|
||||||
|
dest_files=["res://.godot/imported/BOD_CI.TTF-e2607effa44e74648fda54443ea220d8.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/BOD_CR.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/BOD_CR.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://bvbvbodvli0lc"
|
||||||
|
path="res://.godot/imported/BOD_CR.TTF-c1e56b0a0b0c546801de9c714c93a059.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/BOD_CR.TTF"
|
||||||
|
dest_files=["res://.godot/imported/BOD_CR.TTF-c1e56b0a0b0c546801de9c714c93a059.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/BOD_I.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/BOD_I.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://dmqrdbprkp7v8"
|
||||||
|
path="res://.godot/imported/BOD_I.TTF-a74f4361742791f951f99890ba399467.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/BOD_I.TTF"
|
||||||
|
dest_files=["res://.godot/imported/BOD_I.TTF-a74f4361742791f951f99890ba399467.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/BOD_R.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/BOD_R.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://gosyy1xs8n8y"
|
||||||
|
path="res://.godot/imported/BOD_R.TTF-6e51b0687610cd886bb77fa41341fc6a.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/BOD_R.TTF"
|
||||||
|
dest_files=["res://.godot/imported/BOD_R.TTF-6e51b0687610cd886bb77fa41341fc6a.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/LSANSD.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/LSANSD.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://bfhr8a8o7pe2x"
|
||||||
|
path="res://.godot/imported/LSANSD.TTF-b7c2aa130e4f27158f88e9329958006d.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/LSANSD.TTF"
|
||||||
|
dest_files=["res://.godot/imported/LSANSD.TTF-b7c2aa130e4f27158f88e9329958006d.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/LSANSDI.TTF
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/LSANSDI.TTF.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://cbe64f1sx5jvl"
|
||||||
|
path="res://.godot/imported/LSANSDI.TTF-bb1ba106911dd2c5e1b9f13adfa8dbf3.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/LSANSDI.TTF"
|
||||||
|
dest_files=["res://.godot/imported/LSANSDI.TTF-bb1ba106911dd2c5e1b9f13adfa8dbf3.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/ebrima.ttf
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/ebrima.ttf.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://cke424xtk2s0o"
|
||||||
|
path="res://.godot/imported/ebrima.ttf-3354fe06c708555fba8daee8ce82c147.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/ebrima.ttf"
|
||||||
|
dest_files=["res://.godot/imported/ebrima.ttf-3354fe06c708555fba8daee8ce82c147.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/ebrimabd.ttf
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/ebrimabd.ttf.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://cplk3hcd0bjrd"
|
||||||
|
path="res://.godot/imported/ebrimabd.ttf-4e4b601eae26fc218b9e3454fd728f74.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/ebrimabd.ttf"
|
||||||
|
dest_files=["res://.godot/imported/ebrimabd.ttf-4e4b601eae26fc218b9e3454fd728f74.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/georgia.ttf
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/georgia.ttf.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://tfskthaq7tmi"
|
||||||
|
path="res://.godot/imported/georgia.ttf-4d2ef5e2598ad4cdc23a1a478b2d9b96.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/georgia.ttf"
|
||||||
|
dest_files=["res://.godot/imported/georgia.ttf-4d2ef5e2598ad4cdc23a1a478b2d9b96.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/georgiab.ttf
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/georgiab.ttf.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://0syyay37admf"
|
||||||
|
path="res://.godot/imported/georgiab.ttf-20beb0eb7cf573cd4efb2152a608c12c.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/georgiab.ttf"
|
||||||
|
dest_files=["res://.godot/imported/georgiab.ttf-20beb0eb7cf573cd4efb2152a608c12c.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/georgiai.ttf
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/georgiai.ttf.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://beh6d5lo5ihq0"
|
||||||
|
path="res://.godot/imported/georgiai.ttf-97e1796f41b719aad3444c7b17527dc5.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/georgiai.ttf"
|
||||||
|
dest_files=["res://.godot/imported/georgiai.ttf-97e1796f41b719aad3444c7b17527dc5.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
BIN
Zennysoft.Game.Ma/src/ui/fonts/georgiaz.ttf
Normal file
35
Zennysoft.Game.Ma/src/ui/fonts/georgiaz.ttf.import
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="font_data_dynamic"
|
||||||
|
type="FontFile"
|
||||||
|
uid="uid://bwof1h2w3o8bg"
|
||||||
|
path="res://.godot/imported/georgiaz.ttf-cf98b866f7d659752d001e8e4ce6b7b0.fontdata"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/fonts/georgiaz.ttf"
|
||||||
|
dest_files=["res://.godot/imported/georgiaz.ttf-cf98b866f7d659752d001e8e4ce6b7b0.fontdata"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
Rendering=null
|
||||||
|
antialiasing=1
|
||||||
|
generate_mipmaps=false
|
||||||
|
disable_embedded_bitmaps=true
|
||||||
|
multichannel_signed_distance_field=false
|
||||||
|
msdf_pixel_range=8
|
||||||
|
msdf_size=48
|
||||||
|
allow_system_fallback=true
|
||||||
|
force_autohinter=false
|
||||||
|
hinting=1
|
||||||
|
subpixel_positioning=4
|
||||||
|
keep_rounding_remainders=true
|
||||||
|
oversampling=0.0
|
||||||
|
Fallbacks=null
|
||||||
|
fallbacks=[]
|
||||||
|
Compress=null
|
||||||
|
compress=true
|
||||||
|
preload=[]
|
||||||
|
language_support={}
|
||||||
|
script_support={}
|
||||||
|
opentype_features={}
|
||||||
|
After Width: | Height: | Size: 1.1 MiB |
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://cag76xxh7mw85"
|
||||||
|
path="res://.godot/imported/SCREEN_RENDERS_Gallery_720_16_9.png-a507e1c4fdd29451bb802ff7ccfe9f38.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/rendered_assets/SCREEN_RENDERS_Gallery_720_16_9.png"
|
||||||
|
dest_files=["res://.godot/imported/SCREEN_RENDERS_Gallery_720_16_9.png-a507e1c4fdd29451bb802ff7ccfe9f38.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=0
|
||||||
|
After Width: | Height: | Size: 606 KiB |
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dif6p5hc6b5mq"
|
||||||
|
path="res://.godot/imported/SCREEN_RENDERS_Gameover_720_16_9.png-b63cc1aa9031ce463872e8e1aadab53c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/rendered_assets/SCREEN_RENDERS_Gameover_720_16_9.png"
|
||||||
|
dest_files=["res://.godot/imported/SCREEN_RENDERS_Gameover_720_16_9.png-b63cc1aa9031ce463872e8e1aadab53c.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=0
|
||||||
|
After Width: | Height: | Size: 1.4 MiB |
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://d2krh4u2v06k5"
|
||||||
|
path="res://.godot/imported/SCREEN_RENDERS_Loading_720_16_9.png-4c6397db52c482bd39e566c2148ee3dd.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/rendered_assets/SCREEN_RENDERS_Loading_720_16_9.png"
|
||||||
|
dest_files=["res://.godot/imported/SCREEN_RENDERS_Loading_720_16_9.png-4c6397db52c482bd39e566c2148ee3dd.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=0
|
||||||
|
After Width: | Height: | Size: 494 KiB |
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://vtecp7jh15kg"
|
||||||
|
path="res://.godot/imported/SCREEN_RENDERS_Next_Floor_720_16_9.png-d2482b3cdfba59c16134c0f1c57f06eb.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/rendered_assets/SCREEN_RENDERS_Next_Floor_720_16_9.png"
|
||||||
|
dest_files=["res://.godot/imported/SCREEN_RENDERS_Next_Floor_720_16_9.png-d2482b3cdfba59c16134c0f1c57f06eb.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=0
|
||||||
|
After Width: | Height: | Size: 852 KiB |
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://b8ftp11t0q58p"
|
||||||
|
path="res://.godot/imported/SCREEN_RENDERS_Options_720_16_9.png-fc945b3fd6f8f58f3b892c7efd4c41cf.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/rendered_assets/SCREEN_RENDERS_Options_720_16_9.png"
|
||||||
|
dest_files=["res://.godot/imported/SCREEN_RENDERS_Options_720_16_9.png-fc945b3fd6f8f58f3b892c7efd4c41cf.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=0
|
||||||
|
After Width: | Height: | Size: 1.1 MiB |
@@ -0,0 +1,34 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dsf5l6g8n1tkw"
|
||||||
|
path="res://.godot/imported/SCREEN_RENDERS_Viewer_720_16_9.png-f95ab2fbd8aa713a0a9e7c58cd19f46c.ctex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/ui/rendered_assets/SCREEN_RENDERS_Viewer_720_16_9.png"
|
||||||
|
dest_files=["res://.godot/imported/SCREEN_RENDERS_Viewer_720_16_9.png-f95ab2fbd8aa713a0a9e7c58cd19f46c.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=0
|
||||||