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>
@@ -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-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-desc = A box outfitted with stealth technology, sneak around with this and don't move too fast now!
|
||||
|
||||
|
||||
@@ -430,6 +430,22 @@
|
||||
tags:
|
||||
- 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
|
||||
id: UplinkReinforcementRadioSyndicateMonkey
|
||||
name: uplink-reinforcement-radio-monkey-name
|
||||
|
||||
@@ -224,3 +224,38 @@
|
||||
- type: AccessReader
|
||||
access: [["Command"], ["Research"]]
|
||||
- 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
|
||||
|
||||
@@ -263,3 +263,90 @@
|
||||
access: [["Service"], ["Command"], ["Research"]]
|
||||
- type: Inventory
|
||||
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
|
||||
|
||||
@@ -273,3 +273,23 @@
|
||||
cell_slot:
|
||||
name: power-cell-slot-component-slot-name-default
|
||||
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
|
||||
|
||||
@@ -39,3 +39,17 @@
|
||||
rules: ghost-role-information-syndicate-monkey-reinforcement-rules
|
||||
- type: GhostRoleMobSpawner
|
||||
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
|
||||
|
||||
@@ -82,6 +82,24 @@
|
||||
tags:
|
||||
- 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
|
||||
- type: entity
|
||||
id: BorgModuleCable
|
||||
@@ -494,3 +512,50 @@
|
||||
items:
|
||||
- WeaponAdvancedLaser
|
||||
- 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
|
||||
|
||||
@@ -79,3 +79,39 @@
|
||||
steps: 4
|
||||
zeroVisible: true
|
||||
- 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
|
||||
|
||||
@@ -196,3 +196,12 @@
|
||||
|
||||
- node: service
|
||||
entity: BorgChassisService
|
||||
|
||||
- node: syndicateassault
|
||||
entity: BorgChassisSyndicateAssault
|
||||
|
||||
- node: syndicatemedical
|
||||
entity: BorgChassisSyndicateMedical
|
||||
|
||||
- node: syndicatesaboteur
|
||||
entity: BorgChassisSyndicateSaboteur
|
||||
|
||||
@@ -166,6 +166,12 @@
|
||||
- type: Tag
|
||||
id: BorgModuleService
|
||||
|
||||
- type: Tag
|
||||
id: BorgModuleSyndicate
|
||||
|
||||
- type: Tag
|
||||
id: BorgModuleSyndicateAssault
|
||||
|
||||
- type: Tag
|
||||
id: BorgServiceHead
|
||||
|
||||
|
||||
@@ -234,6 +234,87 @@
|
||||
{
|
||||
"name": "service_l",
|
||||
"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
|
||||
}
|
||||
|
||||
]
|
||||
}
|
||||
|
||||
BIN
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi_e.png
Normal file
|
After Width: | Height: | Size: 425 B |
BIN
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi_l.png
Normal file
|
After Width: | Height: | Size: 544 B |
BIN
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical_e.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical_l.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_e.png
Normal file
|
After Width: | Height: | Size: 521 B |
BIN
Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_l.png
Normal file
|
After Width: | Height: | Size: 550 B |