Всякое (#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:
@@ -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))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -340,7 +340,6 @@
|
|||||||
noSpawn: true
|
noSpawn: true
|
||||||
components:
|
components:
|
||||||
- type: SubdermalImplant
|
- type: SubdermalImplant
|
||||||
permanent: true
|
|
||||||
- type: Tag
|
- type: Tag
|
||||||
tags:
|
tags:
|
||||||
- MindShield
|
- MindShield
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user