Unstable v0.1300.0.0 (February 19th 2021)
This commit is contained in:
@@ -10,6 +10,7 @@ namespace Barotrauma
|
||||
{
|
||||
partial void UpdateMessages()
|
||||
{
|
||||
if (Prefab is AfflictionPrefabHusk { SendMessages: false }) { return; }
|
||||
switch (State)
|
||||
{
|
||||
case InfectionState.Dormant:
|
||||
|
||||
@@ -668,12 +668,17 @@ namespace Barotrauma
|
||||
bloodParticleTimer -= deltaTime * (affliction.Strength / 10.0f);
|
||||
if (bloodParticleTimer <= 0.0f)
|
||||
{
|
||||
var emitter = Character.BloodEmitters.FirstOrDefault();
|
||||
float particleMinScale = emitter != null ? emitter.Prefab.ScaleMin : 0.5f;
|
||||
float particleMaxScale = emitter != null ? emitter.Prefab.ScaleMax : 1;
|
||||
float severity = Math.Min(affliction.Strength / affliction.Prefab.MaxStrength * Character.Params.BleedParticleMultiplier, 1);
|
||||
float bloodParticleSize = MathHelper.Lerp(particleMinScale, particleMaxScale, severity);
|
||||
bool inWater = Character.AnimController.InWater;
|
||||
float bloodParticleSize = MathHelper.Lerp(0.5f, 1.0f, affliction.Strength / 100.0f);
|
||||
if (!inWater)
|
||||
{
|
||||
bloodParticleSize *= 2.0f;
|
||||
}
|
||||
|
||||
var blood = GameMain.ParticleManager.CreateParticle(
|
||||
inWater ? Character.Params.BleedParticleWater : Character.Params.BleedParticleAir,
|
||||
targetLimb.WorldPosition, Rand.Vector(affliction.Strength), 0.0f, Character.AnimController.CurrentHull);
|
||||
@@ -682,7 +687,7 @@ namespace Barotrauma
|
||||
{
|
||||
blood.Size *= bloodParticleSize;
|
||||
}
|
||||
bloodParticleTimer = 1.0f;
|
||||
bloodParticleTimer = MathHelper.Lerp(2, 0.5f, severity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -912,7 +917,7 @@ namespace Barotrauma
|
||||
|
||||
lowSkillIndicator.Color = new Color(lowSkillIndicator.Color, MathHelper.Lerp(0.5f, 1.0f, (float)(Math.Sin(Timing.TotalTime * 5.0f) + 1.0f) / 2.0f));
|
||||
|
||||
if (Inventory.draggingItem != null)
|
||||
if (Inventory.DraggingItems.Any())
|
||||
{
|
||||
if (highlightedLimbIndex > -1)
|
||||
{
|
||||
@@ -1632,8 +1637,8 @@ namespace Barotrauma
|
||||
}
|
||||
|
||||
//can't apply treatment to dead characters
|
||||
if (Character.IsDead) return true;
|
||||
if (item == null || !item.UseInHealthInterface) return true;
|
||||
if (Character.IsDead) { return true; }
|
||||
if (item == null || !item.UseInHealthInterface) { return true; }
|
||||
if (!ignoreMousePos)
|
||||
{
|
||||
if (highlightedLimbIndex > -1)
|
||||
@@ -1652,33 +1657,25 @@ namespace Barotrauma
|
||||
private List<Item> GetAvailableMedicalItems()
|
||||
{
|
||||
List<Item> allInventoryItems = new List<Item>();
|
||||
allInventoryItems.AddRange(Character.Inventory.Items);
|
||||
allInventoryItems.AddRange(Character.Inventory.AllItems);
|
||||
if (Character.SelectedCharacter?.Inventory != null && Character.CanAccessInventory(Character.SelectedCharacter.Inventory))
|
||||
{
|
||||
allInventoryItems.AddRange(Character.SelectedCharacter.Inventory.Items);
|
||||
allInventoryItems.AddRange(Character.SelectedCharacter.Inventory.AllItems);
|
||||
}
|
||||
if (Character.SelectedBy?.Inventory != null)
|
||||
{
|
||||
allInventoryItems.AddRange(Character.SelectedBy.Inventory.Items);
|
||||
allInventoryItems.AddRange(Character.SelectedBy.Inventory.AllItems);
|
||||
}
|
||||
|
||||
List<Item> medicalItems = new List<Item>();
|
||||
foreach (Item item in allInventoryItems)
|
||||
{
|
||||
if (item == null) continue;
|
||||
|
||||
var containedItems = item.ContainedItems;
|
||||
if (containedItems != null)
|
||||
foreach (Item containedItem in item.ContainedItems)
|
||||
{
|
||||
foreach (Item containedItem in containedItems)
|
||||
{
|
||||
if (containedItem == null) continue;
|
||||
if (!containedItem.HasTag("medical") && !containedItem.HasTag("chem")) continue;
|
||||
medicalItems.Add(containedItem);
|
||||
}
|
||||
if (!containedItem.HasTag("medical") && !containedItem.HasTag("chem")) { continue; }
|
||||
medicalItems.Add(containedItem);
|
||||
}
|
||||
|
||||
if (!item.HasTag("medical") && !item.HasTag("chem")) continue;
|
||||
if (!item.HasTag("medical") && !item.HasTag("chem")) { continue; }
|
||||
medicalItems.Add(item);
|
||||
}
|
||||
|
||||
@@ -1804,24 +1801,27 @@ namespace Barotrauma
|
||||
|
||||
spriteBatch.Begin(SpriteSortMode.Deferred, Lights.CustomBlendStates.Multiplicative);
|
||||
|
||||
float overlayScale = Math.Min(
|
||||
drawArea.Width / (float)limbIndicatorOverlay.FrameSize.X,
|
||||
drawArea.Height / (float)limbIndicatorOverlay.FrameSize.Y);
|
||||
|
||||
int frame = 0;
|
||||
int frameCount = 17;
|
||||
if (limbIndicatorOverlayAnimState >= frameCount * 2) limbIndicatorOverlayAnimState = 0.0f;
|
||||
if (limbIndicatorOverlayAnimState < frameCount)
|
||||
if (limbIndicatorOverlay != null)
|
||||
{
|
||||
frame = (int)limbIndicatorOverlayAnimState;
|
||||
}
|
||||
else
|
||||
{
|
||||
frame = frameCount - (int)(limbIndicatorOverlayAnimState - (frameCount - 1));
|
||||
}
|
||||
float overlayScale = Math.Min(
|
||||
drawArea.Width / (float)limbIndicatorOverlay.FrameSize.X,
|
||||
drawArea.Height / (float)limbIndicatorOverlay.FrameSize.Y);
|
||||
|
||||
limbIndicatorOverlay.Draw(spriteBatch, frame, drawArea.Center.ToVector2(), Color.Gray, origin: limbIndicatorOverlay.FrameSize.ToVector2() / 2, rotate: 0.0f,
|
||||
scale: Vector2.One * overlayScale);
|
||||
int frame = 0;
|
||||
int frameCount = 17;
|
||||
if (limbIndicatorOverlayAnimState >= frameCount * 2) limbIndicatorOverlayAnimState = 0.0f;
|
||||
if (limbIndicatorOverlayAnimState < frameCount)
|
||||
{
|
||||
frame = (int)limbIndicatorOverlayAnimState;
|
||||
}
|
||||
else
|
||||
{
|
||||
frame = frameCount - (int)(limbIndicatorOverlayAnimState - (frameCount - 1));
|
||||
}
|
||||
|
||||
limbIndicatorOverlay.Draw(spriteBatch, frame, drawArea.Center.ToVector2(), Color.Gray, origin: limbIndicatorOverlay.FrameSize.ToVector2() / 2, rotate: 0.0f,
|
||||
scale: Vector2.One * overlayScale);
|
||||
}
|
||||
|
||||
if (allowHighlight)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user