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:
2026-02-25 22:33:38 -08:00
parent 9d18bbb349
commit a686ce2fbc
59 changed files with 442 additions and 457 deletions

View File

@@ -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;

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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