Revamp boss logic

This commit is contained in:
2025-03-18 00:12:36 -07:00
parent f50eaa1847
commit 13e2ef90c8
84 changed files with 2547 additions and 3655 deletions

View File

@@ -98,7 +98,7 @@ public class EffectService
var currentEnemies = currentRoom.EnemiesInRoom;
var hpToAbsorb = 0.0;
foreach (var enemy in currentEnemies)
hpToAbsorb += enemy.CurrentHP * 0.05;
hpToAbsorb += enemy.CurrentHP.Value * 0.05;
_player.Stats.SetCurrentHP(_player.Stats.CurrentHP.Value + (int)hpToAbsorb);
GD.Print("HP to absorb: " + hpToAbsorb);
}

View File

@@ -31,8 +31,12 @@ public partial class ThrownItem : RigidBody3D
private void ThrownItem_BodyEntered(Node body)
{
if (body is IEnemy enemy)
{
CalculateEffect(enemy);
QueueFree();
QueueFree();
}
else if (ItemThatIsThrown is ThrowableItem)
QueueFree();
}
public void Throw(EffectService effectService)
@@ -85,7 +89,7 @@ public partial class ThrownItem : RigidBody3D
switch (throwableItem.ThrowableItemTag)
{
case ThrowableItemTag.LowerTargetTo1HP:
enemy.TakeDamage(enemy.CurrentHP - 1, ignoreDefense: true, ignoreElementalResistance: true);
enemy.TakeDamage(enemy.CurrentHP.Value - 1, ignoreDefense: true, ignoreElementalResistance: true);
break;
case ThrowableItemTag.TeleportToRandomLocation:
_effectService.TeleportToRandomRoom(enemy);
@@ -99,6 +103,6 @@ public partial class ThrownItem : RigidBody3D
}
}
else
enemy.TakeDamage(((InventoryItem)ItemThatIsThrown).ThrowDamage);
enemy.TakeDamage(ItemThatIsThrown.ThrowDamage);
}
}

View File

@@ -10,8 +10,8 @@ size = Vector3(0.46632, 0.507293, 0.586082)
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
[node name="Hitbox" type="RigidBody3D"]
collision_layer = 1040
collision_mask = 25
collision_layer = 3072
collision_mask = 2049
mass = 0.1
gravity_scale = 0.2
contact_monitor = true