This commit is contained in:
Regalis11
2015-06-06 16:03:47 +03:00
28 changed files with 411 additions and 137 deletions
+2
View File
@@ -242,6 +242,8 @@ namespace Subsurface.Items.Components
public override void OnMapLoaded()
{
if (itemIds == null) return;
for (int i = 0; i < itemIds.Length; i++)
{
Item item = MapEntity.FindEntityByID(itemIds[i]) as Item;
+8 -23
View File
@@ -157,37 +157,18 @@ namespace Subsurface.Items.Components
//float damage = f1.Body.LinearVelocity.Length();
AttackResult attackResult = new AttackResult(0.0f, 0.0f);
if (attack!=null)
{
Limb limb;
Structure structure;
if ((limb = (f2.Body.UserData as Limb)) != null)
{
attack.DoDamage(limb.character, item.SimPosition, 0.0f);
//limb.Damage += damage;
//limb.Bleeding += bleedingDamage;
//if (bleedingDamage>0.0f)
//{
// for (int i = 0; i < 5; i++ )
// {
// Game1.particleManager.CreateParticle(limb.SimPosition,
// ToolBox.VectorToAngle(-f1.Body.LinearVelocity*0.5f) + ToolBox.RandomFloat(-0.5f, 0.5f),
// ToolBox.RandomFloat(1.0f, 3.0f), "blood");
// }
// Game1.particleManager.CreateParticle(limb.SimPosition,
// 0.0f,
// Vector2.Zero, "waterblood");
//}
//AmbientSoundManager.PlayDamageSound(DamageType.LimbBlunt, damage, limb.body.FarseerBody);
attackResult = attack.DoDamage(limb.character, item.SimPosition, 1.0f);
}
else if ((structure = (f2.Body.UserData as Structure)) != null)
{
attack.DoDamage(structure, item.SimPosition, 0.0f);
//AmbientSoundManager.PlayDamageSound(DamageType.StructureBlunt, damage, f2.Body);
attackResult = attack.DoDamage(structure, item.SimPosition, 1.0f);
}
}
@@ -200,7 +181,11 @@ namespace Subsurface.Items.Components
ignoredBodies.Clear();
if (doesStick)
if (attackResult.hitArmor)
{
item.body.LinearVelocity *= 0.5f;
}
else if (doesStick)
{
Vector2 normal = contact.Manifold.LocalNormal;
Vector2 dir = new Vector2(
@@ -398,6 +398,13 @@ namespace Subsurface.Items.Components
{
XElement newElement = new XElement(isOutput ? "output" : "input", new XAttribute("name", name));
Array.Sort(wires, delegate(Wire wire1, Wire wire2)
{
if (wire1 == null) return 1;
if (wire2 == null) return -1;
return wire1.Item.ID.CompareTo(wire2.Item.ID);
});
for (int i = 0; i < MaxLinked; i++ )
{
if (wires[i] == null) continue;
@@ -406,7 +413,7 @@ namespace Subsurface.Items.Components
//int connectionIndex = recipient.item.Connections.FindIndex(x => x == recipient);
newElement.Add(new XElement("link",
new XAttribute("w", (wires[i] == null) ? "-1" : wires[i].Item.ID.ToString())));
new XAttribute("w", wires[i].Item.ID.ToString())));
}
parentElement.Add(newElement);