Кастомизация андроидов (#300)
* Новая кастомизация и исправления * Дебаф стана от воды * Последний штрих * Update comment formatting for ShockDamage field --------- Co-authored-by: Zekins <136648667+Zekins3366@users.noreply.github.com>
@@ -4,15 +4,17 @@ using Content.Server.Popups;
|
||||
using Content.Server.Power.EntitySystems;
|
||||
using Content.Shared._Wega.Implants.Components;
|
||||
using Content.Shared.Power.Components;
|
||||
using Content.Shared.Power.EntitySystems;
|
||||
using Content.Shared.PowerCell;
|
||||
using Robust.Server.Audio;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Content.Server._Wega.Implants;
|
||||
|
||||
public sealed class BatteryDrainerImplantSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly HandsSystem _hands = default!;
|
||||
[Dependency] private readonly BatterySystem _battery = default!;
|
||||
[Dependency] private readonly PredictedBatterySystem _battery = default!;
|
||||
[Dependency] private readonly PowerCellSystem _powerCell = default!;
|
||||
[Dependency] private readonly ActionsSystem _actions = default!;
|
||||
[Dependency] private readonly AudioSystem _audio = default!;
|
||||
@@ -70,7 +72,7 @@ public sealed class BatteryDrainerImplantSystem : EntitySystem
|
||||
EntityUid? battery = null;
|
||||
foreach (var entity in _hands.EnumerateHeld(uid))
|
||||
{
|
||||
if (HasComp<BatteryComponent>(entity))
|
||||
if (HasComp<PredictedBatteryComponent>(entity))
|
||||
{
|
||||
battery = entity;
|
||||
break;
|
||||
@@ -90,7 +92,7 @@ public sealed class BatteryDrainerImplantSystem : EntitySystem
|
||||
{
|
||||
if (!_powerCell.TryGetBatteryFromSlot(uid, out var battery))
|
||||
{
|
||||
if (HasComp<BatteryComponent>(uid))
|
||||
if (HasComp<PredictedBatteryComponent>(uid))
|
||||
return uid;
|
||||
}
|
||||
else
|
||||
@@ -107,10 +109,13 @@ public sealed class BatteryDrainerImplantSystem : EntitySystem
|
||||
if (sourceUid == null || targetUid == null)
|
||||
return;
|
||||
|
||||
if (!TryComp<BatteryComponent>(sourceUid, out var sourceBattery) || !TryComp<BatteryComponent>(targetUid, out var targetBattery))
|
||||
Log.Info(_battery.GetCharge(sourceUid.Value).ToString() + "Мя");
|
||||
Log.Info(targetUid.Value.ToString() + "UwU");
|
||||
|
||||
if (!HasComp<PredictedBatteryComponent>(sourceUid) || !TryComp<PredictedBatteryComponent>(targetUid, out var targetBattery))
|
||||
return;
|
||||
|
||||
float transfer = Math.Clamp(targetBattery.MaxCharge - targetBattery.CurrentCharge, 0f, sourceBattery.CurrentCharge);
|
||||
float transfer = Math.Clamp(targetBattery.MaxCharge - _battery.GetCharge(targetUid.Value), 0f, _battery.GetCharge(sourceUid.Value));
|
||||
if (transfer == 0f)
|
||||
{
|
||||
_popup.PopupEntity(Loc.GetString("implant-battery-drainer-no-transfer"), user, user);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Content.Shared.Electrocution;
|
||||
using Content.Shared.Electrocution;
|
||||
using Content.Shared.StatusEffect;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
@@ -34,7 +34,7 @@ public sealed partial class Electrocute : EntityEffectBase<Electrocute>
|
||||
/// <summary>
|
||||
/// Shock damage we apply to the entity.
|
||||
/// </summary>
|
||||
[DataField] public int ShockDamage = 5;
|
||||
[DataField] public float ShockDamage = 5; // Corvax-Wega-Edit
|
||||
|
||||
/// <summary>
|
||||
/// Do we refresh the duration? Or add more duration if it already exists.
|
||||
|
||||
@@ -2,14 +2,21 @@
|
||||
marking-AndroidAntennaLeft = Андроид, антенна (Левая)
|
||||
marking-AndroidAntennaRight = Андроид, антенна (Правая)
|
||||
marking-AndroidAntennaCrown = Андроид, антенны (Корона)
|
||||
marking-AndroidEyesVisor = Андроид, визор
|
||||
marking-AndroidHeadBulbs = Андроид, радиолампы
|
||||
marking-AndroidEyesVisor = Андроид, глаза (Визор)
|
||||
marking-AndroidEyesVisor-eyes_visor_led = Светодиоды
|
||||
marking-AndroidIpcHead = Андроид, голова (ЭЛТ монитор)
|
||||
marking-AndroidOldHead = Андроид, голова (Страх детства)
|
||||
marking-AndroidScreenHead = Андроид, голова (Экран)
|
||||
marking-AndroidAnimatronicHead = Андроид, голова (Аниматроник)
|
||||
marking-AndroidTempleLed = Андроид, светодиод (Висок)
|
||||
# Торс
|
||||
marking-AndroidTorsoFemaleStandart = Андроид, торс (Стандарт)
|
||||
marking-AndroidTorsoFemaleBreast = Андроид, торс (Средняя грудь)
|
||||
marking-AndroidTorsoFemaleBigBreast = Андроид, торс (Большая грудь)
|
||||
marking-AndroidTorsoFemaleNoBreast = Андроид, торс (Без груди)
|
||||
marking-AndroidTorsoMale = Андроид, торс
|
||||
marking-AndroidTorsoSpine = Андроид, торс (Усиленный позвоночник)
|
||||
# Светодиоды
|
||||
marking-AndroidLeds = Андроид, светодиоды (Стандарт)
|
||||
marking-AndroidLedsLove = Андроид, светодиоды (Акцент)
|
||||
@@ -18,4 +25,9 @@ marking-AndroidLedsStripes = Андроид, светодиоды (Полосы)
|
||||
marking-AndroidCatEars = Андроид, кошачьи ушки
|
||||
marking-AndroidCatEars-ears_cat_led = Светодиоды
|
||||
marking-AndroidCatTail = Андроид, кошачий хвост
|
||||
marking-AndroidCatEars-cat_tail_led = Светодиоды
|
||||
marking-AndroidCatEars-cat_tail_led = Светодиоды
|
||||
# Конечности
|
||||
marking-AndroidScrapArmLeft = Андроид, левая рука (Самоделкин)
|
||||
marking-AndroidScrapArmRight = Андроид, правая рука (Самоделкин)
|
||||
marking-AndroidScrapLegLeft = Андроид, левая нога (Самоделкин)
|
||||
marking-AndroidScrapLegRight = Андроид, правая нога (Самоделкин)
|
||||
@@ -1,4 +1,4 @@
|
||||
charger-examine = Заряжает [color={ $color }]{ $chargeRate }Вт[/color] в секунду.
|
||||
charger-component-charge-rate = Скорость зарядки
|
||||
charger-content = Текущий заряд: [color=#5E7C16]{ $chargePercentage }[/color]%.
|
||||
charger-content = Текущий заряд: [color=#5E7C16]{$chargePercent}[/color]%.
|
||||
charger-empty = В зарядном устройстве ничего нет.
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
- type: Tag
|
||||
tags:
|
||||
- CannotSuicide
|
||||
- Brain # Corvax-Wega-Android
|
||||
- BrainSynthetic # Corvax-Wega-Android
|
||||
- type: GenericVisualizer
|
||||
visuals:
|
||||
enum.ToggleableGhostRoleVisuals.Status:
|
||||
|
||||
@@ -40,6 +40,20 @@
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: head_antenna_crown
|
||||
|
||||
- type: marking
|
||||
id: AndroidHeadBulbs
|
||||
bodyPart: HeadTop
|
||||
markingCategory: HeadTop
|
||||
speciesRestriction: [ Android ]
|
||||
coloring:
|
||||
default:
|
||||
type:
|
||||
!type:CategoryColoring
|
||||
category: Special
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: head_bulbs
|
||||
|
||||
- type: marking
|
||||
id: AndroidTorsoFemaleStandart
|
||||
bodyPart: Chest
|
||||
@@ -115,6 +129,30 @@
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: body_m
|
||||
|
||||
- type: marking
|
||||
id: AndroidTorsoSpine
|
||||
bodyPart: Special
|
||||
markingCategory: Chest
|
||||
speciesRestriction: [ Android ]
|
||||
sexRestriction: [ Female ]
|
||||
sponsorOnly: false
|
||||
coloring:
|
||||
layers:
|
||||
body_spine:
|
||||
type:
|
||||
!type:SimpleColoring
|
||||
color: "#ffffff"
|
||||
body_spine_led:
|
||||
type:
|
||||
!type:CategoryColoring
|
||||
category: Special
|
||||
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: body_spine
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: body_spine_led
|
||||
|
||||
- type: marking
|
||||
id: AndroidLeds
|
||||
bodyPart: Special
|
||||
@@ -160,6 +198,21 @@
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: leds_stripes
|
||||
|
||||
- type: marking
|
||||
id: AndroidTempleLed
|
||||
bodyPart: HeadTop
|
||||
markingCategory: Head
|
||||
speciesRestriction: [ Android ]
|
||||
sponsorOnly: false
|
||||
coloring:
|
||||
default:
|
||||
type:
|
||||
!type:CategoryColoring
|
||||
category: Special
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: temple_led
|
||||
|
||||
- type: marking
|
||||
id: AndroidCatEars
|
||||
bodyPart: HeadTop
|
||||
@@ -222,4 +275,160 @@
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: eyes_visor
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: eyes_visor_led
|
||||
state: eyes_visor_led
|
||||
|
||||
- type: marking
|
||||
id: AndroidScrapArmLeft
|
||||
bodyPart: Special
|
||||
markingCategory: Arms
|
||||
speciesRestriction: [ Android ]
|
||||
sponsorOnly: false
|
||||
coloring:
|
||||
default:
|
||||
type:
|
||||
!type:SimpleColoring
|
||||
color: "#ffffff"
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: l_arm_scrap
|
||||
|
||||
- type: marking
|
||||
id: AndroidScrapArmRight
|
||||
bodyPart: Special
|
||||
markingCategory: Arms
|
||||
speciesRestriction: [ Android ]
|
||||
sponsorOnly: false
|
||||
coloring:
|
||||
default:
|
||||
type:
|
||||
!type:SimpleColoring
|
||||
color: "#ffffff"
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: r_arm_scrap
|
||||
|
||||
- type: marking
|
||||
id: AndroidScrapLegLeft
|
||||
bodyPart: Special
|
||||
markingCategory: Legs
|
||||
speciesRestriction: [ Android ]
|
||||
sponsorOnly: false
|
||||
coloring:
|
||||
default:
|
||||
type:
|
||||
!type:SimpleColoring
|
||||
color: "#ffffff"
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: l_leg_scrap
|
||||
|
||||
- type: marking
|
||||
id: AndroidScrapLegRight
|
||||
bodyPart: Special
|
||||
markingCategory: Legs
|
||||
speciesRestriction: [ Android ]
|
||||
sponsorOnly: false
|
||||
coloring:
|
||||
default:
|
||||
type:
|
||||
!type:SimpleColoring
|
||||
color: "#ffffff"
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android.rsi
|
||||
state: r_leg_scrap
|
||||
|
||||
- type: marking
|
||||
id: AndroidOldHead
|
||||
bodyPart: HeadTop
|
||||
markingCategory: Head
|
||||
speciesRestriction: [ Android ]
|
||||
sponsorOnly: false
|
||||
coloring:
|
||||
layers:
|
||||
old_base:
|
||||
type:
|
||||
!type:SkinColoring
|
||||
old_lit:
|
||||
type:
|
||||
!type:EyeColoring
|
||||
old_uncolor:
|
||||
type:
|
||||
!type:SimpleColoring
|
||||
color: "#ffffff"
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android_heads.rsi
|
||||
state: old_base
|
||||
- sprite: _Wega/Mobs/Customization/android_heads.rsi
|
||||
state: old_uncolor
|
||||
- sprite: _Wega/Mobs/Customization/android_heads.rsi
|
||||
state: old_lit
|
||||
|
||||
- type: marking
|
||||
id: AndroidIpcHead
|
||||
bodyPart: HeadTop
|
||||
markingCategory: Head
|
||||
speciesRestriction: [ Android ]
|
||||
sponsorOnly: false
|
||||
coloring:
|
||||
layers:
|
||||
ipc_base:
|
||||
type:
|
||||
!type:SkinColoring
|
||||
ipc_lit:
|
||||
type:
|
||||
!type:CategoryColoring
|
||||
category: Special
|
||||
ipc_uncolor:
|
||||
type:
|
||||
!type:SimpleColoring
|
||||
color: "#ffffff"
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android_heads.rsi
|
||||
state: ipc_base
|
||||
- sprite: _Wega/Mobs/Customization/android_heads.rsi
|
||||
state: ipc_uncolor
|
||||
- sprite: _Wega/Mobs/Customization/android_heads.rsi
|
||||
state: ipc_lit
|
||||
|
||||
- type: marking
|
||||
id: AndroidScreenHead
|
||||
bodyPart: Eyes
|
||||
markingCategory: Head
|
||||
speciesRestriction: [ Android ]
|
||||
sponsorOnly: false
|
||||
coloring:
|
||||
layers:
|
||||
screen_base:
|
||||
type:
|
||||
!type:SkinColoring
|
||||
screen_lit:
|
||||
type:
|
||||
!type:CategoryColoring
|
||||
category: Special
|
||||
screen_uncolor:
|
||||
type:
|
||||
!type:SimpleColoring
|
||||
color: "#ffffff"
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android_heads.rsi
|
||||
state: screen_base
|
||||
- sprite: _Wega/Mobs/Customization/android_heads.rsi
|
||||
state: screen_uncolor
|
||||
- sprite: _Wega/Mobs/Customization/android_heads.rsi
|
||||
state: screen_lit
|
||||
|
||||
- type: marking
|
||||
id: AndroidAnimatronicHead
|
||||
bodyPart: Head
|
||||
markingCategory: Head
|
||||
speciesRestriction: [ Android ]
|
||||
sponsorOnly: false
|
||||
coloring:
|
||||
default:
|
||||
type:
|
||||
!type:SimpleColoring
|
||||
color: "#ffffff"
|
||||
sprites:
|
||||
- sprite: _Wega/Mobs/Customization/android_heads.rsi
|
||||
state: animatronic
|
||||
|
||||
|
||||
@@ -23,14 +23,14 @@
|
||||
- map: [ "enum.HumanoidVisualLayers.UndergarmentTop" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RFoot" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LHand" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RHand" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.Special" ]
|
||||
- map: [ "socks" ]
|
||||
- map: [ "underwearbottom" ]
|
||||
- map: [ "underweartop" ]
|
||||
- map: [ "jumpsuit" ]
|
||||
- map: [ "anal" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.LHand" ]
|
||||
- map: [ "enum.HumanoidVisualLayers.RHand" ]
|
||||
# Corvax-Wega-end
|
||||
- map: [ "gloves" ]
|
||||
- map: [ "shoes" ]
|
||||
@@ -76,12 +76,30 @@
|
||||
AndroidLedsStripes-leds_stripes:
|
||||
True: { shader: unshaded }
|
||||
False: { shader: shaded }
|
||||
AndroidTempleLed-temple_led:
|
||||
True: { shader: unshaded }
|
||||
False: { shader: shaded }
|
||||
AndroidTorsoSpine-body_spine_led:
|
||||
True: { shader: unshaded }
|
||||
False: { shader: shaded }
|
||||
AndroidCatEars-ears_cat_led:
|
||||
True: { shader: unshaded }
|
||||
False: { shader: shaded }
|
||||
AndroidCatTail-cat_tail_led:
|
||||
True: { shader: unshaded }
|
||||
False: { shader: shaded }
|
||||
AndroidHeadBulbs-head_bulbs:
|
||||
True: { shader: unshaded }
|
||||
False: { shader: shaded }
|
||||
AndroidOldHead-hare_lit:
|
||||
True: { shader: unshaded }
|
||||
False: { shader: shaded }
|
||||
AndroidIpcHead-ipc_lit:
|
||||
True: { shader: unshaded, visible: true }
|
||||
False: { shader: shaded, visible: false }
|
||||
AndroidScreenHead-screen_lit:
|
||||
True: { shader: unshaded }
|
||||
False: { shader: shaded }
|
||||
- type: WiresVisuals
|
||||
- type: Icon
|
||||
sprite: Mobs/Species/Human/parts.rsi
|
||||
@@ -207,10 +225,10 @@
|
||||
- reagents: [ Water ]
|
||||
methods: [ Touch ]
|
||||
effects:
|
||||
- !type:HealthChange
|
||||
damage:
|
||||
types:
|
||||
Shock: 0.5
|
||||
- !type:Electrocute
|
||||
shockDamage: 0.5
|
||||
minScale: 20
|
||||
electrocuteTime: 0.5
|
||||
- type: Operated
|
||||
raceGraph: AndroidSurgery
|
||||
limbLossChance: 1.75
|
||||
|
||||
@@ -39,6 +39,9 @@
|
||||
id: MobAndroidMarkingLimits
|
||||
points:
|
||||
Special:
|
||||
points: 2
|
||||
required: false
|
||||
Head:
|
||||
points: 1
|
||||
required: false
|
||||
Hair:
|
||||
@@ -57,13 +60,13 @@
|
||||
points: 3
|
||||
required: false
|
||||
Chest:
|
||||
points: 1
|
||||
points: 2
|
||||
required: false
|
||||
Legs:
|
||||
points: 1
|
||||
points: 2
|
||||
required: false
|
||||
Arms:
|
||||
points: 1
|
||||
points: 2
|
||||
required: false
|
||||
|
||||
- type: humanoidBaseSprite
|
||||
|
||||
|
Before Width: | Height: | Size: 831 B After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 345 B |
|
After Width: | Height: | Size: 124 B |
|
After Width: | Height: | Size: 258 B |
|
After Width: | Height: | Size: 605 B |
|
After Width: | Height: | Size: 653 B |
@@ -27,6 +27,14 @@
|
||||
"name": "body_m",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "body_spine",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "body_spine_led",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "leds",
|
||||
"directions": 4
|
||||
@@ -39,6 +47,10 @@
|
||||
"name": "leds_stripes",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "temple_led",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "ears_cat_outer",
|
||||
"directions": 4
|
||||
@@ -95,6 +107,10 @@
|
||||
"name": "head_antenna_crown",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "head_bulbs",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "eyes_visor",
|
||||
"directions": 4
|
||||
@@ -102,6 +118,22 @@
|
||||
{
|
||||
"name": "eyes_visor_led",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_arm_scrap",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_arm_scrap",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "l_leg_scrap",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "r_leg_scrap",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 689 B |
|
After Width: | Height: | Size: 753 B |
|
After Width: | Height: | Size: 128 B |
|
After Width: | Height: | Size: 693 B |
|
After Width: | Height: | Size: 717 B |
|
After Width: | Height: | Size: 583 B |
|
After Width: | Height: | Size: 234 B |
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Made with love by Misha_Unity and Melissandra >//<",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "old_base",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "old_lit",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "old_uncolor",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "ipc_base",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "ipc_lit",
|
||||
"directions": 4,
|
||||
"delays":
|
||||
[
|
||||
[0.2, 0.2, 0.2, 0.2],
|
||||
[0.8],
|
||||
[0.2, 0.2, 0.2, 0.2],
|
||||
[0.2, 0.2, 0.2, 0.2]
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ipc_uncolor",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "screen_base",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "screen_uncolor",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "screen_lit",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "animatronic",
|
||||
"directions": 4
|
||||
}
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 618 B |
|
After Width: | Height: | Size: 154 B |
|
After Width: | Height: | Size: 153 B |
|
After Width: | Height: | Size: 226 B |
|
After Width: | Height: | Size: 126 B |
|
After Width: | Height: | Size: 318 B |