From 6ce550dadf3a0ce290277a76493bc1fef1f1d7bb Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 22 Dec 2017 08:57:02 -0800 Subject: [PATCH] Clownborgs (#33590) --- code/datums/action.dm | 13 ++++++ code/game/objects/items/cosmetics.dm | 6 --- code/game/objects/items/pneumaticCannon.dm | 25 ++++++---- code/game/objects/items/robot/robot_items.dm | 3 ++ code/game/objects/items/signs.dm | 20 ++++++-- .../food_and_drinks/food/snacks_pie.dm | 8 +++- .../modules/mob/living/silicon/robot/robot.dm | 3 ++ .../mob/living/silicon/robot/robot_modules.dm | 31 ++++++++++++ .../chemistry/reagents/drink_reagents.dm | 16 +++++++ .../reagents/reagent_containers/borghydro.dm | 12 +++++ .../reagents/reagent_containers/spray.dm | 44 +++++++++++++++++- icons/mob/robots.dmi | Bin 93673 -> 97565 bytes 12 files changed, 158 insertions(+), 23 deletions(-) diff --git a/code/datums/action.dm b/code/datums/action.dm index f14945fa247..6a6376659d9 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -345,6 +345,19 @@ /datum/action/item_action/change name = "Change" +/datum/action/item_action/nano_picket_sign + name = "Retext Nano Picket Sign" + var/obj/item/picket_sign/S + +/datum/action/item_action/nano_picket_sign/New(Target) + ..() + if(istype(Target, /obj/item/picket_sign)) + S = Target + +/datum/action/item_action/nano_picket_sign/Trigger() + if(istype(S)) + S.retext(owner) + /datum/action/item_action/adjust /datum/action/item_action/adjust/New(Target) diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index 916e6ba500a..3e322ea0fa1 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -8,7 +8,6 @@ var/colour = "red" var/open = FALSE - /obj/item/lipstick/purple name = "purple lipstick" colour = "purple" @@ -22,7 +21,6 @@ name = "black lipstick" colour = "black" - /obj/item/lipstick/random name = "lipstick" icon_state = "random_lipstick" @@ -33,8 +31,6 @@ colour = pick("red","purple","lime","black","green","blue","white") name = "[colour] lipstick" - - /obj/item/lipstick/attack_self(mob/user) cut_overlays() to_chat(user, "You twist \the [src] [open ? "closed" : "open"].") @@ -103,7 +99,6 @@ else ..() - /obj/item/razor name = "electric razor" desc = "The latest and greatest power razor born from the science of shaving." @@ -112,7 +107,6 @@ flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_TINY - /obj/item/razor/proc/shave(mob/living/carbon/human/H, location = "mouth") if(location == "mouth") H.facial_hair_style = "Shaved" diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index 5af62e093b7..dc0a2fe286a 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -125,14 +125,14 @@ loadedWeightClass += I.w_class return TRUE -/obj/item/pneumatic_cannon/afterattack(atom/target, mob/living/carbon/human/user, flag, params) +/obj/item/pneumatic_cannon/afterattack(atom/target, mob/living/user, flag, params) if(flag && user.a_intent == INTENT_HARM) //melee attack return if(!istype(user)) return Fire(user, target) -/obj/item/pneumatic_cannon/proc/Fire(mob/living/carbon/human/user, var/atom/target) +/obj/item/pneumatic_cannon/proc/Fire(mob/living/user, var/atom/target) if(!istype(user) && !target) return var/discharge = 0 @@ -147,9 +147,10 @@ if(tank && !tank.air_contents.remove(gasPerThrow * pressureSetting)) to_chat(user, "\The [src] lets out a weak hiss and doesn't react!") return - if(user.has_disability(CLUMSY) && prob(75) && clumsyCheck) - user.visible_message("[user] loses their grip on [src], causing it to go off!", "[src] slips out of your hands and goes off!") - user.dropItemToGround(src, TRUE) + if(user.has_disability(CLUMSY) && prob(75) && clumsyCheck && iscarbon(user)) + var/mob/living/carbon/C = user + C.visible_message("[C] loses their grip on [src], causing it to go off!", "[src] slips out of your hands and goes off!") + C.dropItemToGround(src, TRUE) if(prob(10)) target = get_turf(user) else @@ -163,9 +164,10 @@ var/turf/T = get_target(target, get_turf(src)) playsound(src.loc, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) fire_items(T, user) - if(pressureSetting >= 3 && user) - user.visible_message("[user] is thrown down by the force of the cannon!", "[src] slams into your shoulder, knocking you down!") - user.Knockdown(60) + if(pressureSetting >= 3 && iscarbon(user)) + var/mob/living/carbon/C = user + C.visible_message("[C] is thrown down by the force of the cannon!", "[src] slams into your shoulder, knocking you down!") + C.Knockdown(60) /obj/item/pneumatic_cannon/proc/fire_items(turf/target, mob/user) if(fire_mode == PCANNON_FIREALL) @@ -271,3 +273,10 @@ selfcharge = TRUE charge_type = /obj/item/reagent_containers/food/snacks/pie/cream maxWeightClass = 60 //20 pies. + +/obj/item/pneumatic_cannon/pie/selfcharge/cyborg + name = "low velocity pie cannon" + automatic = FALSE + charge_type = /obj/item/reagent_containers/food/snacks/pie/cream/nostun + maxWeightClass = 6 //2 pies + charge_ticks = 2 //4 second/pie diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 614989b7072..aae0937bb72 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -355,6 +355,9 @@ var/hitdamage = 0 var/emaggedhitdamage = 3 +/obj/item/borg/lollipop/clown + emaggedhitdamage = 0 + /obj/item/borg/lollipop/equipped() check_amount() diff --git a/code/game/objects/items/signs.dm b/code/game/objects/items/signs.dm index 350daa0fc3f..65716f2f305 100644 --- a/code/game/objects/items/signs.dm +++ b/code/game/objects/items/signs.dm @@ -10,13 +10,23 @@ var/label = "" var/last_wave = 0 +/obj/item/picket_sign/cyborg + name = "metallic nano-sign" + desc = "A high tech picket sign used by silicons that can reprogram its surface at will. Probably hurts to get hit by, too." + force = 13 + resistance_flags = NONE + actions_types = list(/datum/action/item_action/nano_picket_sign) + +/obj/item/picket_sign/proc/retext(mob/user) + var/txt = stripped_input(user, "What would you like to write on the sign?", "Sign Label", null , 30) + if(txt && Adjacent(user)) + label = txt + name = "[label] sign" + desc = "It reads: [label]" + /obj/item/picket_sign/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/pen) || istype(W, /obj/item/toy/crayon)) - var/txt = stripped_input(user, "What would you like to write on the sign?", "Sign Label", null , 30) - if(txt) - label = txt - src.name = "[label] sign" - desc = "It reads: [label]" + retext(user) else return ..() diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 1255b16f1ec..4ce942aadf8 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -27,6 +27,7 @@ list_reagents = list("nutriment" = 6, "banana" = 5, "vitamin" = 2) tastes = list("pie" = 1) foodtype = GRAIN | DAIRY | SUGAR + var/stunning = TRUE /obj/item/reagent_containers/food/snacks/pie/cream/throw_impact(atom/hit_atom) . = ..() @@ -46,15 +47,18 @@ creamoverlay.icon_state = "creampie_lizard" else creamoverlay.icon_state = "creampie_human" - H.Knockdown(20) //splat! + if(stunning) + H.Knockdown(20) //splat! H.adjust_blurriness(1) H.visible_message("[H] is creamed by [src]!", "You've been creamed by [src]!") playsound(H, "desceration", 50, TRUE) - if (!H.creamed) // one layer at a time + if(!H.creamed) // one layer at a time H.add_overlay(creamoverlay) H.creamed = TRUE qdel(src) +/obj/item/reagent_containers/food/snacks/pie/cream/nostun + stunning = FALSE /obj/item/reagent_containers/food/snacks/pie/berryclafoutis name = "berry clafoutis" diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index be8607fc7b5..0a099443ddc 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -786,6 +786,9 @@ /mob/living/silicon/robot/modules/security set_module = /obj/item/robot_module/security +/mob/living/silicon/robot/modules/clown + set_module = /obj/item/robot_module/clown + /mob/living/silicon/robot/modules/peacekeeper set_module = /obj/item/robot_module/peacekeeper diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 3359ce75d30..84f90a0c6df 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -424,6 +424,37 @@ if(CL) CL.reagents.add_reagent("lube", 2 * coeff) +/obj/item/robot_module/clown + name = "Clown" + basic_modules = list( + /obj/item/device/assembly/flash/cyborg, + /obj/item/toy/crayon/rainbow, + /obj/item/device/instrument/bikehorn, + /obj/item/stamp/clown, + /obj/item/bikehorn, + /obj/item/bikehorn/airhorn, + /obj/item/paint/anycolor, + /obj/item/soap/nanotrasen, + /obj/item/pneumatic_cannon/pie/selfcharge/cyborg, + /obj/item/razor, //killbait material + /obj/item/lipstick/purple, + /obj/item/reagent_containers/spray/waterflower/cyborg, + /obj/item/borg/cyborghug/peacekeeper, + /obj/item/borg/lollipop/clown, + /obj/item/picket_sign/cyborg, + /obj/item/reagent_containers/borghypo/clown, + /obj/item/extinguisher/mini) + emag_modules = list( + /obj/item/reagent_containers/borghypo/clown/hacked, + /obj/item/reagent_containers/spray/waterflower/cyborg/hacked) + ratvar_modules = list( + /obj/item/clockwork/slab/cyborg, + /obj/item/clockwork/weapon/ratvarian_spear, + /obj/item/clockwork/replica_fabricator/cyborg) + moduleselect_icon = "service" + cyborg_base_icon = "clown" + hat_offset = -2 + /obj/item/robot_module/butler name = "Service" basic_modules = list( diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index b164fc0696d..0bb00f5b49c 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -172,6 +172,22 @@ M.emote("laugh") ..() +/datum/reagent/consumable/superlaughter + name = "Super Laughter" + id = "superlaughter" + description = "Funny until you're the one laughing." + metabolization_rate = 1.5 * REAGENTS_METABOLISM + color = "#FF4DD2" + taste_description = "laughter" + +/datum/reagent/consumable/superlaughter/on_mob_life(mob/living/carbon/M) + if(!iscarbon(M)) + return + if(prob(30)) + M.visible_message("[M] bursts out into a fit of uncontrollable laughter!", "You burst out in a fit of uncontrollable laughter!") + M.Stun(5) + ..() + /datum/reagent/consumable/potato_juice name = "Potato Juice" id = "potato" diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 0a99d9da6ec..e736c344db1 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -130,6 +130,18 @@ Borg Hypospray reagent_ids = list ("facid", "mutetoxin", "cyanide", "sodium_thiopental", "heparin", "lexorin") accepts_reagent_upgrades = FALSE +/obj/item/reagent_containers/borghypo/clown + name = "laughter injector" + desc = "Keeps the crew happy and productive!" + reagent_ids = list("laughter") + accepts_reagent_upgrades = FALSE + +/obj/item/reagent_containers/borghypo/clown/hacked + name = "laughter injector" + desc = "Keeps the crew so happy they don't work!" + reagent_ids = list("superlaughter") + accepts_reagent_upgrades = FALSE + /obj/item/reagent_containers/borghypo/syndicate name = "syndicate cyborg hypospray" desc = "An experimental piece of Syndicate technology used to produce powerful restorative nanites used to very quickly restore injuries of all types. Also metabolizes potassium iodide, for radiation poisoning, and morphine, for offense." diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 000537befdc..87d5a4bb671 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -18,16 +18,16 @@ var/spray_range = 3 //the range of tiles the sprayer will reach when in spray mode. var/stream_range = 1 //the range of tiles the sprayer will reach when in stream mode. var/stream_amount = 10 //the amount of reagents transfered when in stream mode. + var/can_fill_from_container = TRUE amount_per_transfer_from_this = 5 volume = 250 possible_transfer_amounts = list(5,10,15,20,25,30,50,100) - /obj/item/reagent_containers/spray/afterattack(atom/A, mob/user) if(istype(A, /obj/structure/sink) || istype(A, /obj/structure/janitorialcart) || istype(A, /obj/machinery/hydroponics)) return - if((A.is_drainable() && !A.is_refillable()) && get_dist(src,A) <= 1) + if((A.is_drainable() && !A.is_refillable()) && get_dist(src,A) <= 1 && can_fill_from_container) if(!A.reagents.total_volume) to_chat(user, "[A] is empty.") return @@ -204,6 +204,46 @@ /obj/item/reagent_containers/spray/waterflower/attack_self(mob/user) //Don't allow changing how much the flower sprays return +/obj/item/reagent_containers/spray/waterflower/cyborg + container_type = NONE + volume = 100 + list_reagents = list("water" = 100) + var/generate_amount = 5 + var/generate_type = "water" + var/last_generate = 0 + var/generate_delay = 10 //deciseconds + can_fill_from_container = FALSE + +/obj/item/reagent_containers/spray/waterflower/cyborg/hacked + name = "nova flower" + desc = "This doesn't look safe at all..." + list_reagents = list("clf3" = 3) + volume = 3 + generate_type = "clf3" + generate_amount = 1 + generate_delay = 40 //deciseconds + +/obj/item/reagent_containers/spray/waterflower/cyborg/Initialize() + . = ..() + START_PROCESSING(SSfastprocess, src) + +/obj/item/reagent_containers/spray/waterflower/cyborg/Destroy() + STOP_PROCESSING(SSfastprocess, src) + return ..() + +/obj/item/reagent_containers/spray/waterflower/cyborg/process() + if(world.time > last_generate + generate_delay) + return + last_generate = world.time + generate_reagents() + +/obj/item/reagent_containers/spray/waterflower/cyborg/empty() + to_chat(usr, "You can not empty this!") + return + +/obj/item/reagent_containers/spray/waterflower/cyborg/proc/generate_reagents() + reagents.add_reagent(generate_type, generate_amount) + //chemsprayer /obj/item/reagent_containers/spray/chemsprayer name = "chem sprayer" diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 5d8bfa629b1a585450433994df3855acc1b50306..fd145092a75380611ccc075a701e0fd75f78971d 100644 GIT binary patch delta 13323 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 NR1`GiOXbW%{}+PLHH!cM delta 9401 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 JOwJ_ue*i%{$+!Rj