diff --git a/Content.Server/_Wega/GameTicking/Rules/VampireRuleSystem.cs b/Content.Server/_Wega/GameTicking/Rules/VampireRuleSystem.cs index 0cde823f21..24801b0b63 100644 --- a/Content.Server/_Wega/GameTicking/Rules/VampireRuleSystem.cs +++ b/Content.Server/_Wega/GameTicking/Rules/VampireRuleSystem.cs @@ -121,10 +121,13 @@ namespace Content.Server.GameTicking.Rules { if (TryComp(organ.Id, out var metabolizer)) { + // TODO: wega fork has ClearMetabolizerTypes/TryAddMetabolizerType methods, wylab doesn't + // Using direct HashSet manipulation instead if (TryComp(organ.Id, out _)) - _metabolism.ClearMetabolizerTypes(metabolizer); + metabolizer.MetabolizerTypes?.Clear(); - _metabolism.TryAddMetabolizerType(metabolizer, VampireComponent.MetabolizerVampire); + metabolizer.MetabolizerTypes ??= new(); + metabolizer.MetabolizerTypes.Add(VampireComponent.MetabolizerVampire); } } } diff --git a/Content.Server/_Wega/Vampire/VampireSystem.Abilities.cs b/Content.Server/_Wega/Vampire/VampireSystem.Abilities.cs index 0edd07ef3f..05fadf1328 100644 --- a/Content.Server/_Wega/Vampire/VampireSystem.Abilities.cs +++ b/Content.Server/_Wega/Vampire/VampireSystem.Abilities.cs @@ -220,7 +220,8 @@ public sealed partial class VampireSystem if (HasComp(uid)) { RemoveKnockdown(uid); - _stamina.RemoveStaminaDamage(uid); + // TODO: wega fork has RemoveStaminaDamage, wylab doesn't - implement stamina reset + // _stamina.RemoveStaminaDamage(uid); } if (component.CurrentBlood >= 200) @@ -608,7 +609,8 @@ public sealed partial class VampireSystem var originalWalkSpeed = speedmodComponent.BaseWalkSpeed; var originalSprintSpeed = speedmodComponent.BaseSprintSpeed; var stealthComponent = _entityManager.GetComponent(uid); - if (TryComp(uid, out MobStateComponent? mobState) && mobState.CurrentState == MobState.PreCritical) + // NOTE: wega has PreCritical state, wylab doesn't - using Critical as fallback + if (TryComp(uid, out MobStateComponent? mobState) && mobState.CurrentState == MobState.Critical) { args.Handled = true; return; @@ -866,7 +868,8 @@ public sealed partial class VampireSystem if (HasComp(uid)) { RemoveKnockdown(uid); - _stamina.RemoveStaminaDamage(uid); + // TODO: wega fork has RemoveStaminaDamage, wylab doesn't - implement stamina reset + // _stamina.RemoveStaminaDamage(uid); } if (component.CurrentBlood >= 200 && TryComp(uid, out var damageableComponent)) @@ -1198,8 +1201,9 @@ public sealed partial class VampireSystem return; } + // TODO: wega has SyntheticOperatedComponent for android check, wylab doesn't if (HasComp(target) || HasComp(target) || HasComp(target) - || HasComp(target)) + /* || HasComp(target) */) { _popup.PopupEntity(Loc.GetString("vampire-enthall-failed", ("target", target)), uid, uid); return; @@ -1349,7 +1353,8 @@ public sealed partial class VampireSystem var targetCoords = Transform(target).Coordinates; _transform.SetCoordinates(uid, targetCoords); _transform.SetCoordinates(target, currentCoords); - _movementMod.TryUpdateMovementSpeedModDuration(target, MovementModStatusSystem.Slowdown, TimeSpan.FromSeconds(4f), 0.5f); + // TODO: wega has MovementModStatusSystem.Slowdown, wylab uses FlashSlowdown as substitute + _movementMod.TryUpdateMovementSpeedModDuration(target, MovementModStatusSystem.FlashSlowdown, TimeSpan.FromSeconds(4f), 0.5f); _hallucinations.StartHallucinations(target, "Hallucinations", TimeSpan.FromSeconds(15f), true, "MindBreaker"); SubtractBloodEssence(uid, 15); @@ -1385,7 +1390,8 @@ public sealed partial class VampireSystem if (HasComp(thrallEntity)) { RemoveKnockdown(thrallEntity); - _stamina.RemoveStaminaDamage(thrallEntity.Owner); + // TODO: wega fork has RemoveStaminaDamage, wylab doesn't - implement stamina reset + // _stamina.RemoveStaminaDamage(thrallEntity.Owner); } } @@ -1457,7 +1463,8 @@ public sealed partial class VampireSystem if (HasComp(victimEntity) && !component.TruePowerActive) continue; - _movementMod.TryUpdateMovementSpeedModDuration(victimEntity, MovementModStatusSystem.Slowdown, TimeSpan.FromSeconds(4f), 0.5f); + // TODO: wega has MovementModStatusSystem.Slowdown, wylab uses FlashSlowdown as substitute + _movementMod.TryUpdateMovementSpeedModDuration(victimEntity, MovementModStatusSystem.FlashSlowdown, TimeSpan.FromSeconds(4f), 0.5f); _hallucinations.StartHallucinations(victimEntity, "Hallucinations", TimeSpan.FromSeconds(30f), true, "MindBreaker"); } diff --git a/Content.Server/_Wega/Vampire/VampireSystem.cs b/Content.Server/_Wega/Vampire/VampireSystem.cs index 93fba57b78..6fe07a68f9 100644 --- a/Content.Server/_Wega/Vampire/VampireSystem.cs +++ b/Content.Server/_Wega/Vampire/VampireSystem.cs @@ -195,7 +195,8 @@ public sealed partial class VampireSystem : SharedVampireSystem return false; } - if (!_interaction.InRangeUnobstructed(uid, args.Target, popup: true) || HasComp(args.Target)) + // TODO: wega has SyntheticOperatedComponent for android check, wylab doesn't + if (!_interaction.InRangeUnobstructed(uid, args.Target, popup: true) /* || HasComp(args.Target) */) return false; IngestionBlockerComponent? blocker; @@ -281,7 +282,8 @@ public sealed partial class VampireSystem : SharedVampireSystem } _admin.Add(LogType.Damaged, LogImpact.Low, $"{ToPrettyString(uid):user} drank {volumeToConsume}u of {ToPrettyString(args.Target):target}'s blood"); - if (HasComp(args.Target) && !HasComp(args.Target)) + // TODO: wega has DnaModifiedComponent for genetics check, wylab doesn't + if (HasComp(args.Target) /* && !HasComp(args.Target) */) AddBloodEssence(uid, volumeToConsume * 0.95); SetBloodConsumedByVampire(uid, args.Target.Value, bloodAlreadyConsumed + volumeToConsume);