OnFire statuseffects aren't applied to items inside fireproof containers. Closes #98
This commit is contained in:
@@ -74,6 +74,15 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
if (item.CurrentHull != hull || item.FireProof || item.Condition <= 0.0f) continue;
|
if (item.CurrentHull != hull || item.FireProof || item.Condition <= 0.0f) continue;
|
||||||
|
|
||||||
|
//don't apply OnFire effects if the item is inside a fireproof container
|
||||||
|
//(or if it's inside a container that's inside a fireproof container, etc)
|
||||||
|
Item container = item.Container;
|
||||||
|
while (container != null)
|
||||||
|
{
|
||||||
|
if (container.FireProof) return;
|
||||||
|
container = container.Container;
|
||||||
|
}
|
||||||
|
|
||||||
if (Vector2.Distance(item.WorldPosition, worldPosition) > attack.Range * 0.1f) continue;
|
if (Vector2.Distance(item.WorldPosition, worldPosition) > attack.Range * 0.1f) continue;
|
||||||
|
|
||||||
item.ApplyStatusEffects(ActionType.OnFire, 1.0f);
|
item.ApplyStatusEffects(ActionType.OnFire, 1.0f);
|
||||||
|
|||||||
@@ -217,7 +217,15 @@ namespace Barotrauma
|
|||||||
foreach (Item item in Item.ItemList)
|
foreach (Item item in Item.ItemList)
|
||||||
{
|
{
|
||||||
if (item.CurrentHull != hull || item.FireProof || item.Condition <= 0.0f) continue;
|
if (item.CurrentHull != hull || item.FireProof || item.Condition <= 0.0f) continue;
|
||||||
if (item.ParentInventory != null && item.ParentInventory.Owner is Character) return;
|
|
||||||
|
//don't apply OnFire effects if the item is inside a fireproof container
|
||||||
|
//(or if it's inside a container that's inside a fireproof container, etc)
|
||||||
|
Item container = item.Container;
|
||||||
|
while (container != null)
|
||||||
|
{
|
||||||
|
if (container.FireProof) return;
|
||||||
|
container = container.Container;
|
||||||
|
}
|
||||||
|
|
||||||
float range = (float)Math.Sqrt(size.X) * 10.0f;
|
float range = (float)Math.Sqrt(size.X) * 10.0f;
|
||||||
if (item.Position.X < position.X - range || item.Position.X > position.X + size.X + range) continue;
|
if (item.Position.X < position.X - range || item.Position.X > position.X + size.X + range) continue;
|
||||||
|
|||||||
Reference in New Issue
Block a user