Ling fixes and tweaks (#259)
* - fix: Bees fix. * - fix: Transform transfers body type. * - fix: Chemcap is transfered on transform. * - fix: Gulag objective actual fix. * - fix: Fix escape with identity not working. * - tweak: Fixes & objective tweaks. * - tweak: More slowdown from ling armor.
This commit is contained in:
@@ -385,7 +385,7 @@ namespace Content.Server.Administration.Systems
|
||||
var senderSession = eventArgs.SenderSession;
|
||||
|
||||
//No bwoink for banned
|
||||
if (_gulagSystem.IsUserGulaged(senderSession.UserId, out _))
|
||||
if (_gulagSystem.IsUserGulagged(senderSession.UserId, out _))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ public sealed class AntagSelectionSystem : GameRuleSystem<GameRuleComponent>
|
||||
chosen = new List<EntityUid>();
|
||||
foreach (var player in allPlayers)
|
||||
{
|
||||
if (_gulag.IsUserGulaged(player.UserId, out _)) // WD
|
||||
if (_gulag.IsUserGulagged(player.UserId, out _)) // WD
|
||||
continue;
|
||||
|
||||
if (includeHeads == false)
|
||||
@@ -179,7 +179,7 @@ public sealed class AntagSelectionSystem : GameRuleSystem<GameRuleComponent>
|
||||
|
||||
foreach (var player in candidates.Keys)
|
||||
{
|
||||
if (_gulag.IsUserGulaged(player.UserId, out _)) // WD
|
||||
if (_gulag.IsUserGulagged(player.UserId, out _)) // WD
|
||||
continue;
|
||||
|
||||
if (_sharedPlayerSystem.ContentData(player) is not {Mind: { } mindId} || _roles.MindIsAntagonist(mindId))
|
||||
|
||||
@@ -235,7 +235,7 @@ public sealed class ChangelingRuleSystem : GameRuleSystem<ChangelingRuleComponen
|
||||
if (changeling.TotalChangelings >= MaxChangelings)
|
||||
continue;
|
||||
|
||||
if (_gulag.IsUserGulaged(ev.Player.UserId, out _))
|
||||
if (_gulag.IsUserGulagged(ev.Player.UserId, out _))
|
||||
continue;
|
||||
|
||||
if (!ev.LateJoin)
|
||||
|
||||
@@ -819,6 +819,7 @@ public sealed partial class ChangelingSystem
|
||||
var toAdd = new ChangelingComponent
|
||||
{
|
||||
HiveName = component.HiveName,
|
||||
ChemicalCapacity = component.ChemicalCapacity,
|
||||
ChemicalsBalance = component.ChemicalsBalance,
|
||||
AbsorbedEntities = component.AbsorbedEntities,
|
||||
IsInited = component.IsInited,
|
||||
@@ -902,10 +903,10 @@ public sealed partial class ChangelingSystem
|
||||
if (component.AbsorbedEntities.ContainsKey(targetDna.DNA))
|
||||
return;
|
||||
|
||||
if (component.AbsorbedEntities.Count == 7)
|
||||
/*if (component.AbsorbedEntities.Count == 7)
|
||||
{
|
||||
component.AbsorbedEntities.Remove(component.AbsorbedEntities.ElementAt(2).Key);
|
||||
}
|
||||
}*/
|
||||
|
||||
var appearance = _serializationManager.CreateCopy(targetAppearance, notNullableOverride: true);
|
||||
var meta = _serializationManager.CreateCopy(targetMeta, notNullableOverride: true);
|
||||
@@ -966,6 +967,7 @@ public sealed partial class ChangelingSystem
|
||||
var toAdd = new ChangelingComponent
|
||||
{
|
||||
HiveName = lingComp.HiveName,
|
||||
ChemicalCapacity = lingComp.ChemicalCapacity,
|
||||
ChemicalsBalance = lingComp.ChemicalsBalance,
|
||||
AbsorbedEntities = lingComp.AbsorbedEntities,
|
||||
IsInited = lingComp.IsInited,
|
||||
@@ -1104,7 +1106,8 @@ public sealed partial class ChangelingSystem
|
||||
targetHumanoid.EyeColor = sourceHumanoid.EyeColor;
|
||||
targetHumanoid.Age = sourceHumanoid.Age;
|
||||
_humanoidAppearance.SetSex(target, sourceHumanoid.Sex, false, targetHumanoid);
|
||||
_humanoidAppearance.SetSpecies(target, sourceHumanoid.Species);
|
||||
_humanoidAppearance.SetBodyType(target, sourceHumanoid.BodyType, false, targetHumanoid);
|
||||
_humanoidAppearance.SetSpecies(target, sourceHumanoid.Species, true, targetHumanoid);
|
||||
targetHumanoid.CustomBaseLayers = new Dictionary<HumanoidVisualLayers,
|
||||
CustomBaseLayerInfo>(sourceHumanoid.CustomBaseLayers);
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ using Content.Server.Actions;
|
||||
using Content.Shared.Actions;
|
||||
using Content.Shared.Changeling;
|
||||
using Content.Shared.Inventory;
|
||||
using Content.Shared.Mobs.Systems;
|
||||
|
||||
namespace Content.Server.Changeling;
|
||||
|
||||
@@ -9,6 +10,7 @@ public sealed class HiveHeadSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly ActionsSystem _actions = default!;
|
||||
[Dependency] private readonly ActionContainerSystem _actionContainer = default!;
|
||||
[Dependency] private readonly MobStateSystem _mobState = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -22,6 +24,9 @@ public sealed class HiveHeadSystem : EntitySystem
|
||||
|
||||
private void OnReleaseBees(Entity<HiveHeadComponent> ent, ref ReleaseBeesEvent args)
|
||||
{
|
||||
if (!_mobState.IsAlive(args.Performer))
|
||||
return;
|
||||
|
||||
args.Handled = true;
|
||||
|
||||
var coords = Transform(args.Performer).Coordinates;
|
||||
@@ -34,8 +39,11 @@ public sealed class HiveHeadSystem : EntitySystem
|
||||
|
||||
private void OnGetActions(Entity<HiveHeadComponent> ent, ref GetItemActionsEvent args)
|
||||
{
|
||||
if (args.SlotFlags == SlotFlags.HEAD)
|
||||
args.AddAction(ref ent.Comp.ActionEntity, ent.Comp.Action);
|
||||
if (args.SlotFlags != SlotFlags.HEAD)
|
||||
return;
|
||||
|
||||
args.AddAction(ref ent.Comp.ActionEntity, ent.Comp.Action);
|
||||
_actions.SetCooldown(ent.Comp.ActionEntity, TimeSpan.FromSeconds(5));
|
||||
}
|
||||
|
||||
private void OnShutdown(Entity<HiveHeadComponent> ent, ref ComponentShutdown args)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Linq;
|
||||
using Content.Server._Miracle.Components;
|
||||
using Content.Server._Miracle.GulagSystem;
|
||||
using Content.Server.Changeling.Objectives.Components;
|
||||
using Content.Server.Forensics;
|
||||
using Content.Server.Mind;
|
||||
@@ -20,6 +21,7 @@ public sealed class ChangelingConditionsSystem : EntitySystem
|
||||
[Dependency] private readonly TargetObjectiveSystem _target = default!;
|
||||
[Dependency] private readonly MindSystem _mind = default!;
|
||||
[Dependency] private readonly EmergencyShuttleSystem _emergencyShuttle = default!;
|
||||
[Dependency] private readonly GulagSystem _gulag = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -185,14 +187,19 @@ public sealed class ChangelingConditionsSystem : EntitySystem
|
||||
return;
|
||||
|
||||
var allHumans = _mind.GetAliveHumansExcept(args.MindId);
|
||||
allHumans = allHumans.Where(x => !HasComp<GulagBoundComponent>(x)).ToList();
|
||||
allHumans = allHumans.Where(x => !_gulag.IsMindGulagged(x)).ToList();
|
||||
if (allHumans.Count == 0)
|
||||
{
|
||||
args.Cancelled = true;
|
||||
return;
|
||||
}
|
||||
|
||||
_target.SetTarget(uid, _random.Pick(allHumans), target);
|
||||
var targetMindId = _random.Pick(allHumans);
|
||||
|
||||
if (TryComp(targetMindId, out MindComponent? mind) && TryComp(mind.CurrentEntity, out DnaComponent? dna))
|
||||
component.DNA = dna.DNA;
|
||||
|
||||
_target.SetTarget(uid, targetMindId, target);
|
||||
}
|
||||
|
||||
private void OnEscapeWithIdentityGetProgress(EntityUid uid, EscapeWithIdentityConditionComponent component, ref ObjectiveGetProgressEvent args)
|
||||
@@ -200,10 +207,15 @@ public sealed class ChangelingConditionsSystem : EntitySystem
|
||||
if (!_target.GetTarget(uid, out var target))
|
||||
return;
|
||||
|
||||
args.Progress = GetEscapeWithIdentityProgress(args.Mind, target.Value);
|
||||
var fallbackDNA = string.Empty;
|
||||
|
||||
if (TryComp(uid, out PickRandomIdentityComponent? pickIdentity))
|
||||
fallbackDNA = pickIdentity.DNA;
|
||||
|
||||
args.Progress = GetEscapeWithIdentityProgress(args.Mind, target.Value, fallbackDNA);
|
||||
}
|
||||
|
||||
private float GetEscapeWithIdentityProgress(MindComponent mind, EntityUid target)
|
||||
private float GetEscapeWithIdentityProgress(MindComponent mind, EntityUid target, string DNA)
|
||||
{
|
||||
var progress = 0f;
|
||||
|
||||
@@ -213,24 +225,21 @@ public sealed class ChangelingConditionsSystem : EntitySystem
|
||||
if (!TryComp<MindComponent>(target, out var targetMind))
|
||||
return 0f;
|
||||
|
||||
if (!TryComp<DnaComponent>(targetMind.CurrentEntity, out var targetDna))
|
||||
return 0f;
|
||||
if (TryComp<DnaComponent>(targetMind.CurrentEntity, out var targetDna))
|
||||
DNA = targetDna.DNA;
|
||||
|
||||
if (!TryComp<ChangelingComponent>(mind.CurrentEntity, out var changeling))
|
||||
return 0f;
|
||||
|
||||
if (!changeling.AbsorbedEntities.ContainsKey(targetDna.DNA))
|
||||
if (!changeling.AbsorbedEntities.ContainsKey(DNA))
|
||||
return 0f;
|
||||
|
||||
//Target absorbed by this changeling, so 50% of work is done
|
||||
progress += 0.5f;
|
||||
|
||||
if (_emergencyShuttle.IsTargetEscaping(mind.CurrentEntity.Value) && selfDna.DNA == targetDna.DNA)
|
||||
if (_emergencyShuttle.IsTargetEscaping(mind.CurrentEntity.Value) && selfDna.DNA == DNA)
|
||||
progress += 0.5f;
|
||||
|
||||
if (_emergencyShuttle.ShuttlesLeft)
|
||||
return progress;
|
||||
|
||||
return progress;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,5 +3,6 @@
|
||||
[RegisterComponent]
|
||||
public sealed partial class PickRandomIdentityComponent : Component
|
||||
{
|
||||
|
||||
[ViewVariables]
|
||||
public string DNA = string.Empty;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Content.Server.Chat.Commands
|
||||
}
|
||||
|
||||
var gulag = EntitySystem.Get<GulagSystem>();
|
||||
if (gulag.IsUserGulaged(shell.Player.UserId, out var _))
|
||||
if (gulag.IsUserGulagged(shell.Player.UserId, out var _))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -634,7 +634,7 @@ public sealed class NukeopsRuleSystem : GameRuleSystem<NukeopsRuleComponent>
|
||||
// ReSharper disable once ForeachCanBeConvertedToQueryUsingAnotherGetEnumerator
|
||||
foreach (var player in everyone)
|
||||
{
|
||||
if (_gulag.IsUserGulaged(player.UserId, out _)) // WD
|
||||
if (_gulag.IsUserGulagged(player.UserId, out _)) // WD
|
||||
continue;
|
||||
|
||||
if (!ev.Profiles.ContainsKey(player.UserId))
|
||||
|
||||
@@ -310,7 +310,7 @@ public sealed class TraitorRuleSystem : GameRuleSystem<TraitorRuleComponent>
|
||||
if (!GameTicker.IsGameRuleAdded(uid, gameRule))
|
||||
continue;
|
||||
|
||||
if (_gulag.IsUserGulaged(ev.Player.UserId, out _)) // WD
|
||||
if (_gulag.IsUserGulagged(ev.Player.UserId, out _)) // WD
|
||||
continue;
|
||||
|
||||
if (traitor.TotalTraitors >= MaxTraitors)
|
||||
|
||||
@@ -274,7 +274,7 @@ public sealed class ZombieRuleSystem : GameRuleSystem<ZombieRuleComponent>
|
||||
var prefList = new List<ICommonSession>();
|
||||
foreach (var player in allPlayers)
|
||||
{
|
||||
if (_gulag.IsUserGulaged(player.UserId, out _)) // WD
|
||||
if (_gulag.IsUserGulagged(player.UserId, out _)) // WD
|
||||
continue;
|
||||
|
||||
if (player.AttachedEntity == null || !HasComp<HumanoidAppearanceComponent>(player.AttachedEntity) || HasComp<ZombieImmuneComponent>(player.AttachedEntity))
|
||||
|
||||
@@ -204,7 +204,7 @@ namespace Content.Server.Ghost.Roles
|
||||
if (!_ghostRoles.TryGetValue(identifier, out var role))
|
||||
return;
|
||||
|
||||
if (_gulagSystem.IsUserGulaged(player.UserId, out _))
|
||||
if (_gulagSystem.IsUserGulagged(player.UserId, out _))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Linq;
|
||||
using Content.Server._Miracle.Components;
|
||||
using Content.Server._Miracle.GulagSystem;
|
||||
using Content.Server._White.Cult.GameRule;
|
||||
using Content.Server.Objectives.Components;
|
||||
using Content.Server.Shuttles.Systems;
|
||||
@@ -23,6 +24,7 @@ public sealed class KillPersonConditionSystem : EntitySystem
|
||||
[Dependency] private readonly SharedJobSystem _job = default!;
|
||||
[Dependency] private readonly SharedMindSystem _mind = default!;
|
||||
[Dependency] private readonly TargetObjectiveSystem _target = default!;
|
||||
[Dependency] private readonly GulagSystem _gulag = default!; // WD
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
@@ -60,7 +62,7 @@ public sealed class KillPersonConditionSystem : EntitySystem
|
||||
|
||||
// no other humans to kill
|
||||
var allHumans = _mind.GetAliveHumansExcept(args.MindId);
|
||||
allHumans = allHumans.Where(x => !HasComp<GulagBoundComponent>(x)).ToList(); // WD
|
||||
allHumans = allHumans.Where(x => !_gulag.IsMindGulagged(x)).ToList();
|
||||
if (allHumans.Count == 0)
|
||||
{
|
||||
args.Cancelled = true;
|
||||
@@ -85,7 +87,7 @@ public sealed class KillPersonConditionSystem : EntitySystem
|
||||
|
||||
// no other humans to kill
|
||||
var allHumans = _mind.GetAliveHumansExcept(args.MindId);
|
||||
allHumans = allHumans.Where(x => !HasComp<GulagBoundComponent>(x)).ToList(); // WD
|
||||
allHumans = allHumans.Where(x => !_gulag.IsMindGulagged(x)).ToList();
|
||||
if (allHumans.Count == 0)
|
||||
{
|
||||
args.Cancelled = true;
|
||||
|
||||
@@ -25,6 +25,7 @@ using Content.Shared.Hands.EntitySystems;
|
||||
using Content.Shared.Interaction;
|
||||
using Content.Shared.Inventory;
|
||||
using Content.Shared.Materials;
|
||||
using Content.Shared.Mind;
|
||||
using Content.Shared.Parallax.Biomes;
|
||||
using Content.Shared.Popups;
|
||||
using Content.Shared.Preferences;
|
||||
@@ -121,7 +122,7 @@ public sealed partial class GulagSystem : SharedGulagSystem
|
||||
|
||||
private void OnJoinedLobby(PlayerJoinedLobbyEvent ev)
|
||||
{
|
||||
if(IsUserGulaged(ev.PlayerSession.UserId, out _))
|
||||
if(IsUserGulagged(ev.PlayerSession.UserId, out _))
|
||||
{
|
||||
_chatManager.DispatchServerMessage(ev.PlayerSession, Loc.GetString("gulag-chat-join-message"));
|
||||
}
|
||||
@@ -141,7 +142,7 @@ public sealed partial class GulagSystem : SharedGulagSystem
|
||||
|
||||
var player = source.PlayerId;
|
||||
|
||||
if (!IsUserGulaged(player, out var ban))
|
||||
if (!IsUserGulagged(player, out var ban))
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -289,13 +290,21 @@ public sealed partial class GulagSystem : SharedGulagSystem
|
||||
_popupSystem.PopupEntity(Loc.GetString("gulag-ban-time-changed", ("Time", $"{time.TotalSeconds}")), uid, PopupType.Medium);
|
||||
}
|
||||
|
||||
public bool IsUserGulaged(NetUserId playerId, out HashSet<ServerBanDef> bans)
|
||||
public bool IsUserGulagged(NetUserId playerId, out HashSet<ServerBanDef> bans)
|
||||
{
|
||||
bans = _banManager.GetServerBans(playerId);
|
||||
|
||||
return bans.Count != 0;
|
||||
}
|
||||
|
||||
public bool IsMindGulagged(EntityUid mindId)
|
||||
{
|
||||
if (!TryComp(mindId, out MindComponent? mind) || mind.UserId == null)
|
||||
return false;
|
||||
|
||||
return IsUserGulagged(mind.UserId.Value, out _);
|
||||
}
|
||||
|
||||
private void SendToGulag(EntityUid playerEntity)
|
||||
{
|
||||
if (_inventorySystem.TryGetContainerSlotEnumerator(playerEntity, out var enumerator))
|
||||
|
||||
@@ -325,7 +325,7 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
|
||||
if (entity == default)
|
||||
continue;
|
||||
|
||||
if (_gulag.IsUserGulaged(actor.PlayerSession.UserId, out _))
|
||||
if (_gulag.IsUserGulagged(actor.PlayerSession.UserId, out _))
|
||||
continue;
|
||||
|
||||
if (exclude?.Contains(actor.PlayerSession) is true)
|
||||
@@ -348,7 +348,7 @@ public sealed class CultRuleSystem : GameRuleSystem<CultRuleComponent>
|
||||
foreach (var player in candidates.Keys)
|
||||
{
|
||||
// Gulag
|
||||
if (_gulag.IsUserGulaged(player.UserId, out _))
|
||||
if (_gulag.IsUserGulagged(player.UserId, out _))
|
||||
continue;
|
||||
|
||||
// Role prevents antag.
|
||||
|
||||
@@ -97,7 +97,7 @@ public sealed class ChemicalsSystem : EntitySystem
|
||||
if(_net.IsServer)
|
||||
{
|
||||
_alertsSystem.ShowAlert(uid, AlertType.Chemicals,
|
||||
(short) Math.Clamp(Math.Round(component.ChemicalsBalance / 10f), 0, 7));
|
||||
(short) Math.Clamp(Math.Round(component.ChemicalsBalance / 10f), 0, 16));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,6 +172,9 @@
|
||||
- type: ExplosionResistance
|
||||
damageCoefficient: 0.5
|
||||
- type: GroupExamine
|
||||
- type: ClothingSpeedModifier
|
||||
walkModifier: 0.85
|
||||
sprintModifier: 0.85
|
||||
- type: Unremoveable
|
||||
deleteOnDrop: true
|
||||
- type: ClothingModifyChemicalRegen
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
id: BaseChangelingStealObjective
|
||||
components:
|
||||
- type: StealCondition
|
||||
verifyMapExistance: false
|
||||
verifyMapExistence: false
|
||||
- type: Objective
|
||||
difficulty: 2.75
|
||||
- type: ObjectiveLimit
|
||||
limit: 1
|
||||
limit: 2
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
@@ -63,6 +63,22 @@
|
||||
- type: PickRandomChangeling
|
||||
- type: AbsorbChangelingCondition
|
||||
|
||||
# escape
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseChangelingObjective, BaseLivingObjective]
|
||||
id: EscapeShuttleObjectiveCh
|
||||
name: Escape to centcom alive and unrestrained.
|
||||
description: One of our undercover agents will debrief you when you arrive. Don't show up in cuffs.
|
||||
components:
|
||||
- type: Objective
|
||||
difficulty: 1.3
|
||||
icon:
|
||||
sprite: Structures/Furniture/chairs.rsi
|
||||
state: shuttle
|
||||
- type: EscapeShuttleCondition
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: BaseChangelingObjective
|
||||
@@ -76,6 +92,11 @@
|
||||
title: objective-condition-escape-with-identity-title
|
||||
- type: PickRandomIdentity
|
||||
- type: EscapeWithIdentityCondition
|
||||
- type: ObjectiveBlacklistRequirement
|
||||
blacklist:
|
||||
components:
|
||||
- EscapeShuttleCondition
|
||||
- DieCondition
|
||||
|
||||
# steal
|
||||
|
||||
@@ -225,3 +246,37 @@
|
||||
- type: StealCondition
|
||||
stealGroup: NukeDisk
|
||||
owner: objective-condition-steal-station
|
||||
|
||||
# kill
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseChangelingObjective, BaseKillObjective]
|
||||
id: KillRandomPersonObjectiveCh
|
||||
description: Do it however you like, just make sure they don't make it to centcom.
|
||||
components:
|
||||
- type: Objective
|
||||
difficulty: 1.75
|
||||
unique: false
|
||||
- type: TargetObjective
|
||||
title: objective-condition-kill-person-title
|
||||
- type: PickRandomPerson
|
||||
|
||||
- type: entity
|
||||
noSpawn: true
|
||||
parent: [BaseChangelingObjective, BaseKillObjective]
|
||||
id: KillRandomHeadObjectiveCh
|
||||
description: We need this head gone and you probably know why. Good luck, agent.
|
||||
components:
|
||||
- type: Objective
|
||||
# technically its still possible for KillRandomPersonObjective to roll a head but this is guaranteed, so higher difficulty
|
||||
difficulty: 3.0
|
||||
# killing 1 head is enough
|
||||
unique: true
|
||||
- type: TargetObjective
|
||||
title: objective-condition-kill-head-title
|
||||
- type: PickRandomHead
|
||||
- type: KillPersonCondition
|
||||
# don't count missing evac as killing as heads are higher profile, so you really need to do the dirty work
|
||||
# if ce flies a shittle to centcom you better find a way onto it
|
||||
requireDead: true
|
||||
|
||||
@@ -133,17 +133,18 @@
|
||||
weights:
|
||||
ChangelingObjectiveGroupSteal: 1
|
||||
ChangelingObjectiveGroupKill: 1
|
||||
ChangelingObjectiveGroupEscape: 1
|
||||
|
||||
- type: weightedRandom
|
||||
id: ChangelingObjectiveGroupSteal
|
||||
weights:
|
||||
CaptainIDStealObjectiveCh: 0.5
|
||||
CMOHyposprayStealObjectiveCh: 0.5
|
||||
RDHardsuitStealObjectiveCh: 0.5
|
||||
NukeDiskStealObjectiveCh: 0.5
|
||||
MagbootsStealObjectiveCh: 0.5
|
||||
CorgiMeatStealObjectiveCh: 0.5
|
||||
ClipboardStealObjectiveCh: 0.5
|
||||
CaptainIDStealObjectiveCh: 1
|
||||
CMOHyposprayStealObjectiveCh: 1
|
||||
RDHardsuitStealObjectiveCh: 1
|
||||
NukeDiskStealObjectiveCh: 1
|
||||
MagbootsStealObjectiveCh: 1
|
||||
CorgiMeatStealObjectiveCh: 1
|
||||
ClipboardStealObjectiveCh: 1
|
||||
CaptainGunStealObjectiveCh: 0.5
|
||||
CaptainJetpackStealObjectiveCh: 0.5
|
||||
HandTeleporterStealObjectiveCh: 0.5
|
||||
@@ -154,5 +155,12 @@
|
||||
weights:
|
||||
AbsorbDnaObjective: 1
|
||||
AbsorbMoreDnaObjective: 0.75
|
||||
AbsorbChangelingObjective: 0.25
|
||||
EscapeWithIdentityObjective: 0.75
|
||||
#AbsorbChangelingObjective: 0.25
|
||||
KillRandomPersonObjectiveCh: 1
|
||||
KillRandomHeadObjectiveCh: 0.25
|
||||
|
||||
- type: weightedRandom
|
||||
id: ChangelingObjectiveGroupEscape
|
||||
weights:
|
||||
EscapeShuttleObjectiveCh: 1
|
||||
EscapeWithIdentityObjective: 0.5
|
||||
|
||||
Reference in New Issue
Block a user