Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Emergency Cyborg Patch #475

Merged
merged 21 commits into from
Jan 10, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Content.Shared/Cuffs/Components/HandcuffComponent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ public sealed partial class HandcuffComponent : Component
[DataField, ViewVariables(VVAccess.ReadWrite)]
public bool NoRot = false;

/// <summary>
/// Should the cuff be removed when used? (This will always give zipties to the target, i should do another system clone or move it to its own comp but so far, this works)
/// </summary>
[DataField]
public bool RemoveOnUse = true;

/// <summary>
/// The time it takes to cuff an entity.
/// </summary>
Expand Down
10 changes: 8 additions & 2 deletions Content.Shared/Cuffs/SharedCuffableSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,13 @@ public bool TryAddNewCuffs(EntityUid target, EntityUid user, EntityUid handcuff,
return false;

// Success!
_hands.TryDrop(user, handcuff);
if (cuff.RemoveOnUse)
_hands.TryDrop(user, handcuff);
else
{
handcuff = Spawn("Zipties", Transform(user).Coordinates);
EnsureComp<HandcuffComponent>(handcuff);
}

_container.Insert(handcuff, component.Container);
UpdateHeldItems(target, handcuff, component);
Expand Down Expand Up @@ -739,4 +745,4 @@ private sealed partial class AddCuffDoAfterEvent : SimpleDoAfterEvent
{
}
}
}
}
23 changes: 23 additions & 0 deletions Resources/Changelog/Floof.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2207,3 +2207,26 @@ Entries:
id: 277
time: '2025-01-09T01:20:43.0000000+00:00'
url: https://github.com/Fansana/floofstation1/pull/459
- author: fenndragon
changes:
- type: Remove
message: 'removed investigation construction. '
id: 278
time: '2025-01-09T21:16:27.0000000+00:00'
url: https://github.com/Fansana/floofstation1/pull/470
- author: fenndragon
changes:
- type: Fix
message: Fixed Energy Shotgun
id: 279
time: '2025-01-10T06:30:50.0000000+00:00'
url: https://github.com/Fansana/floofstation1/pull/471
- author: fenndragon
changes:
- type: Add
message: Added Security Modules to Security techfab
- type: Remove
message: 'removed original recipe for security modules '
id: 280
time: '2025-01-10T11:08:37.0000000+00:00'
url: https://github.com/Fansana/floofstation1/pull/472
Original file line number Diff line number Diff line change
Expand Up @@ -1042,9 +1042,21 @@
soundHit:
collection: MeatLaserImpact

- type: entity
name: energy bolt
id: BulletEnergyGun
parent: BulletEnergyGunLaser
noSpawn: true
components:
- type: Projectile
impactEffect: BulletImpactEffectRedDisabler
damage:
types:
Heat: 5

- type: entity
name: wide laser barrage
id: BulletLaserSpread
categories: [ HideSpawnMenu ]
parent: BulletEnergyGunLaser
parent: BulletEnergyGun

Original file line number Diff line number Diff line change
Expand Up @@ -646,7 +646,6 @@
- HeadBorgService
- TorsoBorgService
- Quadborgendoskeleton
- BaseSecModule
dynamicRecipes:
- ProximitySensor
- BorgModuleLightReplacer
Expand Down Expand Up @@ -817,6 +816,9 @@
- WeaponLaserCarbinePractice
- Zipties
- ShockCollar
- BorgModuleStun
- BorgModuleKill
- BorgModuleInvestigation
- ShadowkinRestraints
# DeltaV - .38 special ammo - Add various .38 special ammo to security techfab
- MagazineBoxSpecial
Expand Down
22 changes: 2 additions & 20 deletions Resources/Prototypes/Floof/Entities/Mobs/Cyborgs/quadborg.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,6 @@
- Common
- Science
- type: ActiveRadio
- type: Body
prototype: Primate
requiredLegs: 1 # TODO: More than 1 leg
- type: Inventory
templateId: Securityborg
- type: BorgChassis
maxModules: 4
moduleWhitelist:
Expand All @@ -50,10 +45,10 @@
- type: Speech
speechVerb: Robotic
- type: LayingDown
- type: SiliconLawProvider
- type: SiliconLawProvider
laws: Qborg
- type: LeashAnchor # Floofstation

- type: entity
id: BorgChassisQuadCC
parent: BorgChassisQuad
Expand All @@ -72,16 +67,3 @@
shader: unshaded
map: ["light"]
visible: false

- type: inventoryTemplate
id: Securityborg
slots:
- name: pocket1
slotTexture: pocket
slotFlags: POCKET
slotGroup: MainHotbar
stripTime: 3
uiWindowPos: 0,3
strippingWindowPos: 0,4
displayName: Pocket 1
stripHidden: false
Original file line number Diff line number Diff line change
Expand Up @@ -10,41 +10,37 @@
- type: entity
id: BorgModuleStun
parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ]
name: A Module "incapable of causing harm if used correctly"
name: Disabler cyborg Module
description: A Module "incapable of causing harm if used correctly"
components:
- type: Sprite
sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi
layers:
- state: security
- state: icon-stun
- type: Construction
graph: BorgmoduleDisabler
node: icon
- type: ItemBorgModule
items:
- WeaponBorgDisabler
- BorgStunbaton
- BorgFlash
- BorgZipties

- type: entity
id: BorgModuleKill
parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ]
name: combat cyborg module
name: Combat cyborg module
components:
- type: Sprite
sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi
layers:
- state: security
- state: icon-kill
- type: Construction
graph: BorgmoduleCombat
node: icon
- type: ItemBorgModule
items:
- WeaponAdvancedLaser
- WeaponborgPistolMk58
- CombatKnife

- type: entity
id: BorgModuleInvestigation
parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ]
Expand All @@ -55,15 +51,12 @@
layers:
- state: security
- state: icon-investigation
- type: Construction
graph: BorgModuleInvestigation
node: icon
- type: ItemBorgModule
items:
- ForensicScanner
- DetectivePDA
- SecurityWhistle

- type: entity
id: BorgModuleadvancedmeasures
parent: [ BaseBorgModuleSecurity, BaseProviderBorgModule ]
Expand All @@ -76,26 +69,6 @@
- state: icon-Advmeasures
- type: ItemBorgModule
items:
- WeaponEnergyShotgun
- WeaponBorgEnergyShotgun
- BorgWeaponXrayCannon

- type: entity
id: BaseSecModule
parent: BaseItem
name: blank security borg module
description: A piece of tech that gives cyborgs new abilities.
components:
- type: Item
storedRotation: -90
- type: Sprite
sprite: Floof/Objects/Specific/Robotics/borgmodule.rsi
layers:
- state: security
- type: StaticPrice
price: 100
- type: Tag
tags:
- BorgModuleGeneric
- type: GuideHelp
guides:
- Cyborgs

Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,26 @@
path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg
fireOnDropChance: 1

- type: entity
id: BorgZipties
suffix: Robot
parent: Zipties
components:
- type: Handcuff
removeOnUse: false
breakoutTime: 3
cuffedRSI: Objects/Misc/cablecuffs.rsi # cablecuffs will look fine
bodyIconState: body-overlay
breakOnRemove: true
brokenPrototype: ZiptiesBroken
startCuffSound:
path: /Audio/Items/Handcuffs/ziptie_start.ogg
endCuffSound:
path: /Audio/Items/Handcuffs/ziptie_end.ogg
startUncuffSound:
path: /Audio/Items/Handcuffs/rope_start.ogg
endUncuffSound:
path: /Audio/Items/Handcuffs/rope_breakout.ogg
startBreakoutSound:
path: /Audio/Items/Handcuffs/rope_takeoff.ogg
uncuffEasierWhenLarge: true
47 changes: 27 additions & 20 deletions Resources/Prototypes/Floof/Entities/Objects/Weapons/guns.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

- type: entity
name: borg disabler
parent: WeaponDisabler
suffix: Robot
id: WeaponBorgDisabler
description: A self-defense weapon that exhausts organic targets, weakening them until they collapse.
components:
Expand Down Expand Up @@ -49,25 +49,25 @@
# - type: Appearance

- type: entity
name: borg pulse rifle
parent: WeaponPulseRifle
suffix: Robot
id: BorgWeaponPulseRifle
description: A weapon that is almost as infamous as its users.
components:
- type: BatterySelfRecharger
autoRecharge: true
autoRechargeRate: 30
autoRechargeRate: 30

- type: entity
name: borg Xray Cannon
parent: WeaponXrayCannon
suffix: Robot
id: BorgWeaponXrayCannon
description: A weapon that is almost as infamous as its users.
components:
- type: BatterySelfRecharger
autoRecharge: true
autoRechargeRate: 30

- type: entity
name: mk 58
parent: BaseWeaponBatterySmall
Expand Down Expand Up @@ -96,11 +96,12 @@
- type: Battery
maxCharge: 1000
startingCharge: 1000

- type: entity
name: energy shotgun
parent: BaseWeaponBattery
id: WeaponEnergyShotgun
id: BaseWeaponEnergyShotgun
abstract: true
description: A one-of-a-kind prototype energy weapon that uses various shotgun configurations. It offers the possibility of both lethal and non-lethal shots, making it a versatile weapon.
components:
- type: Sprite
Expand All @@ -120,27 +121,33 @@
- type: ProjectileBatteryAmmoProvider
proto: eShellShotgun
fireCost: 150
- type: BatteryWeaponFireModes
fireModes:
- proto: eShellShotgun
fireCost: 150
- proto: BulletDisablerSmg
fireCost: 120
- type: Item
size: Large
shape:
- 0,0,3,1
sprite: Objects/Weapons/Guns/Battery/inhands_64x.rsi
heldPrefix: energy
- type: Tag
tags:
- HighRiskItem
- type: StealTarget
stealGroup: WeaponEnergyShotgun
- type: GunRequiresWield #remove when inaccuracy on spreads is fixed
- type: Battery
maxCharge: 1200
startingCharge: 1200
- type: BatterySelfRecharger
autoRecharge: true
autoRechargeRate: 24
autoRechargeRate: 24

- type: entity
name: energy shotgun
parent: BaseWeaponEnergyShotgun
id: WeaponEnergyShotgun
components:
- type: GunRequiresWield
- type: Wieldable
- type: Tag
tags:
- HighRiskItem
- type: StealTarget
stealGroup: WeaponEnergyShotgun

- type: entity
suffix: Robot
parent: BaseWeaponEnergyShotgun
id: WeaponBorgEnergyShotgun
Loading
Loading