Faction Test 100.4.0.0

This commit is contained in:
Markus Isberg
2022-11-14 18:28:28 +02:00
parent 87426b68b2
commit c772b61fc1
412 changed files with 16984 additions and 5530 deletions
@@ -1,5 +1,4 @@
using System.Collections.Generic;
using System.Xml.Linq;
namespace Barotrauma
{
@@ -7,7 +6,7 @@ namespace Barotrauma
{
private readonly List<StatusEffect> effects = new List<StatusEffect>();
private int actionIndex;
private readonly int actionIndex;
[Serialize("", IsPropertySaveable.Yes)]
public Identifier TargetTag { get; set; }
@@ -46,25 +45,40 @@ namespace Barotrauma
public override void Update(float deltaTime)
{
if (isFinished) { return; }
var targets = ParentEvent.GetTargets(TargetTag);
var eventTargets = ParentEvent.GetTargets(TargetTag);
foreach (StatusEffect effect in effects)
{
foreach (var target in targets)
foreach (var target in eventTargets)
{
if (target is Item targetItem)
if (effect.HasTargetType(StatusEffect.TargetType.NearbyCharacters))
{
effect.Apply(effect.type, deltaTime, target, targetItem.AllPropertyObjects);
}
else
{
effect.Apply(effect.type, deltaTime, target, target as ISerializableEntity);
List<ISerializableEntity> nearbyTargets = new List<ISerializableEntity>();
effect.AddNearbyTargets(target.WorldPosition, nearbyTargets);
foreach (var nearbyTarget in nearbyTargets)
{
ApplyOnTarget(nearbyTarget as Entity, effect);
}
continue;
}
ApplyOnTarget(target, effect);
}
}
#if SERVER
ServerWrite(targets);
ServerWrite(eventTargets);
#endif
isFinished = true;
void ApplyOnTarget(Entity target, StatusEffect effect)
{
if (target is Item targetItem)
{
effect.Apply(effect.type, deltaTime, target, targetItem.AllPropertyObjects);
}
else
{
effect.Apply(effect.type, deltaTime, target, target as ISerializableEntity);
}
}
}
public override string ToDebugString()