7cc231b...69487a2

commit 69487a2a8596ac24252c12624b40b7ad7a06edb5
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Wed Mar 20 15:50:44 2019 +0200

    Fixed TargetItemComponentName comparisons in StatusEffect conditionals. Closes #1307

commit 8568bbce1a6d7d809e8e7a63509850387d6d2b91
Merge: b4bd00925 481755c1b
Author: itchyOwl <lauri.harkanen@gmail.com>
Date:   Wed Mar 20 15:46:12 2019 +0200

    Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev

commit b4bd0092566cb31239bc8c585d98f4949fdc57b1
Author: itchyOwl <lauri.harkanen@gmail.com>
Date:   Wed Mar 20 15:45:48 2019 +0200

    Reinstate equipped item overrides for all item component instances.

commit 481755c1b636794886a38f8503b801df89eeee7e
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Wed Mar 20 15:37:55 2019 +0200

    Don't create network events in the LightComponent.IsOn setter if the round hasn't started (= when loading a game and initializing the items)
This commit is contained in:
Joonas Rikkonen
2019-03-20 16:07:57 +02:00
parent 81fafaf3f5
commit 5127038dc8
4 changed files with 39 additions and 41 deletions
@@ -640,6 +640,38 @@ namespace Barotrauma.Items.Components
Msg = msg;
}
#endif
var prevRequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(requiredItems);
bool overrideRequiredItems = false;
foreach (XElement subElement in componentElement.Elements())
{
foreach (InputType inputType in Enum.GetValues(typeof(InputType)))
{
case "requireditem":
if (!overrideRequiredItems) requiredItems.Clear();
overrideRequiredItems = true;
RelatedItem newRequiredItem = RelatedItem.Load(subElement, item.Name);
if (newRequiredItem == null) continue;
var prevRequiredItem = prevRequiredItems.ContainsKey(newRequiredItem.Type) ?
prevRequiredItems[newRequiredItem.Type].Find(ri => ri.JoinedIdentifiers == newRequiredItem.JoinedIdentifiers) : null;
if (prevRequiredItem != null)
{
newRequiredItem.statusEffects = prevRequiredItem.statusEffects;
newRequiredItem.Msg = prevRequiredItem.Msg;
}
if (!requiredItems.ContainsKey(newRequiredItem.Type))
{
requiredItems[newRequiredItem.Type] = new List<RelatedItem>();
}
requiredItems[newRequiredItem.Type].Add(newRequiredItem);
break;
}
Msg = msg;
}
#endif
// Only door override required items
//var prevRequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(requiredItems);