Skip to content

Commit af3cf4f

Browse files
authored
Welcome to Bug Fixing Day! (#487)
* Fix BUG PRT-201 Перезаход ломает языки * detected anomaly injectors * Канилуц to Канилунц * No translate languages * fix UninitializedSaveTest * Update base_borg_chassis.yml * fixShotGun
1 parent 26e9ddf commit af3cf4f

File tree

15 files changed

+126
-9
lines changed

15 files changed

+126
-9
lines changed

Content.Client/_WL/Languages/ClientLanguagesSystem.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public override void Initialize()
1616
SubscribeNetworkEvent<LanguageChangeEvent>(OnGlobalLanguageChange);
1717
SubscribeNetworkEvent<LanguagesSyncEvent>(OnLanguagesSync);
1818

19+
SubscribeLocalEvent<LanguagesComponent, ComponentInit>(OnLanguageCommponentSyns);
1920
SubscribeLocalEvent<LanguagesComponent, LanguageChangeEvent>(OnLocalLanguageChange);
2021
}
2122

@@ -40,6 +41,14 @@ public override void Initialize()
4041
return prototypes;
4142
}
4243

44+
public void OnLanguageCommponentSyns(EntityUid entity, LanguagesComponent comp, ComponentInit args)
45+
{
46+
var net_ent = GetNetEntity(entity);
47+
var ev = new LanguageSyncRequestEvent(net_ent, comp.Speaking, comp.Understood);
48+
49+
RaiseNetworkEvent(ev);
50+
}
51+
4352
public void OnLocalLanguageChange(EntityUid entity, LanguagesComponent comp, ref LanguageChangeEvent args)
4453
{
4554
OnLanguageChange(entity, (string)args.Language);

Content.Server/Radio/EntitySystems/RadioDeviceSystem.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Content.Server.Interaction;
55
using Content.Server.Popups;
66
using Content.Server.Power.EntitySystems;
7+
using Content.Shared._WL.Languages.Components; // WL-Changes
78
using Content.Shared.Chat;
89
using Content.Shared.Examine;
910
using Content.Shared.Interaction;
@@ -174,6 +175,16 @@ private void OnReceiveRadio(EntityUid uid, RadioSpeakerComponent component, ref
174175
if (uid == args.RadioSource)
175176
return;
176177

178+
// WL-Changes-Start
179+
if (TryComp<LanguagesComponent>(uid, out var languagesRadio))
180+
{
181+
if (TryComp<LanguagesComponent>(args.MessageSource, out var languagesSource))
182+
{
183+
languagesRadio.CurrentLanguage = languagesSource.CurrentLanguage;
184+
}
185+
}
186+
// WL-Changes-End
187+
177188
var nameEv = new TransformSpeakerNameEvent(args.MessageSource, Name(args.MessageSource));
178189
RaiseLocalEvent(args.MessageSource, nameEv);
179190

Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSpeakerSystem.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Content.Server.Chat.Systems;
22
using Content.Server.Speech;
33
using Content.Shared.Speech;
4+
using Content.Shared._WL.Languages.Components; // WL-Changes
45
using Content.Shared.Chat;
56
using Robust.Shared.Audio.Systems;
67
using Robust.Shared.Timing;
@@ -31,6 +32,16 @@ private void OnSpeechSent(EntityUid uid, SurveillanceCameraSpeakerComponent comp
3132
return;
3233
}
3334

35+
// WL-Changes-Start
36+
if (TryComp<LanguagesComponent>(uid, out var languagesSpeech))
37+
{
38+
if (TryComp<LanguagesComponent>(args.Speaker, out var languagesSpeaker))
39+
{
40+
languagesSpeech.CurrentLanguage = languagesSpeaker.CurrentLanguage;
41+
}
42+
}
43+
// WL-Changes-end
44+
3445
var time = _gameTiming.CurTime;
3546
var cd = TimeSpan.FromSeconds(component.SpeechSoundCooldown);
3647

Content.Server/_WL/Languages/LanguagesSystem.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public override void Initialize()
4444

4545
SubscribeNetworkEvent<LanguageChangeEvent>(OnGlobalLanguageChange);
4646
SubscribeNetworkEvent<LanguagesSyncEvent>(OnLanguagesSync);
47+
SubscribeNetworkEvent<LanguageSyncRequestEvent>(OnLanguageSyncRequest);
4748
}
4849

4950
public void AddLanguage(EntityUid ent, string language)
@@ -136,6 +137,17 @@ public void OnLanguagesSync(LanguagesSyncEvent msg, EntitySessionEventArgs args)
136137
Dirty(entity, component);
137138
}
138139

140+
public void OnLanguageSyncRequest(LanguageSyncRequestEvent msg, EntitySessionEventArgs args)
141+
{
142+
var entity = _ent.GetEntity(msg.Entity);
143+
if (!TryComp<LanguagesComponent>(entity, out var component))
144+
return;
145+
146+
if (component.Speaking != msg.Speaking ||
147+
component.Understood != msg.Understood)
148+
SyncLanguages(msg.Entity, component);
149+
}
150+
139151
public void OnGlobalLanguageChange(LanguageChangeEvent msg, EntitySessionEventArgs args)
140152
{
141153
var entity = _ent.GetEntity(msg.Entity);

Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -240,15 +240,33 @@ private void OnBallisticTakeAmmo(Entity<BallisticAmmoProviderComponent> ent, ref
240240
for (var i = 0; i < args.Shots; i++)
241241
{
242242
EntityUid? ammoEntity = null;
243+
244+
243245
if (ent.Comp.Entities.Count > 0)
244246
{
245-
if (!ent.Comp.AutoCycle) //WL - if autocycle=false don't remove spent ammo from the gun
246-
break;
247+
//WL - Autocycle start
247248
var existingEnt = ent.Comp.Entities[^1];
248-
ent.Comp.Entities.RemoveAt(ent.Comp.Entities.Count - 1);
249-
DirtyField(ent.AsNullable(), nameof(BallisticAmmoProviderComponent.Entities));
250-
Containers.Remove(existingEnt, ent.Comp.Container);
251-
ammoEntity = existingEnt;
249+
250+
if (!TryComp<CartridgeAmmoComponent>(existingEnt, out var cartridge))
251+
return;
252+
//WL - Autocycle end
253+
254+
//WL - Autocycle start
255+
if (cartridge.Spent)
256+
{
257+
if (!ent.Comp.AutoCycle) //WL - if autocycle=false don't remove spent ammo from the gun
258+
break;
259+
ent.Comp.Entities.RemoveAt(ent.Comp.Entities.Count - 1);
260+
DirtyField(ent.AsNullable(), nameof(BallisticAmmoProviderComponent.Entities));
261+
Containers.Remove(existingEnt, ent.Comp.Container);
262+
ammoEntity = existingEnt;
263+
}
264+
else
265+
{
266+
DirtyField(ent.AsNullable(), nameof(BallisticAmmoProviderComponent.Entities));
267+
ammoEntity = existingEnt;
268+
}
269+
//WL - Autocycle end
252270
}
253271
else if (ent.Comp.UnspawnedCount > 0)
254272
{
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using Content.Shared.Anomaly.Effects;
2+
3+
namespace Content.Shared._WL.Anomaly.Components;
4+
5+
/// <summary>
6+
/// On contact with an entity, if it meets the conditions, it will transfer the specified components to it
7+
/// </summary>
8+
[RegisterComponent]
9+
public sealed partial class InnerBodyAnomalyDetectedComponent : Component
10+
{
11+
}

Content.Shared/_WL/Languages/LanguagesEvents.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,23 @@ public LanguagesSyncEvent(NetEntity entity, List<ProtoId<LanguagePrototype>> spe
6767
}
6868
}
6969

70+
[Serializable, NetSerializable]
71+
public sealed partial class LanguageSyncRequestEvent : EntityEventArgs
72+
{
73+
public NetEntity Entity { get; }
74+
75+
public List<ProtoId<LanguagePrototype>> Speaking { get; }
76+
77+
public List<ProtoId<LanguagePrototype>> Understood { get; }
78+
79+
public LanguageSyncRequestEvent(NetEntity entity, List<ProtoId<LanguagePrototype>> speaking, List<ProtoId<LanguagePrototype>> understood)
80+
{
81+
Entity = entity;
82+
Speaking = speaking;
83+
Understood = understood;
84+
}
85+
}
86+
7087
[Serializable, NetSerializable]
7188
public sealed class LanguageSoundEvent : EntityEventArgs
7289
{

Content.Shared/_WL/Languages/SharedLanguagesSystem.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using Robust.Shared.Timing;
99
using System.Collections.Frozen;
1010
using System.Diagnostics.CodeAnalysis;
11+
using System.Linq;
1112
using System.Text;
1213

1314
namespace Content.Shared._WL.Languages;
@@ -52,7 +53,7 @@ private void CacheLanguages()
5253
{
5354
_prototype.TryIndex(id, out var proto);
5455
return proto;
55-
}
56+
}
5657

5758
public void OnRadioLanguageCheck(EntityUid source, LanguagesComponent comp, ref RadioLanguageCheckEvent args)
5859
{

Resources/Locale/ru-RU/_WL/languages/traits.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ trait-language-oldearth-desc = Человеческий язык. Крайне
99
trait-language-sinta = Синта'Унати
1010
trait-language-sinta-desc = Наиболее популярный язык среди унатхов.
1111
12-
trait-language-vulpa = Канилуц
12+
trait-language-vulpa = Канилунц
1313
trait-language-vulpa-desc = Наиболее популярный язык среди вульпканинов.
1414
1515
trait-language-urhs = Урсахский

Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,28 @@
257257
- type: TTS # Corvax-TTS
258258
voice: TrainingRobot
259259
- type: MobCollision # WL-Changes: MobCollision works for players only
260+
# WL-Changes-start
261+
- type: Languages
262+
speaking:
263+
- Translate
264+
understood:
265+
- Translate
266+
- BottomTranslate
267+
- Kuniluc
268+
- OldEarth
269+
- RootSpeak
270+
- Sarengis
271+
- SikTair
272+
- SintaUnati
273+
- Slimish
274+
- TopTranslate
275+
- Urhas
276+
- Urlum
277+
- VoxPigin
278+
- Weaver
279+
- Wingdings
280+
specieLanguage: Ternary
281+
# WL-Changes-end
260282

261283
- type: entity
262284
abstract: true

0 commit comments

Comments
 (0)