[SEMI-MODULAR] Removes 'Lick' and 'Boop' modules to be a roundstart upgrade (#6464)

* swag

* uhh this should fix it

* the fbi are outside my door (cheapens cost)
This commit is contained in:
DuffCreeper
2021-06-24 03:17:09 +10:00
committed by GitHub
parent 511f3955f9
commit df53fdad8f
5 changed files with 110 additions and 76 deletions
@@ -85,6 +85,10 @@
"cyborgrecharger",
"robocontrol",
"sflash",
//SKYRAT EDIT START - RESEARCH DESIGNS
"affection_module",
//SKYRAT EDIT END - RESEARCH DESIGNS
)
/datum/techweb_node/mech
@@ -11,15 +11,15 @@
. = ..()
if(!proximity || !isliving(target))
return
var/mob/living/silicon/robot/R = user
var/mob/living/L = target
var/mob/living/silicon/robot/borg = user
var/mob/living/mob = target
if(check_zone(R.zone_selected) == "head")
R.visible_message("<span class='warning'>\the [R] affectionally licks \the [L]'s face!</span>", "<span class='notice'>You affectionally lick \the [L]'s face!</span>")
playsound(R, 'sound/effects/attackblob.ogg', 50, 1)
if(check_zone(borg.zone_selected) == "head")
borg.visible_message("<span class='warning'>\the [borg] affectionally licks \the [mob]'s face!</span>", "<span class='notice'>You affectionally lick \the [mob]'s face!</span>")
playsound(borg, 'sound/effects/attackblob.ogg', 50, 1)
else
R.visible_message("<span class='warning'>\the [R] affectionally licks \the [L]!</span>", "<span class='notice'>You affectionally lick \the [L]!</span>")
playsound(R, 'sound/effects/attackblob.ogg', 50, 1)
borg.visible_message("<span class='warning'>\the [borg] affectionally licks \the [mob]!</span>", "<span class='notice'>You affectionally lick \the [mob]!</span>")
playsound(borg, 'sound/effects/attackblob.ogg', 50, 1)
/obj/item/dogborg_nose
name = "boop module"
@@ -1,8 +1,6 @@
/obj/item/robot_model/proc/dogborg_equip()
cyborg_pixel_offset = -16
hat_offset = INFINITY
basic_modules += new /obj/item/dogborg_nose(src)
basic_modules += new /obj/item/dogborg_tongue(src)
var/mob/living/silicon/robot/cyborg = loc
add_verb(cyborg , /mob/living/silicon/robot/proc/robot_lay_down)
add_verb(cyborg , /mob/living/silicon/robot/proc/rest_style)
@@ -15,3 +15,12 @@
materials = list(/datum/material/iron = 14500, /datum/material/glass = 7500, /datum/material/silver = 6000, /datum/material/gold = 1500, /datum/material/diamond = 200, /datum/material/titanium = 8000, /datum/material/plasma = 2000)
construction_time = 80
category = list("Cyborg Upgrade Modules")
/datum/design/affection_module
name = "Cyborg Upgrade (Affection Module)"
id = "affection_module"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/affectionmodule
materials = list(/datum/material/iron=1000, /datum/material/glass=500)
construction_time = 40
category = list("Cyborg Upgrade Modules")
@@ -6,43 +6,43 @@
desc = "A cyborg resizer, it makes a cyborg small."
icon_state = "cyborg_upgrade3"
/obj/item/borg/upgrade/shrink/action(mob/living/silicon/robot/R, user = usr)
/obj/item/borg/upgrade/shrink/action(mob/living/silicon/robot/borg, user = usr)
. = ..()
if(.)
if(R.hasShrunk)
if(borg.hasShrunk)
to_chat(usr, "<span class='warning'>This unit already has a shrink module installed!</span>")
return FALSE
if(R_TRAIT_SMALL in R.model.model_features)
if(R_TRAIT_SMALL in borg.model.model_features)
to_chat(usr, "<span class='warning'>This unit's chassis cannot be shrunk any further.</span>")
return FALSE
R.notransform = TRUE
var/prev_lockcharge = R.lockcharge
R.SetLockdown(1)
R.set_anchored(TRUE)
borg.notransform = TRUE
var/prev_lockcharge = borg.lockcharge
borg.SetLockdown(1)
borg.set_anchored(TRUE)
var/datum/effect_system/smoke_spread/smoke = new
smoke.set_up(1, R.loc)
smoke.set_up(1, borg.loc)
smoke.start()
sleep(2)
for(var/i in 1 to 4)
playsound(R, pick('sound/items/drill_use.ogg', 'sound/items/jaws_cut.ogg', 'sound/items/jaws_pry.ogg', 'sound/items/welder.ogg', 'sound/items/ratchet.ogg'), 80, TRUE, -1)
playsound(borg, pick('sound/items/drill_use.ogg', 'sound/items/jaws_cut.ogg', 'sound/items/jaws_pry.ogg', 'sound/items/welder.ogg', 'sound/items/ratchet.ogg'), 80, TRUE, -1)
sleep(12)
if(!prev_lockcharge)
R.SetLockdown(0)
R.set_anchored(FALSE)
R.notransform = FALSE
R.resize = 0.75
R.hasShrunk = TRUE
R.update_transform()
borg.SetLockdown(0)
borg.set_anchored(FALSE)
borg.notransform = FALSE
borg.resize = 0.75
borg.hasShrunk = TRUE
borg.update_transform()
/obj/item/borg/upgrade/shrink/deactivate(mob/living/silicon/robot/R, user = usr)
/obj/item/borg/upgrade/shrink/deactivate(mob/living/silicon/robot/borg, user = usr)
. = ..()
if (.)
if (R.hasShrunk)
R.hasShrunk = FALSE
R.resize = (4/3)
R.update_transform()
if (borg.hasShrunk)
borg.hasShrunk = FALSE
borg.resize = (4/3)
borg.update_transform()
/obj/item/borg/upgrade/surgerytools
name = "medical cyborg advanced surgery tools"
@@ -52,57 +52,80 @@
model_type = list(/obj/item/robot_model/medical)
model_flags = BORG_MODEL_MEDICAL
/obj/item/borg/upgrade/surgerytools/action(mob/living/silicon/robot/R)
/obj/item/borg/upgrade/surgerytools/action(mob/living/silicon/robot/borg)
. = ..()
if(.)
for(var/obj/item/retractor/RT in R.model.modules)
R.model.remove_module(RT, TRUE)
for(var/obj/item/hemostat/HS in R.model.modules)
R.model.remove_module(HS, TRUE)
for(var/obj/item/cautery/CT in R.model.modules)
R.model.remove_module(CT, TRUE)
for(var/obj/item/surgicaldrill/SD in R.model.modules)
R.model.remove_module(SD, TRUE)
for(var/obj/item/scalpel/SP in R.model.modules)
R.model.remove_module(SP, TRUE)
for(var/obj/item/circular_saw/CS in R.model.modules)
R.model.remove_module(CS, TRUE)
for(var/obj/item/retractor/RT in borg.model.modules)
borg.model.remove_module(RT, TRUE)
for(var/obj/item/hemostat/HS in borg.model.modules)
borg.model.remove_module(HS, TRUE)
for(var/obj/item/cautery/CT in borg.model.modules)
borg.model.remove_module(CT, TRUE)
for(var/obj/item/surgicaldrill/SD in borg.model.modules)
borg.model.remove_module(SD, TRUE)
for(var/obj/item/scalpel/SP in borg.model.modules)
borg.model.remove_module(SP, TRUE)
for(var/obj/item/circular_saw/CS in borg.model.modules)
borg.model.remove_module(CS, TRUE)
var/obj/item/scalpel/advanced/AS = new /obj/item/scalpel/advanced(R.model)
R.model.basic_modules += AS
R.model.add_module(AS, FALSE, TRUE)
var/obj/item/retractor/advanced/AR = new /obj/item/retractor/advanced(R.model)
R.model.basic_modules += AR
R.model.add_module(AR, FALSE, TRUE)
var/obj/item/cautery/advanced/AC = new /obj/item/cautery/advanced(R.model)
R.model.basic_modules += AC
R.model.add_module(AC, FALSE, TRUE)
var/obj/item/scalpel/advanced/AS = new /obj/item/scalpel/advanced(borg.model)
borg.model.basic_modules += AS
borg.model.add_module(AS, FALSE, TRUE)
var/obj/item/retractor/advanced/AR = new /obj/item/retractor/advanced(borg.model)
borg.model.basic_modules += AR
borg.model.add_module(AR, FALSE, TRUE)
var/obj/item/cautery/advanced/AC = new /obj/item/cautery/advanced(borg.model)
borg.model.basic_modules += AC
borg.model.add_module(AC, FALSE, TRUE)
/obj/item/borg/upgrade/surgerytools/deactivate(mob/living/silicon/robot/R, user = usr)
/obj/item/borg/upgrade/surgerytools/deactivate(mob/living/silicon/robot/borg, user = usr)
. = ..()
if(.)
for(var/obj/item/scalpel/advanced/AS in R.model.modules)
R.model.remove_module(AS, TRUE)
for(var/obj/item/retractor/advanced/AR in R.model.modules)
R.model.remove_module(AR, TRUE)
for(var/obj/item/cautery/advanced/AC in R.model.modules)
R.model.remove_module(AC, TRUE)
for(var/obj/item/scalpel/advanced/AS in borg.model.modules)
borg.model.remove_module(AS, TRUE)
for(var/obj/item/retractor/advanced/AR in borg.model.modules)
borg.model.remove_module(AR, TRUE)
for(var/obj/item/cautery/advanced/AC in borg.model.modules)
borg.model.remove_module(AC, TRUE)
var/obj/item/retractor/RT = new (R.model)
R.model.basic_modules += RT
R.model.add_module(RT, FALSE, TRUE)
var/obj/item/hemostat/HS = new (R.model)
R.model.basic_modules += HS
R.model.add_module(HS, FALSE, TRUE)
var/obj/item/cautery/CT = new (R.model)
R.model.basic_modules += CT
R.model.add_module(CT, FALSE, TRUE)
var/obj/item/surgicaldrill/SD = new (R.model)
R.model.basic_modules += SD
R.model.add_module(SD, FALSE, TRUE)
var/obj/item/scalpel/SP = new (R.model)
R.model.basic_modules += SP
R.model.add_module(SP, FALSE, TRUE)
var/obj/item/circular_saw/CS = new (R.model)
R.model.basic_modules += CS
R.model.add_module(CS, FALSE, TRUE)
var/obj/item/retractor/RT = new (borg.model)
borg.model.basic_modules += RT
borg.model.add_module(RT, FALSE, TRUE)
var/obj/item/hemostat/HS = new (borg.model)
borg.model.basic_modules += HS
borg.model.add_module(HS, FALSE, TRUE)
var/obj/item/cautery/CT = new (borg.model)
borg.model.basic_modules += CT
borg.model.add_module(CT, FALSE, TRUE)
var/obj/item/surgicaldrill/SD = new (borg.model)
borg.model.basic_modules += SD
borg.model.add_module(SD, FALSE, TRUE)
var/obj/item/scalpel/SP = new (borg.model)
borg.model.basic_modules += SP
borg.model.add_module(SP, FALSE, TRUE)
var/obj/item/circular_saw/CS = new (borg.model)
borg.model.basic_modules += CS
borg.model.add_module(CS, FALSE, TRUE)
/obj/item/borg/upgrade/affectionmodule
name = "borg affection module"
desc = "A module that upgrades the ability of borgs to display affection."
icon_state = "cyborg_upgrade3"
/obj/item/borg/upgrade/affectionmodule/action(mob/living/silicon/robot/borg)
. = ..()
if(.)
var/obj/item/dogborg_tongue/dogtongue = new /obj/item/dogborg_tongue(borg.model)
borg.model.basic_modules += dogtongue
borg.model.add_module(dogtongue, FALSE, TRUE)
var/obj/item/dogborg_nose/dognose = new /obj/item/dogborg_nose(borg.model)
borg.model.basic_modules += dognose
borg.model.add_module(dognose, FALSE, TRUE)
/obj/item/borg/upgrade/affectionmodule/deactivate(mob/living/silicon/robot/borg, user = usr)
. = ..()
if(.)
for(var/obj/item/dogborg_tongue/dogtongue in borg.model.modules)
borg.model.remove_module(dogtongue, TRUE)
for(var/obj/item/dogborg_nose/dognose in borg.model.modules)
borg.model.remove_module(dognose, TRUE)