(2fc766fe5) Add support for wearable item variants. Not used yet. Not synced (not sure if it should).
This commit is contained in:
@@ -393,7 +393,7 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
partial void SeverLimbJointProjSpecific(LimbJoint limbJoint, bool playSound = true)
|
partial void SeverLimbJointProjSpecific(LimbJoint limbJoint)
|
||||||
{
|
{
|
||||||
foreach (Limb limb in new Limb[] { limbJoint.LimbA, limbJoint.LimbB })
|
foreach (Limb limb in new Limb[] { limbJoint.LimbA, limbJoint.LimbB })
|
||||||
{
|
{
|
||||||
@@ -411,11 +411,6 @@ namespace Barotrauma
|
|||||||
character.CurrentHull?.AddDecal(character.BloodDecalName, limb.WorldPosition, MathHelper.Clamp(limb.Mass, 0.5f, 2.0f));
|
character.CurrentHull?.AddDecal(character.BloodDecalName, limb.WorldPosition, MathHelper.Clamp(limb.Mass, 0.5f, 2.0f));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playSound)
|
|
||||||
{
|
|
||||||
SoundPlayer.PlayDamageSound("Gore", 1.0f, limbJoint.LimbA.body);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Draw(SpriteBatch spriteBatch, Camera cam)
|
public virtual void Draw(SpriteBatch spriteBatch, Camera cam)
|
||||||
|
|||||||
@@ -598,7 +598,6 @@ namespace Barotrauma
|
|||||||
var limbHealth = limbHealths.OrderByDescending(l => l.TotalDamage).FirstOrDefault();
|
var limbHealth = limbHealths.OrderByDescending(l => l.TotalDamage).FirstOrDefault();
|
||||||
selectedLimbIndex = limbHealths.IndexOf(limbHealth);
|
selectedLimbIndex = limbHealths.IndexOf(limbHealth);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
LimbHealth selectedLimb = selectedLimbIndex < 0 ? highlightedLimb : limbHealths[selectedLimbIndex];
|
LimbHealth selectedLimb = selectedLimbIndex < 0 ? highlightedLimb : limbHealths[selectedLimbIndex];
|
||||||
if (selectedLimb != currentDisplayedLimb || forceAfflictionContainerUpdate)
|
if (selectedLimb != currentDisplayedLimb || forceAfflictionContainerUpdate)
|
||||||
|
|||||||
@@ -296,7 +296,6 @@ namespace Barotrauma
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SoundPlayer.PlayDamageSound(damageSoundType, Math.Max(damage, bleedingDamage), WorldPosition);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Always spawn damage particles
|
// Always spawn damage particles
|
||||||
|
|||||||
@@ -1949,27 +1949,6 @@
|
|||||||
<None Include="$(MSBuildThisFileDirectory)Content\Items\Weapons\ElectricalDischarger.ogg">
|
<None Include="$(MSBuildThisFileDirectory)Content\Items\Weapons\ElectricalDischarger.ogg">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
<None Include="$(MSBuildThisFileDirectory)Content\Sounds\Damage\Gore1.ogg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="$(MSBuildThisFileDirectory)Content\Sounds\Damage\Gore2.ogg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="$(MSBuildThisFileDirectory)Content\Sounds\Damage\Gore3.ogg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="$(MSBuildThisFileDirectory)Content\Sounds\Damage\Gore4.ogg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="$(MSBuildThisFileDirectory)Content\Sounds\Damage\Gore5.ogg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="$(MSBuildThisFileDirectory)Content\Sounds\Damage\Gore6.ogg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="$(MSBuildThisFileDirectory)Content\Sounds\Damage\Gore7.ogg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="$(MSBuildThisFileDirectory)Content\Sounds\Impact\MetalImpactHeavy1.ogg">
|
<None Include="$(MSBuildThisFileDirectory)Content\Sounds\Impact\MetalImpactHeavy1.ogg">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
|
|||||||
@@ -692,7 +692,7 @@ namespace Barotrauma
|
|||||||
ImpactProjSpecific(impact, f1.Body);
|
ImpactProjSpecific(impact, f1.Body);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SeverLimbJoint(LimbJoint limbJoint, bool playSound = true)
|
public void SeverLimbJoint(LimbJoint limbJoint)
|
||||||
{
|
{
|
||||||
if (!limbJoint.CanBeSevered || limbJoint.IsSevered)
|
if (!limbJoint.CanBeSevered || limbJoint.IsSevered)
|
||||||
{
|
{
|
||||||
@@ -721,7 +721,7 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
partial void SeverLimbJointProjSpecific(LimbJoint limbJoint, bool playSound = true);
|
partial void SeverLimbJointProjSpecific(LimbJoint limbJoint);
|
||||||
|
|
||||||
private void GetConnectedLimbs(List<Limb> connectedLimbs, List<LimbJoint> checkedJoints, Limb limb)
|
private void GetConnectedLimbs(List<Limb> connectedLimbs, List<LimbJoint> checkedJoints, Limb limb)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -66,6 +66,8 @@ namespace Barotrauma
|
|||||||
|
|
||||||
public LightComponent LightComponent { get; set; }
|
public LightComponent LightComponent { get; set; }
|
||||||
|
|
||||||
|
public int Variant { get; private set; }
|
||||||
|
|
||||||
private Gender _gender;
|
private Gender _gender;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// None = Any/Not Defined -> no effect.
|
/// None = Any/Not Defined -> no effect.
|
||||||
@@ -112,10 +114,11 @@ namespace Barotrauma
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Note: this constructor cannot initialize automatically, because the gender is unknown at this point. We only know it when the item is equipped.
|
/// Note: this constructor cannot initialize automatically, because the gender is unknown at this point. We only know it when the item is equipped.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public WearableSprite(XElement subElement, Wearable wearable)
|
public WearableSprite(XElement subElement, Wearable wearable, int variant = 1)
|
||||||
{
|
{
|
||||||
Type = WearableType.Item;
|
Type = WearableType.Item;
|
||||||
WearableComponent = wearable;
|
WearableComponent = wearable;
|
||||||
|
Variant = Math.Max(variant, 1);
|
||||||
SpritePath = ParseSpritePath(subElement.GetAttributeString("texture", string.Empty));
|
SpritePath = ParseSpritePath(subElement.GetAttributeString("texture", string.Empty));
|
||||||
SourceElement = subElement;
|
SourceElement = subElement;
|
||||||
}
|
}
|
||||||
@@ -131,6 +134,7 @@ namespace Barotrauma
|
|||||||
{
|
{
|
||||||
SpritePath = SpritePath.Replace("[GENDER]", (_gender == Gender.Female) ? "female" : "male");
|
SpritePath = SpritePath.Replace("[GENDER]", (_gender == Gender.Female) ? "female" : "male");
|
||||||
}
|
}
|
||||||
|
SpritePath = SpritePath.Replace("[VARIANT]", Variant.ToString());
|
||||||
if (Sprite != null)
|
if (Sprite != null)
|
||||||
{
|
{
|
||||||
Sprite.Remove();
|
Sprite.Remove();
|
||||||
|
|||||||
@@ -451,6 +451,25 @@ namespace Barotrauma
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string DisplayName
|
||||||
|
{
|
||||||
|
get;
|
||||||
|
private set;
|
||||||
|
}
|
||||||
|
|
||||||
|
private string roomName;
|
||||||
|
[Editable, Serialize("", true, translationTextTag: "RoomName.")]
|
||||||
|
public string RoomName
|
||||||
|
{
|
||||||
|
get { return roomName; }
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (roomName == value) { return; }
|
||||||
|
roomName = value;
|
||||||
|
DisplayName = TextManager.Get(roomName, returnNull: true) ?? roomName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override Rectangle Rect
|
public override Rectangle Rect
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|||||||
Reference in New Issue
Block a user