mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
Merges the Hug Module With the Cyborg Gripper (#26007)
* Hugs * Update cyborg_gripper.dm * Update cyborg_gripper.dm * Update cyborg_gripper.dm * AGHHH! * Update code/game/objects/items/robot/cyborg_gripper.dm Co-authored-by: Sheep <46016730+Scribble-Sheep@users.noreply.github.com> Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> * Update cyborg_gripper.dm * Fixing some minor typos for cyborg upgrade flavour text Throws in some missing apostrophes, capitalisation, and the letter "s." * Briefcase Full of Cash buff Increases the amount of cash in the Syndicate Briefcase Full of Cash from 600 Cr to 1000 Cr * Reverts double-feature PR * Reverts a broken revert * Reverting again because Ebba told me to * And reverting yet again * Update robot_upgrades.dm * Update cyborg_gripper.dm * Apply suggestions from code review Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> * Update robot_modules.dm * Apply suggestions from code review Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> * Update code/game/objects/items/robot/cyborg_gripper.dm Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> --------- Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com> Co-authored-by: Sheep <46016730+Scribble-Sheep@users.noreply.github.com> Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
This commit is contained in:
@@ -324,7 +324,8 @@
|
||||
/obj/item/robot_module/proc/handle_death(mob/living/silicon/robot/R, gibbed)
|
||||
return
|
||||
|
||||
// Medical cyborg module.
|
||||
// MARK: Robot Modules
|
||||
// Medical
|
||||
/obj/item/robot_module/medical
|
||||
name = "medical robot module"
|
||||
module_type = "Medical"
|
||||
@@ -337,7 +338,6 @@
|
||||
/obj/item/borg_defib,
|
||||
/obj/item/handheld_defibrillator,
|
||||
/obj/item/roller_holder,
|
||||
/obj/item/borg/cyborghug,
|
||||
/obj/item/reagent_containers/borghypo,
|
||||
/obj/item/scalpel/laser/laser1,
|
||||
/obj/item/hemostat,
|
||||
@@ -369,20 +369,24 @@
|
||||
if(G)
|
||||
G.drop_gripped_item(silent = TRUE)
|
||||
|
||||
// Disable safeties on the borg's defib.
|
||||
// Emag the robot's equipment.
|
||||
/obj/item/robot_module/medical/emag_act(mob/user)
|
||||
. = ..()
|
||||
for(var/obj/item/borg_defib/F in modules)
|
||||
F.emag_act()
|
||||
for(var/obj/item/reagent_containers/borghypo/F in modules)
|
||||
F.emag_act()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
|
||||
// Enable safeties on the borg's defib.
|
||||
// Remove the emagging on the robot's equipment.
|
||||
/obj/item/robot_module/medical/unemag()
|
||||
for(var/obj/item/borg_defib/F in modules)
|
||||
F.emag_act()
|
||||
for(var/obj/item/reagent_containers/borghypo/F in modules)
|
||||
F.emag_act()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
return ..()
|
||||
|
||||
/// Malf Syringe Gun
|
||||
@@ -438,7 +442,7 @@
|
||||
if(emagged)
|
||||
reagents.check_and_add("facid", volume, 2 * coeff)
|
||||
|
||||
// Engineering cyborg module.
|
||||
// Engineering
|
||||
/obj/item/robot_module/engineering
|
||||
name = "engineering robot module"
|
||||
module_type = "Engineer"
|
||||
@@ -485,7 +489,17 @@
|
||||
if(istype(P))
|
||||
P.drop_inventory(R)
|
||||
|
||||
// Security cyborg module.
|
||||
/obj/item/robot_module/engineering/emag_act(mob/user)
|
||||
. = ..()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
|
||||
/obj/item/robot_module/engineering/unemag()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
return ..()
|
||||
|
||||
// Security
|
||||
/obj/item/robot_module/security
|
||||
name = "security robot module"
|
||||
module_type = "Security"
|
||||
@@ -511,7 +525,7 @@
|
||||
if(B)
|
||||
B.link_new_cell(unlink_cell)
|
||||
|
||||
// Janitor cyborg module.
|
||||
// Janitor
|
||||
/obj/item/robot_module/janitor
|
||||
name = "janitorial robot module"
|
||||
module_type = "Janitor"
|
||||
@@ -602,7 +616,7 @@
|
||||
H.KnockDown(4 SECONDS)
|
||||
add_attack_logs(user, H, "Leg swept with cyborg combat broom", ATKLOG_ALL)
|
||||
|
||||
// Service cyborg module.
|
||||
// Service
|
||||
/obj/item/robot_module/butler
|
||||
name = "service robot module"
|
||||
module_type = "Service"
|
||||
@@ -639,6 +653,16 @@
|
||||
if(istype(T))
|
||||
T.drop_inventory(R)
|
||||
|
||||
/obj/item/robot_module/butler/emag_act(mob/user)
|
||||
. = ..()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
|
||||
/obj/item/robot_module/butler/unemag()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
return ..()
|
||||
|
||||
// This is a special type of beer given when emagged, one sip and the target falls asleep.
|
||||
/obj/item/reagent_containers/drinks/cans/beer/sleepy_beer
|
||||
name = "Mickey Finn's Special Brew"
|
||||
@@ -667,6 +691,7 @@
|
||||
R.add_language("Neo-Russkiya", 1)
|
||||
R.add_language("Tkachi", 1)
|
||||
|
||||
// Mining
|
||||
/obj/item/robot_module/miner
|
||||
name = "miner robot module"
|
||||
module_type = "Miner"
|
||||
@@ -698,6 +723,16 @@
|
||||
if(istype(B))
|
||||
B.drop_inventory(R)
|
||||
|
||||
/obj/item/robot_module/miner/emag_act(mob/user)
|
||||
. = ..()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
|
||||
/obj/item/robot_module/miner/unemag()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
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")
|
||||
@@ -707,138 +742,7 @@
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
// Deathsquad cyborg module.
|
||||
/obj/item/robot_module/deathsquad
|
||||
name = "NT advanced combat module"
|
||||
module_type = "Malf"
|
||||
module_actions = list(/datum/action/innate/robot_sight/thermal, /datum/action/innate/robot_magpulse)
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/melee/energy/sword/cyborg,
|
||||
/obj/item/gun/energy/pulse/cyborg,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
)
|
||||
special_rechargables = list(/obj/item/gun/energy/pulse/cyborg)
|
||||
|
||||
// Sydicate assault cyborg module.
|
||||
/obj/item/robot_module/syndicate
|
||||
name = "syndicate assault robot module"
|
||||
module_type = "Malf" // cuz it looks cool
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/melee/energy/sword/cyborg,
|
||||
/obj/item/gun/energy/printer,
|
||||
/obj/item/gun/projectile/revolver/grenadelauncher/multi/cyborg,
|
||||
/obj/item/card/emag,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
/obj/item/pinpointer/operative,
|
||||
)
|
||||
|
||||
// Sydicate medical cyborg module.
|
||||
/obj/item/robot_module/syndicate_medical
|
||||
name = "syndicate medical robot module"
|
||||
module_type = "Malf"
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/healthanalyzer/advanced,
|
||||
/obj/item/reagent_scanner/adv,
|
||||
/obj/item/bodyanalyzer/borg/syndicate,
|
||||
/obj/item/borg_defib,
|
||||
/obj/item/handheld_defibrillator,
|
||||
/obj/item/roller_holder,
|
||||
/obj/item/reagent_containers/borghypo/syndicate,
|
||||
/obj/item/scalpel/laser/laser1,
|
||||
/obj/item/hemostat,
|
||||
/obj/item/retractor,
|
||||
/obj/item/melee/energy/sword/cyborg/saw, //Energy saw -- primary weapon
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/bonesetter,
|
||||
/obj/item/bonegel,
|
||||
/obj/item/FixOVein,
|
||||
/obj/item/card/emag,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
/obj/item/pinpointer/operative,
|
||||
/obj/item/stack/medical/bruise_pack/advanced/cyborg/syndicate,
|
||||
/obj/item/stack/medical/ointment/advanced/cyborg/syndicate,
|
||||
/obj/item/stack/medical/splint/cyborg/syndicate,
|
||||
/obj/item/stack/nanopaste/cyborg/syndicate,
|
||||
/obj/item/gun/medbeam,
|
||||
/obj/item/extinguisher/mini,
|
||||
/obj/item/gripper/medical,
|
||||
)
|
||||
special_rechargables = list(/obj/item/extinguisher/mini)
|
||||
|
||||
// Sydicate engineer/sabotuer cyborg module.
|
||||
/obj/item/robot_module/syndicate_saboteur
|
||||
name = "saboteur robot module" // Disguises are handled in the actual cyborg projector
|
||||
module_type = "Malf"
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/rcd/borg/syndicate,
|
||||
/obj/item/rpd,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/weldingtool/largetank/cyborg,
|
||||
/obj/item/screwdriver/cyborg,
|
||||
/obj/item/wrench/cyborg,
|
||||
/obj/item/crowbar/cyborg,
|
||||
/obj/item/wirecutters/cyborg,
|
||||
/obj/item/multitool/cyborg,
|
||||
/obj/item/t_scanner,
|
||||
/obj/item/analyzer,
|
||||
/obj/item/gripper/engineering,
|
||||
/obj/item/melee/energy/sword/cyborg,
|
||||
/obj/item/card/emag,
|
||||
/obj/item/borg_chameleon,
|
||||
/obj/item/pinpointer/operative,
|
||||
/obj/item/stack/sheet/metal/cyborg,
|
||||
/obj/item/stack/rods/cyborg,
|
||||
/obj/item/stack/tile/plasteel/cyborg,
|
||||
/obj/item/stack/cable_coil/cyborg,
|
||||
/obj/item/stack/sheet/glass/cyborg,
|
||||
/obj/item/stack/sheet/rglass/cyborg
|
||||
)
|
||||
special_rechargables = list(/obj/item/extinguisher, /obj/item/weldingtool/largetank/cyborg)
|
||||
|
||||
/obj/item/robot_module/destroyer
|
||||
name = "destroyer robot module"
|
||||
module_type = "Malf"
|
||||
module_actions = list(/datum/action/innate/robot_sight/thermal, /datum/action/innate/robot_magpulse)
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
/obj/item/gun/energy/immolator/multi/cyborg, // See comments on /robot_module/combat below
|
||||
/obj/item/melee/baton/loaded, // secondary weapon, for things immune to burn, immune to ranged weapons, or for arresting low-grade threats
|
||||
/obj/item/restraints/handcuffs/cable/zipties/cyborg,
|
||||
/obj/item/pickaxe/drill/jackhammer, // for breaking walls to execute flanking moves
|
||||
/obj/item/borg/destroyer/mobility
|
||||
)
|
||||
special_rechargables = list(
|
||||
/obj/item/melee/baton/loaded,
|
||||
/obj/item/gun/energy/immolator/multi/cyborg
|
||||
)
|
||||
|
||||
/obj/item/robot_module/combat
|
||||
name = "combat robot module"
|
||||
module_type = "Malf"
|
||||
module_actions = list(/datum/action/innate/robot_magpulse)
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
/obj/item/gun/energy/immolator/multi/cyborg, // primary weapon, strong at close range (ie: against blob/terror/xeno), but consumes a lot of energy per shot.
|
||||
// Borg gets 40 shots of this weapon. Gamma Sec ERT gets 10.
|
||||
// So, borg has way more burst damage, but also takes way longer to recharge / get back in the fight once depleted. Has to find a borg recharger and sit in it for ages.
|
||||
// Organic gamma sec ERT carries alternate weapons, including a box of flashbangs, and can load up on a huge number of guns from science. Borg cannot do either.
|
||||
// Overall, gamma borg has higher skill floor but lower skill ceiling.
|
||||
/obj/item/melee/baton/loaded, // secondary weapon, for things immune to burn, immune to ranged weapons, or for arresting low-grade threats
|
||||
/obj/item/restraints/handcuffs/cable/zipties/cyborg,
|
||||
/obj/item/pickaxe/drill/jackhammer // for breaking walls to execute flanking moves
|
||||
)
|
||||
special_rechargables = list(
|
||||
/obj/item/melee/baton/loaded,
|
||||
/obj/item/gun/energy/immolator/multi/cyborg
|
||||
)
|
||||
|
||||
// Xenomorph cyborg module.
|
||||
// Xeno Hunter
|
||||
/obj/item/robot_module/alien/hunter
|
||||
name = "alien hunter module"
|
||||
module_type = "Standard"
|
||||
@@ -859,7 +763,7 @@
|
||||
. = ..()
|
||||
R.add_language("xenocommon", 1)
|
||||
|
||||
// Maintenance drone module.
|
||||
// Maintenance Drone
|
||||
/obj/item/robot_module/drone
|
||||
name = "drone module"
|
||||
module_type = "Engineer"
|
||||
@@ -900,6 +804,169 @@
|
||||
if(G)
|
||||
G.drop_gripped_item(silent = TRUE)
|
||||
|
||||
/obj/item/robot_module/drone/emag_act(mob/user)
|
||||
. = ..()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
|
||||
/obj/item/robot_module/drone/unemag()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
return ..()
|
||||
|
||||
// Sydicate Assault cyborg module.
|
||||
/obj/item/robot_module/syndicate
|
||||
name = "syndicate assault robot module"
|
||||
module_type = "Malf" // cuz it looks cool
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/melee/energy/sword/cyborg,
|
||||
/obj/item/gun/energy/printer,
|
||||
/obj/item/gun/projectile/revolver/grenadelauncher/multi/cyborg,
|
||||
/obj/item/card/emag,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
/obj/item/pinpointer/operative,
|
||||
)
|
||||
|
||||
// Sydicate Medical cyborg module.
|
||||
/obj/item/robot_module/syndicate_medical
|
||||
name = "syndicate medical robot module"
|
||||
module_type = "Malf"
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/healthanalyzer/advanced,
|
||||
/obj/item/reagent_scanner/adv,
|
||||
/obj/item/bodyanalyzer/borg/syndicate,
|
||||
/obj/item/borg_defib,
|
||||
/obj/item/handheld_defibrillator,
|
||||
/obj/item/roller_holder,
|
||||
/obj/item/reagent_containers/borghypo/syndicate,
|
||||
/obj/item/scalpel/laser/laser1,
|
||||
/obj/item/hemostat,
|
||||
/obj/item/retractor,
|
||||
/obj/item/melee/energy/sword/cyborg/saw, //Energy saw -- primary weapon
|
||||
/obj/item/surgicaldrill,
|
||||
/obj/item/bonesetter,
|
||||
/obj/item/bonegel,
|
||||
/obj/item/FixOVein,
|
||||
/obj/item/card/emag,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
/obj/item/pinpointer/operative,
|
||||
/obj/item/stack/medical/bruise_pack/advanced/cyborg/syndicate,
|
||||
/obj/item/stack/medical/ointment/advanced/cyborg/syndicate,
|
||||
/obj/item/stack/medical/splint/cyborg/syndicate,
|
||||
/obj/item/stack/nanopaste/cyborg/syndicate,
|
||||
/obj/item/gun/medbeam,
|
||||
/obj/item/extinguisher/mini,
|
||||
/obj/item/gripper/medical,
|
||||
)
|
||||
special_rechargables = list(/obj/item/extinguisher/mini)
|
||||
|
||||
/obj/item/robot_module/syndicate_medical/emag_act(mob/user)
|
||||
. = ..()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
|
||||
/obj/item/robot_module/syndicate_medical/unemag()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
return ..()
|
||||
|
||||
// Sydicate Sabotuer/Engineering cyborg module.
|
||||
/obj/item/robot_module/syndicate_saboteur
|
||||
name = "saboteur robot module" // Disguises are handled in the actual cyborg projector
|
||||
module_type = "Malf"
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/rcd/borg/syndicate,
|
||||
/obj/item/rpd,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/weldingtool/largetank/cyborg,
|
||||
/obj/item/screwdriver/cyborg,
|
||||
/obj/item/wrench/cyborg,
|
||||
/obj/item/crowbar/cyborg,
|
||||
/obj/item/wirecutters/cyborg,
|
||||
/obj/item/multitool/cyborg,
|
||||
/obj/item/t_scanner,
|
||||
/obj/item/analyzer,
|
||||
/obj/item/gripper/engineering,
|
||||
/obj/item/melee/energy/sword/cyborg,
|
||||
/obj/item/card/emag,
|
||||
/obj/item/borg_chameleon,
|
||||
/obj/item/pinpointer/operative,
|
||||
/obj/item/stack/sheet/metal/cyborg,
|
||||
/obj/item/stack/rods/cyborg,
|
||||
/obj/item/stack/tile/plasteel/cyborg,
|
||||
/obj/item/stack/cable_coil/cyborg,
|
||||
/obj/item/stack/sheet/glass/cyborg,
|
||||
/obj/item/stack/sheet/rglass/cyborg
|
||||
)
|
||||
special_rechargables = list(/obj/item/extinguisher, /obj/item/weldingtool/largetank/cyborg)
|
||||
|
||||
/obj/item/robot_module/syndicate_saboteur/emag_act(mob/user)
|
||||
. = ..()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
|
||||
/obj/item/robot_module/syndicate_saboteur/unemag()
|
||||
for(var/obj/item/gripper/F in modules)
|
||||
F.emag_act()
|
||||
return ..()
|
||||
|
||||
// Gamma security module.
|
||||
/obj/item/robot_module/combat
|
||||
name = "combat robot module"
|
||||
module_type = "Malf"
|
||||
module_actions = list(/datum/action/innate/robot_magpulse)
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
/obj/item/gun/energy/immolator/multi/cyborg, // primary weapon, strong at close range (ie: against blob/terror/xeno), but consumes a lot of energy per shot.
|
||||
// Borg gets 40 shots of this weapon. Gamma Sec ERT gets 10.
|
||||
// So, borg has way more burst damage, but also takes way longer to recharge / get back in the fight once depleted. Has to find a borg recharger and sit in it for ages.
|
||||
// Organic gamma sec ERT carries alternate weapons, including a box of flashbangs, and can load up on a huge number of guns from science. Borg cannot do either.
|
||||
// Overall, gamma borg has higher skill floor but lower skill ceiling.
|
||||
/obj/item/melee/baton/loaded, // secondary weapon, for things immune to burn, immune to ranged weapons, or for arresting low-grade threats
|
||||
/obj/item/restraints/handcuffs/cable/zipties/cyborg,
|
||||
/obj/item/pickaxe/drill/jackhammer // for breaking walls to execute flanking moves
|
||||
)
|
||||
special_rechargables = list(
|
||||
/obj/item/melee/baton/loaded,
|
||||
/obj/item/gun/energy/immolator/multi/cyborg
|
||||
)
|
||||
|
||||
// Destroyer security module.
|
||||
/obj/item/robot_module/destroyer
|
||||
name = "destroyer robot module"
|
||||
module_type = "Malf"
|
||||
module_actions = list(/datum/action/innate/robot_sight/thermal, /datum/action/innate/robot_magpulse)
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
/obj/item/gun/energy/immolator/multi/cyborg, // See comments on /robot_module/combat below
|
||||
/obj/item/melee/baton/loaded, // secondary weapon, for things immune to burn, immune to ranged weapons, or for arresting low-grade threats
|
||||
/obj/item/restraints/handcuffs/cable/zipties/cyborg,
|
||||
/obj/item/pickaxe/drill/jackhammer, // for breaking walls to execute flanking moves
|
||||
/obj/item/borg/destroyer/mobility
|
||||
)
|
||||
special_rechargables = list(
|
||||
/obj/item/melee/baton/loaded,
|
||||
/obj/item/gun/energy/immolator/multi/cyborg
|
||||
)
|
||||
|
||||
// Deathsquad
|
||||
/obj/item/robot_module/deathsquad
|
||||
name = "NT advanced combat module"
|
||||
module_type = "Malf"
|
||||
module_actions = list(/datum/action/innate/robot_sight/thermal, /datum/action/innate/robot_magpulse)
|
||||
basic_modules = list(
|
||||
/obj/item/flash/cyborg,
|
||||
/obj/item/melee/energy/sword/cyborg,
|
||||
/obj/item/gun/energy/pulse/cyborg,
|
||||
/obj/item/crowbar/cyborg/red,
|
||||
)
|
||||
special_rechargables = list(/obj/item/gun/energy/pulse/cyborg)
|
||||
|
||||
/// Checks whether this item is a module of the robot it is located in.
|
||||
/obj/item/proc/is_robot_module()
|
||||
if(!isrobot(loc))
|
||||
|
||||
Reference in New Issue
Block a user