Всякое (#116)

* - fix: Fix clown font again.

* - tweak: Better melee sound for axe and halberd.

* - fix: Fix cult item equip.

* - fix: Extraction doesn't count as absorbing.

* - tweak: No mindshield for seniors.

* - fix: Salary for seniors.

* - add: Guardians can fly.

* - add: Nukie NV goggles

* - tweak: Buff spear again.

* - tweak: Less cost for ling abilities.

* - tweak: MindShield is not permanent.

* - fix: Fix exception spam.

* - tweak: Cheaper stings.

* Revert "- tweak: No mindshield for seniors."

This reverts commit fff625b8b83d296293644f62fe11cc4a916c4ab2.
This commit is contained in:
Aviu00
2024-02-24 23:18:25 +09:00
committed by GitHub
parent 3515e87f74
commit bb97d04184
16 changed files with 67 additions and 24 deletions

View File

@@ -595,6 +595,8 @@ public sealed partial class ChangelingSystem
if (!_mindSystem.TryGetMind(uid, out var mindId, out _))
return;
component.AbsorbedCount++;
if (TryComp(uid, out SharedPullerComponent? puller) && puller.Pulling is { } pulled &&
TryComp(pulled, out SharedPullableComponent? pullable))
{

View File

@@ -66,7 +66,7 @@ public sealed class ChangelingConditionsSystem : EntitySystem
if (!TryComp<ChangelingComponent>(mind.CurrentEntity, out var changelingComponent))
return 0f;
var absorbed = changelingComponent.AbsorbedEntities.Count - 1; // Because first - it's the owner
var absorbed = changelingComponent.AbsorbedCount; // Because first - it's the owner
if (requiredDna == absorbed)
return 1f;
@@ -90,7 +90,7 @@ public sealed class ChangelingConditionsSystem : EntitySystem
if (!TryComp<ChangelingComponent>(mind.CurrentEntity, out var changelingComponent))
return 0f;
var selfAbsorbed = changelingComponent.AbsorbedEntities.Count - 1; // Because first - it's the owner
var selfAbsorbed = changelingComponent.AbsorbedCount; // Because first - it's the owner
var query = EntityQueryEnumerator<ChangelingComponent>();
@@ -100,7 +100,7 @@ public sealed class ChangelingConditionsSystem : EntitySystem
if (uid == mind.CurrentEntity)
continue; //don't include self
var absorbed = comp.AbsorbedEntities.Count - 1;
var absorbed = comp.AbsorbedCount;
otherAbsorbed.Add(absorbed);
}

View File

@@ -187,7 +187,7 @@ public sealed class RadioDeviceSystem : EntitySystem
return; // no feedback loops please.
if (_recentlySent.Add((args.Message, args.Source)))
_radio.SendRadioMessage(args.Source, args.Message, _protoMan.Index<RadioChannelPrototype>(component.BroadcastChannel), uid);
_radio.SendRadioMessage(args.Source, args.Message, _protoMan.Index<RadioChannelPrototype>(component.BroadcastChannel), uid, false); // WD EDIT
}
private void OnAttemptListen(EntityUid uid, RadioMicrophoneComponent component, ListenAttemptEvent args)

View File

@@ -38,6 +38,9 @@ public sealed partial class ChangelingComponent : Component
[ViewVariables(VVAccess.ReadOnly), DataField("absorbedEntities")]
public Dictionary<string, HumanoidData> AbsorbedEntities = new();
[ViewVariables]
public int AbsorbedCount = 0;
[ViewVariables(VVAccess.ReadWrite), DataField("AbsorbDNACost")]
public int AbsorbDnaCost;

View File

@@ -23,7 +23,7 @@ public sealed class CultItemSystem : EntitySystem
private void OnEquipAttempt(EntityUid uid, CultItemComponent component, BeingEquippedAttemptEvent args)
{
if (CanUse(args.Equipee))
if (CanUse(args.Equipee) && CanUse(args.EquipTarget))
return;
args.Cancel();

View File

@@ -18,7 +18,7 @@
description: changeling-ability-changeling-armblade-desc
productAction: ActionArmblade
cost:
ChangelingPoint: 3
ChangelingPoint: 2
categories:
- ChangelingAbilities
conditions:
@@ -31,7 +31,7 @@
description: changeling-ability-changeling-shield-desc
productAction: ActionShield
cost:
ChangelingPoint: 3
ChangelingPoint: 1
categories:
- ChangelingAbilities
conditions:
@@ -57,7 +57,7 @@
description: changeling-ability-tentacle-arm-desc
productAction: ActionTentacleArm
cost:
ChangelingPoint: 4
ChangelingPoint: 2
categories:
- ChangelingAbilities
conditions:
@@ -97,7 +97,7 @@
description: changeling-ability-blind-sting-desc
productAction: ActionBlindSting
cost:
ChangelingPoint: 2
ChangelingPoint: 1
categories:
- ChangelingStings
conditions:
@@ -110,7 +110,7 @@
description: changeling-ability-mute-sting-desc
productAction: ActionMuteSting
cost:
ChangelingPoint: 3
ChangelingPoint: 2
categories:
- ChangelingStings
conditions:
@@ -136,7 +136,7 @@
description: changeling-ability-cryo-sting-desc
productAction: ActionCryoSting
cost:
ChangelingPoint: 3
ChangelingPoint: 2
categories:
- ChangelingStings
conditions:

View File

@@ -101,6 +101,7 @@
interactSuccessString: petting-success-holo
interactFailureString: petting-failure-holo
successChance: 0.7
- type: MovementAlwaysTouching
- type: Tag
tags:
- CannotSuicide

View File

@@ -340,7 +340,6 @@
noSpawn: true
components:
- type: SubdermalImplant
permanent: true
- type: Tag
tags:
- MindShield

View File

@@ -84,6 +84,8 @@
state: icon
- type: MeleeWeapon
wideAnimationRotation: -135
soundHit:
path: "/Audio/Weapons/smash.ogg"
attackRate: 0.75
damage:
types:

View File

@@ -13,6 +13,8 @@
state: icon
- type: MeleeWeapon
wideAnimationRotation: 135
soundHit:
path: "/Audio/Weapons/smash.ogg"
swingLeft: true
attackRate: 0.75
damage:

View File

@@ -2,6 +2,6 @@
id: HealthIconFine
priority: 0
icon:
sprite: Interface/Misc/health_icons.rsi
state: Fine
sprite: /Textures/Interface/Misc/health_state.rsi
state: empty_state
locationPreference: Right

View File

@@ -84,7 +84,7 @@
icon: { sprite: /Textures/White/Objects/Weapons/hardlight_spear.rsi, state: spear }
productEntity: HardlightSpearImplanter
cost:
Telecrystal: 15
Telecrystal: 12
categories:
- UplinkImplants
@@ -99,6 +99,27 @@
Telecrystal: 3
categories:
- UplinkArmor
conditions:
- !type:StoreWhitelistCondition
blacklist:
tags:
- NukeOpsUplink
- type: listing
id: UplinkNightGogglesNukie
name: ПНВ [Хамелеон]
description: Теперь ты видишь во тьме!
productEntity: ClothingEyesNightVisionGogglesNukie
icon: { sprite: White/Clothing/Head/nightvision.rsi, state: icon }
cost:
Telecrystal: 3
categories:
- UplinkArmor
conditions:
- !type:StoreWhitelistCondition
whitelist:
tags:
- NukeOpsUplink
#- type: listing
# id: UplinkBattleAxe

View File

@@ -29,14 +29,18 @@
AtmosphericTechnician: 400
StationEngineer: 300
TechnicalAssistant: 200
SeniorEngineer: 400
Chemist: 400
MedicalDoctor: 300
MedicalIntern: 200
Psychologist: 200
Paramedic: 400
SeniorPhysician: 400
SecurityCadet: 200
SecurityOfficer: 300
Detective: 400
Warden: 500
SeniorOfficer: 400
Scientist: 300
ResearchAssistant: 200
SeniorResearcher: 400

View File

@@ -1,4 +1,4 @@
# Night Vision Goggles
# Night Vision Goggles
- type: entity
parent: ClothingEyesBase
id: ClothingEyesNightVisionGoggles
@@ -26,3 +26,12 @@
interfaces:
- key: enum.ChameleonUiKey.Key
type: ChameleonBoundUserInterface
# Night Vision Goggles (Chameleon) Nuke Ops
- type: entity
parent: ClothingEyesNightVisionGogglesSyndie
id: ClothingEyesNightVisionGogglesNukie
suffix: "Хамелеон, Ядерные Оперативники"
components:
- type: ShowSyndicateIcons
- type: ShowSecurityIcons

View File

@@ -43,7 +43,7 @@
energy: 2
color: yellow
- type: ChangeThrowForce
throwForce: 15
throwForce: 20
- type: Fixtures
fixtures:
fix1:

View File

@@ -1,47 +1,47 @@
- type: statusIcon
id: CriminalRecordIcon
abstract: true
priority: 3
priority: 2
locationPreference: Right
- type: statusIcon
parent: CriminalRecordIcon
id: CriminalRecordIconReleased
icon:
sprite: White/Interface/records.rsi
sprite: /Textures/White/Interface/records.rsi
state: released
- type: statusIcon
parent: CriminalRecordIcon
id: CriminalRecordIconDischarged
icon:
sprite: White/Interface/records.rsi
sprite: /Textures/White/Interface/records.rsi
state: discharged
- type: statusIcon
parent: CriminalRecordIcon
id: CriminalRecordIconParolled
icon:
sprite: White/Interface/records.rsi
sprite: /Textures/White/Interface/records.rsi
state: parolled
- type: statusIcon
parent: CriminalRecordIcon
id: CriminalRecordIconSuspected
icon:
sprite: White/Interface/records.rsi
sprite: /Textures/White/Interface/records.rsi
state: suspected
- type: statusIcon
parent: CriminalRecordIcon
id: CriminalRecordIconWanted
icon:
sprite: White/Interface/records.rsi
sprite: /Textures/White/Interface/records.rsi
state: wanted
- type: statusIcon
parent: CriminalRecordIcon
id: CriminalRecordIconIncarcerated
icon:
sprite: White/Interface/records.rsi
sprite: /Textures/White/Interface/records.rsi
state: incarcerated