mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-16 09:34:21 +01:00
Evil Cyborgs - Non-Engineer Emag/Malf Modules (#24638)
* Evil Janitor Cyborg * Evil Medical Cyborg * Little less cyanide * Evil Service Borg * Combat Cyborg Firmware Upgrade cost adjustment * Minor code fixes * Updated Energy Type * Spacing Changes * Evil Mining Borg pt1 * Sonic Jackhammer Force, Functions as Combat and Utility mining module * Moved guitar * Moved KA * Naming, Inheritance changes * Fix landmine stack icon * Landmine Repath, RSG Magazine Length and KA Overheat changes * Service Borg Shotgun - Lasershot, Ammo Cap Nerf, No more slug * REALLY got rid of compact slugs * RSG - 2u Toxin, 20 Brute heavy syringes * Syringe Gun Fire Rate * Changed syringe creation, moved syringe cannon off syringe gun * Purged syndie hypo, new emag hypo pierces armor/suits
This commit is contained in:
@@ -42,6 +42,12 @@
|
||||
hitsound = 'sound/weapons/guitarslam.ogg'
|
||||
allowed_instrument_ids = "guitar"
|
||||
|
||||
/// This is a special guitar for the emagged service borg that hits pretty hard and can still play music. Clonk.
|
||||
/obj/item/instrument/guitar/cyborg
|
||||
name = "steel-reinforced guitar"
|
||||
desc = "This guitar has robust metal plating inside to give it some extra kick."
|
||||
force = 20
|
||||
|
||||
/obj/item/instrument/eguitar
|
||||
name = "electric guitar"
|
||||
desc = "Makes all your shredding needs possible."
|
||||
|
||||
@@ -122,6 +122,7 @@
|
||||
hitsound = 'sound/weapons/sonic_jackhammer.ogg'
|
||||
usesound = 'sound/weapons/sonic_jackhammer.ogg'
|
||||
toolspeed = 0.1 //the epitome of powertools. extremely fast mining, laughs at puny walls
|
||||
force = 20 //This thing breaks rwalls, it should be able to hit harder than a DIY bone pickaxe.
|
||||
|
||||
/obj/item/shovel
|
||||
name = "shovel"
|
||||
|
||||
@@ -357,8 +357,11 @@
|
||||
/obj/item/stack/nanopaste/cyborg,
|
||||
/obj/item/gripper_medical
|
||||
)
|
||||
emag_override_modules = list(/obj/item/reagent_containers/spray/cyborg_facid)
|
||||
special_rechargables = list(/obj/item/reagent_containers/spray/cyborg_facid, /obj/item/extinguisher/mini)
|
||||
malf_modules = list(/obj/item/gun/syringemalf)
|
||||
special_rechargables = list(
|
||||
/obj/item/extinguisher/mini,
|
||||
/obj/item/gun/syringemalf
|
||||
)
|
||||
|
||||
// Disable safeties on the borg's defib.
|
||||
/obj/item/robot_module/medical/emag_act(mob/user)
|
||||
@@ -376,6 +379,50 @@
|
||||
F.emag_act()
|
||||
return ..()
|
||||
|
||||
/// Malf Syringe Gun
|
||||
/obj/item/gun/syringemalf
|
||||
name = "plasma syringe cannon"
|
||||
desc = "A syringe gun integrated into a medical cyborg's chassis. Fires heavy-duty plasma syringes tipped in poison."
|
||||
icon_state = "rapidsyringegun"
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
force = 4
|
||||
fire_sound = 'sound/items/syringeproj.ogg'
|
||||
fire_delay = 0.75
|
||||
var/max_syringes = 14
|
||||
var/current_syringes = 14
|
||||
|
||||
//Preload Syringes
|
||||
/obj/item/gun/syringemalf/Initialize(mapload)
|
||||
..()
|
||||
chambered = new /obj/item/ammo_casing/syringegun(src)
|
||||
process_chamber()
|
||||
|
||||
//Recharge syringes in a recharger
|
||||
/obj/item/gun/syringemalf/cyborg_recharge(coeff, emagged)
|
||||
if(current_syringes + (chambered.BB ? 1 : 0) < max_syringes)
|
||||
current_syringes++
|
||||
process_chamber()
|
||||
|
||||
//Cannot manually remove syringes
|
||||
/obj/item/gun/syringemalf/attack_self(mob/living/user)
|
||||
return
|
||||
|
||||
//Load syringe into the chamber
|
||||
/obj/item/gun/syringemalf/process_chamber()
|
||||
if(!current_syringes || chambered?.BB)
|
||||
return
|
||||
|
||||
chambered.BB = new /obj/item/projectile/bullet/dart/syringe/heavyduty(src)
|
||||
chambered.BB.reagents.add_reagent_list(list("toxin" = 2))
|
||||
chambered.BB.name = "heavy duty syringe"
|
||||
current_syringes--
|
||||
|
||||
/obj/item/gun/syringemalf/examine(mob/user)
|
||||
. = ..()
|
||||
var/num_syringes = current_syringes + (chambered.BB ? 1 : 0)
|
||||
. += "Can hold [max_syringes] syringe\s. Has [num_syringes] syringe\s remaining."
|
||||
|
||||
// Fluorosulphuric acid spray bottle.
|
||||
/obj/item/reagent_containers/spray/cyborg_facid
|
||||
name = "Polyacid spray"
|
||||
@@ -470,10 +517,12 @@
|
||||
/obj/item/extinguisher/mini
|
||||
)
|
||||
emag_override_modules = list(/obj/item/reagent_containers/spray/cyborg_lube)
|
||||
emag_modules = list(/obj/item/restraints/handcuffs/cable/zipties/cyborg)
|
||||
emag_modules = list(/obj/item/reagent_containers/spray/cyborg_facid, /obj/item/malfbroom)
|
||||
malf_modules = list(/obj/item/stack/cyborg_mine)
|
||||
special_rechargables = list(
|
||||
/obj/item/lightreplacer,
|
||||
/obj/item/reagent_containers/spray/cyborg_lube,
|
||||
/obj/item/reagent_containers/spray/cyborg_facid,
|
||||
/obj/item/extinguisher/mini
|
||||
)
|
||||
|
||||
@@ -514,6 +563,30 @@
|
||||
cleaned_human.clean_blood()
|
||||
to_chat(cleaned_human, "<span class='danger'>[src] cleans your face!</span>")
|
||||
|
||||
|
||||
/obj/item/malfbroom
|
||||
name = "cyborg combat broom"
|
||||
desc = "A steel-core push broom for the hostile cyborg. The firm bristles make it more suitable for fighting than cleaning."
|
||||
icon = 'icons/obj/janitor.dmi'
|
||||
icon_state = "broom0"
|
||||
base_icon_state = "broom"
|
||||
attack_verb = list("smashed", "slammed", "whacked", "thwacked", "swept")
|
||||
force = 20
|
||||
|
||||
/obj/item/malfbroom/attack(mob/target, mob/user)
|
||||
if(!ishuman(target))
|
||||
return ..()
|
||||
var/mob/living/carbon/human/H = target
|
||||
if(H.stat != CONSCIOUS || IS_HORIZONTAL(H))
|
||||
return ..()
|
||||
H.visible_message("<span class='danger'>[user] sweeps [H]'s legs out from under [H.p_them()]!</span>", \
|
||||
"<span class='userdanger'>[user] sweeps your legs out from under you!</span>", \
|
||||
"<span class='italics'>You hear sweeping.</span>")
|
||||
playsound(get_turf(user), 'sound/effects/hit_kick.ogg', 50, TRUE, -1)
|
||||
H.apply_damage(20, BRUTE)
|
||||
H.KnockDown(4 SECONDS)
|
||||
add_attack_logs(user, H, "Leg swept with cyborg combat broom", ATKLOG_ALL)
|
||||
|
||||
// Service cyborg module.
|
||||
/obj/item/robot_module/butler
|
||||
name = "service robot module"
|
||||
@@ -535,10 +608,12 @@
|
||||
/obj/item/reagent_containers/drinks/shaker
|
||||
)
|
||||
emag_override_modules = list(/obj/item/reagent_containers/drinks/cans/beer/sleepy_beer)
|
||||
emag_modules = list(/obj/item/restraints/handcuffs/cable/zipties/cyborg)
|
||||
emag_modules = list(/obj/item/restraints/handcuffs/cable/zipties/cyborg, /obj/item/instrument/guitar/cyborg)
|
||||
malf_modules = list(/obj/item/gun/projectile/shotgun/automatic/combat/cyborg)
|
||||
special_rechargables = list(
|
||||
/obj/item/reagent_containers/condiment/enzyme,
|
||||
/obj/item/reagent_containers/drinks/cans/beer/sleepy_beer
|
||||
/obj/item/reagent_containers/drinks/cans/beer/sleepy_beer,
|
||||
/obj/item/gun/projectile/shotgun/automatic/combat/cyborg
|
||||
)
|
||||
|
||||
|
||||
@@ -595,24 +670,10 @@
|
||||
/obj/item/gun/energy/kinetic_accelerator/cyborg,
|
||||
/obj/item/gps/cyborg
|
||||
)
|
||||
emag_modules = list(/obj/item/borg/stun, /obj/item/pickaxe/drill/cyborg/diamond, /obj/item/restraints/handcuffs/cable/zipties/cyborg)
|
||||
emag_modules = list(/obj/item/pickaxe/drill/jackhammer)
|
||||
malf_modules = list(/obj/item/gun/energy/kinetic_accelerator/cyborg/malf)
|
||||
special_rechargables = list(/obj/item/extinguisher/mini, /obj/item/weldingtool/mini)
|
||||
|
||||
// Replace their normal drill with a diamond drill.
|
||||
/obj/item/robot_module/miner/emag_act()
|
||||
. = ..()
|
||||
for(var/obj/item/pickaxe/drill/cyborg/D in modules)
|
||||
// Make sure we don't remove the diamond drill If they already have a diamond drill from the borg upgrade.
|
||||
if(!istype(D, /obj/item/pickaxe/drill/cyborg/diamond))
|
||||
qdel(D)
|
||||
basic_modules -= D // Remove it from this list so it doesn't get added in the rebuild.
|
||||
|
||||
// Readd the normal drill
|
||||
/obj/item/robot_module/miner/unemag()
|
||||
var/obj/item/pickaxe/drill/cyborg/C = new(src)
|
||||
basic_modules += C
|
||||
return ..()
|
||||
|
||||
// This makes it so others can crowbar out KA upgrades from the miner borg.
|
||||
/obj/item/robot_module/miner/handle_custom_removal(component_id, mob/living/user, obj/item/W)
|
||||
if(component_id == "KA modkits")
|
||||
@@ -957,6 +1018,13 @@
|
||||
/datum/robot_storage/energy/medical/nanopaste/syndicate
|
||||
max_amount = 25
|
||||
|
||||
//Energy stack for landmines
|
||||
/datum/robot_storage/energy/janitor/landmine
|
||||
name = "Landmine Synthesizer"
|
||||
statpanel_name = "Landmines"
|
||||
max_amount = 4
|
||||
recharge_rate = 0.2
|
||||
|
||||
/// This datum is an alternative to the energy storages, instead being recharged in different ways
|
||||
/datum/robot_storage/material
|
||||
name = "Generic material storage"
|
||||
@@ -986,3 +1054,4 @@
|
||||
statpanel_name = "Metal"
|
||||
stack = /obj/item/stack/sheet/metal
|
||||
add_to_storage = TRUE
|
||||
|
||||
|
||||
@@ -169,7 +169,6 @@
|
||||
muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_STRONG
|
||||
muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG
|
||||
|
||||
|
||||
/obj/item/ammo_casing/shotgun/buckshot
|
||||
name = "buckshot shell"
|
||||
desc = "A 12 gauge buckshot shell. Fires a spread of lethal shot."
|
||||
|
||||
@@ -117,6 +117,11 @@
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/beanbag
|
||||
max_ammo = 6
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/shot/malf
|
||||
name = "cyborg shotgun internal magazine"
|
||||
ammo_type = /obj/item/ammo_casing/shotgun/lasershot
|
||||
max_ammo = 8
|
||||
|
||||
/obj/item/ammo_box/magazine/internal/shot/dual
|
||||
name = "double-barrel shotgun internal magazine"
|
||||
max_ammo = 2
|
||||
|
||||
@@ -79,6 +79,15 @@
|
||||
max_mod_capacity = 80
|
||||
icon_state = "kineticgun_b"
|
||||
|
||||
/obj/item/gun/energy/kinetic_accelerator/cyborg/malf
|
||||
name = "kinetic accelerator cannon"
|
||||
desc = "A cyborg-modified kinetic accelerator that operates in pressurized environments, but cannot be upgraded and fires slowly."
|
||||
icon_state = "kineticgun_h"
|
||||
item_state = "kineticgun_h"
|
||||
max_mod_capacity = 0
|
||||
ammo_type = list(/obj/item/ammo_casing/energy/kinetic/malf)
|
||||
overheat_time = 2 SECONDS
|
||||
|
||||
/obj/item/gun/energy/kinetic_accelerator/minebot
|
||||
trigger_guard = TRIGGER_GUARD_ALLOW_ALL
|
||||
overheat_time = 20
|
||||
@@ -185,6 +194,9 @@
|
||||
var/obj/item/gun/energy/kinetic_accelerator/KA = loc
|
||||
KA.modify_projectile(BB)
|
||||
|
||||
//Malf casing
|
||||
/obj/item/ammo_casing/energy/kinetic/malf
|
||||
projectile_type = /obj/item/projectile/kinetic/malf
|
||||
|
||||
//Projectiles
|
||||
/obj/item/projectile/kinetic
|
||||
@@ -199,6 +211,11 @@
|
||||
var/pressure_decrease = 0.25
|
||||
var/obj/item/gun/energy/kinetic_accelerator/kinetic_gun
|
||||
|
||||
/obj/item/projectile/kinetic/malf
|
||||
pressure_decrease = 1
|
||||
color = "#FFFFFF"
|
||||
icon_state = "ka_tracer"
|
||||
|
||||
/obj/item/projectile/kinetic/pod
|
||||
range = 4
|
||||
|
||||
|
||||
@@ -320,6 +320,16 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
execution_speed = 5 SECONDS
|
||||
|
||||
/// Service Malfunction Borg Combat Shotgun Variant
|
||||
/obj/item/gun/projectile/shotgun/automatic/combat/cyborg
|
||||
name = "cyborg shotgun"
|
||||
desc = "Get those organics off your station. Holds eight shots. Can only reload in a recharge station."
|
||||
mag_type = /obj/item/ammo_box/magazine/internal/shot/malf
|
||||
|
||||
/obj/item/gun/projectile/shotgun/automatic/combat/cyborg/cyborg_recharge(coeff, emagged)
|
||||
if(magazine.ammo_count() < magazine.max_ammo)
|
||||
magazine.stored_ammo.Add(new /obj/item/ammo_casing/shotgun/lasershot)
|
||||
|
||||
//Dual Feed Shotgun
|
||||
|
||||
/obj/item/gun/projectile/shotgun/automatic/dual_tube
|
||||
|
||||
@@ -413,3 +413,5 @@
|
||||
user.adjustStaminaLoss(20, FALSE)
|
||||
user.adjustOxyLoss(20)
|
||||
return ..()
|
||||
|
||||
|
||||
|
||||
@@ -256,6 +256,9 @@
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "syringeproj"
|
||||
|
||||
/obj/item/projectile/bullet/dart/syringe/heavyduty
|
||||
damage = 20
|
||||
|
||||
/obj/item/projectile/bullet/dart/syringe/pierce_ignore
|
||||
piercing = TRUE
|
||||
|
||||
|
||||
@@ -127,9 +127,11 @@
|
||||
/obj/item/reagent_containers/borghypo/emag_act(mob/user)
|
||||
if(!emagged)
|
||||
emagged = TRUE
|
||||
bypass_protection = TRUE
|
||||
reagent_ids += reagent_ids_emagged
|
||||
return
|
||||
emagged = FALSE
|
||||
bypass_protection = FALSE
|
||||
reagent_ids -= reagent_ids_emagged
|
||||
|
||||
/obj/item/reagent_containers/borghypo/basic
|
||||
|
||||
Reference in New Issue
Block a user