Switch navigation mesh to be based on collision only, not collision and texture meshes
Will need to finetune enemy navigation agent placement depending on if they're now too high/low to sit in the navigation region
This commit is contained in:
@@ -32,5 +32,6 @@ public enum UsableItemTag
|
||||
DecreaseAllStats,
|
||||
Clone,
|
||||
MeltAllEquipment,
|
||||
RestoreStats
|
||||
RestoreStats,
|
||||
GlueAllEquipment
|
||||
}
|
||||
|
||||
61
Zennysoft.Game.Ma/Game.sln
Normal file
61
Zennysoft.Game.Ma/Game.sln
Normal file
@@ -0,0 +1,61 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.11.35222.181
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ma", "Ma.csproj", "{94D57D73-EDC5-47B2-BF34-7B57BA9C3881}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Zennysoft.Game.Abstractions", "..\Zennysoft.Game.Abstractions\Zennysoft.Game.Abstractions.csproj", "{D65D2AE9-D371-49F8-9E1D-BBA2907AB4AA}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Zennysoft.Game.Implementation", "..\Zennysoft.Game.Godot.Implementation\Zennysoft.Game.Implementation.csproj", "{F6808C1C-EDFB-4602-BA01-34FB682A270C}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Zennysoft.Ma.Adapter", "..\Zennysoft.Game.Ma.Implementation\Zennysoft.Ma.Adapter.csproj", "{CC55EDC3-B9EA-4393-BE4D-630C34393A94}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
ExportDebug|Any CPU = ExportDebug|Any CPU
|
||||
ExportRelease|Any CPU = ExportRelease|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{94D57D73-EDC5-47B2-BF34-7B57BA9C3881}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{94D57D73-EDC5-47B2-BF34-7B57BA9C3881}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{94D57D73-EDC5-47B2-BF34-7B57BA9C3881}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU
|
||||
{94D57D73-EDC5-47B2-BF34-7B57BA9C3881}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU
|
||||
{94D57D73-EDC5-47B2-BF34-7B57BA9C3881}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU
|
||||
{94D57D73-EDC5-47B2-BF34-7B57BA9C3881}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU
|
||||
{94D57D73-EDC5-47B2-BF34-7B57BA9C3881}.Release|Any CPU.ActiveCfg = ExportRelease|Any CPU
|
||||
{94D57D73-EDC5-47B2-BF34-7B57BA9C3881}.Release|Any CPU.Build.0 = ExportRelease|Any CPU
|
||||
{D65D2AE9-D371-49F8-9E1D-BBA2907AB4AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D65D2AE9-D371-49F8-9E1D-BBA2907AB4AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D65D2AE9-D371-49F8-9E1D-BBA2907AB4AA}.ExportDebug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{D65D2AE9-D371-49F8-9E1D-BBA2907AB4AA}.ExportDebug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{D65D2AE9-D371-49F8-9E1D-BBA2907AB4AA}.ExportRelease|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D65D2AE9-D371-49F8-9E1D-BBA2907AB4AA}.ExportRelease|Any CPU.Build.0 = Release|Any CPU
|
||||
{D65D2AE9-D371-49F8-9E1D-BBA2907AB4AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{D65D2AE9-D371-49F8-9E1D-BBA2907AB4AA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{F6808C1C-EDFB-4602-BA01-34FB682A270C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F6808C1C-EDFB-4602-BA01-34FB682A270C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F6808C1C-EDFB-4602-BA01-34FB682A270C}.ExportDebug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{F6808C1C-EDFB-4602-BA01-34FB682A270C}.ExportDebug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{F6808C1C-EDFB-4602-BA01-34FB682A270C}.ExportRelease|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F6808C1C-EDFB-4602-BA01-34FB682A270C}.ExportRelease|Any CPU.Build.0 = Release|Any CPU
|
||||
{F6808C1C-EDFB-4602-BA01-34FB682A270C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{F6808C1C-EDFB-4602-BA01-34FB682A270C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{CC55EDC3-B9EA-4393-BE4D-630C34393A94}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CC55EDC3-B9EA-4393-BE4D-630C34393A94}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CC55EDC3-B9EA-4393-BE4D-630C34393A94}.ExportDebug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{CC55EDC3-B9EA-4393-BE4D-630C34393A94}.ExportDebug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{CC55EDC3-B9EA-4393-BE4D-630C34393A94}.ExportRelease|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CC55EDC3-B9EA-4393-BE4D-630C34393A94}.ExportRelease|Any CPU.Build.0 = Release|Any CPU
|
||||
{CC55EDC3-B9EA-4393-BE4D-630C34393A94}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{CC55EDC3-B9EA-4393-BE4D-630C34393A94}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {797FF6A1-5959-42C9-A7A2-A8D39F9AC1A4}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -9,7 +9,7 @@ custom_features=""
|
||||
export_filter="all_resources"
|
||||
include_filter=""
|
||||
exclude_filter=""
|
||||
export_path="../../Export/Export.exe"
|
||||
export_path="../../Demo/Export.exe"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
|
||||
@@ -180,8 +180,7 @@ public abstract partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLo
|
||||
{
|
||||
_morphSFX.Play();
|
||||
SetPhysicsProcess(false);
|
||||
_enemyLogic.Input(new EnemyLogic.Input.Defeated());
|
||||
Callable.From(QueueFree);
|
||||
Die();
|
||||
}
|
||||
|
||||
public IDungeonRoom GetCurrentRoom(ImmutableList<IDungeonRoom> roomList)
|
||||
|
||||
@@ -107,7 +107,7 @@ _acquireTargetTime = 2.0
|
||||
[node name="NavigationAgent" type="NavigationAgent3D" parent="Components"]
|
||||
unique_name_in_owner = true
|
||||
avoidance_enabled = true
|
||||
radius = 1.0
|
||||
radius = 3.0
|
||||
|
||||
[node name="SFX" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.0617, 0)
|
||||
|
||||
@@ -103,7 +103,7 @@ _acquireTargetTime = 2.0
|
||||
[node name="NavigationAgent" type="NavigationAgent3D" parent="Components"]
|
||||
unique_name_in_owner = true
|
||||
avoidance_enabled = true
|
||||
radius = 1.0
|
||||
radius = 3.0
|
||||
|
||||
[node name="HitSounds" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.71715, 0)
|
||||
|
||||
@@ -16,10 +16,11 @@ height = 5.0
|
||||
radius = 1.0
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
|
||||
radius = 1.0
|
||||
radius = 2.54294
|
||||
height = 5.08589
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_0y048"]
|
||||
radius = 1.0
|
||||
radius = 2.30121
|
||||
|
||||
[sub_resource type="Resource" id="Resource_fv5vf"]
|
||||
script = ExtResource("4_5eid5")
|
||||
@@ -48,7 +49,7 @@ script = ExtResource("1_p438s")
|
||||
|
||||
[node name="LineOfSight" type="Area3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.5865, 0)
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.55601, 0)
|
||||
collision_layer = 2
|
||||
collision_mask = 2
|
||||
|
||||
@@ -58,17 +59,17 @@ shape = SubResource("CylinderShape3D_jbgmx")
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.5865, 0)
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.55601, 0)
|
||||
shape = SubResource("CapsuleShape3D_cwfph")
|
||||
|
||||
[node name="Raycast" type="RayCast3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.63979, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.6093, 0)
|
||||
target_position = Vector3(0, 0, -5)
|
||||
collision_mask = 3
|
||||
|
||||
[node name="Collision" type="Area3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5865, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.55601, 0)
|
||||
collision_layer = 2048
|
||||
collision_mask = 0
|
||||
|
||||
@@ -83,7 +84,7 @@ EnemyLoreInfo = SubResource("Resource_fv5vf")
|
||||
|
||||
[node name="PlayerDetector" type="Area3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5865, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.55601, 0)
|
||||
collision_layer = 0
|
||||
collision_mask = 34
|
||||
|
||||
@@ -92,7 +93,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2771, 0)
|
||||
shape = SubResource("CylinderShape3D_qbmfg")
|
||||
|
||||
[node name="Components" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5865, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.55601, 0)
|
||||
|
||||
[node name="PatrolBehavior" parent="Components" instance=ExtResource("5_pvjvo")]
|
||||
unique_name_in_owner = true
|
||||
@@ -108,11 +109,11 @@ _acquireTargetTime = 2.0
|
||||
[node name="NavigationAgent" type="NavigationAgent3D" parent="Components"]
|
||||
unique_name_in_owner = true
|
||||
avoidance_enabled = true
|
||||
radius = 1.0
|
||||
debug_enabled = true
|
||||
height = 2.0
|
||||
radius = 3.0
|
||||
|
||||
[node name="HitSounds" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5865, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.55601, 0)
|
||||
|
||||
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
||||
unique_name_in_owner = true
|
||||
|
||||
@@ -33,12 +33,12 @@ script = ExtResource("1_e2477")
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.2559, 0)
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.65049, 0)
|
||||
shape = SubResource("CapsuleShape3D_cwfph")
|
||||
|
||||
[node name="LineOfSight" type="Area3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.2559, 0)
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.65049, 0)
|
||||
collision_layer = 2
|
||||
collision_mask = 2
|
||||
|
||||
@@ -53,7 +53,7 @@ target_position = Vector3(0, 0, -5)
|
||||
collision_mask = 3
|
||||
|
||||
[node name="Collision" type="Area3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.2559, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.65049, 0)
|
||||
collision_layer = 2048
|
||||
collision_mask = 0
|
||||
|
||||
@@ -66,7 +66,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0147337, 0)
|
||||
|
||||
[node name="PlayerDetector" type="Area3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.2559, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.65049, 0)
|
||||
collision_layer = 0
|
||||
collision_mask = 34
|
||||
|
||||
@@ -74,7 +74,7 @@ collision_mask = 34
|
||||
shape = SubResource("CylinderShape3D_tbkej")
|
||||
|
||||
[node name="Components" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.2559, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.65049, 0)
|
||||
|
||||
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_dxxe5")]
|
||||
unique_name_in_owner = true
|
||||
@@ -90,10 +90,10 @@ _acquireTargetTime = 2.0
|
||||
[node name="NavigationAgent" type="NavigationAgent3D" parent="Components"]
|
||||
unique_name_in_owner = true
|
||||
avoidance_enabled = true
|
||||
radius = 2.0
|
||||
radius = 3.0
|
||||
|
||||
[node name="HitSounds" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.2559, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.65049, 0)
|
||||
|
||||
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
|
||||
unique_name_in_owner = true
|
||||
|
||||
@@ -102,7 +102,7 @@ unique_name_in_owner = true
|
||||
[node name="NavigationAgent" type="NavigationAgent3D" parent="Components"]
|
||||
unique_name_in_owner = true
|
||||
avoidance_enabled = true
|
||||
radius = 1.0
|
||||
radius = 3.0
|
||||
|
||||
[node name="SFX" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.09874, 0)
|
||||
|
||||
@@ -482,9 +482,27 @@ public partial class Game : Node3D, IGame
|
||||
_effectService.GetBasicItem<IBaseInventoryItem>();
|
||||
break;
|
||||
case ItemTag.UnequipAllItems:
|
||||
_player.EquipmentComponent.Unequip(_player.EquipmentComponent.EquippedWeapon.Value);
|
||||
_player.EquipmentComponent.Unequip(_player.EquipmentComponent.EquippedArmor.Value);
|
||||
_player.EquipmentComponent.Unequip(_player.EquipmentComponent.EquippedAccessory.Value);
|
||||
_player.Unequip(_player.EquipmentComponent.EquippedWeapon.Value);
|
||||
_player.Unequip(_player.EquipmentComponent.EquippedArmor.Value);
|
||||
_player.Unequip(_player.EquipmentComponent.EquippedAccessory.Value);
|
||||
break;
|
||||
case ItemTag.RestrictUnequip:
|
||||
_effectService.GlueAllEquipment(_player);
|
||||
break;
|
||||
case ItemTag.EjectAllItems:
|
||||
_player.EquipmentComponent.EquippedWeapon.Value.Glued = false;
|
||||
_player.EquipmentComponent.EquippedArmor.Value.Glued = false;
|
||||
_player.EquipmentComponent.EquippedAccessory.Value.Glued = false;
|
||||
_player.Unequip(_player.EquipmentComponent.EquippedWeapon.Value);
|
||||
_player.Unequip(_player.EquipmentComponent.EquippedArmor.Value);
|
||||
_player.Unequip(_player.EquipmentComponent.EquippedAccessory.Value);
|
||||
|
||||
_player.Inventory.Items.Remove(boxItem);
|
||||
foreach (var item in _player.Inventory.Items.ToList())
|
||||
ThrowItem(item);
|
||||
_player.Inventory.Items.Clear();
|
||||
GameRepo.CloseInventory();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -611,10 +629,18 @@ public partial class Game : Node3D, IGame
|
||||
_effectService.MeltAllEquipment(_player);
|
||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||
break;
|
||||
case UsableItemTag.GlueAllEquipment:
|
||||
_effectService.GlueAllEquipment(_player);
|
||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||
break;
|
||||
case UsableItemTag.RestoreStats:
|
||||
_effectService.RestoreParameters(_player);
|
||||
SfxDatabase.Instance.Play(SoundEffect.IncreaseStat);
|
||||
break;
|
||||
case UsableItemTag.LowerTargetTo1HP:
|
||||
_player.HealthComponent.SetCurrentHealth(1);
|
||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -633,6 +659,7 @@ public partial class Game : Node3D, IGame
|
||||
GameRepo.AnnounceMessageOnMainScreen("Experience points effect wore off.");
|
||||
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
|
||||
_player.ExperiencePointsComponent.ModifyExpGainRate(_player.ExperiencePointsComponent.ExpGainRate.Value / 2);
|
||||
_doubleExpTimer.Stop();
|
||||
}
|
||||
|
||||
private void GameRepo_EnemyDied(IEnemy obj)
|
||||
|
||||
@@ -273,6 +273,24 @@ public class EffectService
|
||||
}
|
||||
}
|
||||
|
||||
public void GlueAllEquipment(IPlayer player)
|
||||
{
|
||||
var weapon = player.EquipmentComponent.EquippedWeapon.Value;
|
||||
var armor = player.EquipmentComponent.EquippedArmor.Value;
|
||||
var accessory = player.EquipmentComponent.EquippedAccessory.Value;
|
||||
|
||||
if (weapon != null && !string.IsNullOrEmpty(weapon.ItemName))
|
||||
weapon.Glued = true;
|
||||
if (armor != null && !string.IsNullOrEmpty(armor.ItemName))
|
||||
armor.Glued = true;
|
||||
if (accessory != null && !string.IsNullOrEmpty(accessory.ItemName))
|
||||
accessory.Glued = true;
|
||||
|
||||
player.EquipmentComponent.UpdateEquipment(weapon);
|
||||
player.EquipmentComponent.UpdateEquipment(armor);
|
||||
player.EquipmentComponent.UpdateEquipment(accessory);
|
||||
}
|
||||
|
||||
public void TeleportToRandomRoom(IPlayer player)
|
||||
{
|
||||
var currentFloor = _game.CurrentFloor;
|
||||
|
||||
@@ -11,7 +11,7 @@ PermanentRaiseHPAmount = 0
|
||||
PermanentRaiseVTAmount = 8
|
||||
Name = "Stelo Fragment"
|
||||
StatDescription = "Restores 30 VT.
|
||||
If HP is currently full, raises Maximum VT by 8."
|
||||
If VT is currently full, raises Maximum VT by 8."
|
||||
FlavorText = ""
|
||||
SpawnRate = 0.5
|
||||
BonusAttack = 0
|
||||
|
||||
@@ -26,7 +26,7 @@ mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
|
||||
@@ -26,7 +26,7 @@ mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
|
||||
@@ -26,7 +26,7 @@ mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
|
||||
@@ -26,7 +26,7 @@ mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
|
||||
@@ -26,7 +26,7 @@ mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
|
||||
@@ -114,9 +114,32 @@ public partial class ThrownItem : RigidBody3D, IThrownItem
|
||||
{
|
||||
case UsableItemTag.LowerTargetTo1HP:
|
||||
enemy.HealthComponent.SetCurrentHealth(1);
|
||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||
break;
|
||||
case UsableItemTag.DecreaseAllStats:
|
||||
enemy.AttackComponent.Reduce(usableItem.Stats.BonusAttack);
|
||||
enemy.DefenseComponent.Reduce(usableItem.Stats.BonusDefense);
|
||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||
break;
|
||||
case UsableItemTag.DecreaseAttack:
|
||||
enemy.AttackComponent.LowerMaximumAttack(usableItem.Stats.BonusAttack);
|
||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||
break;
|
||||
case UsableItemTag.DecreaseDefense:
|
||||
enemy.DefenseComponent.LowerMaximumDefense(usableItem.Stats.BonusDefense);
|
||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||
break;
|
||||
case UsableItemTag.IncreaseAttack:
|
||||
enemy.AttackComponent.RaiseMaximumAttack(usableItem.Stats.BonusAttack);
|
||||
SfxDatabase.Instance.Play(SoundEffect.IncreaseStat);
|
||||
break;
|
||||
case UsableItemTag.IncreaseDefense:
|
||||
enemy.DefenseComponent.RaiseMaximumDefense(usableItem.Stats.BonusDefense);
|
||||
SfxDatabase.Instance.Play(SoundEffect.IncreaseStat);
|
||||
break;
|
||||
case UsableItemTag.TeleportToRandomLocation:
|
||||
_effectService.TeleportToRandomRoom(enemy);
|
||||
SfxDatabase.Instance.Play(SoundEffect.TeleportToRandomRoom);
|
||||
break;
|
||||
case UsableItemTag.Clone:
|
||||
_effectService.CloneEnemy(enemy);
|
||||
|
||||
@@ -13,7 +13,7 @@ viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
|
||||
|
||||
[node name="Hitbox" type="RigidBody3D"]
|
||||
process_mode = 1
|
||||
collision_layer = 3072
|
||||
collision_layer = 1024
|
||||
collision_mask = 2049
|
||||
gravity_scale = 0.2
|
||||
contact_monitor = true
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=29 format=3 uid="uid://b6akxaacr8jd2"]
|
||||
[gd_scene load_steps=30 format=3 uid="uid://b6akxaacr8jd2"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bccyfmj8ikewh" path="res://src/map/dungeon/code/SpecialRoom.cs" id="1_r0ujh"]
|
||||
[ext_resource type="PackedScene" uid="uid://clg0hy24ip0gd" path="res://src/map/dungeon/models/Area 2/Puer/A2-Puer.glb" id="2_r0ujh"]
|
||||
@@ -105,6 +105,9 @@ size = Vector3(16.0153, 8.34869, 0.344238)
|
||||
height = 4.7168
|
||||
radius = 0.452637
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_pycw7"]
|
||||
size = Vector3(36.5886, 0.982544, 36.2278)
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_407jo"]
|
||||
size = Vector3(36, 6, 36)
|
||||
|
||||
@@ -285,6 +288,10 @@ shape = SubResource("CylinderShape3D_407jo")
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.5273, -3.47329, -9.92922)
|
||||
shape = SubResource("CylinderShape3D_407jo")
|
||||
|
||||
[node name="CollisionShape3D22" type="CollisionShape3D" parent="Collisions/StaticBody3D2"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.174683, -6.34227, -7.33823)
|
||||
shape = SubResource("BoxShape3D_pycw7")
|
||||
|
||||
[node name="Room" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
|
||||
|
||||
|
||||
@@ -89,6 +89,7 @@ theme_override_styles/pressed_mirrored = ExtResource("3_dftre")
|
||||
theme_override_styles/pressed = ExtResource("3_dftre")
|
||||
theme_override_styles/normal_mirrored = ExtResource("3_dftre")
|
||||
theme_override_styles/normal = ExtResource("3_dftre")
|
||||
disabled = true
|
||||
shortcut = ExtResource("2_7fwjx")
|
||||
text = "Enemy Viewer"
|
||||
alignment = 0
|
||||
@@ -114,6 +115,7 @@ theme_override_styles/pressed_mirrored = ExtResource("3_dftre")
|
||||
theme_override_styles/pressed = ExtResource("3_dftre")
|
||||
theme_override_styles/normal_mirrored = ExtResource("3_dftre")
|
||||
theme_override_styles/normal = ExtResource("3_dftre")
|
||||
disabled = true
|
||||
shortcut = ExtResource("2_7fwjx")
|
||||
text = "Gallery"
|
||||
alignment = 0
|
||||
|
||||
@@ -1084,6 +1084,48 @@ tracks/2/keys = {
|
||||
"values": [0, 30]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_pyqdk"]
|
||||
resource_name = "Hit Wall"
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("%HitWallSound")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("8_ajbah")
|
||||
}],
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Weapon Animations:animation")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [&"wall_hit"]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Weapon Animations:frame")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.933333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0, 28]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_7rguc"]
|
||||
resource_name = "Love Judgement"
|
||||
length = 1.23334
|
||||
@@ -1417,49 +1459,6 @@ tracks/2/keys = {
|
||||
"values": [0, 30]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_pyqdk"]
|
||||
resource_name = "Hit Wall"
|
||||
length = 1.0
|
||||
tracks/0/type = "audio"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("%HitWallSound")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"clips": [{
|
||||
"end_offset": 0.0,
|
||||
"start_offset": 0.0,
|
||||
"stream": ExtResource("8_ajbah")
|
||||
}],
|
||||
"times": PackedFloat32Array(0)
|
||||
}
|
||||
tracks/0/use_blend = true
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Weapon Animations:animation")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [&"wall_hit"]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Weapon Animations:frame")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0, 0.933333),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0, 28]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ickvi"]
|
||||
_data = {
|
||||
&"Air Slash": SubResource("Animation_l7c4m"),
|
||||
|
||||
@@ -163,7 +163,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
|
||||
ActionPanel.Hide();
|
||||
SetProcessInput(true);
|
||||
ActionPanel.SetProcessInput(false);
|
||||
if (!_player.Inventory.Items.Contains(_currentlySelected.Item.Value))
|
||||
if (_player.Inventory.Items.Any() && !_player.Inventory.Items.Contains(_currentlySelected.Item.Value))
|
||||
_currentlySelected = null;
|
||||
ResetInventoryState();
|
||||
}
|
||||
|
||||
@@ -63,7 +63,7 @@ public partial class LoadNextLevel : Control, IFloorClearMenu
|
||||
ExitButton.Pressed += ExitButton_Pressed;
|
||||
}
|
||||
|
||||
private void CurrentFloorNumber_Sync(int _) => FloorNumber.Text = _map.CurrentFloorNumber.Value.ToString("D2");
|
||||
private void CurrentFloorNumber_Sync(int _) => FloorNumber.Text = (_map.CurrentFloorNumber.Value + 1).ToString("D2");
|
||||
|
||||
private void EquipmentComponent_EquipmentChanged(IEquipableItem obj)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user