From 9b054ebd505f861145716a27b2de1de951b1d8dc Mon Sep 17 00:00:00 2001 From: Joonas Rikkonen Date: Tue, 4 Jul 2017 22:10:30 +0300 Subject: [PATCH] Added an artifact that attracts creatures, item max health can be changed & items can be made indestructible --- .../Source/Items/Components/Door.cs | 2 +- .../Source/Items/FixRequirement.cs | 2 +- .../Source/Items/Inventory.cs | 8 ++-- .../BarotraumaClient/Source/Items/Item.cs | 5 +-- .../Content/Items/Artifacts/artifact.png | Bin 23314 -> 35006 bytes .../Content/Items/Artifacts/artifacts.xml | 38 ++++++++++++++---- .../BarotraumaShared/Content/Missions.xml | 13 ++++++ .../BarotraumaShared/Source/DebugConsole.cs | 2 +- .../Source/Events/RepairTask.cs | 2 +- .../Components/Machines/Deconstructor.cs | 2 +- .../BarotraumaShared/Source/Items/Item.cs | 23 ++++++----- .../Source/Items/ItemPrefab.cs | 15 ++++++- .../Source/Networking/RespawnManager.cs | 2 +- .../Source/Physics/PhysicsBody.cs | 2 +- 14 files changed, 83 insertions(+), 33 deletions(-) diff --git a/Barotrauma/BarotraumaClient/Source/Items/Components/Door.cs b/Barotrauma/BarotraumaClient/Source/Items/Components/Door.cs index 7f3c8c79a..9810da3d9 100644 --- a/Barotrauma/BarotraumaClient/Source/Items/Components/Door.cs +++ b/Barotrauma/BarotraumaClient/Source/Items/Components/Door.cs @@ -93,7 +93,7 @@ namespace Barotrauma.Items.Components public void Draw(SpriteBatch spriteBatch, bool editing) { Color color = (item.IsSelected) ? Color.Green : Color.White; - color = color * (item.Condition / 100.0f); + color = color * (item.Condition / item.Prefab.Health); color.A = 255; //prefab.sprite.Draw(spriteBatch, new Vector2(rect.X, -rect.Y), new Vector2(rect.Width, rect.Height), color); diff --git a/Barotrauma/BarotraumaClient/Source/Items/FixRequirement.cs b/Barotrauma/BarotraumaClient/Source/Items/FixRequirement.cs index bd3a3b9c6..58dff356f 100644 --- a/Barotrauma/BarotraumaClient/Source/Items/FixRequirement.cs +++ b/Barotrauma/BarotraumaClient/Source/Items/FixRequirement.cs @@ -156,7 +156,7 @@ namespace Barotrauma } if (!unfixedFound) { - item.Condition = 100.0f; + item.Condition = item.Prefab.Health; frame = null; } } diff --git a/Barotrauma/BarotraumaClient/Source/Items/Inventory.cs b/Barotrauma/BarotraumaClient/Source/Items/Inventory.cs index 58dc4034f..fb58735ff 100644 --- a/Barotrauma/BarotraumaClient/Source/Items/Inventory.cs +++ b/Barotrauma/BarotraumaClient/Source/Items/Inventory.cs @@ -167,21 +167,21 @@ namespace Barotrauma if (item != null && drawItem) { - if (item.Condition < 100.0f) + if (item.Condition < item.Prefab.Health) { GUI.DrawRectangle(spriteBatch, new Rectangle(rect.X, rect.Bottom - 8, rect.Width, 8), Color.Black * 0.8f, true); GUI.DrawRectangle(spriteBatch, - new Rectangle(rect.X, rect.Bottom - 8, (int)(rect.Width * item.Condition / 100.0f), 8), + new Rectangle(rect.X, rect.Bottom - 8, (int)(rect.Width * item.Condition / item.Prefab.Health), 8), Color.Lerp(Color.Red, Color.Green, item.Condition / 100.0f) * 0.8f, true); } var containedItems = item.ContainedItems; - if (containedItems != null && containedItems.Length == 1 && containedItems[0].Condition < 100.0f) + if (containedItems != null && containedItems.Length == 1 && containedItems[0].Condition < item.Prefab.Health) { GUI.DrawRectangle(spriteBatch, new Rectangle(rect.X, rect.Y, rect.Width, 8), Color.Black * 0.8f, true); GUI.DrawRectangle(spriteBatch, new Rectangle(rect.X, rect.Y, (int)(rect.Width * containedItems[0].Condition / 100.0f), 8), - Color.Lerp(Color.Red, Color.Green, containedItems[0].Condition / 100.0f) * 0.8f, true); + Color.Lerp(Color.Red, Color.Green, containedItems[0].Condition / item.Prefab.Health) * 0.8f, true); } } diff --git a/Barotrauma/BarotraumaClient/Source/Items/Item.cs b/Barotrauma/BarotraumaClient/Source/Items/Item.cs index aa385d788..1bf224bdb 100644 --- a/Barotrauma/BarotraumaClient/Source/Items/Item.cs +++ b/Barotrauma/BarotraumaClient/Source/Items/Item.cs @@ -1,15 +1,12 @@ using Barotrauma.Items.Components; using Barotrauma.Networking; using FarseerPhysics; -using FarseerPhysics.Dynamics; -using FarseerPhysics.Dynamics.Contacts; using Lidgren.Network; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Xml.Linq; @@ -455,7 +452,7 @@ namespace Barotrauma ownInventory.ClientRead(type, msg, sendingTime); break; case NetEntityEvent.Type.Status: - condition = msg.ReadRangedSingle(0.0f, 100.0f, 8); + condition = msg.ReadRangedSingle(0.0f, prefab.Health, 8); if (FixRequirements.Count > 0) { diff --git a/Barotrauma/BarotraumaShared/Content/Items/Artifacts/artifact.png b/Barotrauma/BarotraumaShared/Content/Items/Artifacts/artifact.png index e53070be7d386cfb76baa57ef283bc49b9b54933..459cdfd544fc6a03e80c46f92a45ef1a23de60c5 100644 GIT binary patch literal 35006 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 diff --git a/Barotrauma/BarotraumaShared/Content/Items/Artifacts/artifacts.xml b/Barotrauma/BarotraumaShared/Content/Items/Artifacts/artifacts.xml index ba1631cc6..964ff7436 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Artifacts/artifacts.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Artifacts/artifacts.xml @@ -6,7 +6,7 @@ Tags="alien" pickdistance="150"> - + @@ -15,7 +15,7 @@ - + @@ -28,7 +28,7 @@ Tags="alien" pickdistance="150"> - + @@ -37,7 +37,7 @@ - + @@ -48,6 +48,7 @@ @@ -60,7 +61,30 @@ - + + + + + + + + + + + + + + + + + + + @@ -72,7 +96,7 @@ tags="alien,smallitem" impacttolerance="8"> - + @@ -100,7 +124,7 @@ - + diff --git a/Barotrauma/BarotraumaShared/Content/Missions.xml b/Barotrauma/BarotraumaShared/Content/Missions.xml index 26d82d1f0..8457a9c34 100644 --- a/Barotrauma/BarotraumaShared/Content/Missions.xml +++ b/Barotrauma/BarotraumaShared/Content/Missions.xml @@ -26,6 +26,19 @@ + + + + 50.0f) Finished(); + if (item.Condition > item.Prefab.Health * 0.5f) Finished(); } } } diff --git a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs index ee547ad24..6a9c1ff5b 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Components/Machines/Deconstructor.cs @@ -58,7 +58,7 @@ namespace Barotrauma.Items.Components foreach (DeconstructItem deconstructProduct in targetItem.Prefab.DeconstructItems) { - if (deconstructProduct.RequireFullCondition && targetItem.Condition < 100.0f) continue; + if (deconstructProduct.RequireFullCondition && targetItem.Condition < targetItem.Prefab.Health) continue; var itemPrefab = MapEntityPrefab.list.FirstOrDefault(ip => ip.Name.ToLowerInvariant() == deconstructProduct.ItemPrefabName.ToLowerInvariant()) as ItemPrefab; if (itemPrefab == null) diff --git a/Barotrauma/BarotraumaShared/Source/Items/Item.cs b/Barotrauma/BarotraumaShared/Source/Items/Item.cs index e1b0186b9..1ccc6d7df 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/Item.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/Item.cs @@ -178,10 +178,11 @@ namespace Barotrauma { if (GameMain.Client != null) return; if (!MathUtils.IsValid(value)) return; + if (prefab.Indestructible) return; float prev = condition; - condition = MathHelper.Clamp(value, 0.0f, 100.0f); - if (condition == 0.0f && prev>0.0f) + condition = MathHelper.Clamp(value, 0.0f, prefab.Health); + if (condition == 0.0f && prev > 0.0f) { ApplyStatusEffects(ActionType.OnBroken, 1.0f, null); foreach (FixRequirement req in FixRequirements) @@ -192,7 +193,7 @@ namespace Barotrauma if (GameMain.Server != null && lastSentCondition != condition) { - if (Math.Abs(lastSentCondition - condition) > 1.0f || condition == 0.0f || condition == 100.0f) + if (Math.Abs(lastSentCondition - condition) > 1.0f || condition == 0.0f || condition == prefab.Health) { GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status }); lastSentCondition = condition; @@ -205,7 +206,7 @@ namespace Barotrauma { get { return condition; } } - + [Editable, HasDefaultValue("", true)] public string Tags { @@ -340,9 +341,9 @@ namespace Barotrauma rect = newRect; if (submarine==null || !submarine.Loading) FindHull(); - - condition = 100.0f; - lastSentCondition = 100.0f; + + condition = prefab.Health; + lastSentCondition = prefab.Health; XElement element = prefab.ConfigElement; if (element == null) return; @@ -740,6 +741,8 @@ namespace Barotrauma public AttackResult AddDamage(IDamageable attacker, Vector2 worldPosition, Attack attack, float deltaTime, bool playSound = true) { + if (prefab.Indestructible) return new AttackResult(); + float damageAmount = attack.GetStructureDamage(deltaTime); Condition -= damageAmount; @@ -1321,9 +1324,9 @@ namespace Barotrauma ownInventory.ServerWrite(msg, c, extraData); break; case NetEntityEvent.Type.Status: - //clamp above 0.5f if condition > 0.0f + //clamp to (MaxHealth / 255.0f) if condition > 0.0f //to prevent condition from being rounded down to 0.0 even if the item is not broken - msg.WriteRangedSingle(condition > 0.0f ? Math.Max(condition, 0.5f) : 0.0f, 0.0f, 100.0f, 8); + msg.WriteRangedSingle(condition > 0.0f ? Math.Max(condition, prefab.Health / 255.0f) : 0.0f, 0.0f, prefab.Health, 8); if (condition <= 0.0f && FixRequirements.Count > 0) { @@ -1370,7 +1373,7 @@ namespace Barotrauma FixRequirements[requirementIndex].Fixed = true; if (condition <= 0.0f && FixRequirements.All(f => f.Fixed)) { - Condition = 100.0f; + Condition = prefab.Health; } GameMain.Server.CreateEntityEvent(this, new object[] { NetEntityEvent.Type.Status }); diff --git a/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs b/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs index ef7e8d130..d7c76e4c0 100644 --- a/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs +++ b/Barotrauma/BarotraumaShared/Source/Items/ItemPrefab.cs @@ -104,6 +104,17 @@ namespace Barotrauma get { return offsetOnSelected; } } + public float Health + { + get; + private set; + } + + public bool Indestructible + { + get; + private set; + } public float ImpactTolerance { @@ -242,8 +253,10 @@ namespace Barotrauma CanUseOnSelf = ToolBox.GetAttributeBool(element, "canuseonself", false); - FireProof = ToolBox.GetAttributeBool(element, "fireproof", false); + Health = ToolBox.GetAttributeFloat(element, "health", 100.0f); + Indestructible = ToolBox.GetAttributeBool(element, "indestructible", false); + FireProof = ToolBox.GetAttributeBool(element, "fireproof", false); ImpactTolerance = ToolBox.GetAttributeFloat(element, "impacttolerance", 0.0f); string aliases = ToolBox.GetAttributeString(element, "aliases", ""); diff --git a/Barotrauma/BarotraumaShared/Source/Networking/RespawnManager.cs b/Barotrauma/BarotraumaShared/Source/Networking/RespawnManager.cs index 0e4e167ae..37ec34a9a 100644 --- a/Barotrauma/BarotraumaShared/Source/Networking/RespawnManager.cs +++ b/Barotrauma/BarotraumaShared/Source/Networking/RespawnManager.cs @@ -330,7 +330,7 @@ namespace Barotrauma.Networking continue; } - item.Condition = 100.0f; + item.Condition = item.Prefab.Health; var powerContainer = item.GetComponent(); if (powerContainer != null) diff --git a/Barotrauma/BarotraumaShared/Source/Physics/PhysicsBody.cs b/Barotrauma/BarotraumaShared/Source/Physics/PhysicsBody.cs index 7535d41b5..8cc6a1395 100644 --- a/Barotrauma/BarotraumaShared/Source/Physics/PhysicsBody.cs +++ b/Barotrauma/BarotraumaShared/Source/Physics/PhysicsBody.cs @@ -290,7 +290,7 @@ namespace Barotrauma body.CollidesWith = Physics.CollisionWall | Physics.CollisionLevel; body.Friction = ToolBox.GetAttributeFloat(element, "friction", 0.3f); - body.Restitution = 0.05f; + body.Restitution = ToolBox.GetAttributeFloat(element, "restitution", 0.05f); body.BodyType = BodyType.Dynamic;