Всякое (#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 _)) if (!_mindSystem.TryGetMind(uid, out var mindId, out _))
return; return;
component.AbsorbedCount++;
if (TryComp(uid, out SharedPullerComponent? puller) && puller.Pulling is { } pulled && if (TryComp(uid, out SharedPullerComponent? puller) && puller.Pulling is { } pulled &&
TryComp(pulled, out SharedPullableComponent? pullable)) TryComp(pulled, out SharedPullableComponent? pullable))
{ {

View File

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

View File

@@ -187,7 +187,7 @@ public sealed class RadioDeviceSystem : EntitySystem
return; // no feedback loops please. return; // no feedback loops please.
if (_recentlySent.Add((args.Message, args.Source))) 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) 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")] [ViewVariables(VVAccess.ReadOnly), DataField("absorbedEntities")]
public Dictionary<string, HumanoidData> AbsorbedEntities = new(); public Dictionary<string, HumanoidData> AbsorbedEntities = new();
[ViewVariables]
public int AbsorbedCount = 0;
[ViewVariables(VVAccess.ReadWrite), DataField("AbsorbDNACost")] [ViewVariables(VVAccess.ReadWrite), DataField("AbsorbDNACost")]
public int AbsorbDnaCost; public int AbsorbDnaCost;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -84,7 +84,7 @@
icon: { sprite: /Textures/White/Objects/Weapons/hardlight_spear.rsi, state: spear } icon: { sprite: /Textures/White/Objects/Weapons/hardlight_spear.rsi, state: spear }
productEntity: HardlightSpearImplanter productEntity: HardlightSpearImplanter
cost: cost:
Telecrystal: 15 Telecrystal: 12
categories: categories:
- UplinkImplants - UplinkImplants
@@ -99,6 +99,27 @@
Telecrystal: 3 Telecrystal: 3
categories: categories:
- UplinkArmor - 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 #- type: listing
# id: UplinkBattleAxe # id: UplinkBattleAxe

View File

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

View File

@@ -1,4 +1,4 @@
# Night Vision Goggles # Night Vision Goggles
- type: entity - type: entity
parent: ClothingEyesBase parent: ClothingEyesBase
id: ClothingEyesNightVisionGoggles id: ClothingEyesNightVisionGoggles
@@ -26,3 +26,12 @@
interfaces: interfaces:
- key: enum.ChameleonUiKey.Key - key: enum.ChameleonUiKey.Key
type: ChameleonBoundUserInterface 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 energy: 2
color: yellow color: yellow
- type: ChangeThrowForce - type: ChangeThrowForce
throwForce: 15 throwForce: 20
- type: Fixtures - type: Fixtures
fixtures: fixtures:
fix1: fix1:

View File

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