2020-08-13 14:40:27 +02:00
|
|
|
using System.Collections.Generic;
|
2020-08-22 22:29:20 +02:00
|
|
|
using System.Linq;
|
2023-11-29 13:32:59 +11:00
|
|
|
using System.Numerics;
|
2023-10-16 16:54:10 +11:00
|
|
|
using Content.Server.Humanoid.Components;
|
2021-06-09 22:19:39 +02:00
|
|
|
using Content.Shared.Coordinates;
|
2023-10-16 16:54:10 +11:00
|
|
|
using Content.Shared.Prototypes;
|
2023-04-25 21:27:57 +12:00
|
|
|
using Robust.Shared;
|
2023-04-25 11:48:29 +12:00
|
|
|
using Robust.Shared.Configuration;
|
2020-03-27 00:32:24 -04:00
|
|
|
using Robust.Shared.GameObjects;
|
2020-08-13 14:40:27 +02:00
|
|
|
using Robust.Shared.Log;
|
2020-03-27 00:32:24 -04:00
|
|
|
using Robust.Shared.Map;
|
2022-11-22 13:12:04 +11:00
|
|
|
using Robust.Shared.Map.Components;
|
2022-04-24 13:54:25 +10:00
|
|
|
using Robust.Shared.Maths;
|
2020-03-27 00:32:24 -04:00
|
|
|
using Robust.Shared.Prototypes;
|
|
|
|
|
|
|
|
|
|
namespace Content.IntegrationTests.Tests
|
|
|
|
|
{
|
|
|
|
|
[TestFixture]
|
2021-12-05 18:09:01 +01:00
|
|
|
[TestOf(typeof(EntityUid))]
|
2022-06-19 20:22:28 -07:00
|
|
|
public sealed class EntityTest
|
2020-03-27 00:32:24 -04:00
|
|
|
{
|
|
|
|
|
[Test]
|
2022-08-28 15:13:59 -07:00
|
|
|
public async Task SpawnAndDeleteAllEntitiesOnDifferentMaps()
|
2020-03-27 00:32:24 -04:00
|
|
|
{
|
2023-08-02 03:09:25 +12:00
|
|
|
// This test dirties the pair as it simply deletes ALL entities when done. Overhead of restarting the round
|
|
|
|
|
// is minimal relative to the rest of the test.
|
2023-08-06 14:30:28 +12:00
|
|
|
var settings = new PoolSettings { Dirty = true };
|
2023-08-25 02:56:51 +02:00
|
|
|
await using var pair = await PoolManager.GetServerClient(settings);
|
|
|
|
|
var server = pair.Server;
|
2020-09-01 12:29:58 +02:00
|
|
|
|
2023-05-31 11:13:02 +10:00
|
|
|
var entityMan = server.ResolveDependency<IEntityManager>();
|
|
|
|
|
var mapManager = server.ResolveDependency<IMapManager>();
|
|
|
|
|
var prototypeMan = server.ResolveDependency<IPrototypeManager>();
|
2024-01-20 17:15:10 +11:00
|
|
|
var mapSystem = entityMan.System<SharedMapSystem>();
|
2020-09-01 12:29:58 +02:00
|
|
|
|
2022-06-19 20:22:28 -07:00
|
|
|
await server.WaitPost(() =>
|
2020-03-27 00:32:24 -04:00
|
|
|
{
|
2022-08-28 15:13:59 -07:00
|
|
|
var protoIds = prototypeMan
|
|
|
|
|
.EnumeratePrototypes<EntityPrototype>()
|
2023-07-05 21:54:25 -07:00
|
|
|
.Where(p => !p.Abstract)
|
2023-08-25 02:56:51 +02:00
|
|
|
.Where(p => !pair.IsTestPrototype(p))
|
2023-05-16 06:36:45 -05:00
|
|
|
.Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise.
|
2022-08-28 15:13:59 -07:00
|
|
|
.Select(p => p.ID)
|
|
|
|
|
.ToList();
|
2024-01-20 17:15:10 +11:00
|
|
|
|
2022-08-28 15:13:59 -07:00
|
|
|
foreach (var protoId in protoIds)
|
|
|
|
|
{
|
|
|
|
|
var mapId = mapManager.CreateMap();
|
2024-01-20 17:15:10 +11:00
|
|
|
var grid = mapManager.CreateGridEntity(mapId);
|
2023-09-11 09:42:41 +10:00
|
|
|
// TODO: Fix this better in engine.
|
2024-01-20 17:15:10 +11:00
|
|
|
mapSystem.SetTile(grid.Owner, grid.Comp, Vector2i.Zero, new Tile(1));
|
2022-12-12 14:59:02 +11:00
|
|
|
var coord = new EntityCoordinates(grid.Owner, 0, 0);
|
2022-08-28 15:13:59 -07:00
|
|
|
entityMan.SpawnEntity(protoId, coord);
|
|
|
|
|
}
|
|
|
|
|
});
|
2020-09-01 12:29:58 +02:00
|
|
|
|
2023-01-24 13:33:49 +13:00
|
|
|
await server.WaitRunTicks(15);
|
2020-09-01 12:29:58 +02:00
|
|
|
|
2022-08-28 15:13:59 -07:00
|
|
|
await server.WaitPost(() =>
|
|
|
|
|
{
|
2023-07-05 21:54:25 -07:00
|
|
|
static IEnumerable<(EntityUid, TComp)> Query<TComp>(IEntityManager entityMan)
|
|
|
|
|
where TComp : Component
|
2022-08-28 15:13:59 -07:00
|
|
|
{
|
2023-07-05 21:54:25 -07:00
|
|
|
var query = entityMan.AllEntityQueryEnumerator<TComp>();
|
|
|
|
|
while (query.MoveNext(out var uid, out var meta))
|
2024-01-20 17:15:10 +11:00
|
|
|
{
|
2023-07-05 21:54:25 -07:00
|
|
|
yield return (uid, meta);
|
2024-01-20 17:15:10 +11:00
|
|
|
}
|
2023-09-11 09:42:41 +10:00
|
|
|
}
|
2023-07-05 21:54:25 -07:00
|
|
|
|
|
|
|
|
var entityMetas = Query<MetaDataComponent>(entityMan).ToList();
|
|
|
|
|
foreach (var (uid, meta) in entityMetas)
|
|
|
|
|
{
|
|
|
|
|
if (!meta.EntityDeleted)
|
|
|
|
|
entityMan.DeleteEntity(uid);
|
2022-08-28 15:13:59 -07:00
|
|
|
}
|
2020-09-01 12:29:58 +02:00
|
|
|
|
2022-08-28 15:13:59 -07:00
|
|
|
Assert.That(entityMan.EntityCount, Is.Zero);
|
|
|
|
|
});
|
2023-04-25 11:48:29 +12:00
|
|
|
|
2023-08-25 02:56:51 +02:00
|
|
|
await pair.CleanReturnAsync();
|
2022-08-28 15:13:59 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public async Task SpawnAndDeleteAllEntitiesInTheSameSpot()
|
|
|
|
|
{
|
2023-08-02 03:09:25 +12:00
|
|
|
// This test dirties the pair as it simply deletes ALL entities when done. Overhead of restarting the round
|
|
|
|
|
// is minimal relative to the rest of the test.
|
2023-08-06 14:30:28 +12:00
|
|
|
var settings = new PoolSettings { Dirty = true };
|
2023-08-25 02:56:51 +02:00
|
|
|
await using var pair = await PoolManager.GetServerClient(settings);
|
|
|
|
|
var server = pair.Server;
|
2023-08-25 04:13:11 +02:00
|
|
|
var map = await pair.CreateTestMap();
|
2020-09-01 12:29:58 +02:00
|
|
|
|
2023-05-31 11:13:02 +10:00
|
|
|
var entityMan = server.ResolveDependency<IEntityManager>();
|
|
|
|
|
var prototypeMan = server.ResolveDependency<IPrototypeManager>();
|
2023-04-25 11:48:29 +12:00
|
|
|
|
2022-08-28 15:13:59 -07:00
|
|
|
await server.WaitPost(() =>
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var protoIds = prototypeMan
|
|
|
|
|
.EnumeratePrototypes<EntityPrototype>()
|
2023-07-05 21:54:25 -07:00
|
|
|
.Where(p => !p.Abstract)
|
2023-08-25 02:56:51 +02:00
|
|
|
.Where(p => !pair.IsTestPrototype(p))
|
2023-05-16 06:36:45 -05:00
|
|
|
.Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise.
|
2022-08-28 15:13:59 -07:00
|
|
|
.Select(p => p.ID)
|
|
|
|
|
.ToList();
|
|
|
|
|
foreach (var protoId in protoIds)
|
|
|
|
|
{
|
2023-01-24 13:33:49 +13:00
|
|
|
entityMan.SpawnEntity(protoId, map.GridCoords);
|
2022-08-28 15:13:59 -07:00
|
|
|
}
|
2020-03-27 00:32:24 -04:00
|
|
|
});
|
2023-01-24 13:33:49 +13:00
|
|
|
await server.WaitRunTicks(15);
|
2022-08-28 15:13:59 -07:00
|
|
|
await server.WaitPost(() =>
|
2020-08-18 13:46:12 +02:00
|
|
|
{
|
2023-07-05 21:54:25 -07:00
|
|
|
static IEnumerable<(EntityUid, TComp)> Query<TComp>(IEntityManager entityMan)
|
|
|
|
|
where TComp : Component
|
|
|
|
|
{
|
|
|
|
|
var query = entityMan.AllEntityQueryEnumerator<TComp>();
|
|
|
|
|
while (query.MoveNext(out var uid, out var meta))
|
2024-01-20 17:15:10 +11:00
|
|
|
{
|
2023-07-05 21:54:25 -07:00
|
|
|
yield return (uid, meta);
|
2024-01-20 17:15:10 +11:00
|
|
|
}
|
|
|
|
|
}
|
2023-07-05 21:54:25 -07:00
|
|
|
|
|
|
|
|
var entityMetas = Query<MetaDataComponent>(entityMan).ToList();
|
|
|
|
|
foreach (var (uid, meta) in entityMetas)
|
2020-08-18 13:46:12 +02:00
|
|
|
{
|
2023-07-05 21:54:25 -07:00
|
|
|
if (!meta.EntityDeleted)
|
|
|
|
|
entityMan.DeleteEntity(uid);
|
2020-08-18 13:46:12 +02:00
|
|
|
}
|
2020-03-27 00:32:24 -04:00
|
|
|
|
2022-08-28 15:13:59 -07:00
|
|
|
Assert.That(entityMan.EntityCount, Is.Zero);
|
2020-08-18 13:46:12 +02:00
|
|
|
});
|
2023-04-25 11:48:29 +12:00
|
|
|
|
2023-08-25 02:56:51 +02:00
|
|
|
await pair.CleanReturnAsync();
|
2020-03-27 00:32:24 -04:00
|
|
|
}
|
2023-01-24 13:33:49 +13:00
|
|
|
|
|
|
|
|
/// <summary>
|
2023-04-25 21:27:57 +12:00
|
|
|
/// Variant of <see cref="SpawnAndDeleteAllEntitiesOnDifferentMaps"/> that also launches a client and dirties
|
2023-01-24 13:33:49 +13:00
|
|
|
/// all components on every entity.
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Test]
|
|
|
|
|
public async Task SpawnAndDirtyAllEntities()
|
|
|
|
|
{
|
2023-08-02 03:09:25 +12:00
|
|
|
// This test dirties the pair as it simply deletes ALL entities when done. Overhead of restarting the round
|
|
|
|
|
// is minimal relative to the rest of the test.
|
2023-08-06 14:30:28 +12:00
|
|
|
var settings = new PoolSettings { Connected = true, Dirty = true };
|
2023-08-25 02:56:51 +02:00
|
|
|
await using var pair = await PoolManager.GetServerClient(settings);
|
|
|
|
|
var server = pair.Server;
|
|
|
|
|
var client = pair.Client;
|
2023-01-24 13:33:49 +13:00
|
|
|
|
2023-04-25 11:48:29 +12:00
|
|
|
var cfg = server.ResolveDependency<IConfigurationManager>();
|
2023-04-25 21:27:57 +12:00
|
|
|
var prototypeMan = server.ResolveDependency<IPrototypeManager>();
|
|
|
|
|
var mapManager = server.ResolveDependency<IMapManager>();
|
|
|
|
|
var sEntMan = server.ResolveDependency<IEntityManager>();
|
|
|
|
|
|
|
|
|
|
Assert.That(cfg.GetCVar(CVars.NetPVS), Is.False);
|
|
|
|
|
|
|
|
|
|
var protoIds = prototypeMan
|
|
|
|
|
.EnumeratePrototypes<EntityPrototype>()
|
|
|
|
|
.Where(p => !p.Abstract)
|
2023-08-25 02:56:51 +02:00
|
|
|
.Where(p => !pair.IsTestPrototype(p))
|
2023-05-16 06:36:45 -05:00
|
|
|
.Where(p => !p.Components.ContainsKey("MapGrid")) // This will smash stuff otherwise.
|
2023-04-25 21:27:57 +12:00
|
|
|
.Select(p => p.ID)
|
|
|
|
|
.ToList();
|
|
|
|
|
|
2023-01-24 13:33:49 +13:00
|
|
|
await server.WaitPost(() =>
|
|
|
|
|
{
|
|
|
|
|
foreach (var protoId in protoIds)
|
|
|
|
|
{
|
2023-04-25 21:27:57 +12:00
|
|
|
var mapId = mapManager.CreateMap();
|
2024-01-20 17:15:10 +11:00
|
|
|
var grid = mapManager.CreateGridEntity(mapId);
|
2023-04-25 21:27:57 +12:00
|
|
|
var ent = sEntMan.SpawnEntity(protoId, new EntityCoordinates(grid.Owner, 0.5f, 0.5f));
|
|
|
|
|
foreach (var (_, component) in sEntMan.GetNetComponents(ent))
|
2023-01-24 13:33:49 +13:00
|
|
|
{
|
2024-01-20 17:15:10 +11:00
|
|
|
sEntMan.Dirty(ent, component);
|
2023-01-24 13:33:49 +13:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
2023-04-25 21:27:57 +12:00
|
|
|
|
2023-08-25 04:13:11 +02:00
|
|
|
await pair.RunTicksSync(15);
|
2023-04-25 21:27:57 +12:00
|
|
|
|
|
|
|
|
// Make sure the client actually received the entities
|
|
|
|
|
// 500 is completely arbitrary. Note that the client & sever entity counts aren't expected to match.
|
|
|
|
|
Assert.That(client.ResolveDependency<IEntityManager>().EntityCount, Is.GreaterThan(500));
|
|
|
|
|
|
2023-01-24 13:33:49 +13:00
|
|
|
await server.WaitPost(() =>
|
|
|
|
|
{
|
2023-07-05 21:54:25 -07:00
|
|
|
static IEnumerable<(EntityUid, TComp)> Query<TComp>(IEntityManager entityMan)
|
|
|
|
|
where TComp : Component
|
|
|
|
|
{
|
|
|
|
|
var query = entityMan.AllEntityQueryEnumerator<TComp>();
|
|
|
|
|
while (query.MoveNext(out var uid, out var meta))
|
2024-01-20 17:15:10 +11:00
|
|
|
{
|
2023-07-05 21:54:25 -07:00
|
|
|
yield return (uid, meta);
|
2024-01-20 17:15:10 +11:00
|
|
|
}
|
2023-10-16 16:54:10 +11:00
|
|
|
}
|
2023-07-05 21:54:25 -07:00
|
|
|
|
|
|
|
|
var entityMetas = Query<MetaDataComponent>(sEntMan).ToList();
|
|
|
|
|
foreach (var (uid, meta) in entityMetas)
|
2023-01-24 13:33:49 +13:00
|
|
|
{
|
|
|
|
|
if (!meta.EntityDeleted)
|
2023-07-05 21:54:25 -07:00
|
|
|
sEntMan.DeleteEntity(uid);
|
2023-01-24 13:33:49 +13:00
|
|
|
}
|
|
|
|
|
|
2023-04-25 21:27:57 +12:00
|
|
|
Assert.That(sEntMan.EntityCount, Is.Zero);
|
2023-01-24 13:33:49 +13:00
|
|
|
});
|
2023-04-25 11:48:29 +12:00
|
|
|
|
2023-08-25 02:56:51 +02:00
|
|
|
await pair.CleanReturnAsync();
|
2023-01-24 13:33:49 +13:00
|
|
|
}
|
|
|
|
|
|
2023-10-16 16:54:10 +11:00
|
|
|
/// <summary>
|
|
|
|
|
/// This test checks that spawning and deleting an entity doesn't somehow create other unrelated entities.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <remarks>
|
|
|
|
|
/// Unless an entity is intentionally designed to spawn other entities (e.g., mob spawners), they should
|
|
|
|
|
/// generally not spawn unrelated / detached entities. Any entities that do get spawned should be parented to
|
|
|
|
|
/// the spawned entity (e.g., in a container). If an entity needs to spawn an entity somewhere in null-space,
|
|
|
|
|
/// it should delete that entity when it is no longer required. This test mainly exists to prevent "entity leak"
|
|
|
|
|
/// bugs, where spawning some entity starts spawning unrelated entities in null space.
|
|
|
|
|
/// </remarks>
|
|
|
|
|
[Test]
|
|
|
|
|
public async Task SpawnAndDeleteEntityCountTest()
|
|
|
|
|
{
|
|
|
|
|
var settings = new PoolSettings { Connected = true, Dirty = true };
|
|
|
|
|
await using var pair = await PoolManager.GetServerClient(settings);
|
2023-11-30 22:08:08 +11:00
|
|
|
var mapManager = pair.Server.ResolveDependency<IMapManager>();
|
2023-10-16 16:54:10 +11:00
|
|
|
var server = pair.Server;
|
|
|
|
|
var client = pair.Client;
|
|
|
|
|
|
|
|
|
|
var excluded = new[]
|
|
|
|
|
{
|
|
|
|
|
"MapGrid",
|
|
|
|
|
"StationEvent",
|
|
|
|
|
"TimedDespawn",
|
|
|
|
|
|
|
|
|
|
// Spawner entities
|
|
|
|
|
"DragonRift",
|
|
|
|
|
"RandomHumanoidSpawner",
|
|
|
|
|
"RandomSpawner",
|
|
|
|
|
"ConditionalSpawner",
|
|
|
|
|
"GhostRoleMobSpawner",
|
|
|
|
|
"NukeOperativeSpawner",
|
|
|
|
|
"TimedSpawner",
|
2023-12-07 00:58:08 -05:00
|
|
|
// makes an announcement on mapInit.
|
|
|
|
|
"AnnounceOnSpawn",
|
2023-10-16 16:54:10 +11:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Assert.That(server.CfgMan.GetCVar(CVars.NetPVS), Is.False);
|
|
|
|
|
|
|
|
|
|
var protoIds = server.ProtoMan
|
|
|
|
|
.EnumeratePrototypes<EntityPrototype>()
|
|
|
|
|
.Where(p => !p.Abstract)
|
|
|
|
|
.Where(p => !pair.IsTestPrototype(p))
|
|
|
|
|
.Where(p => !excluded.Any(p.Components.ContainsKey))
|
|
|
|
|
.Select(p => p.ID)
|
|
|
|
|
.ToList();
|
|
|
|
|
|
2023-11-30 22:08:08 +11:00
|
|
|
protoIds.Sort();
|
|
|
|
|
var mapId = MapId.Nullspace;
|
|
|
|
|
|
|
|
|
|
await server.WaitPost(() =>
|
|
|
|
|
{
|
|
|
|
|
mapId = mapManager.CreateMap();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var coords = new MapCoordinates(Vector2.Zero, mapId);
|
2023-10-16 16:54:10 +11:00
|
|
|
|
|
|
|
|
await pair.RunTicksSync(3);
|
|
|
|
|
|
|
|
|
|
foreach (var protoId in protoIds)
|
|
|
|
|
{
|
|
|
|
|
// TODO fix ninja
|
|
|
|
|
// Currently ninja fails to equip their own loadout.
|
|
|
|
|
if (protoId == "MobHumanSpaceNinja")
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
|
|
var count = server.EntMan.EntityCount;
|
|
|
|
|
var clientCount = client.EntMan.EntityCount;
|
|
|
|
|
EntityUid uid = default;
|
|
|
|
|
await server.WaitPost(() => uid = server.EntMan.SpawnEntity(protoId, coords));
|
|
|
|
|
await pair.RunTicksSync(3);
|
|
|
|
|
|
|
|
|
|
// If the entity deleted itself, check that it didn't spawn other entities
|
|
|
|
|
if (!server.EntMan.EntityExists(uid))
|
|
|
|
|
{
|
2023-11-29 13:32:59 +11:00
|
|
|
if (server.EntMan.EntityCount != count)
|
|
|
|
|
{
|
|
|
|
|
Assert.Fail($"Server prototype {protoId} failed on deleting itself");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (client.EntMan.EntityCount != clientCount)
|
|
|
|
|
{
|
2023-11-30 22:08:08 +11:00
|
|
|
Assert.Fail($"Client prototype {protoId} failed on deleting itself\n" +
|
|
|
|
|
$"Expected {clientCount} and found {client.EntMan.EntityCount}.\n" +
|
|
|
|
|
$"Server was {count}.");
|
2023-11-29 13:32:59 +11:00
|
|
|
}
|
2023-10-16 16:54:10 +11:00
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Check that the number of entities has increased.
|
2023-11-29 13:32:59 +11:00
|
|
|
if (server.EntMan.EntityCount <= count)
|
2023-10-16 16:54:10 +11:00
|
|
|
{
|
2023-11-29 13:32:59 +11:00
|
|
|
Assert.Fail($"Server prototype {protoId} failed on spawning as entity count didn't increase");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (client.EntMan.EntityCount <= clientCount)
|
|
|
|
|
{
|
2023-11-30 22:08:08 +11:00
|
|
|
Assert.Fail($"Client prototype {protoId} failed on spawning as entity count didn't increase" +
|
|
|
|
|
$"Expected at least {clientCount} and found {client.EntMan.EntityCount}. " +
|
|
|
|
|
$"Server was {count}");
|
2023-10-16 16:54:10 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await server.WaitPost(() => server.EntMan.DeleteEntity(uid));
|
|
|
|
|
await pair.RunTicksSync(3);
|
|
|
|
|
|
|
|
|
|
// Check that the number of entities has gone back to the original value.
|
2023-11-29 13:32:59 +11:00
|
|
|
if (server.EntMan.EntityCount != count)
|
|
|
|
|
{
|
|
|
|
|
Assert.Fail($"Server prototype {protoId} failed on deletion count didn't reset properly");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (client.EntMan.EntityCount != clientCount)
|
|
|
|
|
{
|
2023-11-30 22:08:08 +11:00
|
|
|
Assert.Fail($"Client prototype {protoId} failed on deletion count didn't reset properly:\n" +
|
|
|
|
|
$"Expected {clientCount} and found {client.EntMan.EntityCount}.\n" +
|
|
|
|
|
$"Server was {count}.");
|
2023-11-29 13:32:59 +11:00
|
|
|
}
|
2023-10-16 16:54:10 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await pair.CleanReturnAsync();
|
|
|
|
|
}
|
|
|
|
|
|
2020-08-24 13:39:00 +02:00
|
|
|
[Test]
|
|
|
|
|
public async Task AllComponentsOneToOneDeleteTest()
|
|
|
|
|
{
|
|
|
|
|
var skipComponents = new[]
|
|
|
|
|
{
|
|
|
|
|
"DebugExceptionOnAdd", // Debug components that explicitly throw exceptions
|
|
|
|
|
"DebugExceptionExposeData",
|
|
|
|
|
"DebugExceptionInitialize",
|
|
|
|
|
"DebugExceptionStartup",
|
2023-11-29 13:20:37 +11:00
|
|
|
"GridFill",
|
2020-08-24 13:39:00 +02:00
|
|
|
"Map", // We aren't testing a map entity in this test
|
2021-05-30 12:10:03 +02:00
|
|
|
"MapGrid",
|
2023-09-10 12:35:05 +12:00
|
|
|
"Broadphase",
|
2022-08-07 15:53:07 +12:00
|
|
|
"StationData", // errors when removed mid-round
|
2021-05-30 12:10:03 +02:00
|
|
|
"Actor", // We aren't testing actor components, those need their player session set.
|
2023-05-16 06:36:45 -05:00
|
|
|
"BlobFloorPlanBuilder", // Implodes if unconfigured.
|
|
|
|
|
"DebrisFeaturePlacerController", // Above.
|
|
|
|
|
"LoadedChunk", // Worldgen chunk loading malding.
|
|
|
|
|
"BiomeSelection", // Whaddya know, requires config.
|
2020-08-24 13:39:00 +02:00
|
|
|
};
|
|
|
|
|
|
2023-08-25 02:56:51 +02:00
|
|
|
await using var pair = await PoolManager.GetServerClient();
|
|
|
|
|
var server = pair.Server;
|
2020-08-24 13:39:00 +02:00
|
|
|
var entityManager = server.ResolveDependency<IEntityManager>();
|
|
|
|
|
var componentFactory = server.ResolveDependency<IComponentFactory>();
|
2023-07-05 21:54:25 -07:00
|
|
|
var logmill = server.ResolveDependency<ILogManager>().GetSawmill("EntityTest");
|
2020-08-24 13:39:00 +02:00
|
|
|
|
[WIP] Upstream 2 (#489)
* Automatic changelog update
(cherry picked from commit 235091b377d6dc8f95b38d239a8e07560d45fa7c)
* Remove airtight flaps from the construction menu (#27619)
They are meant to be mapping only items.
(cherry picked from commit a4b0a34bc74e3e374d780e7ba142d7670ca5ff59)
* Automatic changelog update
(cherry picked from commit 64a732ad7b1ba93b3aa64c233ecc7e4609683bf1)
* Wine and beer bottles can be inserted into booze dispenser (#27626)
Fixes tags on wine and beer bottles
(cherry picked from commit b728f36f30260a80a7a499429430f0d7c69ff54d)
* Automatic changelog update
(cherry picked from commit 09b6f5c12888ca3a2fa51ab3544e4139988febcd)
* small SpawnItemsOnUse cleanup (#27625)
* small SpawnItemsOnUse cleanup
* that one was not needed
(cherry picked from commit eab276a12da4bd762b33c44c868722c2ef813d68)
* make ducky slippers waddle (#27628)
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 8909dc7d401a7351ce0034c9e58af66922f5dbda)
* Fix SpawnItemsOnUse not playing sound (#27621)
Made SpamItemsOnUse play sound at entity coordinates instead of parenting
(cherry picked from commit 9b176933969b00e70d52bbb9b960ed631f09b0ac)
* Automatic changelog update
(cherry picked from commit 8a7f7097944f6d9bb7c587a22118cad8b068926c)
* Fix UI interaction priority (#27631)
(cherry picked from commit 3c3c2daf26eb4c215e3de26120e5be593ebb3620)
* Automatic changelog update
(cherry picked from commit f76a471e5a22480f975ec1448a2fdea3c6476271)
* Automatic changelog update
(cherry picked from commit 291ecf9643a5308fd5f8b9172e1710862da683f8)
* Add EntityWhitelistSystem (#27632)
* Add EntityWhitelistSystem
* Sandbox fix
* update test
(cherry picked from commit f348e6aa306a3542b1ed75b021c45228250aca3c)
* Add syndicate sleeper agents random event (#27501)
* Intercept rule (#10)
* add
* b
* add this back lol
* fix test fails (alert levels dont have prototypes)
* tweaks
(cherry picked from commit c69bf2f2aa23d57179dce1f6af9f7c73903d47e2)
* Automatic changelog update
(cherry picked from commit 192de3d9cb06c9526c5c63783507590c175acff9)
* Space Ninjas auto-toggle internals after spawning (#25083)
* fix engine version
* actually fix engine version
* Automatically activated breathing masks
* weh
* who needed that component anyway
* check if internals are already running
* Update Content.Server/Atmos/Components/BreathToolComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/Body/Systems/InternalsSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* prediction
* record struct event
* remove delayed activation, instead ensure that masks spawn last
* leftover
* engine version
* re-implement
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit f64dd5f45f8ebc08d791ac34e9482c6c3d85a51b)
* Automatic changelog update
(cherry picked from commit 4ede46003abf4c0593de00f802550df2b3642055)
* Fixes the grammar for the captain's supervisor (#27638)
Fixes the grammar on the captain's supervisor
(cherry picked from commit a28296433b03c041e4374e88bdef7347a85f895f)
* Red bool update (#27597)
* the meat and potatoes
yuh yuh yuh
* what the hell is a copyright?
am I right?
(cherry picked from commit a8bf2689a4696e841ce607c7061ac73faceeeefb)
* Automatic changelog update
(cherry picked from commit 40a4eeaa3953db8213034fd3dd12fedce922deff)
* Allow EMP implants to be used while stunned or cuffed. (#27644)
Update types.yml
(cherry picked from commit 0056befd4bac47f9e86c975342fcc80583affbb9)
* Automatic changelog update
(cherry picked from commit bedec83cd9a778d86795a0c8a5e4d439a3e4d407)
* Geras bug fixes (#27308)
* Geras bug fixes
* oops
* its as shrimple as that
toggled transferName in the polymorph yml instead of using the system to manually change it
* its as shrimple as that (2.0)
fixed reviews for zombies having a dummy action, instead - properly implemented removal of action
* its as shrimple as that (3.0)
fixed tests by removing nameidentifier from slime (its already inherited, anyway)
(cherry picked from commit 76ecdee94604f3cc73aba8b09d7bb36125a069e4)
* Automatic changelog update
(cherry picked from commit c045e2488e6ce85f16c7f4cf5dfced18cb18ce62)
* Ninja's pinpointer tracks the research server (#27552)
Change the tracked component on the ninja's pinpointer from BecomesStation to Research Server
(cherry picked from commit 6fc684812d4deed313970de40e81822157afe461)
* Automatic changelog update
(cherry picked from commit 960f268d1cf5d2b318ccd4b2adf18f1837d1c9bc)
* Fix some gamerules' round summary not working (#27654)
Update GameRuleSystem.cs
(cherry picked from commit 6ecbf0a04ce3ebaa6c74e144a8fb64ddf3223b43)
* Automatic changelog update
(cherry picked from commit 1d5392f86bd9a086283619ad7ce5d3259b1313df)
* Change return to continue in gamerulesystem (#27656)
Update GameRuleSystem.cs
(cherry picked from commit 96a3967c3f4bcf5826b62013bc3e665656b1db81)
* Rename Lizard urist (#27652)
(cherry picked from commit 1b3481f094edffee3d7841e0c3ccbf8ba4cc30cb)
* Automatic changelog update
(cherry picked from commit 07d43af4a6e407d4e752466d965177dfe3e5c876)
* Pathological Liar (#27618)
* content
* upgrade
* n't
* ye ya
* Update speech-liar.ftl
* Mith replacement ideas
* fix
* more!
* Revert "more!"
This reverts commit 6d10bdf694985c525a2b451ed39380f975059b44.
* Update Content.Server/Speech/Components/ReplacementAccentComponent.cs
---------
Co-authored-by: Kara <lunarautomaton6@gmail.com>
(cherry picked from commit 5ab1cc0c846775e438517bbff9d7713eeb5ef85d)
* Automatic changelog update
(cherry picked from commit 540c45cbe9b6dbfce9eeb523f0c374d39ac7221c)
* npc can no longer attack you through a locker (#27677)
(cherry picked from commit 83b486b63fd23e149bb0112aac4800e63b1f33dc)
* translations
* Automatic changelog update
(cherry picked from commit 8ee9ca22276df595ab4dc7767d66d9145dac2743)
* Security belts can now hold more items commonly carried by secoffs/HoS (#27674)
holobarrier
(cherry picked from commit 873799095cc28cb5db753b005b3fa00ee117c370)
* Automatic changelog update
(cherry picked from commit 0a15d0855083eb5a35c5c8d0170720a294d07bf7)
* Floodlights now have medium powercells instead of small (#27672)
mediumcellfloodlight
(cherry picked from commit 1c125cb14e661492e4c2a31f2e9d07c60bdde0c8)
* Automatic changelog update
(cherry picked from commit 4bb078601845228391db7a09f1b8c4a5c8f410d1)
* More descriptions for the beakers in the status panel (#27669)
Bottles
Descriptions for status panel
(cherry picked from commit c3fe975e8b8cf1dd220a49ceecd7450535eabf45)
* Revert "npc can no longer attack you through a locker" (#27680)
Revert "npc can no longer attack you through a locker (#27677)"
This reverts commit 83b486b63fd23e149bb0112aac4800e63b1f33dc.
(cherry picked from commit 37d0cb9c9085befad4f7fe1ee21a15d1d3c2f66c)
* Scattershot antag fixes (#27429)
* scattershot antag fixes
* this too?
* dawg fuck this code
* ok so we kinda need this?
(cherry picked from commit 5183f3ed8ba40527808610596d7e3eef3c925eef)
* Rename ChemCleanBoodstream.cs (#27691)
(cherry picked from commit 45fc6bed2f6e812603e0c181b0b163f15576749e)
* Add default whistle + whistles reorganize (#27676)
* Add default whistle + whistle reorganize
* aaa
* fux?
* fiiiiix???
* Revert "fiiiiix???"
This reverts commit 15353465d58db615185afa8c549e1819099c1a5b.
* Apply suggestions from code review
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
(cherry picked from commit ead78b72d2e507fadf4f5424377aff8a5f94d271)
* Automatic changelog update
(cherry picked from commit 92c2ff0b05482ea490fbdc8ac3d27776a30dd936)
* Use dotnet run for the run batch files instead of directly calling the exe (#27698)
* Use dotnet run for the run batch files instead of directly calling the exe
* FUCK
(cherry picked from commit eb2fac40db1dfaf789511eef0cb7e394100fef50)
* Emergency Tank + Plasma Can visible on suit storage slot (#27598)
* Suitstorage Sprites + Plasma tank slots
* Fix some extra brackets
(cherry picked from commit 70d3cf7ba411ef38818f63eec944c4f0c7c33c98)
* Cache regex instances in most cases (#27699)
Using static Regex functions that take in a pattern is bad because the pattern constantly needs to be re-parsed. With https://github.com/space-wizards/RobustToolbox/pull/5107, the engine has an analyzer to warn for this practice now.
This commit brings most of content up to snuff already, though some of the tricker code I left for somebody else.
(cherry picked from commit 4a2a63a86b0ad36a2850e5750bfd5e653cb2ebd6)
* update engine 6
* Remove useless line in runclient (#27701)
I forgor
(cherry picked from commit c61e683354d45bd4ec382de9117ba75cab67db9f)
* welding masks on utility belts (#27694)
(cherry picked from commit 7d35d54a814df74ef385ad8293eadff3e921c1c9)
* Automatic changelog update
(cherry picked from commit b947490d089af4c70ff0979250a4a03064e87069)
* Add solution temperature to chemical analysis goggles (#27693)
yes
(cherry picked from commit 93c5e868579c0bd1baec8c6d023d98f530b63c44)
* Automatic changelog update
(cherry picked from commit 254a9177fc99a359f134516b19d2943baf50ae5f)
* Expeditions audio tweaks (#27524)
- Now uses a SoundCollection.
- Now properly handles going between maps (audio rework mucho wow).
- GetAudioLength used so it can properly countdown ANY song (wow audio rework wow wow).
(cherry picked from commit d1a5d3562355a514c42b1027742549180f6edc37)
* Automatic changelog update
(cherry picked from commit 82fe5ab55de121e153b164b83b363fd4d95e437d)
* Fix AlertControl throwing an error if the sprite view entity is deleted multiple times (#27690)
* Fix AlertControl throwing an error if disposed multiple times
* Replace default check with deleted check
(cherry picked from commit c20df3e39ffd3b28db499bcc4a0e1fb48b563826)
* Fix tests (#27711)
* Fix tests
* Fix test fail
* Apply same fix to other tests
(cherry picked from commit eee8e03c15ea22472d6b442281fccc4cb036e64d)
* New Salvage song: Deadline (#27707)
Deadline
(cherry picked from commit 104c2afe692c0c05172b9ba2a15213d2a54ae99c)
* fix(ui): Fix shuttle control radius marking text vertical spacing (#27695)
(cherry picked from commit 7ffa74abd009650de3868d47c95b45ef4a18ea9c)
* Automatic changelog update
(cherry picked from commit 1ecc36b04945169e42ad42de56d7af69092aa447)
* Dock device link port (#27646)
* Add dock device link port
* SpawnAndDeleteAllEntitiesInTheSameSpot moment
* The fuck is TryStopNukeOpsFromConstantlyFailing??
Do we have a new test that can randomly fail?
(cherry picked from commit c7a5587e0710f6d4b8a959bb54fbcd9e9631a96f)
* Automatic changelog update
(cherry picked from commit 3b3cc0e66cd03d71c27ba65810f876001923fcfa)
* update engine 7
* Update license of deadline.ogg (#27715)
(cherry picked from commit b8d03b814b1ede3a53874efe2d8d46f3ef8dbd6c)
* Round event frequency simulation command (#27718)
(cherry picked from commit c1aae2398b5e4510b9b07ea7af877fc5760dd5c3)
* New lobby art: Just a week away (#27717)
just a week away
(cherry picked from commit 026af631f8a844b000dec4702eb6080e9a7bed9b)
* Automatic changelog update
(cherry picked from commit 3dcb65feb292e3088729b69f36fc3d5ac51eae58)
* Fix missing command desc (#27722)
(cherry picked from commit aa426c9c3aec67ee82f7b6d10cd5770ad008483d)
* Remove duplicate liar word id (#27723)
(cherry picked from commit fbe8374c0f79b32dc49f0a009041798510f2c888)
* Event frequency balance pass (#27721)
balance
(cherry picked from commit 8f4362df036ea1dd5dba7a31c3669640964a45c2)
* Automatic changelog update
(cherry picked from commit 8fa7ea7cf9c03ea3273882708d31092a0c6e2eb9)
* Fix some gamerules' round summary not working (#27654)
Update GameRuleSystem.cs
* fixes
* fix antag selection being evil (#28197)
* fix antag selection being evil
* fix test
* untroll the other tests
* remove role timer troll
* Allow tests to modify antag preferences
* Fix antag selection
* Misc test fixes
* Add AntagPreferenceTest
* Fix lazy mistakes
* Test cleanup
* Try stop players in lobbies from being assigned mid-round antags
* ranting
* I am going insane
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
* fucking tests
* fix round restart loops
* Fix `TryFindRandomTile` grid weighting (#27724)
(cherry picked from commit aaabd5e9141e2e51b81c0dacd32e7e849826204d)
* Automatic changelog update
(cherry picked from commit ddb07d5f6362de11832f6b2085c4f6e8abfa625c)
* Remove duplicate liar word id. Again (#27727)
Missed one translation
(cherry picked from commit b58d8a02b6e0d0a8b546fc0d1e437cb0b4f147bf)
* Half the amount of bleed rate cauterized by burn damage (#27726)
half
(cherry picked from commit 7d23d014458180fe26b3ec847417a99120cf6ef5)
* Reduce the amount of burn damage from touching lights (#27728)
* chilled
* external
(cherry picked from commit 7794ab86094d1c406fbb888ae3ed2a489348af9c)
* Automatic changelog update
(cherry picked from commit 008f6ef94a65a48d8bc2e89c80774d1ac6c624b3)
* Moved Serverside solution container code to shared (yes that includes ensureSolution!) (#27478)
* Added warning to tryGetSolution, moved SolutionContainer code to shared
- Added an optional warning (false by default) to print an error if a solution is missing when using tryGetSolution methods
- Moved ensuring solution containers to shared, left the old method stubs for compatability and marked them as obsolete.
* Update SharedSolutionContainerSystem.cs
* Update SharedSolutionContainerSystem.cs
* Update SolutionContainerSystem.cs
* Update SharedSolutionContainerSystem.cs
* Fixing ensuring chem solutions always returning false on client
- ensuring chem solutions will only return false on the client if it is waiting for a server solutionEntity to be synced
* Added concentration helpers
* fix whitespace
(cherry picked from commit 6685146a1e3e188eac1fb2502920225c56cc08e1)
* Automatic changelog update
(cherry picked from commit 19aeff26ec2cb87ceee918c1c5f4f6639fd35ad5)
* Night on Europa (#27731)
night
(cherry picked from commit cc9e40820fa48a7378c6b96371ef819010e7c085)
* Reduce ratking chance severely (#27760)
(cherry picked from commit 7d7c71e6a66bd0e626bc1b31529db0f708b8066a)
* Automatic changelog update
(cherry picked from commit 61c1aeddf369e46c269c2b03cace3f0b25ebf470)
* Fix preference loading bugs (#27742)
First bug: if an error occured during pref loading code, it would fail. If the person then readied up, it would likely cause the round to fail to start.
Why could they ready up? The code only checks that the prefs finished loading, not that they finished loading *successfully*. Whoops.
Anyways, now people get kicked if their prefs fail to load. And I improved the error handling.
Second bug: if a user disconnected while their prefs were loading, it would cause an exception. This exception would go unobserved on lobby servers or raise through gameticker on non-lobby servers.
This happened even on a live server once and then triggered the first bug, but idk how.
Fixed this by properly plumbing through cancellation into the preferences loading code. The stuff is now cancelled properly.
Third bug: if somebody has a loadout item with a playtime requirement active, load-time sanitization of player prefs could run into a race condition because the sanitization can happen *before* play time was loaded.
Fixed by moving pref sanitizations to a later stage in the load process.
(cherry picked from commit 7a38b22ddbf03814680277d54c285dcc70345e20)
* Automatic changelog update
(cherry picked from commit 0cb50a24c37f83da2f852660cf5e38a8936750d8)
* Little morgue overhaul (#27750)
(cherry picked from commit d099b634242b3f8b84724f90b279f5b20f153333)
* Automatic changelog update
(cherry picked from commit 35dc85fd47a9d3e6af10de2f7aad3076586ee4da)
* Make arguments and parameters wrap to one variable per line (#27766)
(cherry picked from commit b9906eb34cb56f7ef34f5b4f050b0ef2f87b1be9)
* Revert "Fix turned off thrusters consume power" (#27755)
Revert "Fix turned off thrusters consume power (#26690)"
This reverts commit 70959e7bb081c1a6e1457a8f8ee7732da91bb270.
(cherry picked from commit 1e30234539a0dbfce1724a66eb27e5e0ab439d86)
* Fix construction instructions on flippables (#27574)
Fixes #27547
(cherry picked from commit 28f5d490a4a6153bf56e4f8b4c5d3fa17fe8f14d)
* Log event starts to admin alert chat (#27761)
(cherry picked from commit 09b53192708543f1f8c4796a01907193db66216e)
* Automatic changelog update
(cherry picked from commit 31a832710654627702b9362f71fb327ac8c93ea9)
* Set max line width to 120 (#27765)
(cherry picked from commit 0926891f4f0591bf34a79b17aae1f7b1a91acd0d)
* Automatic changelog update
(cherry picked from commit cd8e90c58ecd47fb018e402bd7dea84a9715bb13)
* Weapon Reflection Movement Mechanic (#27219)
* Weapon Reflection Movement Mechanic
Adds a movement mechanic to deflection.
Standing still gives you your best chance of deflecting a shot.
Moving lowers this to 2/3rds. Sprinting to 1/3rd.
This allows for robust players to express better and provides
counterplay to someone finding a goober-strong deflection
weapon, giving more design space.
As part of this PR I've also touched the numbers of a few swords,
shields, etc. and modified some descriptions to make them read
better. The balance numbers are not remotely final, but as intent:
1. All the sidearm swords (katana, cutlass, captain's sabre) have the same damage. There's no good reason the "ceremonial" blade the captain has doing more damage than a katana.
2. The Captain's Sabre has a 30% reflect chance, dropping to 20% when moving and 10% when sprinting. This one is controversial due to the recent nerf, I suspect: This could easily be 15->10->5?
3. The Energy Katana has a flat 30% reflect chance.
4. The meme Throngler has a 30% reflect chance, dropping to 20% when moving and 10% when sprinting.
5. The E-Sword has a 30% reflect chance, dropping to 20% when moving and 10% when sprinting.
6. The Double E-Sword has a mighty 75% reflect chance, dropping to 50% and then 25%.
7. Both reflective shields - Mirror and Energy - have a 95% deflect chance, dropping to 63% then 31%.
* Resolve PR comments.
* Weh?
* Reign in double esword a tad
* Shield nerfs no longer real
* Improve Mirror Cult desc
* Simple alert for deflection! No art yet.
* Added a new icon for deflecting
(cherry picked from commit b90373356e7f4f0eee693732964eac9c9eaa1f02)
* Automatic changelog update
(cherry picked from commit 6301e94390790c3a19a62c2a12bda1629037f79c)
* make lube speed up lathes (#25515)
* add LatheGetSpeedEvent
* add LatheLube system
* make typical lathes accept lube
* spill
* :trollface:
* rework to generic ReagentSpeedSystem
* hyperlathe ops
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 262b9698cf0cfaad19c68223d7ed777cbe7dc33f)
* Automatic changelog update
(cherry picked from commit 685188fd109c31e54fbf77cddf56743c678e4406)
* Stop Toilets crushing you into walls (#27778)
(cherry picked from commit 24e227660a34e33966f5b9bd7a5f69c775c9669b)
* make hyper printer inherit base lathe (#27777)
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 89cbb100fd52a6ae5cf19f35e426b5627cd3f72f)
* Change combat gloves sprite (#27373)
* Changed combat gloves sprite.
* Edited combat gloves sprite.
(cherry picked from commit 8ec52ff69cb784e5b2640370c8a79b7f530114d9)
* Automatic changelog update
(cherry picked from commit 18bd221407d46725fc928cc6b5f4f8ee34ba0a76)
* Make the floppy lizard ears have two colors. (#27679)
* Make the floppy lizard ears have two colors.
* please fix whatever the hell happened
* fix the error
* suggestion from Ubaser
* another suggestion from ubaser
(cherry picked from commit bd06aa2365d6ce093ac47462deb69858c6cc18c0)
* make dragons breathe fire (#26746)
* add ActionGun system
* add RepeatingTrigger
* dragons breath projectile, repeatedly explodes
* give dragon fire breathing action, fireproof it
* oop
* oop 2
* prevent troll
* proper repeating thing
* pro
* webedit ops
* realops
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit d6d1c9ed8a748366e129155d2bb317dc8db24e37)
* Automatic changelog update
(cherry picked from commit ab1a2de367e307eaadaef9d2c90addeb96d625b9)
* Fix preferences sent to client not being sanitized (#27789)
Fucking whoops
In #27742 I made it so sanitization of character profiles was moved to be *after* database load. Except that means I moved it to be after the copy of all character profiles got sent to the client.
Move the sending to *also* be in that second load stage, and rename it. Fixes the issue.
(cherry picked from commit 9efe4dc70120a001ac2964b11d6773cb0a39d1da)
* Revert "Make the floppy lizard ears have two colors." (#27790)
Revert "Make the floppy lizard ears have two colors. (#27679)"
This reverts commit bd06aa2365d6ce093ac47462deb69858c6cc18c0.
(cherry picked from commit caa822b9a01adb65286365bf091c31547a160018)
* Fix the changelog window being very laggy until a tab is clicked (#27795)
(cherry picked from commit 15153d95a4bc209ae6df053f86e303cb16b38103)
* Shoot Over Racks (#27797)
Racks now have table collisions
(cherry picked from commit b104125c0ebcc829b54dc05dcabd9b7fb6585f96)
* Fix cak and breaddog not being able to escape inventories (#27794)
Fix cak and breaddog
(cherry picked from commit 99212762d6da89263c8c98e83f9a52e7bd43b881)
* Automatic changelog update
(cherry picked from commit 1a09374b016039892a3b9aeae4e61f1114515f89)
* Fix pull not stopping when character is downed (#27796)
(cherry picked from commit 83099640e69fe004e9230422732fd353de9780e5)
* Automatic changelog update
(cherry picked from commit c097c98a1e09ff7bdd8ebb475e4cdd621d09011f)
* ебал движок
* zaebal
* Reimplement supplybots as non-vehicles (#27769)
* Reimplement supplybots as non-vehicles
* what the hell is a container container?
* Dumpable
* let them hear supply comms
* unmigrate
* no more QM access
* Skill issue
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit 1952ae3267ce3724f202e2fb5e69ddfb6ed86951)
* Replace Train syndicate Jaws (#27734)
Should push the right changes to my Train Branch
(cherry picked from commit aad5b9e53bedfc24c3a919d21946573c7211fe37)
* Automatic changelog update
(cherry picked from commit 29860a0cf7d6b541b941792ae8978ddc0030a505)
* Added new HTN operations and preconditions (#27486)
* Added new HTN operations & preconditions
* Ok I forgot about partial
* Namespace pierce the skies
* Some fixes, debug and new operators
* Bruh git eat my files
(cherry picked from commit 31491775e597fe9906df66d7285d5b63ba92daa2)
* Move step sound distance and footstep variation to MobMoverComponent (#27799)
(cherry picked from commit 401350759cd6486afa577c12b4536f39491b5254)
* Automatic changelog update
(cherry picked from commit 130ab51e38d8f2b1c1f7aeb588949999a506c424)
* Bike Horn, Clown Recorder, Suspenders for Theatrical Performances Crate (#27668)
added clown and mime item to theatrical crate
(cherry picked from commit c1ed8542647e1f0e62757917e8338370426ae3f5)
* Automatic changelog update
(cherry picked from commit 00aa6d0bdd47361ff2eed204c8e3a65c491e2845)
* Fix Supplybot Ghostrole (#27811)
* Add raffle to supply bot
* Add GhostTakeoverAvailable
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit db4c9787c985bc30440c63e9aa5bc3a6cae29b8a)
* Adds supplybot to crafting menu (#27827)
Add supplybot to crafting menu
Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit 4c68fce06449995ebdc4dc5ad7ddf86a325b42c5)
* fix mech energy display for 0 (#27828)
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 1f67733775ba8acdaa7458addf1aaff0fc48b1d9)
* Drinking from spray bottles (#27815)
Added drinking from spray bottles
(cherry picked from commit 372807673b15a296170599f62c0576de0b7daa23)
* Automatic changelog update
(cherry picked from commit a7b86f724edaf24caa09edb70efe358165d63c53)
* Add CanAttack check if target is in a container (#27689)
(cherry picked from commit a2329889aa40ef30ca29c1e508e7460ebc710477)
* Atmos pipes now deal blunt damage (#27673)
* pipe
* weak
* inhand
* IT WORKS
* inventory
(cherry picked from commit 4d991d1554c4b9b954b4d44b74f06ff76e359bab)
* Automatic changelog update
(cherry picked from commit 9d4ead30b9d948d75f2dc46e0e81d17cbffa11cc)
* Add Missing Unlocks to Emagged Lathes and Move Recipes to Protolathe (#27575)
* Add missing emag recipes to lathes
* Move autolathe dynamic recipes over to the protolathe
* No disablers!
* Move blast grenades to protolathe as well
* Forgot about tranq shells
* forgotten things from the autolathe PR
* Altered lathe descriptions to more accurately reflect their purpose
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
(cherry picked from commit 515456824812ebd125ce8ee2dbf9df0c2470c391)
* Automatic changelog update
(cherry picked from commit 38a2beff920c39b08736dc30904c3ac4867051f3)
* Add auto map vote cvar (#27496)
* Add auto map vote cvar
* :trollface:
(cherry picked from commit fe35188e2c7b3f7cf209aebf7f97c184e30ae8fb)
* ninja criminal records hacking (#24982)
* more humour
* spotted a troll
* add TryFindObjective to MindSystem
* replace copypaste bool conditions with CodeCondition
* use CodeConditionSystem in ninja + add handling for criminal hack
* add criminal records hacking
* update objectives
* :trollface:
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 24ab5c098251254e69264bda2a45c7c639244a68)
* malf killer 9000 (robotics console) (#24855)
* create devicenet frequencies
* create borg transponder and give it to all nt borgs
* add robotics console
* actually implement battery charge display + some fix
* tab
* real explosion
* little safer
* disable destroy button clientside too when on cooldown
* m
* how do i do this when i review things...
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* webedit ops
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* ui updates
* oracle java
* do a thing
* update ui when a borg times out
* maybe fix test
* add IsLocked to LockSystem
* make destroying gib the chassis again, so emagging isnt sus
* use locking
* require using alt click to unlock so normal click is open ui
* the
* use LogType.Action
* take this L
* pocket lint?
* sharer
* pro ops
* robor pushmarkup
* m
* update and make it not use prototype anymore
* frame0
* update yaml
* untroll
* bad
* h
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
(cherry picked from commit b33730db22cd6d505a79e0b7fa39c34425d9639e)
* Automatic changelog update
(cherry picked from commit bf0de0ffeb5b6d1533adcfbcedfa1350ee2f9206)
* Revolutionaries can now cuff command instead of killing/exiling them (#27627)
* command can now be restrained for revs victory
* headrevs still must be killed
(cherry picked from commit 7d918c95d0adbe38e63b706ebf899ddca364af01)
* Nukie agent requires chemistry hours, rather than general medical hours. (#27098)
* Update nukeops.yml
Change nukie agent's playtime requirement from 5 hours medical to 5 hours chemistry.
* Update nukeops.yml again
5 hours -> 3 hours
(cherry picked from commit 86405ecace1f5311b862c8793e698ae45c4fa6a1)
* Automatic changelog update
(cherry picked from commit c866c2f5240abefec3e25917ec18017567a8bf82)
* Make storage UI close upon being locked (#27810)
* make storage close on lock
* formatting and comments
* Update Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs
Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
* Apply suggestions from code review
Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
* Swap to foreach instead of for
Co-authored-by: Kara <lunarautomaton6@gmail.com>
---------
Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
(cherry picked from commit de729f9037280791262cac9135d94524fec4814f)
* fix master (#27833)
pro
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit b96ed726f19f3323a478a7712cc6198d5bb884d0)
* make fire not burn through hardsuits (#27161)
* add FireProtection system and event
* minor optimisation + make flammable use fire protection event
* add fire protection values to some things, nerf firesuit heat resistance
* bruh
* unrevert laser nerfs, make elite hardsuit fully fireproof
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit cd92046966cf2537b664223a43853d33a6d351d3)
* Automatic changelog update
(cherry picked from commit 0d8149f151a862401bef425cd637010068b4ac3b)
* Change minimalist theme empty slot outline (#27860)
Change minimalist them empty slot outline
(cherry picked from commit 4231efc780223832db9f0e1aa5c0f0f1bbb290e8)
* Prevent non-inital infected from getting the succumb to zombie action (#27820)
* b
* Update ZombieRuleSystem.cs
* hi
(cherry picked from commit fe5f4162acbfbd7db2fe0882531fba9e096057b0)
* Automatic changelog update
(cherry picked from commit b5e31cbf2b46538d7f395d2046cebcc19be40ad3)
* Fix NoMaterialArbitrage crashing when multiple lathe recipes give the same product (#27842)
(cherry picked from commit 2de3dbc9cea4fbb63baa501e0fe99fd66839db3e)
* CMO Drip DLC (#26153)
* All the stuff
yes yes
* THE GOD DAMN META
bruh
* New sprites and all that jazz
yay
* loadouts working?
(cherry picked from commit 77ee0088f9bd2ac8ff09e4b4ee2777bb7f2bea05)
* Automatic changelog update
(cherry picked from commit 55e82ab239b05a0ef2d01357d59ec7d0fe9760f4)
* Revert "Add auto map vote cvar" (#27869)
Revert "Add auto map vote cvar (#27496)"
This reverts commit fe35188e2c7b3f7cf209aebf7f97c184e30ae8fb.
(cherry picked from commit 4e3332636a1b6faac12212b983efb34d2b4cd460)
* Move id and health examinable to shared (#27867)
* Move id and health examinable to shared
* Make GetInfo public
(cherry picked from commit 0e3a2b3ba1d7bd0cd192e162a1d15a69dc8feaa9)
* Fix two issues with ReplacementAccentSystem (#27866)
(cherry picked from commit 0d0d46e01fb708a412688ad07ae0f633082ffbac)
* add health icons to the secmed hud (#27483)
redo change
(cherry picked from commit e41a48765857d41466dc10ea52766e3b9833e2d2)
* Automatic changelog update
(cherry picked from commit 581e105aa2a02c396698250faa4e705956c2c486)
* Adds new "Short-Sighted" trait! (#26037)
* initial commit
* blindness trait now uses minDamage as suggested by deathride
* made fixes for review for shortsightedness
* review appeasal
* removed PermanentPoorVision & merged its functionality into PermanentBlindness
(cherry picked from commit 1699ddecf8bec31a6c05b8fe13367f57a67da5d1)
* Automatic changelog update
(cherry picked from commit a4ab997f1f829099bba8aae844fa95259dac2f6f)
* Traitor objective issuers (#27855)
* the thing
* another one
---------
Co-authored-by: whateverusername0 <whateveremail>
(cherry picked from commit 42571b12e92da2cb929b1e6a2054f88e0d237b48)
* Fix evac shuttles not activating the shuttle ETA timer (#27847)
* Update emergency_lox.yml
* tge
(cherry picked from commit 967de41a5c2ef566e44c26ca56b00263fca35273)
* Automatic changelog update
(cherry picked from commit 1a4d238247b36744b6f7182e026f8c4a058c59a7)
* Minor map fixes (#27564)
secradio to oasis, crimrec instead of statrec on box, reporter actually added on oasis
(cherry picked from commit 5b423802617ab678b9c4a61064fc89427f0731ce)
* Automatic changelog update
(cherry picked from commit b55cf45ec5396af90c4aec2de589159ed97aa44a)
* Make suit storage only available for hardsuits, softsuits, and armor (#27546)
* AAAAAAAAAAAAdd!
* o shit
* I FUCKING HATE INDENTATION GRAAAAAAAAAH
(cherry picked from commit da2b9afc3a6af6791222092d1223074ccb4dde1e)
* Automatic changelog update
(cherry picked from commit 4dc3ec390ecd544b65f022807bee1daba7e8a6b7)
* Automatic changelog update
(cherry picked from commit c838d17fdb084c7132f76f57cfb286dbede325df)
* Cluster med refactor V2, robotics console, emergency N2 lockers (#27840)
* Cluster med refactor V2, robotics console, emergency N2 lockers
* adresses some more issues
* removes bible an chest rig
(cherry picked from commit 973a8b3ad71419f045b0ff3dedd452c4771fd0dd)
* Adds wielding for all large guns (#26970)
* Adds wielding assets
* Modifies meta.json files and adds artist credit
* Adds wieldable component to a bunch of weapons
* Moves shotgun inhands and wield inhands to their own folders (because its the only way the sprites would work)
* Removes the wieldable component from some guns
* Adds wielding sprites for wieldable guns that didnt have them
* Adds gun wielding bonuses and base innaccuracy to wieldable guns.
* Corrects wielded accuracy to be default accuracy instead of perfect
* Makes the drozd smg and bulldog shotgun wieldable
* Makes nukie c20r wieldable and adds sprites
* Adds BaseGunWieldable
* Makes all the newly wieldable gun use the base inheritable
* Adds accuracy to smgs to resolve inheritance conflict
* Makes all wieldable shotguns require wielding to fire because of a bug involving spread innacuracy
* Adds wield bonus message on examine
(cherry picked from commit 2287f59e8a0aff8cc2239902536940a3f6ed724b)
* Automatic changelog update
(cherry picked from commit 6c99534761d5d5dc4d74b5908d4485bfd80865d1)
* Atlas Rework (#27702)
* reworked atmos
* fix rtg atmos
* security perma and bridge
* misc tweaks
* minor fixes
* fix skill issue
* fix map render
* requested changes
* fix cameras
* add robotics console
* remove door states
* air alarm
* fix funky tiles at bar
* add missing tiny fans
* remove pod fan from last commit
* moved robodrobe (why did i change sci slightly)
* add buckets and water to jani
(cherry picked from commit d4ea3ca25aa04a7b9cd243b387fd9d3f8a3269a5)
* Automatic changelog update
(cherry picked from commit f76d3d8a5ed3f6dcd7adcab9850525b525dd693e)
* saltern robotics console (#27834)
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit d061aa437e18777e5163b6aedc0826835e3363f5)
* New event: Approaching unknown shuttle (#24490)
* setup codebase
* Add first shuttle
* tak
* sync striker
* sync 2
* pipipi
* Preloaded roundstart shuttles!
* Make it abstract "PreloaderGrid" not "PreloaderShuttle"
* to do
* added china cuisin shuttle
* fixes
* add disaster evacpod
* remove enemy
* final shuttles
* weight 5 -> 10
* move data to component
* remove autotrailer touching
* doc, respath
* fix frozen positioning
* fixes + cvar
* finally
* fix evacpod
* remove blacklistrules
* remove `UnknownShuttleSpawnRule`, refactor `LoadMapRule` to support preloaded grids
* use tryload
* cleanup
* fixes
* use preloadedgrid for loneops
* weight unknown shuttles differently (preliminal)
* leftover
* cleanup and raffling
* partial review
* singleton gridpreloader no station coupling
* fix grid atmoses
* `roleLoadout` support for `LoadoutComponent`, fix missing gear
* weighting changes
* init logic fix
---------
Co-authored-by: Kara <lunarautomaton6@gmail.com>
(cherry picked from commit e522bbf90d8d18ee0909b3c2b708598eb50bec61)
* Automatic changelog update
(cherry picked from commit 501d039b26aa9fa3d193f6025c88bf1dcdf09f93)
* Update Core (#27887)
add
(cherry picked from commit cfa6a0050e4c6a64294aa8cc7a097183bc7c7d5a)
* fix fland kitchen freezer (#27532)
* fix fland kitchen freezer
* run fixgridatmos
(cherry picked from commit d688ad2878d4571c625a4948fb6196a5132c2f48)
* Automatic changelog update
(cherry picked from commit abd961d9c46db94f07bb685e3bc5f3cb8f30adc2)
* change shadowstone desc. (#27900)
shadowstone desc.
(cherry picked from commit 40802738ec84496cb55ad824bf0f94ed7a7916c6)
* Automatic changelog update
(cherry picked from commit 0250cd99be75c2238a005491a47a51f11fee2062)
* Remove THC oil (#27889)
remove THC oil
(cherry picked from commit 938c3104e7685e1910b66f60e914ccfc4d8001fb)
* Change o2/plasma ratio in TEG guidebook (#27763)
(cherry picked from commit bc53a46a7392ae0bc3911634c19225610c459a8f)
* Add ActionPerformedEvent, ActionsSystem.SetIfBiggerCooldown, action id to action events and BackgroundOn field (#27682)
* Add ActionPerformedEvent and ActionsSystem.SetIfBiggerCooldown
* Add action id to action events and backgroundon field to action component
(cherry picked from commit 9741fda672e27bc68ebed87bdaf7f23adda6f7c1)
* Fix votes using an audio entity (#27871)
* Fix votes using an audio entity
Just retains a source around and uses that. I think the audio limit is like 256 sources on the lower end so this is like whatever to persist.
* Restart
* weh
(cherry picked from commit 5578bcc6f861a2211e9f2678d4132ae50f2a303d)
* Fix ninja suit suit storage and other armor missing their suit storage (#27897)
b
(cherry picked from commit 9845d8bd30008230d49b47dd51a3c7bbf2c9de2e)
* Adds Support for Guidebook Buttons in UIs (#27891)
* Adds Support for Guidebook Buttons in UIs
* read it from the component
* the code is perfect
* moony review
---------
Co-authored-by: ike709 <ike709@github.com>
(cherry picked from commit af4c6373f68360ff56d6b9695b1323b3b00fe28b)
* Automatic changelog update
(cherry picked from commit c81c1c1f1e80bb8992132ba5adc4e551980ff9ad)
* Make FTL constants in ShuttleSystem into cvars (#27706)
* Make FTL constants in ShuttleSystem into cvars
* Fix tests
(cherry picked from commit eed560bf3ee8402c5ad150b1246dea6a943cfe19)
* Fix const data field in BlindableComponent (#27919)
* Fix const data field in BlindableComponent
* Fix usages
(cherry picked from commit 7524fb93b68bd610df108d1f19d40730f8b3f744)
* Fix collection modified error when locking storage (#27913)
(cherry picked from commit 1db48b86d1355cc2653989d2eaf5d7b179fa76af)
* Fix shuttle cvars comments (#27923)
* Fix shuttle cvars comments
* Add another line to ftl mass limit
(cherry picked from commit 9a04170e8667052716a73acffbb4a1c33d6273d5)
* Fix security jumpsuit sprite's asymmetry (#27925)
* inital
* Update meta.json
(cherry picked from commit 9ee42e11389e9d006588c67edd66e1bb2d526cab)
* Do not wake up NPC if there is still a mind attached. (#27651)
* Do not wake up NPC if there is still a mind attached.
This became apparent with diona nymphs (?) and slime gyras (?). This caused players that disconnected while a nymph, gyras or other npc to resume their NPC behavior. Which I would call unwanted. This fixes that.
* Zombies become AI anyway
* Update Content.Server/NPC/Systems/NPCSystem.cs
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
(cherry picked from commit b860774d7cd7ee2eb03558e9d02e400916953091)
* Automatic changelog update
(cherry picked from commit 742a1a5fbd3ad24b48c9e7cd92c29e184cdf9288)
* Fix ghosts getting spawned in nullspace (#27617)
* Add tests for ghost spawn position
* Make ghosts spawn immediately
* Format mind system
* Move ghost spawning to GhostSystem
* Spawn ghost on grid or map
This fixes the ghosts being attached the parent entity instead of the grid.
* Move logging out of the ghost system
* Make round start observer spawn using GhostSystem
* Move GameTicker ghost spawning to GhostSystem
Moved the more robust character name selection code over.
Moved the TimeOfDeath code over.
Added canReturn logic.
* Add overrides and default for ghost spawn coordinates
* Add warning log to ghost spawn fail
* Clean up test
* Dont spawn ghost on map delete
* Minor changes to the role test
* Fix role test failing to spawn ghost
It was failing the map check due to using Nullspace
* Fix ghost tests when running in parallel
Not sure what happened, but it seems to be because they were running simultaneously and overwriting values.
* Clean up ghost tests
* Test that map deletion does not spawn ghosts
* Spawn ghost on the next available map
* Disallow spawning on deleted maps
* Fix map deletion ghost test
* Cleanup
(cherry picked from commit a985c5e83ead6098783ed2129eed516dbd619586)
* revenant can no longer harvest souls while in solid objects (#27612)
meow
(cherry picked from commit 4e26be8617d309c49e7127892d0f0cdc56a468b0)
* Automatic changelog update
(cherry picked from commit 1698e1cfab6ab1bdb7de00ba9e1c6f1bc8f4563f)
* Automatic changelog update
(cherry picked from commit 73c142064830f1028c42ac619296d092a6603b85)
* fixes
* Embed a few more Cryogenics chems in Guidebook (#27935)
(cherry picked from commit 829e12d26323a55d94639a213299d65ca716fa9d)
* Add an admin smite for making people slip really far (and localize the admin smites better) (#27246)
* Sliiiiiiiiiiiiiiiiiip
* what
* Localize!
* antiterminate
(cherry picked from commit cf148288a07809249b5569f8d77892284e634b7b)
* Resolve all non-obsoleting warnings in content (#27934)
* Resolve all non-obsoleting warnings in content
* Update ClientGameTicker.cs
* Update SkeletonAccentSystem.cs
* Update BwoinkSystem.cs
(cherry picked from commit 1596e04d0f320ce5cc13296a53fbda868d2047a8)
* Replace AttachToGridOrMap with DropNextTo (#27950)
(cherry picked from commit 8938e1d8b25d903355a9e058bbb12904a270ae06)
* Resolve `'TransformComponent.MapPosition' is obsolete` in content (#27939)
* Resolve `'TransformComponent.MapPosition' is obsolete: 'Use TransformSystem.GetMapCoordinates'` in content
* build?
(cherry picked from commit 855234aa309b0329e1435466b09b85448fa31178)
* Prevent admin-frozen players from ghosting or suiciding, add "Freeze And Mute" verb (#27813)
* prevent admin-frozen players from ghosting or suiciding
* Add "Freeze and Mute" admin verb
* Allow "Freeze And Mute" admin verb when player is already frozen but not muted
* Remove redundant scream handler (scream action just emotes, duh)
* AdminFrozenSystem: clean imports
* Update Content.Server/Chat/Commands/SuicideCommand.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Ghost.cs
* retrigger ci (empty commit)
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
(cherry picked from commit 37099e481e3341bcf82939a677ef5c0df458abbb)
* Automatic changelog update
(cherry picked from commit 17e0a7f56c4791b7d8443240826db811aafd2c13)
* Add live templates for networked data field, networked component and auto state component (#27906)
* Add live templates for networked data field, networked component and auto state component
* Fix field access
* Fix readonly
(cherry picked from commit ed7075942d827100408429cd0e1bc4d9bbacfc5d)
* Record deletion (#27883)
* Allow for Station Records interface for aghosts to delete records
* Fix record consoles not working when there are more than 2 crew members.
HOW DID NOONE NOTICE THIS SOONER???
* Stop being unconventional
(cherry picked from commit c8b55e5e449fc4f43206c3a6a5a84ef53023cd18)
* Automatic changelog update
(cherry picked from commit cfee7e3fdceccf4808d49ce305ed105e62766491)
* Fix borg UI regenerating every tick (#27956)
* Fix UI elements being recreated when they didn't need to be
* Fix up comparison
(cherry picked from commit 9c3dab0be3fa2ecc66a21b471e5e78be8fcf43d0)
* Automatic changelog update
(cherry picked from commit c325ca8566f1032f24be7140e9bf94f04d740200)
* Open slot storage keybind can now also close the UI (#27962)
(cherry picked from commit d6e2cc0a8b1d93ffdfa184a694183ea7c8b7a1e4)
* Automatic changelog update
(cherry picked from commit efc430f651192fe0d6e2b7a076eb1ed2ed59192f)
* Resolve `'EntitySystem.Get<T>()' is obsolete` in content (#27936)
* PROJECT 0 WARNINGS: Resolve `'EntitySystem.Get<T>()' is obsolete` in content
* pass entman
* dog ass test
* webeditor
(cherry picked from commit 993eef1e7c22b2b79e528967ef5bb669f50236b1)
* fix weird behavior with storage HUD buttons (#27961)
(cherry picked from commit 03af7fcdc1bc28b6eef46877b5eae1cde2c2cf2f)
* Implement Equals for ApcBoundInterfaceState (#27965)
* Implement Equals for ApcBoundInterfaceState
Saves a lot on bandwidth. Also made it round to the nearest 5.
* Also this
(cherry picked from commit ce0a175c731bf205f59cb93dcb3a2268c4cedb24)
* Change some `EntityQueryEnumerator` to `AllEntityQuery` (#27969)
(cherry picked from commit 1f03111ff8affe1554a5fac4d1a49b1cccdf2fbb)
* Fix skirts femalemask (#27984)
Fix skirts
(cherry picked from commit 74020abc91af0242a2bd47b195fba8bac301daab)
* Automatic changelog update
(cherry picked from commit 1a9766bd67dc390193cd81319b9d218e073ad259)
* Revert "Stop Toilets crushing you into walls" (#27994)
Revert "Stop Toilets crushing you into walls (#27778)"
This reverts commit 24e227660a34e33966f5b9bd7a5f69c775c9669b.
(cherry picked from commit 950adc8fdecaf89e7ab402ebb5197d0ff8a538dd)
* Make failing to fire a gun that requires wielding not delay the next shot (#27973)
Make failing to fire a wield-only gun not delay the next shot
(cherry picked from commit f22e5404aaf3903213ce53df6e674f35c53b057a)
* Automatic changelog update
(cherry picked from commit 0edc9218d655758f739d92f513b39fd8026e7ce2)
* Fix incorrect message displaying when trying to remove stuck item from someones hand. (#28024)
* Fix
* Fixed the other spot!
(cherry picked from commit 550a3afc52035e19e659b01624956c6751d290e1)
* Make hotplate and grill anchorable on table (#28026)
Make hotplate and grill anchorable
(cherry picked from commit 26747be232c364abcb4e43fb934c85ef0e3e1264)
* Renamed old snake_case IDs to PascalCase IDs (#28014)
* Renamed soda_dispenser to SodaDispenser
* oops, wrong time
* oops
* guidebook
* chem_master
(cherry picked from commit 9e8920c9aacc5f7aa19848ef36ae9ad3ce1c6364)
* Automatic changelog update
(cherry picked from commit 3d2f3c174b4fb7b9cf07898ba3a5ff4af82fe5ed)
* Replace Chef Ship Helmet (#28036)
Replace Chef Ship EVA Helm
(cherry picked from commit f1260dae00b15a0c351d55b6db6fd162293b4e48)
* Fix salvage magnet UI opening again when activating the console twice (#28010)
(cherry picked from commit 9ea06f3a39a80a250a59396431576fe1bc1ac6dd)
* Automatic changelog update
(cherry picked from commit 13ba3fc4da08a13de0314884487a749faa4c88a3)
* Makes bullet casings destructible by explosions (#27910)
makes casings destructible
(cherry picked from commit 3243afbb035ec673737095b878ee753bbbf6f252)
* Fix the client not passing the weapon to can attack checks (#28040)
(cherry picked from commit c94751f2d2c0d3951d1252d2c3955b01cedb543e)
* biome flexibility changes (#28017)
make biome apply template on mapinit, add api for setting Enabled
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit e37f95c24c447e568e3d6a6c33f1ba587c4a9495)
* Fix Shuttle Roles spawning without PDAs and Headsets (#28045)
* Move to starting gear, define a bunch of stuff
* Spacing
(cherry picked from commit 2be42871937748a6d4d78081a7c8631213d4eb96)
* Automatic changelog update
(cherry picked from commit 6fd5015940697ae78c3defb441222c5a7314cfdd)
* Disposal unit recharging state fix (#28059)
(cherry picked from commit 9b5dd1fab209dcb9508d6c2c93eaa5ba74ed9be8)
* Remove The Throngler from Grand Lottery (#28060)
Peace and Quiet
(cherry picked from commit f3910d34107761f1d5cd7e993e08124796cfaa49)
* Automatic changelog update
(cherry picked from commit 91afb12993a25f53d639332b79a20aaf99ad021f)
* Move most rotting code to shared (#28050)
* Move most rotting code to shared
* Remove unused dependency
(cherry picked from commit e53f225a39a266cb8c0648640ce53592d6ad58a8)
* Fix sandbox check failure when compiling with latest .NET SDK. (#28077)
Roslyn now compiles char + string with string.Concat(ROS<char>). This means doing ref char -> ROS<char> which is not sandbox safe. Actually fixing this in the sandboxer is difficult so I'm gonna just pass on that for now.
(cherry picked from commit b35dc427e114854e2312230ce96e4b6629ffe647)
* Make some CCVars server-change only (#28079)
* | CVar.SERVER
* Ooh ee ooh aah aah ting tang walla walla bing bang
(cherry picked from commit 893b60dba9f2a704560af576f5bd6185df7ac7e8)
* fix ninja hacking not affecting sechud (#28021)
minor refactor and fix
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit b453b9414810ed927228eb563c6b1c491532c5e3)
* Automatic changelog update
(cherry picked from commit 0a9ac37fcc511202adc2fefbcd3df0f105458123)
* fixes
* Fix under-selecting antags (#28327)
Fix under selecting antags
(cherry picked from commit 217d081b29f7c15dccfa43d43d5f83121b75370b)
* fixes
---------
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Vasilis <vasilis@pikachu.systems>
Co-authored-by: Lamrr <96937466+Lamrr@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: Hanz <41141796+hanzdegloker@users.noreply.github.com>
Co-authored-by: Jay <67732946+duskyjay@users.noreply.github.com>
Co-authored-by: Just-a-Unity-Dev <67359748+Just-a-Unity-Dev@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Ed <96445749+theshued@users.noreply.github.com>
Co-authored-by: Tyzemol <85772526+Tyzemol@users.noreply.github.com>
Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com>
Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: RumiTiger <154005209+RumiTiger@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Verm <32827189+vermidia@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
Co-authored-by: T-Stalker <43253663+DogZeroX@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: Ygg01 <y.laughing.man.y@gmail.com>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
Co-authored-by: Jezithyr <jezithyr@gmail.com>
Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
Co-authored-by: Łukasz Mędrek <lukasz@lukaszm.xyz>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: TurboTracker <130304754+TurboTrackerss14@users.noreply.github.com>
Co-authored-by: OnsenCapy <101037138+LGRuthes@users.noreply.github.com>
Co-authored-by: pigeonpeas <147350443+pigeonpeas@users.noreply.github.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Hobbitmax <91288081+Hobbitmax@users.noreply.github.com>
Co-authored-by: Tornado Tech <54727692+Tornado-Technology@users.noreply.github.com>
Co-authored-by: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
Co-authored-by: Rio <110139251+Riolume@users.noreply.github.com>
Co-authored-by: vorkathbruh <152932728+vorkathbruh@users.noreply.github.com>
Co-authored-by: Sphiral <145869023+SphiraI@users.noreply.github.com>
Co-authored-by: PrPleGoo <prplegoo@users.noreply.github.com>
Co-authored-by: Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
Co-authored-by: username <113782077+whateverusername0@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+boaz1111@users.noreply.github.com>
Co-authored-by: Джексон Миссиссиппи <tripwiregamer@gmail.com>
Co-authored-by: RiceMar1244 <138547931+ricemar1244@users.noreply.github.com>
Co-authored-by: Doctor-Cpu <77215380+Doctor-Cpu@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: MisterMecky <mrmecky@hotmail.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: ike709 <ike709@users.noreply.github.com>
Co-authored-by: icekot8 <93311212+icekot8@users.noreply.github.com>
Co-authored-by: Ghagliiarghii <68826635+Ghagliiarghii@users.noreply.github.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com>
Co-authored-by: Tunguso4ka <71643624+Tunguso4ka@users.noreply.github.com>
Co-authored-by: Nairod <110078045+Nairodian@users.noreply.github.com>
Co-authored-by: Dexler <69513582+DexlerXD@users.noreply.github.com>
Co-authored-by: EdenTheLiznerd <138748328+EdenTheLiznerd@users.noreply.github.com>
2024-08-24 08:25:23 +03:00
|
|
|
await pair.CreateTestMap();
|
2022-06-19 20:22:28 -07:00
|
|
|
await server.WaitRunTicks(5);
|
[WIP] Upstream 2 (#489)
* Automatic changelog update
(cherry picked from commit 235091b377d6dc8f95b38d239a8e07560d45fa7c)
* Remove airtight flaps from the construction menu (#27619)
They are meant to be mapping only items.
(cherry picked from commit a4b0a34bc74e3e374d780e7ba142d7670ca5ff59)
* Automatic changelog update
(cherry picked from commit 64a732ad7b1ba93b3aa64c233ecc7e4609683bf1)
* Wine and beer bottles can be inserted into booze dispenser (#27626)
Fixes tags on wine and beer bottles
(cherry picked from commit b728f36f30260a80a7a499429430f0d7c69ff54d)
* Automatic changelog update
(cherry picked from commit 09b6f5c12888ca3a2fa51ab3544e4139988febcd)
* small SpawnItemsOnUse cleanup (#27625)
* small SpawnItemsOnUse cleanup
* that one was not needed
(cherry picked from commit eab276a12da4bd762b33c44c868722c2ef813d68)
* make ducky slippers waddle (#27628)
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 8909dc7d401a7351ce0034c9e58af66922f5dbda)
* Fix SpawnItemsOnUse not playing sound (#27621)
Made SpamItemsOnUse play sound at entity coordinates instead of parenting
(cherry picked from commit 9b176933969b00e70d52bbb9b960ed631f09b0ac)
* Automatic changelog update
(cherry picked from commit 8a7f7097944f6d9bb7c587a22118cad8b068926c)
* Fix UI interaction priority (#27631)
(cherry picked from commit 3c3c2daf26eb4c215e3de26120e5be593ebb3620)
* Automatic changelog update
(cherry picked from commit f76a471e5a22480f975ec1448a2fdea3c6476271)
* Automatic changelog update
(cherry picked from commit 291ecf9643a5308fd5f8b9172e1710862da683f8)
* Add EntityWhitelistSystem (#27632)
* Add EntityWhitelistSystem
* Sandbox fix
* update test
(cherry picked from commit f348e6aa306a3542b1ed75b021c45228250aca3c)
* Add syndicate sleeper agents random event (#27501)
* Intercept rule (#10)
* add
* b
* add this back lol
* fix test fails (alert levels dont have prototypes)
* tweaks
(cherry picked from commit c69bf2f2aa23d57179dce1f6af9f7c73903d47e2)
* Automatic changelog update
(cherry picked from commit 192de3d9cb06c9526c5c63783507590c175acff9)
* Space Ninjas auto-toggle internals after spawning (#25083)
* fix engine version
* actually fix engine version
* Automatically activated breathing masks
* weh
* who needed that component anyway
* check if internals are already running
* Update Content.Server/Atmos/Components/BreathToolComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/Body/Systems/InternalsSystem.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* prediction
* record struct event
* remove delayed activation, instead ensure that masks spawn last
* leftover
* engine version
* re-implement
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit f64dd5f45f8ebc08d791ac34e9482c6c3d85a51b)
* Automatic changelog update
(cherry picked from commit 4ede46003abf4c0593de00f802550df2b3642055)
* Fixes the grammar for the captain's supervisor (#27638)
Fixes the grammar on the captain's supervisor
(cherry picked from commit a28296433b03c041e4374e88bdef7347a85f895f)
* Red bool update (#27597)
* the meat and potatoes
yuh yuh yuh
* what the hell is a copyright?
am I right?
(cherry picked from commit a8bf2689a4696e841ce607c7061ac73faceeeefb)
* Automatic changelog update
(cherry picked from commit 40a4eeaa3953db8213034fd3dd12fedce922deff)
* Allow EMP implants to be used while stunned or cuffed. (#27644)
Update types.yml
(cherry picked from commit 0056befd4bac47f9e86c975342fcc80583affbb9)
* Automatic changelog update
(cherry picked from commit bedec83cd9a778d86795a0c8a5e4d439a3e4d407)
* Geras bug fixes (#27308)
* Geras bug fixes
* oops
* its as shrimple as that
toggled transferName in the polymorph yml instead of using the system to manually change it
* its as shrimple as that (2.0)
fixed reviews for zombies having a dummy action, instead - properly implemented removal of action
* its as shrimple as that (3.0)
fixed tests by removing nameidentifier from slime (its already inherited, anyway)
(cherry picked from commit 76ecdee94604f3cc73aba8b09d7bb36125a069e4)
* Automatic changelog update
(cherry picked from commit c045e2488e6ce85f16c7f4cf5dfced18cb18ce62)
* Ninja's pinpointer tracks the research server (#27552)
Change the tracked component on the ninja's pinpointer from BecomesStation to Research Server
(cherry picked from commit 6fc684812d4deed313970de40e81822157afe461)
* Automatic changelog update
(cherry picked from commit 960f268d1cf5d2b318ccd4b2adf18f1837d1c9bc)
* Fix some gamerules' round summary not working (#27654)
Update GameRuleSystem.cs
(cherry picked from commit 6ecbf0a04ce3ebaa6c74e144a8fb64ddf3223b43)
* Automatic changelog update
(cherry picked from commit 1d5392f86bd9a086283619ad7ce5d3259b1313df)
* Change return to continue in gamerulesystem (#27656)
Update GameRuleSystem.cs
(cherry picked from commit 96a3967c3f4bcf5826b62013bc3e665656b1db81)
* Rename Lizard urist (#27652)
(cherry picked from commit 1b3481f094edffee3d7841e0c3ccbf8ba4cc30cb)
* Automatic changelog update
(cherry picked from commit 07d43af4a6e407d4e752466d965177dfe3e5c876)
* Pathological Liar (#27618)
* content
* upgrade
* n't
* ye ya
* Update speech-liar.ftl
* Mith replacement ideas
* fix
* more!
* Revert "more!"
This reverts commit 6d10bdf694985c525a2b451ed39380f975059b44.
* Update Content.Server/Speech/Components/ReplacementAccentComponent.cs
---------
Co-authored-by: Kara <lunarautomaton6@gmail.com>
(cherry picked from commit 5ab1cc0c846775e438517bbff9d7713eeb5ef85d)
* Automatic changelog update
(cherry picked from commit 540c45cbe9b6dbfce9eeb523f0c374d39ac7221c)
* npc can no longer attack you through a locker (#27677)
(cherry picked from commit 83b486b63fd23e149bb0112aac4800e63b1f33dc)
* translations
* Automatic changelog update
(cherry picked from commit 8ee9ca22276df595ab4dc7767d66d9145dac2743)
* Security belts can now hold more items commonly carried by secoffs/HoS (#27674)
holobarrier
(cherry picked from commit 873799095cc28cb5db753b005b3fa00ee117c370)
* Automatic changelog update
(cherry picked from commit 0a15d0855083eb5a35c5c8d0170720a294d07bf7)
* Floodlights now have medium powercells instead of small (#27672)
mediumcellfloodlight
(cherry picked from commit 1c125cb14e661492e4c2a31f2e9d07c60bdde0c8)
* Automatic changelog update
(cherry picked from commit 4bb078601845228391db7a09f1b8c4a5c8f410d1)
* More descriptions for the beakers in the status panel (#27669)
Bottles
Descriptions for status panel
(cherry picked from commit c3fe975e8b8cf1dd220a49ceecd7450535eabf45)
* Revert "npc can no longer attack you through a locker" (#27680)
Revert "npc can no longer attack you through a locker (#27677)"
This reverts commit 83b486b63fd23e149bb0112aac4800e63b1f33dc.
(cherry picked from commit 37d0cb9c9085befad4f7fe1ee21a15d1d3c2f66c)
* Scattershot antag fixes (#27429)
* scattershot antag fixes
* this too?
* dawg fuck this code
* ok so we kinda need this?
(cherry picked from commit 5183f3ed8ba40527808610596d7e3eef3c925eef)
* Rename ChemCleanBoodstream.cs (#27691)
(cherry picked from commit 45fc6bed2f6e812603e0c181b0b163f15576749e)
* Add default whistle + whistles reorganize (#27676)
* Add default whistle + whistle reorganize
* aaa
* fux?
* fiiiiix???
* Revert "fiiiiix???"
This reverts commit 15353465d58db615185afa8c549e1819099c1a5b.
* Apply suggestions from code review
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
(cherry picked from commit ead78b72d2e507fadf4f5424377aff8a5f94d271)
* Automatic changelog update
(cherry picked from commit 92c2ff0b05482ea490fbdc8ac3d27776a30dd936)
* Use dotnet run for the run batch files instead of directly calling the exe (#27698)
* Use dotnet run for the run batch files instead of directly calling the exe
* FUCK
(cherry picked from commit eb2fac40db1dfaf789511eef0cb7e394100fef50)
* Emergency Tank + Plasma Can visible on suit storage slot (#27598)
* Suitstorage Sprites + Plasma tank slots
* Fix some extra brackets
(cherry picked from commit 70d3cf7ba411ef38818f63eec944c4f0c7c33c98)
* Cache regex instances in most cases (#27699)
Using static Regex functions that take in a pattern is bad because the pattern constantly needs to be re-parsed. With https://github.com/space-wizards/RobustToolbox/pull/5107, the engine has an analyzer to warn for this practice now.
This commit brings most of content up to snuff already, though some of the tricker code I left for somebody else.
(cherry picked from commit 4a2a63a86b0ad36a2850e5750bfd5e653cb2ebd6)
* update engine 6
* Remove useless line in runclient (#27701)
I forgor
(cherry picked from commit c61e683354d45bd4ec382de9117ba75cab67db9f)
* welding masks on utility belts (#27694)
(cherry picked from commit 7d35d54a814df74ef385ad8293eadff3e921c1c9)
* Automatic changelog update
(cherry picked from commit b947490d089af4c70ff0979250a4a03064e87069)
* Add solution temperature to chemical analysis goggles (#27693)
yes
(cherry picked from commit 93c5e868579c0bd1baec8c6d023d98f530b63c44)
* Automatic changelog update
(cherry picked from commit 254a9177fc99a359f134516b19d2943baf50ae5f)
* Expeditions audio tweaks (#27524)
- Now uses a SoundCollection.
- Now properly handles going between maps (audio rework mucho wow).
- GetAudioLength used so it can properly countdown ANY song (wow audio rework wow wow).
(cherry picked from commit d1a5d3562355a514c42b1027742549180f6edc37)
* Automatic changelog update
(cherry picked from commit 82fe5ab55de121e153b164b83b363fd4d95e437d)
* Fix AlertControl throwing an error if the sprite view entity is deleted multiple times (#27690)
* Fix AlertControl throwing an error if disposed multiple times
* Replace default check with deleted check
(cherry picked from commit c20df3e39ffd3b28db499bcc4a0e1fb48b563826)
* Fix tests (#27711)
* Fix tests
* Fix test fail
* Apply same fix to other tests
(cherry picked from commit eee8e03c15ea22472d6b442281fccc4cb036e64d)
* New Salvage song: Deadline (#27707)
Deadline
(cherry picked from commit 104c2afe692c0c05172b9ba2a15213d2a54ae99c)
* fix(ui): Fix shuttle control radius marking text vertical spacing (#27695)
(cherry picked from commit 7ffa74abd009650de3868d47c95b45ef4a18ea9c)
* Automatic changelog update
(cherry picked from commit 1ecc36b04945169e42ad42de56d7af69092aa447)
* Dock device link port (#27646)
* Add dock device link port
* SpawnAndDeleteAllEntitiesInTheSameSpot moment
* The fuck is TryStopNukeOpsFromConstantlyFailing??
Do we have a new test that can randomly fail?
(cherry picked from commit c7a5587e0710f6d4b8a959bb54fbcd9e9631a96f)
* Automatic changelog update
(cherry picked from commit 3b3cc0e66cd03d71c27ba65810f876001923fcfa)
* update engine 7
* Update license of deadline.ogg (#27715)
(cherry picked from commit b8d03b814b1ede3a53874efe2d8d46f3ef8dbd6c)
* Round event frequency simulation command (#27718)
(cherry picked from commit c1aae2398b5e4510b9b07ea7af877fc5760dd5c3)
* New lobby art: Just a week away (#27717)
just a week away
(cherry picked from commit 026af631f8a844b000dec4702eb6080e9a7bed9b)
* Automatic changelog update
(cherry picked from commit 3dcb65feb292e3088729b69f36fc3d5ac51eae58)
* Fix missing command desc (#27722)
(cherry picked from commit aa426c9c3aec67ee82f7b6d10cd5770ad008483d)
* Remove duplicate liar word id (#27723)
(cherry picked from commit fbe8374c0f79b32dc49f0a009041798510f2c888)
* Event frequency balance pass (#27721)
balance
(cherry picked from commit 8f4362df036ea1dd5dba7a31c3669640964a45c2)
* Automatic changelog update
(cherry picked from commit 8fa7ea7cf9c03ea3273882708d31092a0c6e2eb9)
* Fix some gamerules' round summary not working (#27654)
Update GameRuleSystem.cs
* fixes
* fix antag selection being evil (#28197)
* fix antag selection being evil
* fix test
* untroll the other tests
* remove role timer troll
* Allow tests to modify antag preferences
* Fix antag selection
* Misc test fixes
* Add AntagPreferenceTest
* Fix lazy mistakes
* Test cleanup
* Try stop players in lobbies from being assigned mid-round antags
* ranting
* I am going insane
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
* fucking tests
* fix round restart loops
* Fix `TryFindRandomTile` grid weighting (#27724)
(cherry picked from commit aaabd5e9141e2e51b81c0dacd32e7e849826204d)
* Automatic changelog update
(cherry picked from commit ddb07d5f6362de11832f6b2085c4f6e8abfa625c)
* Remove duplicate liar word id. Again (#27727)
Missed one translation
(cherry picked from commit b58d8a02b6e0d0a8b546fc0d1e437cb0b4f147bf)
* Half the amount of bleed rate cauterized by burn damage (#27726)
half
(cherry picked from commit 7d23d014458180fe26b3ec847417a99120cf6ef5)
* Reduce the amount of burn damage from touching lights (#27728)
* chilled
* external
(cherry picked from commit 7794ab86094d1c406fbb888ae3ed2a489348af9c)
* Automatic changelog update
(cherry picked from commit 008f6ef94a65a48d8bc2e89c80774d1ac6c624b3)
* Moved Serverside solution container code to shared (yes that includes ensureSolution!) (#27478)
* Added warning to tryGetSolution, moved SolutionContainer code to shared
- Added an optional warning (false by default) to print an error if a solution is missing when using tryGetSolution methods
- Moved ensuring solution containers to shared, left the old method stubs for compatability and marked them as obsolete.
* Update SharedSolutionContainerSystem.cs
* Update SharedSolutionContainerSystem.cs
* Update SolutionContainerSystem.cs
* Update SharedSolutionContainerSystem.cs
* Fixing ensuring chem solutions always returning false on client
- ensuring chem solutions will only return false on the client if it is waiting for a server solutionEntity to be synced
* Added concentration helpers
* fix whitespace
(cherry picked from commit 6685146a1e3e188eac1fb2502920225c56cc08e1)
* Automatic changelog update
(cherry picked from commit 19aeff26ec2cb87ceee918c1c5f4f6639fd35ad5)
* Night on Europa (#27731)
night
(cherry picked from commit cc9e40820fa48a7378c6b96371ef819010e7c085)
* Reduce ratking chance severely (#27760)
(cherry picked from commit 7d7c71e6a66bd0e626bc1b31529db0f708b8066a)
* Automatic changelog update
(cherry picked from commit 61c1aeddf369e46c269c2b03cace3f0b25ebf470)
* Fix preference loading bugs (#27742)
First bug: if an error occured during pref loading code, it would fail. If the person then readied up, it would likely cause the round to fail to start.
Why could they ready up? The code only checks that the prefs finished loading, not that they finished loading *successfully*. Whoops.
Anyways, now people get kicked if their prefs fail to load. And I improved the error handling.
Second bug: if a user disconnected while their prefs were loading, it would cause an exception. This exception would go unobserved on lobby servers or raise through gameticker on non-lobby servers.
This happened even on a live server once and then triggered the first bug, but idk how.
Fixed this by properly plumbing through cancellation into the preferences loading code. The stuff is now cancelled properly.
Third bug: if somebody has a loadout item with a playtime requirement active, load-time sanitization of player prefs could run into a race condition because the sanitization can happen *before* play time was loaded.
Fixed by moving pref sanitizations to a later stage in the load process.
(cherry picked from commit 7a38b22ddbf03814680277d54c285dcc70345e20)
* Automatic changelog update
(cherry picked from commit 0cb50a24c37f83da2f852660cf5e38a8936750d8)
* Little morgue overhaul (#27750)
(cherry picked from commit d099b634242b3f8b84724f90b279f5b20f153333)
* Automatic changelog update
(cherry picked from commit 35dc85fd47a9d3e6af10de2f7aad3076586ee4da)
* Make arguments and parameters wrap to one variable per line (#27766)
(cherry picked from commit b9906eb34cb56f7ef34f5b4f050b0ef2f87b1be9)
* Revert "Fix turned off thrusters consume power" (#27755)
Revert "Fix turned off thrusters consume power (#26690)"
This reverts commit 70959e7bb081c1a6e1457a8f8ee7732da91bb270.
(cherry picked from commit 1e30234539a0dbfce1724a66eb27e5e0ab439d86)
* Fix construction instructions on flippables (#27574)
Fixes #27547
(cherry picked from commit 28f5d490a4a6153bf56e4f8b4c5d3fa17fe8f14d)
* Log event starts to admin alert chat (#27761)
(cherry picked from commit 09b53192708543f1f8c4796a01907193db66216e)
* Automatic changelog update
(cherry picked from commit 31a832710654627702b9362f71fb327ac8c93ea9)
* Set max line width to 120 (#27765)
(cherry picked from commit 0926891f4f0591bf34a79b17aae1f7b1a91acd0d)
* Automatic changelog update
(cherry picked from commit cd8e90c58ecd47fb018e402bd7dea84a9715bb13)
* Weapon Reflection Movement Mechanic (#27219)
* Weapon Reflection Movement Mechanic
Adds a movement mechanic to deflection.
Standing still gives you your best chance of deflecting a shot.
Moving lowers this to 2/3rds. Sprinting to 1/3rd.
This allows for robust players to express better and provides
counterplay to someone finding a goober-strong deflection
weapon, giving more design space.
As part of this PR I've also touched the numbers of a few swords,
shields, etc. and modified some descriptions to make them read
better. The balance numbers are not remotely final, but as intent:
1. All the sidearm swords (katana, cutlass, captain's sabre) have the same damage. There's no good reason the "ceremonial" blade the captain has doing more damage than a katana.
2. The Captain's Sabre has a 30% reflect chance, dropping to 20% when moving and 10% when sprinting. This one is controversial due to the recent nerf, I suspect: This could easily be 15->10->5?
3. The Energy Katana has a flat 30% reflect chance.
4. The meme Throngler has a 30% reflect chance, dropping to 20% when moving and 10% when sprinting.
5. The E-Sword has a 30% reflect chance, dropping to 20% when moving and 10% when sprinting.
6. The Double E-Sword has a mighty 75% reflect chance, dropping to 50% and then 25%.
7. Both reflective shields - Mirror and Energy - have a 95% deflect chance, dropping to 63% then 31%.
* Resolve PR comments.
* Weh?
* Reign in double esword a tad
* Shield nerfs no longer real
* Improve Mirror Cult desc
* Simple alert for deflection! No art yet.
* Added a new icon for deflecting
(cherry picked from commit b90373356e7f4f0eee693732964eac9c9eaa1f02)
* Automatic changelog update
(cherry picked from commit 6301e94390790c3a19a62c2a12bda1629037f79c)
* make lube speed up lathes (#25515)
* add LatheGetSpeedEvent
* add LatheLube system
* make typical lathes accept lube
* spill
* :trollface:
* rework to generic ReagentSpeedSystem
* hyperlathe ops
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 262b9698cf0cfaad19c68223d7ed777cbe7dc33f)
* Automatic changelog update
(cherry picked from commit 685188fd109c31e54fbf77cddf56743c678e4406)
* Stop Toilets crushing you into walls (#27778)
(cherry picked from commit 24e227660a34e33966f5b9bd7a5f69c775c9669b)
* make hyper printer inherit base lathe (#27777)
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 89cbb100fd52a6ae5cf19f35e426b5627cd3f72f)
* Change combat gloves sprite (#27373)
* Changed combat gloves sprite.
* Edited combat gloves sprite.
(cherry picked from commit 8ec52ff69cb784e5b2640370c8a79b7f530114d9)
* Automatic changelog update
(cherry picked from commit 18bd221407d46725fc928cc6b5f4f8ee34ba0a76)
* Make the floppy lizard ears have two colors. (#27679)
* Make the floppy lizard ears have two colors.
* please fix whatever the hell happened
* fix the error
* suggestion from Ubaser
* another suggestion from ubaser
(cherry picked from commit bd06aa2365d6ce093ac47462deb69858c6cc18c0)
* make dragons breathe fire (#26746)
* add ActionGun system
* add RepeatingTrigger
* dragons breath projectile, repeatedly explodes
* give dragon fire breathing action, fireproof it
* oop
* oop 2
* prevent troll
* proper repeating thing
* pro
* webedit ops
* realops
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit d6d1c9ed8a748366e129155d2bb317dc8db24e37)
* Automatic changelog update
(cherry picked from commit ab1a2de367e307eaadaef9d2c90addeb96d625b9)
* Fix preferences sent to client not being sanitized (#27789)
Fucking whoops
In #27742 I made it so sanitization of character profiles was moved to be *after* database load. Except that means I moved it to be after the copy of all character profiles got sent to the client.
Move the sending to *also* be in that second load stage, and rename it. Fixes the issue.
(cherry picked from commit 9efe4dc70120a001ac2964b11d6773cb0a39d1da)
* Revert "Make the floppy lizard ears have two colors." (#27790)
Revert "Make the floppy lizard ears have two colors. (#27679)"
This reverts commit bd06aa2365d6ce093ac47462deb69858c6cc18c0.
(cherry picked from commit caa822b9a01adb65286365bf091c31547a160018)
* Fix the changelog window being very laggy until a tab is clicked (#27795)
(cherry picked from commit 15153d95a4bc209ae6df053f86e303cb16b38103)
* Shoot Over Racks (#27797)
Racks now have table collisions
(cherry picked from commit b104125c0ebcc829b54dc05dcabd9b7fb6585f96)
* Fix cak and breaddog not being able to escape inventories (#27794)
Fix cak and breaddog
(cherry picked from commit 99212762d6da89263c8c98e83f9a52e7bd43b881)
* Automatic changelog update
(cherry picked from commit 1a09374b016039892a3b9aeae4e61f1114515f89)
* Fix pull not stopping when character is downed (#27796)
(cherry picked from commit 83099640e69fe004e9230422732fd353de9780e5)
* Automatic changelog update
(cherry picked from commit c097c98a1e09ff7bdd8ebb475e4cdd621d09011f)
* ебал движок
* zaebal
* Reimplement supplybots as non-vehicles (#27769)
* Reimplement supplybots as non-vehicles
* what the hell is a container container?
* Dumpable
* let them hear supply comms
* unmigrate
* no more QM access
* Skill issue
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit 1952ae3267ce3724f202e2fb5e69ddfb6ed86951)
* Replace Train syndicate Jaws (#27734)
Should push the right changes to my Train Branch
(cherry picked from commit aad5b9e53bedfc24c3a919d21946573c7211fe37)
* Automatic changelog update
(cherry picked from commit 29860a0cf7d6b541b941792ae8978ddc0030a505)
* Added new HTN operations and preconditions (#27486)
* Added new HTN operations & preconditions
* Ok I forgot about partial
* Namespace pierce the skies
* Some fixes, debug and new operators
* Bruh git eat my files
(cherry picked from commit 31491775e597fe9906df66d7285d5b63ba92daa2)
* Move step sound distance and footstep variation to MobMoverComponent (#27799)
(cherry picked from commit 401350759cd6486afa577c12b4536f39491b5254)
* Automatic changelog update
(cherry picked from commit 130ab51e38d8f2b1c1f7aeb588949999a506c424)
* Bike Horn, Clown Recorder, Suspenders for Theatrical Performances Crate (#27668)
added clown and mime item to theatrical crate
(cherry picked from commit c1ed8542647e1f0e62757917e8338370426ae3f5)
* Automatic changelog update
(cherry picked from commit 00aa6d0bdd47361ff2eed204c8e3a65c491e2845)
* Fix Supplybot Ghostrole (#27811)
* Add raffle to supply bot
* Add GhostTakeoverAvailable
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit db4c9787c985bc30440c63e9aa5bc3a6cae29b8a)
* Adds supplybot to crafting menu (#27827)
Add supplybot to crafting menu
Co-authored-by: plykiya <plykiya@protonmail.com>
(cherry picked from commit 4c68fce06449995ebdc4dc5ad7ddf86a325b42c5)
* fix mech energy display for 0 (#27828)
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 1f67733775ba8acdaa7458addf1aaff0fc48b1d9)
* Drinking from spray bottles (#27815)
Added drinking from spray bottles
(cherry picked from commit 372807673b15a296170599f62c0576de0b7daa23)
* Automatic changelog update
(cherry picked from commit a7b86f724edaf24caa09edb70efe358165d63c53)
* Add CanAttack check if target is in a container (#27689)
(cherry picked from commit a2329889aa40ef30ca29c1e508e7460ebc710477)
* Atmos pipes now deal blunt damage (#27673)
* pipe
* weak
* inhand
* IT WORKS
* inventory
(cherry picked from commit 4d991d1554c4b9b954b4d44b74f06ff76e359bab)
* Automatic changelog update
(cherry picked from commit 9d4ead30b9d948d75f2dc46e0e81d17cbffa11cc)
* Add Missing Unlocks to Emagged Lathes and Move Recipes to Protolathe (#27575)
* Add missing emag recipes to lathes
* Move autolathe dynamic recipes over to the protolathe
* No disablers!
* Move blast grenades to protolathe as well
* Forgot about tranq shells
* forgotten things from the autolathe PR
* Altered lathe descriptions to more accurately reflect their purpose
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
(cherry picked from commit 515456824812ebd125ce8ee2dbf9df0c2470c391)
* Automatic changelog update
(cherry picked from commit 38a2beff920c39b08736dc30904c3ac4867051f3)
* Add auto map vote cvar (#27496)
* Add auto map vote cvar
* :trollface:
(cherry picked from commit fe35188e2c7b3f7cf209aebf7f97c184e30ae8fb)
* ninja criminal records hacking (#24982)
* more humour
* spotted a troll
* add TryFindObjective to MindSystem
* replace copypaste bool conditions with CodeCondition
* use CodeConditionSystem in ninja + add handling for criminal hack
* add criminal records hacking
* update objectives
* :trollface:
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit 24ab5c098251254e69264bda2a45c7c639244a68)
* malf killer 9000 (robotics console) (#24855)
* create devicenet frequencies
* create borg transponder and give it to all nt borgs
* add robotics console
* actually implement battery charge display + some fix
* tab
* real explosion
* little safer
* disable destroy button clientside too when on cooldown
* m
* how do i do this when i review things...
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* webedit ops
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* ui updates
* oracle java
* do a thing
* update ui when a borg times out
* maybe fix test
* add IsLocked to LockSystem
* make destroying gib the chassis again, so emagging isnt sus
* use locking
* require using alt click to unlock so normal click is open ui
* the
* use LogType.Action
* take this L
* pocket lint?
* sharer
* pro ops
* robor pushmarkup
* m
* update and make it not use prototype anymore
* frame0
* update yaml
* untroll
* bad
* h
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
(cherry picked from commit b33730db22cd6d505a79e0b7fa39c34425d9639e)
* Automatic changelog update
(cherry picked from commit bf0de0ffeb5b6d1533adcfbcedfa1350ee2f9206)
* Revolutionaries can now cuff command instead of killing/exiling them (#27627)
* command can now be restrained for revs victory
* headrevs still must be killed
(cherry picked from commit 7d918c95d0adbe38e63b706ebf899ddca364af01)
* Nukie agent requires chemistry hours, rather than general medical hours. (#27098)
* Update nukeops.yml
Change nukie agent's playtime requirement from 5 hours medical to 5 hours chemistry.
* Update nukeops.yml again
5 hours -> 3 hours
(cherry picked from commit 86405ecace1f5311b862c8793e698ae45c4fa6a1)
* Automatic changelog update
(cherry picked from commit c866c2f5240abefec3e25917ec18017567a8bf82)
* Make storage UI close upon being locked (#27810)
* make storage close on lock
* formatting and comments
* Update Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs
Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
* Apply suggestions from code review
Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
* Swap to foreach instead of for
Co-authored-by: Kara <lunarautomaton6@gmail.com>
---------
Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
(cherry picked from commit de729f9037280791262cac9135d94524fec4814f)
* fix master (#27833)
pro
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit b96ed726f19f3323a478a7712cc6198d5bb884d0)
* make fire not burn through hardsuits (#27161)
* add FireProtection system and event
* minor optimisation + make flammable use fire protection event
* add fire protection values to some things, nerf firesuit heat resistance
* bruh
* unrevert laser nerfs, make elite hardsuit fully fireproof
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit cd92046966cf2537b664223a43853d33a6d351d3)
* Automatic changelog update
(cherry picked from commit 0d8149f151a862401bef425cd637010068b4ac3b)
* Change minimalist theme empty slot outline (#27860)
Change minimalist them empty slot outline
(cherry picked from commit 4231efc780223832db9f0e1aa5c0f0f1bbb290e8)
* Prevent non-inital infected from getting the succumb to zombie action (#27820)
* b
* Update ZombieRuleSystem.cs
* hi
(cherry picked from commit fe5f4162acbfbd7db2fe0882531fba9e096057b0)
* Automatic changelog update
(cherry picked from commit b5e31cbf2b46538d7f395d2046cebcc19be40ad3)
* Fix NoMaterialArbitrage crashing when multiple lathe recipes give the same product (#27842)
(cherry picked from commit 2de3dbc9cea4fbb63baa501e0fe99fd66839db3e)
* CMO Drip DLC (#26153)
* All the stuff
yes yes
* THE GOD DAMN META
bruh
* New sprites and all that jazz
yay
* loadouts working?
(cherry picked from commit 77ee0088f9bd2ac8ff09e4b4ee2777bb7f2bea05)
* Automatic changelog update
(cherry picked from commit 55e82ab239b05a0ef2d01357d59ec7d0fe9760f4)
* Revert "Add auto map vote cvar" (#27869)
Revert "Add auto map vote cvar (#27496)"
This reverts commit fe35188e2c7b3f7cf209aebf7f97c184e30ae8fb.
(cherry picked from commit 4e3332636a1b6faac12212b983efb34d2b4cd460)
* Move id and health examinable to shared (#27867)
* Move id and health examinable to shared
* Make GetInfo public
(cherry picked from commit 0e3a2b3ba1d7bd0cd192e162a1d15a69dc8feaa9)
* Fix two issues with ReplacementAccentSystem (#27866)
(cherry picked from commit 0d0d46e01fb708a412688ad07ae0f633082ffbac)
* add health icons to the secmed hud (#27483)
redo change
(cherry picked from commit e41a48765857d41466dc10ea52766e3b9833e2d2)
* Automatic changelog update
(cherry picked from commit 581e105aa2a02c396698250faa4e705956c2c486)
* Adds new "Short-Sighted" trait! (#26037)
* initial commit
* blindness trait now uses minDamage as suggested by deathride
* made fixes for review for shortsightedness
* review appeasal
* removed PermanentPoorVision & merged its functionality into PermanentBlindness
(cherry picked from commit 1699ddecf8bec31a6c05b8fe13367f57a67da5d1)
* Automatic changelog update
(cherry picked from commit a4ab997f1f829099bba8aae844fa95259dac2f6f)
* Traitor objective issuers (#27855)
* the thing
* another one
---------
Co-authored-by: whateverusername0 <whateveremail>
(cherry picked from commit 42571b12e92da2cb929b1e6a2054f88e0d237b48)
* Fix evac shuttles not activating the shuttle ETA timer (#27847)
* Update emergency_lox.yml
* tge
(cherry picked from commit 967de41a5c2ef566e44c26ca56b00263fca35273)
* Automatic changelog update
(cherry picked from commit 1a4d238247b36744b6f7182e026f8c4a058c59a7)
* Minor map fixes (#27564)
secradio to oasis, crimrec instead of statrec on box, reporter actually added on oasis
(cherry picked from commit 5b423802617ab678b9c4a61064fc89427f0731ce)
* Automatic changelog update
(cherry picked from commit b55cf45ec5396af90c4aec2de589159ed97aa44a)
* Make suit storage only available for hardsuits, softsuits, and armor (#27546)
* AAAAAAAAAAAAdd!
* o shit
* I FUCKING HATE INDENTATION GRAAAAAAAAAH
(cherry picked from commit da2b9afc3a6af6791222092d1223074ccb4dde1e)
* Automatic changelog update
(cherry picked from commit 4dc3ec390ecd544b65f022807bee1daba7e8a6b7)
* Automatic changelog update
(cherry picked from commit c838d17fdb084c7132f76f57cfb286dbede325df)
* Cluster med refactor V2, robotics console, emergency N2 lockers (#27840)
* Cluster med refactor V2, robotics console, emergency N2 lockers
* adresses some more issues
* removes bible an chest rig
(cherry picked from commit 973a8b3ad71419f045b0ff3dedd452c4771fd0dd)
* Adds wielding for all large guns (#26970)
* Adds wielding assets
* Modifies meta.json files and adds artist credit
* Adds wieldable component to a bunch of weapons
* Moves shotgun inhands and wield inhands to their own folders (because its the only way the sprites would work)
* Removes the wieldable component from some guns
* Adds wielding sprites for wieldable guns that didnt have them
* Adds gun wielding bonuses and base innaccuracy to wieldable guns.
* Corrects wielded accuracy to be default accuracy instead of perfect
* Makes the drozd smg and bulldog shotgun wieldable
* Makes nukie c20r wieldable and adds sprites
* Adds BaseGunWieldable
* Makes all the newly wieldable gun use the base inheritable
* Adds accuracy to smgs to resolve inheritance conflict
* Makes all wieldable shotguns require wielding to fire because of a bug involving spread innacuracy
* Adds wield bonus message on examine
(cherry picked from commit 2287f59e8a0aff8cc2239902536940a3f6ed724b)
* Automatic changelog update
(cherry picked from commit 6c99534761d5d5dc4d74b5908d4485bfd80865d1)
* Atlas Rework (#27702)
* reworked atmos
* fix rtg atmos
* security perma and bridge
* misc tweaks
* minor fixes
* fix skill issue
* fix map render
* requested changes
* fix cameras
* add robotics console
* remove door states
* air alarm
* fix funky tiles at bar
* add missing tiny fans
* remove pod fan from last commit
* moved robodrobe (why did i change sci slightly)
* add buckets and water to jani
(cherry picked from commit d4ea3ca25aa04a7b9cd243b387fd9d3f8a3269a5)
* Automatic changelog update
(cherry picked from commit f76d3d8a5ed3f6dcd7adcab9850525b525dd693e)
* saltern robotics console (#27834)
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit d061aa437e18777e5163b6aedc0826835e3363f5)
* New event: Approaching unknown shuttle (#24490)
* setup codebase
* Add first shuttle
* tak
* sync striker
* sync 2
* pipipi
* Preloaded roundstart shuttles!
* Make it abstract "PreloaderGrid" not "PreloaderShuttle"
* to do
* added china cuisin shuttle
* fixes
* add disaster evacpod
* remove enemy
* final shuttles
* weight 5 -> 10
* move data to component
* remove autotrailer touching
* doc, respath
* fix frozen positioning
* fixes + cvar
* finally
* fix evacpod
* remove blacklistrules
* remove `UnknownShuttleSpawnRule`, refactor `LoadMapRule` to support preloaded grids
* use tryload
* cleanup
* fixes
* use preloadedgrid for loneops
* weight unknown shuttles differently (preliminal)
* leftover
* cleanup and raffling
* partial review
* singleton gridpreloader no station coupling
* fix grid atmoses
* `roleLoadout` support for `LoadoutComponent`, fix missing gear
* weighting changes
* init logic fix
---------
Co-authored-by: Kara <lunarautomaton6@gmail.com>
(cherry picked from commit e522bbf90d8d18ee0909b3c2b708598eb50bec61)
* Automatic changelog update
(cherry picked from commit 501d039b26aa9fa3d193f6025c88bf1dcdf09f93)
* Update Core (#27887)
add
(cherry picked from commit cfa6a0050e4c6a64294aa8cc7a097183bc7c7d5a)
* fix fland kitchen freezer (#27532)
* fix fland kitchen freezer
* run fixgridatmos
(cherry picked from commit d688ad2878d4571c625a4948fb6196a5132c2f48)
* Automatic changelog update
(cherry picked from commit abd961d9c46db94f07bb685e3bc5f3cb8f30adc2)
* change shadowstone desc. (#27900)
shadowstone desc.
(cherry picked from commit 40802738ec84496cb55ad824bf0f94ed7a7916c6)
* Automatic changelog update
(cherry picked from commit 0250cd99be75c2238a005491a47a51f11fee2062)
* Remove THC oil (#27889)
remove THC oil
(cherry picked from commit 938c3104e7685e1910b66f60e914ccfc4d8001fb)
* Change o2/plasma ratio in TEG guidebook (#27763)
(cherry picked from commit bc53a46a7392ae0bc3911634c19225610c459a8f)
* Add ActionPerformedEvent, ActionsSystem.SetIfBiggerCooldown, action id to action events and BackgroundOn field (#27682)
* Add ActionPerformedEvent and ActionsSystem.SetIfBiggerCooldown
* Add action id to action events and backgroundon field to action component
(cherry picked from commit 9741fda672e27bc68ebed87bdaf7f23adda6f7c1)
* Fix votes using an audio entity (#27871)
* Fix votes using an audio entity
Just retains a source around and uses that. I think the audio limit is like 256 sources on the lower end so this is like whatever to persist.
* Restart
* weh
(cherry picked from commit 5578bcc6f861a2211e9f2678d4132ae50f2a303d)
* Fix ninja suit suit storage and other armor missing their suit storage (#27897)
b
(cherry picked from commit 9845d8bd30008230d49b47dd51a3c7bbf2c9de2e)
* Adds Support for Guidebook Buttons in UIs (#27891)
* Adds Support for Guidebook Buttons in UIs
* read it from the component
* the code is perfect
* moony review
---------
Co-authored-by: ike709 <ike709@github.com>
(cherry picked from commit af4c6373f68360ff56d6b9695b1323b3b00fe28b)
* Automatic changelog update
(cherry picked from commit c81c1c1f1e80bb8992132ba5adc4e551980ff9ad)
* Make FTL constants in ShuttleSystem into cvars (#27706)
* Make FTL constants in ShuttleSystem into cvars
* Fix tests
(cherry picked from commit eed560bf3ee8402c5ad150b1246dea6a943cfe19)
* Fix const data field in BlindableComponent (#27919)
* Fix const data field in BlindableComponent
* Fix usages
(cherry picked from commit 7524fb93b68bd610df108d1f19d40730f8b3f744)
* Fix collection modified error when locking storage (#27913)
(cherry picked from commit 1db48b86d1355cc2653989d2eaf5d7b179fa76af)
* Fix shuttle cvars comments (#27923)
* Fix shuttle cvars comments
* Add another line to ftl mass limit
(cherry picked from commit 9a04170e8667052716a73acffbb4a1c33d6273d5)
* Fix security jumpsuit sprite's asymmetry (#27925)
* inital
* Update meta.json
(cherry picked from commit 9ee42e11389e9d006588c67edd66e1bb2d526cab)
* Do not wake up NPC if there is still a mind attached. (#27651)
* Do not wake up NPC if there is still a mind attached.
This became apparent with diona nymphs (?) and slime gyras (?). This caused players that disconnected while a nymph, gyras or other npc to resume their NPC behavior. Which I would call unwanted. This fixes that.
* Zombies become AI anyway
* Update Content.Server/NPC/Systems/NPCSystem.cs
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
(cherry picked from commit b860774d7cd7ee2eb03558e9d02e400916953091)
* Automatic changelog update
(cherry picked from commit 742a1a5fbd3ad24b48c9e7cd92c29e184cdf9288)
* Fix ghosts getting spawned in nullspace (#27617)
* Add tests for ghost spawn position
* Make ghosts spawn immediately
* Format mind system
* Move ghost spawning to GhostSystem
* Spawn ghost on grid or map
This fixes the ghosts being attached the parent entity instead of the grid.
* Move logging out of the ghost system
* Make round start observer spawn using GhostSystem
* Move GameTicker ghost spawning to GhostSystem
Moved the more robust character name selection code over.
Moved the TimeOfDeath code over.
Added canReturn logic.
* Add overrides and default for ghost spawn coordinates
* Add warning log to ghost spawn fail
* Clean up test
* Dont spawn ghost on map delete
* Minor changes to the role test
* Fix role test failing to spawn ghost
It was failing the map check due to using Nullspace
* Fix ghost tests when running in parallel
Not sure what happened, but it seems to be because they were running simultaneously and overwriting values.
* Clean up ghost tests
* Test that map deletion does not spawn ghosts
* Spawn ghost on the next available map
* Disallow spawning on deleted maps
* Fix map deletion ghost test
* Cleanup
(cherry picked from commit a985c5e83ead6098783ed2129eed516dbd619586)
* revenant can no longer harvest souls while in solid objects (#27612)
meow
(cherry picked from commit 4e26be8617d309c49e7127892d0f0cdc56a468b0)
* Automatic changelog update
(cherry picked from commit 1698e1cfab6ab1bdb7de00ba9e1c6f1bc8f4563f)
* Automatic changelog update
(cherry picked from commit 73c142064830f1028c42ac619296d092a6603b85)
* fixes
* Embed a few more Cryogenics chems in Guidebook (#27935)
(cherry picked from commit 829e12d26323a55d94639a213299d65ca716fa9d)
* Add an admin smite for making people slip really far (and localize the admin smites better) (#27246)
* Sliiiiiiiiiiiiiiiiiip
* what
* Localize!
* antiterminate
(cherry picked from commit cf148288a07809249b5569f8d77892284e634b7b)
* Resolve all non-obsoleting warnings in content (#27934)
* Resolve all non-obsoleting warnings in content
* Update ClientGameTicker.cs
* Update SkeletonAccentSystem.cs
* Update BwoinkSystem.cs
(cherry picked from commit 1596e04d0f320ce5cc13296a53fbda868d2047a8)
* Replace AttachToGridOrMap with DropNextTo (#27950)
(cherry picked from commit 8938e1d8b25d903355a9e058bbb12904a270ae06)
* Resolve `'TransformComponent.MapPosition' is obsolete` in content (#27939)
* Resolve `'TransformComponent.MapPosition' is obsolete: 'Use TransformSystem.GetMapCoordinates'` in content
* build?
(cherry picked from commit 855234aa309b0329e1435466b09b85448fa31178)
* Prevent admin-frozen players from ghosting or suiciding, add "Freeze And Mute" verb (#27813)
* prevent admin-frozen players from ghosting or suiciding
* Add "Freeze and Mute" admin verb
* Allow "Freeze And Mute" admin verb when player is already frozen but not muted
* Remove redundant scream handler (scream action just emotes, duh)
* AdminFrozenSystem: clean imports
* Update Content.Server/Chat/Commands/SuicideCommand.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Ghost.cs
* retrigger ci (empty commit)
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
(cherry picked from commit 37099e481e3341bcf82939a677ef5c0df458abbb)
* Automatic changelog update
(cherry picked from commit 17e0a7f56c4791b7d8443240826db811aafd2c13)
* Add live templates for networked data field, networked component and auto state component (#27906)
* Add live templates for networked data field, networked component and auto state component
* Fix field access
* Fix readonly
(cherry picked from commit ed7075942d827100408429cd0e1bc4d9bbacfc5d)
* Record deletion (#27883)
* Allow for Station Records interface for aghosts to delete records
* Fix record consoles not working when there are more than 2 crew members.
HOW DID NOONE NOTICE THIS SOONER???
* Stop being unconventional
(cherry picked from commit c8b55e5e449fc4f43206c3a6a5a84ef53023cd18)
* Automatic changelog update
(cherry picked from commit cfee7e3fdceccf4808d49ce305ed105e62766491)
* Fix borg UI regenerating every tick (#27956)
* Fix UI elements being recreated when they didn't need to be
* Fix up comparison
(cherry picked from commit 9c3dab0be3fa2ecc66a21b471e5e78be8fcf43d0)
* Automatic changelog update
(cherry picked from commit c325ca8566f1032f24be7140e9bf94f04d740200)
* Open slot storage keybind can now also close the UI (#27962)
(cherry picked from commit d6e2cc0a8b1d93ffdfa184a694183ea7c8b7a1e4)
* Automatic changelog update
(cherry picked from commit efc430f651192fe0d6e2b7a076eb1ed2ed59192f)
* Resolve `'EntitySystem.Get<T>()' is obsolete` in content (#27936)
* PROJECT 0 WARNINGS: Resolve `'EntitySystem.Get<T>()' is obsolete` in content
* pass entman
* dog ass test
* webeditor
(cherry picked from commit 993eef1e7c22b2b79e528967ef5bb669f50236b1)
* fix weird behavior with storage HUD buttons (#27961)
(cherry picked from commit 03af7fcdc1bc28b6eef46877b5eae1cde2c2cf2f)
* Implement Equals for ApcBoundInterfaceState (#27965)
* Implement Equals for ApcBoundInterfaceState
Saves a lot on bandwidth. Also made it round to the nearest 5.
* Also this
(cherry picked from commit ce0a175c731bf205f59cb93dcb3a2268c4cedb24)
* Change some `EntityQueryEnumerator` to `AllEntityQuery` (#27969)
(cherry picked from commit 1f03111ff8affe1554a5fac4d1a49b1cccdf2fbb)
* Fix skirts femalemask (#27984)
Fix skirts
(cherry picked from commit 74020abc91af0242a2bd47b195fba8bac301daab)
* Automatic changelog update
(cherry picked from commit 1a9766bd67dc390193cd81319b9d218e073ad259)
* Revert "Stop Toilets crushing you into walls" (#27994)
Revert "Stop Toilets crushing you into walls (#27778)"
This reverts commit 24e227660a34e33966f5b9bd7a5f69c775c9669b.
(cherry picked from commit 950adc8fdecaf89e7ab402ebb5197d0ff8a538dd)
* Make failing to fire a gun that requires wielding not delay the next shot (#27973)
Make failing to fire a wield-only gun not delay the next shot
(cherry picked from commit f22e5404aaf3903213ce53df6e674f35c53b057a)
* Automatic changelog update
(cherry picked from commit 0edc9218d655758f739d92f513b39fd8026e7ce2)
* Fix incorrect message displaying when trying to remove stuck item from someones hand. (#28024)
* Fix
* Fixed the other spot!
(cherry picked from commit 550a3afc52035e19e659b01624956c6751d290e1)
* Make hotplate and grill anchorable on table (#28026)
Make hotplate and grill anchorable
(cherry picked from commit 26747be232c364abcb4e43fb934c85ef0e3e1264)
* Renamed old snake_case IDs to PascalCase IDs (#28014)
* Renamed soda_dispenser to SodaDispenser
* oops, wrong time
* oops
* guidebook
* chem_master
(cherry picked from commit 9e8920c9aacc5f7aa19848ef36ae9ad3ce1c6364)
* Automatic changelog update
(cherry picked from commit 3d2f3c174b4fb7b9cf07898ba3a5ff4af82fe5ed)
* Replace Chef Ship Helmet (#28036)
Replace Chef Ship EVA Helm
(cherry picked from commit f1260dae00b15a0c351d55b6db6fd162293b4e48)
* Fix salvage magnet UI opening again when activating the console twice (#28010)
(cherry picked from commit 9ea06f3a39a80a250a59396431576fe1bc1ac6dd)
* Automatic changelog update
(cherry picked from commit 13ba3fc4da08a13de0314884487a749faa4c88a3)
* Makes bullet casings destructible by explosions (#27910)
makes casings destructible
(cherry picked from commit 3243afbb035ec673737095b878ee753bbbf6f252)
* Fix the client not passing the weapon to can attack checks (#28040)
(cherry picked from commit c94751f2d2c0d3951d1252d2c3955b01cedb543e)
* biome flexibility changes (#28017)
make biome apply template on mapinit, add api for setting Enabled
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit e37f95c24c447e568e3d6a6c33f1ba587c4a9495)
* Fix Shuttle Roles spawning without PDAs and Headsets (#28045)
* Move to starting gear, define a bunch of stuff
* Spacing
(cherry picked from commit 2be42871937748a6d4d78081a7c8631213d4eb96)
* Automatic changelog update
(cherry picked from commit 6fd5015940697ae78c3defb441222c5a7314cfdd)
* Disposal unit recharging state fix (#28059)
(cherry picked from commit 9b5dd1fab209dcb9508d6c2c93eaa5ba74ed9be8)
* Remove The Throngler from Grand Lottery (#28060)
Peace and Quiet
(cherry picked from commit f3910d34107761f1d5cd7e993e08124796cfaa49)
* Automatic changelog update
(cherry picked from commit 91afb12993a25f53d639332b79a20aaf99ad021f)
* Move most rotting code to shared (#28050)
* Move most rotting code to shared
* Remove unused dependency
(cherry picked from commit e53f225a39a266cb8c0648640ce53592d6ad58a8)
* Fix sandbox check failure when compiling with latest .NET SDK. (#28077)
Roslyn now compiles char + string with string.Concat(ROS<char>). This means doing ref char -> ROS<char> which is not sandbox safe. Actually fixing this in the sandboxer is difficult so I'm gonna just pass on that for now.
(cherry picked from commit b35dc427e114854e2312230ce96e4b6629ffe647)
* Make some CCVars server-change only (#28079)
* | CVar.SERVER
* Ooh ee ooh aah aah ting tang walla walla bing bang
(cherry picked from commit 893b60dba9f2a704560af576f5bd6185df7ac7e8)
* fix ninja hacking not affecting sechud (#28021)
minor refactor and fix
Co-authored-by: deltanedas <@deltanedas:kde.org>
(cherry picked from commit b453b9414810ed927228eb563c6b1c491532c5e3)
* Automatic changelog update
(cherry picked from commit 0a9ac37fcc511202adc2fefbcd3df0f105458123)
* fixes
* Fix under-selecting antags (#28327)
Fix under selecting antags
(cherry picked from commit 217d081b29f7c15dccfa43d43d5f83121b75370b)
* fixes
---------
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Vasilis <vasilis@pikachu.systems>
Co-authored-by: Lamrr <96937466+Lamrr@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: Hanz <41141796+hanzdegloker@users.noreply.github.com>
Co-authored-by: Jay <67732946+duskyjay@users.noreply.github.com>
Co-authored-by: Just-a-Unity-Dev <67359748+Just-a-Unity-Dev@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Ed <96445749+theshued@users.noreply.github.com>
Co-authored-by: Tyzemol <85772526+Tyzemol@users.noreply.github.com>
Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com>
Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: RumiTiger <154005209+RumiTiger@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Verm <32827189+vermidia@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
Co-authored-by: T-Stalker <43253663+DogZeroX@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: Ygg01 <y.laughing.man.y@gmail.com>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
Co-authored-by: Jezithyr <jezithyr@gmail.com>
Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
Co-authored-by: Łukasz Mędrek <lukasz@lukaszm.xyz>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: TurboTracker <130304754+TurboTrackerss14@users.noreply.github.com>
Co-authored-by: OnsenCapy <101037138+LGRuthes@users.noreply.github.com>
Co-authored-by: pigeonpeas <147350443+pigeonpeas@users.noreply.github.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Hobbitmax <91288081+Hobbitmax@users.noreply.github.com>
Co-authored-by: Tornado Tech <54727692+Tornado-Technology@users.noreply.github.com>
Co-authored-by: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
Co-authored-by: Rio <110139251+Riolume@users.noreply.github.com>
Co-authored-by: vorkathbruh <152932728+vorkathbruh@users.noreply.github.com>
Co-authored-by: Sphiral <145869023+SphiraI@users.noreply.github.com>
Co-authored-by: PrPleGoo <prplegoo@users.noreply.github.com>
Co-authored-by: Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
Co-authored-by: username <113782077+whateverusername0@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+boaz1111@users.noreply.github.com>
Co-authored-by: Джексон Миссиссиппи <tripwiregamer@gmail.com>
Co-authored-by: RiceMar1244 <138547931+ricemar1244@users.noreply.github.com>
Co-authored-by: Doctor-Cpu <77215380+Doctor-Cpu@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: MisterMecky <mrmecky@hotmail.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: ike709 <ike709@users.noreply.github.com>
Co-authored-by: icekot8 <93311212+icekot8@users.noreply.github.com>
Co-authored-by: Ghagliiarghii <68826635+Ghagliiarghii@users.noreply.github.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com>
Co-authored-by: Tunguso4ka <71643624+Tunguso4ka@users.noreply.github.com>
Co-authored-by: Nairod <110078045+Nairodian@users.noreply.github.com>
Co-authored-by: Dexler <69513582+DexlerXD@users.noreply.github.com>
Co-authored-by: EdenTheLiznerd <138748328+EdenTheLiznerd@users.noreply.github.com>
2024-08-24 08:25:23 +03:00
|
|
|
var testLocation = pair.TestMap.GridCoords;
|
2022-06-19 20:22:28 -07:00
|
|
|
|
|
|
|
|
await server.WaitAssertion(() =>
|
2020-08-24 13:39:00 +02:00
|
|
|
{
|
2021-03-31 12:41:23 -07:00
|
|
|
Assert.Multiple(() =>
|
2020-08-24 13:39:00 +02:00
|
|
|
{
|
|
|
|
|
|
2021-03-31 12:41:23 -07:00
|
|
|
foreach (var type in componentFactory.AllRegisteredTypes)
|
2020-08-24 13:39:00 +02:00
|
|
|
{
|
2021-03-31 12:41:23 -07:00
|
|
|
var component = (Component) componentFactory.GetComponent(type);
|
2022-07-20 14:48:44 +10:00
|
|
|
var name = componentFactory.GetComponentName(type);
|
2020-08-24 13:39:00 +02:00
|
|
|
|
2021-03-31 12:41:23 -07:00
|
|
|
// If this component is ignored
|
2022-07-20 14:48:44 +10:00
|
|
|
if (skipComponents.Contains(name))
|
2021-03-31 12:41:23 -07:00
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
2020-08-24 13:39:00 +02:00
|
|
|
|
2023-08-02 03:09:25 +12:00
|
|
|
var entity = entityManager.SpawnEntity(null, testLocation);
|
2020-08-24 13:39:00 +02:00
|
|
|
|
2021-12-08 12:43:38 +01:00
|
|
|
Assert.That(entityManager.GetComponent<MetaDataComponent>(entity).EntityInitialized);
|
2020-08-24 13:39:00 +02:00
|
|
|
|
2021-03-31 12:41:23 -07:00
|
|
|
// The component may already exist if it is a mandatory component
|
|
|
|
|
// such as MetaData or Transform
|
2021-12-08 12:43:38 +01:00
|
|
|
if (entityManager.HasComponent(entity, type))
|
2021-03-31 12:41:23 -07:00
|
|
|
{
|
2023-07-30 20:29:33 +10:00
|
|
|
entityManager.DeleteEntity(entity);
|
2021-03-31 12:41:23 -07:00
|
|
|
continue;
|
|
|
|
|
}
|
2020-08-24 13:39:00 +02:00
|
|
|
|
2023-07-05 21:54:25 -07:00
|
|
|
logmill.Debug($"Adding component: {name}");
|
2020-08-24 13:39:00 +02:00
|
|
|
|
2021-03-31 12:41:23 -07:00
|
|
|
Assert.DoesNotThrow(() =>
|
|
|
|
|
{
|
2021-09-28 13:35:29 +02:00
|
|
|
entityManager.AddComponent(entity, component);
|
2021-03-31 12:41:23 -07:00
|
|
|
}, "Component '{0}' threw an exception.",
|
2022-07-20 14:48:44 +10:00
|
|
|
name);
|
2020-08-24 13:39:00 +02:00
|
|
|
|
2021-12-05 18:09:01 +01:00
|
|
|
entityManager.DeleteEntity(entity);
|
2021-03-31 12:41:23 -07:00
|
|
|
}
|
|
|
|
|
});
|
2020-08-24 13:39:00 +02:00
|
|
|
});
|
|
|
|
|
|
2023-08-25 02:56:51 +02:00
|
|
|
await pair.CleanReturnAsync();
|
2020-08-24 13:39:00 +02:00
|
|
|
}
|
2020-03-27 00:32:24 -04:00
|
|
|
}
|
|
|
|
|
}
|