Adds syndicate cyborgs. Adds Assault cyborgs to nukie uplink (#19733)

* added syndicate cyborgs

* add assault cyborg to uplink

* updated tags.yml

* changed syndicate cyborgs' hitpoints to 200
fixed NPCfaction

* added noslip and MovementAlwaysTouching component to syndicate cyborgs akin to carps, as a stop gap for no magboots or jetpack. Access component fix.

* fixes nodes

* fixes construction

* fixed typo and intergrationtests

* adds back ammocounter for l6c

* fix lawset

* fix item size

* nono, fix again

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
This commit is contained in:
Naive817
2024-01-08 06:12:08 +08:00
committed by GitHub
parent ac1990f290
commit 1b93243bea
20 changed files with 372 additions and 0 deletions

View File

@@ -121,6 +121,9 @@ uplink-reinforcement-radio-monkey-desc = Call in a trained monkey to assist you
uplink-reinforcement-radio-name = Reinforcement Teleporter uplink-reinforcement-radio-name = Reinforcement Teleporter
uplink-reinforcement-radio-desc = Radio in a reinforcement agent of extremely questionable quality. No off button, buy this if you're ready to party. They have a pistol with no reserve ammo, and a knife. That's it. uplink-reinforcement-radio-desc = Radio in a reinforcement agent of extremely questionable quality. No off button, buy this if you're ready to party. They have a pistol with no reserve ammo, and a knife. That's it.
uplink-reinforcement-radio-cyborg-assault-name = Syndicate Assault Cyborg Teleporter
uplink-reinforcement-radio-cyborg-assault-desc = A lean, mean killing machine with access to an Energy Sword, LMG, Cryptographic Sequencer, and a Pinpointer.
uplink-stealth-box-name = Stealth Box uplink-stealth-box-name = Stealth Box
uplink-stealth-box-desc = A box outfitted with stealth technology, sneak around with this and don't move too fast now! uplink-stealth-box-desc = A box outfitted with stealth technology, sneak around with this and don't move too fast now!

View File

@@ -430,6 +430,22 @@
tags: tags:
- NukeOpsUplink - NukeOpsUplink
- type: listing
id: UplinkReinforcementRadioSyndicateCyborgAssault
name: uplink-reinforcement-radio-cyborg-assault-name
description: uplink-reinforcement-radio-cyborg-assault-desc
productEntity: ReinforcementRadioSyndicateCyborgAssault
icon: { sprite: Mobs/Silicon/chassis.rsi, state: synd_sec }
cost:
Telecrystal: 65
categories:
- UplinkUtility
conditions:
- !type:StoreWhitelistCondition
whitelist:
tags:
- NukeOpsUplink
- type: listing - type: listing
id: UplinkReinforcementRadioSyndicateMonkey id: UplinkReinforcementRadioSyndicateMonkey
name: uplink-reinforcement-radio-monkey-name name: uplink-reinforcement-radio-monkey-name

View File

@@ -224,3 +224,38 @@
- type: AccessReader - type: AccessReader
access: [["Command"], ["Research"]] access: [["Command"], ["Research"]]
- type: ShowSecurityIcons - type: ShowSecurityIcons
- type: entity
id: BaseBorgChassisSyndicate
parent: BaseBorgChassis
abstract: true
components:
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:PlaySoundBehavior
sound: /Audio/Effects/metalbreak.ogg
- !type:EmptyContainersBehaviour
containers:
- borg_brain
- borg_module
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: NpcFactionMember
factions:
- Syndicate
- type: Access
- type: SiliconLawProvider
laws: SyndicateStatic
- type: IntrinsicRadioTransmitter
channels:
- Binary
- Syndicate
- type: ActiveRadio
channels:
- Syndicate
- type: NoSlip
- type: MovementAlwaysTouching

View File

@@ -263,3 +263,90 @@
access: [["Service"], ["Command"], ["Research"]] access: [["Service"], ["Command"], ["Research"]]
- type: Inventory - type: Inventory
templateId: borgTall templateId: borgTall
- type: entity
id: BorgChassisSyndicateAssault
parent: BaseBorgChassisSyndicate
name: Syndicate assault cyborg
description: A lean, mean killing machine with access to a varity of deadly modules.
components:
- type: Sprite
layers:
- state: synd_sec
- state: synd_sec_e
map: ["enum.BorgVisualLayers.Light"]
shader: unshaded
visible: false
- state: synd_sec_l
shader: unshaded
map: ["light"]
visible: false
- type: BorgChassis
maxModules: 3
moduleWhitelist:
tags:
- BorgModuleGeneric
- BorgModuleSyndicate
- BorgModuleSyndicateAssault
hasMindState: synd_sec_e
noMindState: synd_sec
- type: Construction
node: syndicateassault
- type: entity
id: BorgChassisSyndicateMedical
parent: BaseBorgChassisSyndicate
name: Syndicate medical cyborg
description: A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities.
components:
- type: Sprite
layers:
- state: synd_medical
- state: synd_medical_e
map: ["enum.BorgVisualLayers.Light"]
shader: unshaded
visible: false
- state: synd_medical_l
shader: unshaded
map: ["light"]
visible: false
- type: BorgChassis
maxModules: 3
moduleWhitelist:
tags:
- BorgModuleGeneric
- BorgModuleMedical
- BorgModuleSyndicate
hasMindState: synd_medical_e
noMindState: synd_medical
- type: Construction
node: syndicatemedical
- type: entity
id: BorgChassisSyndicateSaboteur
parent: BaseBorgChassisSyndicate
name: Syndicate saboteur cyborg
description: A streamlined engineering cyborg, equipped with covert modules. Its chameleon projector lets it disguise itself as a Nanotrasen cyborg.
components:
- type: Sprite
layers:
- state: synd_engi
- state: synd_engi_e
map: ["enum.BorgVisualLayers.Light"]
shader: unshaded
visible: false
- state: synd_engi_l
shader: unshaded
map: ["light"]
visible: false
- type: BorgChassis
maxModules: 3
moduleWhitelist:
tags:
- BorgModuleGeneric
- BorgModuleEngineering
- BorgModuleSyndicate
hasMindState: synd_engi_e
noMindState: synd_engi
- type: Construction
node: syndicatesaboteur

View File

@@ -273,3 +273,23 @@
cell_slot: cell_slot:
name: power-cell-slot-component-slot-name-default name: power-cell-slot-component-slot-name-default
startingItem: PowerCellMedium startingItem: PowerCellMedium
- type: entity
id: PlayerBorgSyndicateAssaultBattery
parent: BorgChassisSyndicateAssault
suffix: Battery, Module, Operative
components:
- type: NukeOperative
- type: ContainerFill
containers:
borg_brain:
- PositronicBrain
borg_module:
- BorgModuleOperative
- BorgModuleL6C
- BorgModuleEsword
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
startingItem: PowerCellHyper

View File

@@ -39,3 +39,17 @@
rules: ghost-role-information-syndicate-monkey-reinforcement-rules rules: ghost-role-information-syndicate-monkey-reinforcement-rules
- type: GhostRoleMobSpawner - type: GhostRoleMobSpawner
prototype: MobMonkeySyndicateAgent prototype: MobMonkeySyndicateAgent
- type: entity
parent: ReinforcementRadioSyndicate
id: ReinforcementRadioSyndicateCyborgAssault # Reinforcement radio exclusive to nukeops uplink
name: syndicate assault cyborg reinforcement radio
description: Call in a well armed assault cyborg, instantly!
suffix: NukeOps
components:
- type: GhostRole
name: Syndicate Assault Cyborg
description: Nuclear operatives needs reinforcements. You, a cold silicon killing machine, will help them.
rules: Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them.
- type: GhostRoleMobSpawner
prototype: PlayerBorgSyndicateAssaultBattery

View File

@@ -82,6 +82,24 @@
tags: tags:
- BorgModuleService - BorgModuleService
- type: entity
id: BaseBorgModuleSyndicate
parent: BaseBorgModule
abstract: true
components:
- type: Tag
tags:
- BorgModuleSyndicate
- type: entity
id: BaseBorgModuleSyndicateAssault
parent: BaseBorgModule
abstract: true
components:
- type: Tag
tags:
- BorgModuleSyndicateAssault
# generic modules # generic modules
- type: entity - type: entity
id: BorgModuleCable id: BorgModuleCable
@@ -494,3 +512,50 @@
items: items:
- WeaponAdvancedLaser - WeaponAdvancedLaser
- Machete - Machete
- type: entity
id: BorgModuleOperative
parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule ]
name: Operative cyborg module
description: A module that comes with a crowbar, a Cobra pistol, an Emag and a pinpointer.
components:
- type: Sprite
layers:
- state: syndicate
- state: icon-tools
- type: ItemBorgModule
items:
- Crowbar
- WeaponPistolCobra
- Emag
- PinpointerNuclear
- type: entity
id: BorgModuleEsword
parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule ]
name: Energy sword cyborg module
description: A module that comes with an energy sword.
components:
- type: Sprite
layers:
- state: syndicate
- state: icon-tools
- type: ItemBorgModule
items:
- EnergySword
- PinpointerNuclear
- type: entity
id: BorgModuleL6C
parent: [ BaseBorgModuleSyndicateAssault, BaseProviderBorgModule ]
name: L6C ROW cyborg module
description: A module that comes with a L6C.
components:
- type: Sprite
layers:
- state: syndicate
- state: icon-tools
- type: ItemBorgModule
items:
- WeaponLightMachineGunL6C
- PinpointerNuclear

View File

@@ -79,3 +79,39 @@
steps: 4 steps: 4
zeroVisible: true zeroVisible: true
- type: Appearance - type: Appearance
- type: entity
name: L6C ROW
id: WeaponLightMachineGunL6C
parent: BaseItem
description: A L6 SAW modified for cyborg use. Feeds .30 rifle ammo from an internal 100 round magazine.
components:
- type: Gun
minAngle: 4
maxAngle: 25
angleIncrease: 4
angleDecay: 16
fireRate: 8
selectedMode: FullAuto
availableModes:
- FullAuto
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/lmg.ogg
soundEmpty:
path: /Audio/Weapons/Guns/Empty/lmg_empty.ogg
- type: Sprite
sprite: Objects/Weapons/Guns/LMGs/l6.rsi
layers:
- state: base
map: [ "enum.GunVisualLayers.Base" ]
- state: mag-3
map: [ "enum.GunVisualLayers.Mag" ]
- type: Item
size: Huge
- type: ContainerContainer
containers:
ballistic-ammo: !type:Container
- type: BallisticAmmoProvider
proto: CartridgeLightRifle
capacity: 100
- type: AmmoCounter

View File

@@ -196,3 +196,12 @@
- node: service - node: service
entity: BorgChassisService entity: BorgChassisService
- node: syndicateassault
entity: BorgChassisSyndicateAssault
- node: syndicatemedical
entity: BorgChassisSyndicateMedical
- node: syndicatesaboteur
entity: BorgChassisSyndicateSaboteur

View File

@@ -166,6 +166,12 @@
- type: Tag - type: Tag
id: BorgModuleService id: BorgModuleService
- type: Tag
id: BorgModuleSyndicate
- type: Tag
id: BorgModuleSyndicateAssault
- type: Tag - type: Tag
id: BorgServiceHead id: BorgServiceHead

View File

@@ -234,6 +234,87 @@
{ {
"name": "service_l", "name": "service_l",
"directions": 4 "directions": 4
},
{
"name": "synd_sec",
"directions": 4
},
{
"name": "synd_sec_e",
"directions": 4
},
{
"name": "synd_sec_l",
"directions": 4
},
{
"name": "synd_medical",
"directions": 4
},
{
"name": "synd_medical_l",
"directions": 4,
"delays": [
[
0.1,
0.2,
0.1
],
[
0.1,
0.2,
0.1
],
[
0.1,
0.2,
0.1
],
[
0.1,
0.2,
0.1
]
]
},
{
"name": "synd_medical_e",
"directions": 4,
"delays": [
[
0.1,
0.2,
0.1
],
[
0.1,
0.2,
0.1
],
[
0.1,
0.2,
0.1
],
[
0.1,
0.2,
0.1
]
]
},
{
"name": "synd_engi",
"directions": 4
},
{
"name": "synd_engi_e",
"directions": 4
},
{
"name": "synd_engi_l",
"directions": 4
} }
] ]
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 550 B