Merge pull request #114 from frosty-dev/ups

Ups
This commit is contained in:
Jabak
2024-08-17 02:39:20 +03:00
committed by GitHub
51 changed files with 532 additions and 95 deletions

View File

@@ -217,9 +217,19 @@ public sealed partial class CriminalRecordsConsoleWindow : FancyWindow
}
}
private HashSet<SecurityStatus> AllowedStatusList = new HashSet<SecurityStatus>()
{
SecurityStatus.Wanted,
SecurityStatus.Suspected,
SecurityStatus.Demote,
SecurityStatus.Monitoring,
SecurityStatus.Paroled,
SecurityStatus.Execute
};
private void SetStatus(SecurityStatus status)
{
if (status == SecurityStatus.Wanted || status == SecurityStatus.Suspected)
if (AllowedStatusList.Contains(status)) // WD end
{
GetReason(status);
return;

View File

@@ -15,31 +15,43 @@ public sealed class SecurityHudBUI : BoundUserInterface
private readonly Dictionary<string, string> _names = new()
{
{ "SecurityIconDischarged", Loc.GetString("criminal-records-status-discharged")},
{ "SecurityIconDemote", Loc.GetString("criminal-records-status-demote")}, // WD start
{ "SecurityIconParoled", Loc.GetString("criminal-records-status-paroled")},
{ "SecurityIconSuspected", Loc.GetString("criminal-records-status-suspected")},
{ "SecurityIconWanted", Loc.GetString("criminal-records-status-wanted")},
{ "SecurityIconIncarcerated", Loc.GetString("criminal-records-status-detained")},
{ "SecurityIconExecute", Loc.GetString("criminal-records-status-execute")},
{ "SecurityIconMonitoring", Loc.GetString("criminal-records-status-monitoring")},
{ "SecurityIconReleased", Loc.GetString("criminal-records-status-released")},
{ "SecurityIconSearch", Loc.GetString("criminal-records-status-search")},
{ "CriminalRecordIconRemove", Loc.GetString("security-hud-remove-status") }
};
private readonly Dictionary<string, string> _icons = new()
{
{ "SecurityIconDischarged", "/Textures/White/Interface/securityhud.rsi/discharged.png" },
{ "SecurityIconDemote", "/Textures/White/Interface/securityhud.rsi/demote.png" },
{ "SecurityIconParoled", "/Textures/White/Interface/securityhud.rsi/paroled.png" },
{ "SecurityIconSuspected", "/Textures/White/Interface/securityhud.rsi/suspected.png" },
{ "SecurityIconWanted", "/Textures/White/Interface/securityhud.rsi/wanted.png" },
{ "SecurityIconIncarcerated", "/Textures/White/Interface/securityhud.rsi/incarcerated.png" },
{ "SecurityIconExecute", "/Textures/White/Interface/securityhud.rsi/execute.png" },
{ "SecurityIconMonitoring", "/Textures/White/Interface/securityhud.rsi/monitoring.png" },
{ "SecurityIconReleased", "/Textures/White/Interface/securityhud.rsi/released.png" },
{ "SecurityIconSearch", "/Textures/White/Interface/securityhud.rsi/search.png" },
{ "CriminalRecordIconRemove", "/Textures/White/Interface/securityhud.rsi/remove.png" }
};
private readonly Dictionary<string, SecurityStatus> _status = new()
{
{ "SecurityIconDischarged", SecurityStatus.Discharged },
{ "SecurityIconDemote", SecurityStatus.Demote },
{ "SecurityIconParoled", SecurityStatus.Paroled },
{ "SecurityIconSuspected", SecurityStatus.Suspected },
{ "SecurityIconWanted", SecurityStatus.Wanted },
{ "SecurityIconIncarcerated", SecurityStatus.Detained },
{ "SecurityIconExecute", SecurityStatus.Execute },
{ "SecurityIconMonitoring", SecurityStatus.Monitoring },
{ "SecurityIconReleased", SecurityStatus.Released },
{ "SecurityIconSearch", SecurityStatus.Search }, // WD end
{ "CriminalRecordIconRemove", SecurityStatus.None }
};

View File

@@ -40,7 +40,7 @@ public sealed class MutationSystem : EntitySystem
}
// Add up everything in the bits column and put the number here.
const int totalbits = 275;
const int totalbits = 270;
// Tolerances (55)
MutateFloat(ref seed.NutrientConsumption , 0.05f, 1.2f, 5, totalbits, severity);
@@ -66,7 +66,7 @@ public sealed class MutationSystem : EntitySystem
// Kill the plant (30)
MutateBool(ref seed.Viable , false, 30, totalbits, severity);
// Fun (90)
// Fun (80)
MutateBool(ref seed.Seedless , true , 10, totalbits, severity);
MutateBool(ref seed.Slip , true , 10, totalbits, severity);
MutateBool(ref seed.Sentient , true , 10, totalbits, severity);
@@ -153,6 +153,12 @@ public sealed class MutationSystem : EntitySystem
if (!Random(probBitflip))
return;
if (min == max)
{
val = min;
return;
}
// Starting number of bits that are high, between 0 and bits.
// In other words, it's val mapped linearly from range [min, max] to range [0, bits], and then rounded.
int valInt = (int)MathF.Round((val - min) / (max - min) * bits);
@@ -186,10 +192,22 @@ public sealed class MutationSystem : EntitySystem
if (!Random(probBitflip))
return;
if (min == max)
{
val = min;
return;
}
// Starting number of bits that are high, between 0 and bits.
// In other words, it's val mapped linearly from range [min, max] to range [0, bits], and then rounded.
int valInt = (int)MathF.Round((val - min) / (max - min) * bits);
// val may be outside the range of min/max due to starting prototype values, so clamp.
valInt = Math.Clamp(valInt, 0, bits);
// Probability that the bit flip increases n.
// The higher the current value is, the lower the probability of increasing value is, and the higher the probability of decreasive it it.
// The higher the current value is, the lower the probability of increasing value is, and the higher the probability of decreasing it.
// In other words, it tends to go to the middle.
float probIncrease = 1 - (float)val / bits;
float probIncrease = 1 - (float)valInt / bits;
int valMutated;
if (Random(probIncrease))
{
@@ -274,7 +292,7 @@ public sealed class MutationSystem : EntitySystem
seedChemQuantity.Max = 1 + amount;
seedChemQuantity.Inherent = false;
}
int potencyDivisor = (int) Math.Ceiling(100.0f / seedChemQuantity.Max);
int potencyDivisor = (int)Math.Ceiling(100.0f / seedChemQuantity.Max);
seedChemQuantity.PotencyDivisor = potencyDivisor;
chemicals[chemicalId] = seedChemQuantity;
}

View File

@@ -518,10 +518,10 @@ public sealed class PlantHolderSystem : EntitySystem
var environment = _atmosphere.GetContainingMixture(uid, true, true) ?? GasMixture.SpaceGas;
component.MissingGas = 0;
if (component.Seed.ConsumeGasses.Count > 0)
{
component.MissingGas = 0;
foreach (var (gas, amount) in component.Seed.ConsumeGasses)
{
if (environment.GetMoles(gas) < amount)

View File

@@ -75,7 +75,11 @@ public sealed class CriminalRecordsConsoleSystem : SharedCriminalRecordsConsoleS
{
// prevent malf client violating wanted/reason nullability
if (msg.Status == SecurityStatus.Wanted != (msg.Reason != null) &&
msg.Status == SecurityStatus.Suspected != (msg.Reason != null))
msg.Status == SecurityStatus.Suspected != (msg.Reason != null) &&
msg.Status == SecurityStatus.Demote != (msg.Reason != null) && // WD start
msg.Status == SecurityStatus.Monitoring != (msg.Reason != null) &&
msg.Status == SecurityStatus.Paroled != (msg.Reason != null) &&
msg.Status == SecurityStatus.Execute != (msg.Reason != null)) // WD end
return;
if (!CheckSelected(ent, msg.Session, out var mob, out var key))
@@ -127,10 +131,18 @@ public sealed class CriminalRecordsConsoleSystem : SharedCriminalRecordsConsoleS
(_, SecurityStatus.Suspected) => "suspected",
// released on parole
(_, SecurityStatus.Paroled) => "paroled",
// prisoner did their time
(_, SecurityStatus.Discharged) => "released",
// person was demoted
(_, SecurityStatus.Demote) => "demoted", // WD start
// going from any other state to wanted, AOS or prisonbreak / lazy secoff never set them to released and they reoffended
(_, SecurityStatus.Wanted) => "wanted",
// Person is xenos
(_, SecurityStatus.Execute) => "execute",
// Person requires supervision
(_, SecurityStatus.Monitoring) => "monitoring",
// Person works in cargo
(_, SecurityStatus.Search) => "search",
// Released
(_, SecurityStatus.Released) => "released",
// person is no longer sus
(SecurityStatus.Suspected, SecurityStatus.None) => "not-suspected",
// going from wanted to none, must have been a mistake
@@ -139,6 +151,14 @@ public sealed class CriminalRecordsConsoleSystem : SharedCriminalRecordsConsoleS
(SecurityStatus.Detained, SecurityStatus.None) => "released",
// criminal is no longer on parole
(SecurityStatus.Paroled, SecurityStatus.None) => "not-parole",
// person dont require supervision
(SecurityStatus.Monitoring, SecurityStatus.None) => "not-monitoring",
// person was searched
(SecurityStatus.Search, SecurityStatus.None) => "not-search",
// person was demoted
(SecurityStatus.Demote, SecurityStatus.None) => "not-demoted",
// person is not xenos
(SecurityStatus.Execute, SecurityStatus.None) => "not-execute", // WD end
// this is impossible
_ => "not-wanted"
};

View File

@@ -11,5 +11,5 @@ public sealed partial class CryoPodAirComponent : Component
/// </summary>
[ViewVariables(VVAccess.ReadWrite)]
[DataField("gasMixture")]
public GasMixture Air { get; set; } = new(Atmospherics.OneAtmosphere);
public GasMixture Air { get; set; } = new GasMixture(1000f);
}

View File

@@ -136,8 +136,12 @@ public sealed class SecurityHudSystem : EntitySystem
(_, SecurityStatus.Detained) => "detained",
(_, SecurityStatus.Suspected) => "suspected",
(_, SecurityStatus.Paroled) => "paroled",
(_, SecurityStatus.Discharged) => "released",
(_, SecurityStatus.Demote) => "demoted", // WD start
(_, SecurityStatus.Wanted) => "wanted",
(_, SecurityStatus.Monitoring) => "monitoring",
(_, SecurityStatus.Released) => "released",
(_, SecurityStatus.Search) => "search",
(_, SecurityStatus.Execute) => "execute",
(SecurityStatus.Suspected, SecurityStatus.None) => "not-suspected",
(SecurityStatus.Wanted, SecurityStatus.None) => "not-wanted",
(SecurityStatus.Detained, SecurityStatus.None) => "released",

View File

@@ -41,8 +41,12 @@ public abstract class SharedCriminalRecordsConsoleSystem : EntitySystem
SecurityStatus.Paroled => "SecurityIconParoled",
SecurityStatus.Wanted => "SecurityIconWanted",
SecurityStatus.Detained => "SecurityIconIncarcerated",
SecurityStatus.Discharged => "SecurityIconDischarged",
SecurityStatus.Demote => "SecurityIconDemote",
SecurityStatus.Suspected => "SecurityIconSuspected",
SecurityStatus.Execute => "SecurityIconExecute", // WD start
SecurityStatus.Released => "SecurityIconReleased",
SecurityStatus.Monitoring => "SecurityIconMonitoring",
SecurityStatus.Search => "SecurityIconSearch", // WD end
_ => record.StatusIcon
};

View File

@@ -12,10 +12,14 @@
/// </summary>
public enum SecurityStatus : byte
{
None,
Suspected,
None, // WD start
Wanted,
Suspected,
Demote,
Search,
Monitoring,
Detained,
Paroled,
Discharged
Released,
Execute // WD end
}

View File

@@ -24,3 +24,9 @@
license: "CC-BY-SA-3.0"
copyright: "Taken from tgstation at https://github.com/tgstation/tgstation/commit/f7a49c4068f1277e6857baf0892d355f1c055974"
source: "https://github.com/tgstation/tgstation/tree/f7a49c4068f1277e6857baf0892d355f1c055974/sound/voice/human"
- files:
- moth_DeathGasp.ogg
license: "CC-BY-SA-3.0"
copyright: "Taken from tgstation at https://github.com/tgstation/tgstation/commit/948ad3dd5b22803a01cd74c27f37e509dc61395b"
source: "https://github.com/tgstation/tgstation/blob/948ad3dd5b22803a01cd74c27f37e509dc61395b/sound/voice/moth/moth_death.ogg"

Binary file not shown.

View File

@@ -8207,3 +8207,86 @@
id: 491
time: '2024-08-14T19:24:31.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/619
- author: Warete
changes:
- message: "\u041A\u0440\u0438\u043E\u043F\u043E\u0434 \u0442\u0435\u043F\u0435\u0440\
\u044C \u043E\u0445\u043B\u0430\u0436\u0434\u0430\u0435\u0442 \u043D\u0430\u043C\
\u043D\u043E\u0433\u043E \u0431\u044B\u0441\u0442\u0440\u0435\u0435, \u0432\
\ \u0437\u0430\u0432\u0438\u0441\u0438\u043C\u043E\u0441\u0442\u0438 \u043E\u0442\
\ \u0434\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0433\u0430\u0437\u0430\
\ \u0432\u043D\u0443\u0442\u0440\u0438."
type: Fix
id: 492
time: '2024-08-15T12:15:46.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/621
- author: Warete
changes:
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u0431\u0430\u0433\
\ \u0441 \u043D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\
\u044C\u044E \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0431\u043E\
\u043B\u0435\u0435 5-\u0442\u0438 \u043F\u0440\u043E\u0434\u0443\u043A\u0446\
\u0438\u0438 \u0437\u0430 \u0440\u0430\u0437 \u0441 \u0440\u0430\u0441\u0442\
\u0435\u043D\u0438\u0439."
type: Fix
id: 493
time: '2024-08-15T12:16:00.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/622
- author: ua_No_Name48237
changes:
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u043E\u0448\
\u0438\u0431\u043A\u0430 \u0441 \u0432\u0442\u043E\u0440\u044B\u043C ID \u0438\
\u043A\u043E\u043D\u043A\u0438 \u0431\u0440\u0438\u0433\u043C\u0435\u0434\u0438\
\u043A\u0430, \u0447\u0442\u043E \u0431\u044B\u043B\u0430 \u0432 \u043A\u043E\
\u0434\u0435."
type: Fix
- message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u0445\u0440\u0430\
\u043D\u0438\u043B\u0438\u0449\u0435 \u0434\u043B\u044F \u0441\u043A\u0430\u0444\
\u0430\u043D\u0434\u0440\u0430 \u0431\u0440\u0438\u0433\u043C\u0435\u0434\u0438\
\u043A\u0430."
type: Add
id: 494
time: '2024-08-15T13:42:06.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/624
- author: Aviu
changes:
- message: "\u041F\u0440\u0435\u0434\u0441\u043C\u0435\u0440\u0442\u043D\u044B\u0435\
\ \u0445\u0440\u0438\u043F\u044B \u0434\u043B\u044F \u043C\u043E\u043B\u0435\
\u0439."
type: Add
- message: "\u0416\u0438\u0432\u043E\u0442\u043D\u044B\u0435 \u0431\u043E\u043B\u044C\
\u0448\u0435 \u043D\u0435 \u0437\u0430\u0434\u044B\u0445\u0430\u044E\u0442\u0441\
\u044F \u0447\u0435\u043B\u043E\u0432\u0435\u0447\u0435\u0441\u043A\u0438\u043C\
\ \u0433\u043E\u043B\u043E\u0441\u043E\u043C."
type: Fix
id: 495
time: '2024-08-15T16:00:07.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/625
- author: keslik
changes:
- message: "\u0412 \u0430\u0432\u0430\u0440\u0438\u0439\u043D\u044B\u0435 \u043D\
\u0430\u0431\u043E\u0440\u044B \u043E\u0445\u0440\u0430\u043D\u044B \u0434\u043E\
\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u043F\u043E\u0440\u0442\u0430\u0442\
\u0438\u0432\u043D\u0430\u044F \u0440\u0430\u0446\u0438\u044F"
type: Tweak
id: 496
time: '2024-08-16T16:15:36.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/627
- author: ua_No_Name48237
changes:
- message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E \u043E\u0442\
\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0434\u043E\u0441\u0442\u0443\
\u043F\u0430 \u0432 \u0442\u0435\u0445\u0438 \u0443 \u0431\u0440\u0438\u0433\
\u043C\u0435\u0434\u0438\u043A\u0430"
type: Fix
id: 497
time: '2024-08-16T16:15:56.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/628
- author: keslik
changes:
- message: "\u041F\u0435\u0440\u0435\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u044B\
\ \u043A\u0440\u0438\u043C\u0438\u043D\u0430\u043B\u044C\u043D\u044B\u0435 \u0441\
\u0442\u0430\u0442\u0443\u0441\u044B"
type: Tweak
id: 498
time: '2024-08-16T20:46:26.0000000+00:00'
url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/629

View File

@@ -9,13 +9,21 @@ criminal-records-console-no-record-found = Не найдены записи дл
criminal-records-console-status = Статус
criminal-records-status-none = Нет
criminal-records-status-wanted = В розыске
criminal-records-status-detained = В заключении
criminal-records-status-suspected = Подозреваемый
criminal-records-status-discharged = Освобождён
criminal-records-status-paroled = Досрочно освобождён
criminal-records-status-demote = Подлежит понижению
criminal-records-status-search = Обыскать
criminal-records-status-monitoring = Установить слежку
criminal-records-status-detained = Под стражей
criminal-records-status-paroled = Условно-досрочно освобождён
criminal-records-status-released = Освобождён
criminal-records-status-execute = Ликвидировать
criminal-records-console-wanted-reason = [color=gray]Причина розыска[/color]
criminal-records-console-suspected-reason = [color=gray]Причина подозрения[/color]
criminal-records-console-demote-reason = [color=gray]Причина понижения[/color]
criminal-records-console-monitoring-reason = [color=gray]Причина слежки[/color]
criminal-records-console-paroled-reason = [color=gray]Основание УДО[/color]
criminal-records-console-execute-reason = [color=gray]Причина устранения[/color]
criminal-records-console-reason = Причина
criminal-records-console-reason-placeholder = Например: {$placeholder}
@@ -37,9 +45,13 @@ criminal-records-console-not-suspected = {$name} больше не под под
criminal-records-console-detained = {$name} был задержан {$officer}.
criminal-records-console-released = {$name} был освобожден {$officer}.
criminal-records-console-not-wanted = {$name} больше не в розыске.
criminal-records-console-paroled = {$name} был отпущен условно-досрочно {$officer}.
criminal-records-console-not-parole = {$name} больше не условно-досрочно освобождённый.
criminal-records-console-unknown-officer = <неизвестный офицер>
criminal-records-console-paroled = {$name} был условно-досрочно освобождён {$officer} на основании {$reason}.
criminal-records-console-not-parole = {$name} нарушил условия условно-досрочного освобождения.
criminal-records-console-search = {$name} требуется обыскать по указу {$officer}.
criminal-records-console-monitoring = За {$name} требуется вести наблюдание по причине {$reason}.
criminal-records-console-execute = {$name} требуется ликвидировать по приказу {$officer} по причине {$reason}.
criminal-records-console-demoted = {$name} должен быть понижен в должности по указу {$officer} по причине {$reason}.
criminal-records-console-unknown-officer = <неопознанный офицер>
## Filters

View File

@@ -9,16 +9,17 @@ criminal-login-in-desc = Войти
criminal-login-info = ID: { $user }
criminal-login-hint = Вставьте ID карту в консоль, нажав на "{ $name }" (нужно держать ID карту в руке)
criminal-login-warn = WARNING: Доступ к системе осуществляется уровнем доступа "службы безопасности"
criminal-status-released = Освобожден
criminal-status-discharged = Выписан
criminal-status-parolled = Закодирован
criminal-status-released = Освобождён
criminal-status-demote = Понизить
criminal-status-parolled = Условно-досрочно освобождён
criminal-status-suspected = Подозреваемый
criminal-status-wanted = В розыске
criminal-status-incarcerated = Заключенный
criminal-status-execute = Ликвидировать
criminal-status-monitoring = Наблюдать
criminal-status-search = Обыскать
criminal-targetchannel-set-released = { $target } освобожден(а).
criminal-targetchannel-set-released-reason = { $target } освобожден(а). Заметка: { $reason }.
criminal-targetchannel-set-discharged = { $target } выписан(а).
criminal-targetchannel-set-discharged-reason = { $target } выписан(а). Заметка: { $reason }.
criminal-targetchannel-set-parolled = { $target } закодирован(а).
criminal-targetchannel-set-parolled-reason = { $target } закодирован(а). Заметка: { $reason }.
criminal-targetchannel-set-suspected = { $target } под подозрением.

View File

@@ -48,6 +48,7 @@
- id: SpaceMedipen
- id: EmergencyMedipen
- id: Flare
- id: RadioHandheld # WD
- type: Sprite
layers:
- state: internals

View File

@@ -92,18 +92,11 @@
- id: ClothingUniformJumpsuitBrigmedic
- id: ClothingUniformJumpskirtBrigmedic
- id: ClothingUniformJumpskirtOfLife
prob: 0.1
- id: ClothingEyesHudMedSec
- id: ClothingHandsGlovesNitrile
- id: ClothingBeltMedicalRig
- id: MedkitFilled
- id: MedkitOxygenFilled
prob: 0.3
- id: MedkitBruteFilled
prob: 0.3
- id: MedkitToxinFilled
prob: 0.3
- id: MedkitBurnFilled
prob: 0.7
- id: ClothingNeckCloakMoth #bзззз, молепокалипсис
prob: 0.15

View File

@@ -44,7 +44,7 @@
suffix: Prisoner EVA
components:
- type: StorageFill
contents:
contents:
- id: OxygenTankFilled
- id: ClothingOuterHardsuitEVAPrisoner
- id: ClothingHeadHelmetEVALarge
@@ -144,6 +144,21 @@
- type: AccessReader
access: [["Security"]]
#Brigmedic's hardsuit
- type: entity
id: SuitStorageBrigmedic
parent: SuitStorageBase
suffix: Brigmedic
components:
- type: StorageFill
contents:
- id: OxygenTankFilled
- id: NitrogenTankFilled
- id: ClothingOuterHardsuitBrigmedic
- id: ClothingMaskBreathMedicalSecurity
- type: AccessReader
access: [["Medical"]]
#CE's hardsuit
- type: entity
id: SuitStorageCE

View File

@@ -504,9 +504,9 @@
accent: zombieMoth
- type: Vocal
sounds:
Male: UnisexMoth
Female: UnisexMoth
Unsexed: UnisexMoth
Male: AnimalMoth
Female: AnimalMoth
Unsexed: AnimalMoth
wilhelmProbability: 0.001
- type: MobPrice
price: 150
@@ -1357,9 +1357,9 @@
speechVerb: Reptilian
- type: Vocal
sounds:
Male: UnisexReptilian
Female: UnisexReptilian
Unsexed: UnisexReptilian
Male: AnimalReptilian
Female: AnimalReptilian
Unsexed: AnimalReptilian
- type: TypingIndicator
proto: lizard
- type: InteractionPopup
@@ -2175,9 +2175,9 @@
speechSounds: Arachnid
- type: Vocal
sounds:
Male: UnisexArachnid
Female: UnisexArachnid
Unsexed: UnisexArachnid
Male: AnimalArachnid
Female: AnimalArachnid
Unsexed: AnimalArachnid
- type: TypingIndicator
proto: spider
- type: Tag

View File

@@ -266,9 +266,9 @@
speechSounds: Arachnid
- type: Vocal
sounds:
Male: UnisexArachnid
Female: UnisexArachnid
Unsexed: UnisexArachnid
Male: AnimalArachnid
Female: AnimalArachnid
Unsexed: AnimalArachnid
- type: TypingIndicator
proto: spider

View File

@@ -66,7 +66,7 @@
- type: Vocal
sounds:
Male: UnisexArachnid
Female: UnisexArachnid
Female: FemaleArachnid
Unsexed: UnisexArachnid
- type: TypingIndicator
proto: spider

View File

@@ -90,7 +90,7 @@
- type: Vocal
sounds:
Male: UnisexDiona
Female: UnisexDiona
Female: FemaleDiona
Unsexed: UnisexDiona
- type: BodyEmotes
soundsId: DionaBodyEmotes

View File

@@ -41,7 +41,7 @@
- type: Vocal
sounds:
Male: UnisexMoth
Female: UnisexMoth
Female: FemaleMoth
Unsexed: UnisexMoth
- type: MovementSpeedModifier
weightlessAcceleration: 1.5 # Move around more easily in space.

View File

@@ -34,7 +34,7 @@
- type: Vocal
sounds:
Male: UnisexReptilian
Female: UnisexReptilian
Female: FemaleReptilian
Unsexed: UnisexReptilian
- type: Damageable
damageContainer: Biological

View File

@@ -21,6 +21,7 @@
access:
- Security
- Brig
- Maintenance
- Medical
- External
special:

View File

@@ -21,3 +21,22 @@
files:
- /Audio/Effects/Gasp/deathgasp_1.ogg
- /Audio/Effects/Gasp/deathgasp_2.ogg
- type: soundCollection
id: MothDeathGasp
files:
- /Audio/Effects/Gasp/moth_DeathGasp.ogg
- type: soundCollection
id: HarpyDeathGasp
files:
- /Audio/Effects/Gasp/male_deathgasp_1.ogg
- /Audio/Effects/Gasp/male_deathgasp_2.ogg
- /Audio/Effects/Gasp/male_deathgasp_3.ogg
- /Audio/Effects/Gasp/male_deathgasp_4.ogg
- /Audio/Effects/Gasp/male_deathgasp_5.ogg
- /Audio/Effects/Gasp/female_deathgasp_1.ogg
- /Audio/Effects/Gasp/female_deathgasp_2.ogg
- /Audio/Effects/Gasp/female_deathgasp_3.ogg
- /Audio/Effects/Gasp/female_deathgasp_4.ogg
- /Audio/Effects/Gasp/female_deathgasp_5.ogg

View File

@@ -10,3 +10,12 @@
- /Audio/Effects/Gasp/gasp_female1.ogg
- /Audio/Effects/Gasp/gasp_female2.ogg
- /Audio/Effects/Gasp/gasp_female3.ogg
- type: soundCollection
id: HarpyGasp
files:
- /Audio/Effects/Gasp/gasp_male1.ogg
- /Audio/Effects/Gasp/gasp_male2.ogg
- /Audio/Effects/Gasp/gasp_female1.ogg
- /Audio/Effects/Gasp/gasp_female2.ogg
- /Audio/Effects/Gasp/gasp_female3.ogg

View File

@@ -236,13 +236,6 @@
sprite: /Textures/Interface/Misc/job_icons.rsi
state: HeadOfSecurity
- type: statusIcon
parent: JobIcon
id: JobIconBrigmedic
icon:
sprite: /Textures/Interface/Misc/job_icons.rsi
state: Brigmedic
- type: statusIcon
parent: JobIcon
id: JobIconMedicalDoctor

View File

@@ -6,44 +6,72 @@
locationPreference: Right
isShaded: true
- type: statusIcon
- type: statusIcon # WD start
parent: SecurityIcon
id: SecurityIconDischarged
id: SecurityIconDemote
icon:
sprite: /Textures/Interface/Misc/security_icons.rsi
state: hud_discharged
sprite: /Textures/White/Interface/records.rsi
state: hud_demote
- type: statusIcon
parent: SecurityIcon
id: SecurityIconIncarcerated
icon:
sprite: /Textures/Interface/Misc/security_icons.rsi
sprite: /Textures/White/Interface/records.rsi
state: hud_incarcerated
- type: statusIcon
parent: SecurityIcon
id: SecurityIconParoled
icon:
sprite: /Textures/Interface/Misc/security_icons.rsi
sprite: /Textures/White/Interface/records.rsi
state: hud_paroled
- type: statusIcon
parent: SecurityIcon
id: SecurityIconSuspected
icon:
sprite: /Textures/Interface/Misc/security_icons.rsi
sprite: /Textures/White/Interface/records.rsi
state: hud_suspected
- type: statusIcon
parent: SecurityIcon
id: SecurityIconWanted
icon:
sprite: /Textures/Interface/Misc/security_icons.rsi
sprite: /Textures/White/Interface/records.rsi
state: hud_wanted
- type: statusIcon
parent: SecurityIcon
id: SecurityIconExecute
icon:
sprite: /Textures/White/Interface/records.rsi
state: hud_execute
- type: statusIcon
parent: SecurityIcon
id: SecurityIconMonitoring
icon:
sprite: /Textures/White/Interface/records.rsi
state: hud_monitoring
- type: statusIcon
parent: SecurityIcon
id: SecurityIconReleased
icon:
sprite: /Textures/White/Interface/records.rsi
state: hud_released
- type: statusIcon
parent: SecurityIcon
id: SecurityIconSearch
icon:
sprite: /Textures/White/Interface/records.rsi
state: hud_search
- type: statusIcon
parent: SecurityIcon
id: CriminalRecordIconRemove
icon:
sprite: /Textures/Interface/Misc/security_icons.rsi
state: hud_discharged
sprite: /Textures/White/Interface/records.rsi
state: hud_demote # WD end

View File

@@ -201,7 +201,7 @@
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: DeathGasp
collection: MaleDeathGasp
- type: emoteSounds
id: FemaleFelinid
@@ -243,7 +243,7 @@
Gasp:
collection: FemaleGasp
DefaultDeathgasp:
collection: DeathGasp
collection: FemaleDeathGasp
- type: emoteSounds
id: SoundsHarpy
@@ -306,9 +306,9 @@
collection: HarpyMoan
Gasp:
collection: MaleGasp
collection: HarpyGasp
DefaultDeathgasp:
collection: DeathGasp
collection: HarpyDeathGasp
- type: emoteSounds
id: UnisexReptilian
@@ -329,6 +329,44 @@
collection: MaleCrying
Weh:
collection: Weh
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: MaleDeathGasp
- type: emoteSounds
id: FemaleReptilian
params:
variation: 0.125
sounds:
Scream:
path: /Audio/Voice/Reptilian/reptilian_scream.ogg
Laugh:
path: /Audio/Animals/lizard_happy.ogg
Honk:
collection: BikeHorn
Whistle:
collection: Whistles
Crying:
collection: MaleCrying
Weh:
collection: Weh
Gasp:
collection: FemaleGasp
DefaultDeathgasp:
collection: FemaleDeathGasp
- type: emoteSounds
id: AnimalReptilian
params:
variation: 0.125
sounds:
Scream:
path: /Audio/Voice/Reptilian/reptilian_scream.ogg
Laugh:
path: /Audio/Animals/lizard_happy.ogg
Weh:
collection: Weh
- type: emoteSounds
id: MaleSlime
@@ -441,7 +479,27 @@
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: DeathGasp
collection: MaleDeathGasp
params:
variation: 0.125
- type: emoteSounds
id: FemaleDiona
sounds:
Scream:
path: /Audio/Voice/Diona/diona_scream.ogg
Laugh:
collection: DionaLaugh
Whistle:
collection: Whistles
Honk:
collection: BikeHorn
Weh:
collection: Weh
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: FemaleDeathGasp
params:
variation: 0.125
@@ -465,7 +523,41 @@
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: DeathGasp
collection: MaleDeathGasp
- type: emoteSounds
id: AnimalArachnid
params:
variation: 0.125
sounds:
Scream:
path: /Audio/Voice/Arachnid/arachnid_scream.ogg
Laugh:
path: /Audio/Voice/Arachnid/arachnid_laugh.ogg
Chitter:
path: /Audio/Voice/Arachnid/arachnid_chitter.ogg
Click:
path: /Audio/Voice/Arachnid/arachnid_click.ogg
- type: emoteSounds
id: FemaleArachnid
params:
variation: 0.125
sounds:
Scream:
path: /Audio/Voice/Arachnid/arachnid_scream.ogg
Laugh:
path: /Audio/Voice/Arachnid/arachnid_laugh.ogg
Chitter:
path: /Audio/Voice/Arachnid/arachnid_chitter.ogg
Click:
path: /Audio/Voice/Arachnid/arachnid_click.ogg
Weh:
collection: Weh
Gasp:
collection: FemaleGasp
DefaultDeathgasp:
collection: FemaleDeathGasp
- type: emoteSounds
id: UnisexDwarf
@@ -573,7 +665,47 @@
Gasp:
collection: MaleGasp
DefaultDeathgasp:
collection: DeathGasp
collection: MothDeathGasp
- type: emoteSounds
id: FemaleMoth
params:
variation: 0.125
sounds:
Buzz:
path: /Audio/Voice/Moth/moth_scream.ogg
Scream:
path: /Audio/Voice/Moth/moth_scream.ogg
Laugh:
path: /Audio/Voice/Moth/moth_laugh.ogg
Chitter:
path: /Audio/Voice/Moth/moth_chitter.ogg
Squeak:
path: /Audio/Voice/Moth/moth_squeak.ogg
Weh:
collection: Weh
Gasp:
collection: FemaleGasp
DefaultDeathgasp:
collection: MothDeathGasp
- type: emoteSounds
id: AnimalMoth
params:
variation: 0.125
sounds:
Buzz:
path: /Audio/Voice/Moth/moth_scream.ogg
Scream:
path: /Audio/Voice/Moth/moth_scream.ogg
Laugh:
path: /Audio/Voice/Moth/moth_laugh.ogg
Chitter:
path: /Audio/Voice/Moth/moth_chitter.ogg
Squeak:
path: /Audio/Voice/Moth/moth_squeak.ogg
DefaultDeathgasp:
collection: MothDeathGasp
- type: emoteSounds
id: UnisexSilicon

View File

@@ -1,4 +1,4 @@
# vocal emotes
# vocal emotes
- type: emote
id: Scream
category: Vocal
@@ -224,12 +224,16 @@
components:
- Respirator
chatMessages: ["chat-emote-msg-gasp"]
chatTriggers:
- задыхается
- type: emote
id: DefaultDeathgasp
chatMessages: [ "emote-deathgasp" ]
chatTriggers:
- задыхается
- отключается и бессильно падает, его глаза становятся пустыми и безжизненными...
- отключается и бессильно падает, её глаза становятся пустыми и безжизненными...
- отключается и бессильно падает, их глаза становятся пустыми и безжизненными...
- type: emote
id: Buzz

View File

@@ -456,3 +456,12 @@
alpha: 0.9
ghostName: Значок Наставлятора
ghostDescription: Значок свидетельствующий о звании Наставлятора, с большой силой выходит большой пролапс!
#6mirage6
- type: customGhost
id: 6mirage6-ghost
ckey: 6mirage6
sprite: White/Ghosts/6mirage6-ghost.rsi
alpha: 0.9
ghostName: M̷a̴r̶i̷
ghostDescription: Бежит от настоящего, возвращаясь в прошлое...

View File

@@ -8,11 +8,15 @@
access: [["Security"]]
- type: SecurityHud
criminalrecords:
- SecurityIconDischarged
- SecurityIconDemote
- SecurityIconParoled
- SecurityIconSuspected
- SecurityIconWanted
- SecurityIconIncarcerated
- SecurityIconExecute
- SecurityIconMonitoring
- SecurityIconSearch
- SecurityIconReleased
- CriminalRecordIconRemove
- type: UserInterface
interfaces:

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -0,0 +1,28 @@
{
"version": 1,
"license": null,
"copyright": null,
"size": {
"x": 64,
"y": 64
},
"states": [
{
"name": "animated",
"delays": [
[
1.5,
1.5,
1.5,
1.5,
1.5,
1.5,
1.5,
1.5,
1.5,
1.5
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

View File

@@ -5,23 +5,35 @@
"size": { "y": 8, "x": 8 },
"states": [
{
"name": "wanted"
"name": "hud_demote"
},
{
"name": "suspected"
"name": "hud_incarcerated"
},
{
"name": "released"
"name": "hud_monitoring"
},
{
"name": "parolled"
"name": "hud_paroled"
},
{
"name": "incarcerated"
"name": "hud_released"
},
{
"name": "discharged"
"name": "hud_search"
},
{
"name": "hud_suspected"
},
{
"name": "hud_wanted"
},
{
"name": "hud_execute",
"delays":
[
[0.5, 0.5, 1.0]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

View File

@@ -5,19 +5,34 @@
"size": { "y": 32, "x": 32 },
"states": [
{
"name": "wanted"
"name": "demote"
},
{
"name": "suspected"
},
{
"name": "released"
"name": "execute"
},
{
"name": "incarcerated"
},
{
"name": "monitoring"
},
{
"name": "paroled"
},
{
"name": "released"
},
{
"name": "remove"
},
{
"name": "search"
},
{
"name": "suspected"
},
{
"name": "wanted"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 B

After

Width:  |  Height:  |  Size: 191 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B