From 2fcd1eccd3c5363a1107da4889821b606fe40f33 Mon Sep 17 00:00:00 2001 From: NanakoAC Date: Sun, 14 Aug 2016 22:36:28 +0100 Subject: [PATCH] Special Swords and amputation (#715) changes: rscadd: "Chainswords now have an improved animation." rscadd: "Chainswords and energy blades can no longer get embedded in people." rscadd: "Chainswords and energy blades can now be used as surgical tools to amputate limbs. Chainswords are messy. Energy blades will cut clean and cauterize the wound" tweak: "Surgery messages about amputating bodyparts are now very noticeable" tweak: "Cauterising wounds with a welding tool is much more reliable. Cauterising with a cigarette is no longer effective." bugfix: "Fixed chainsword held sprite not updating when toggled" --- code/game/objects/items.dm | 1 + .../objects/items/weapons/melee/energy.dm | 1 + code/game/objects/items/weapons/melee/misc.dm | 4 +- code/game/turfs/simulated/wall_attacks.dm | 5 ++ .../mob/living/carbon/human/human_defense.dm | 14 +++-- code/modules/surgery/generic.dm | 52 ++++++++++++++---- html/changelogs/Nanako-Swords.yml | 43 +++++++++++++++ icons/obj/weapons.dmi | Bin 31081 -> 31604 bytes 8 files changed, 103 insertions(+), 17 deletions(-) create mode 100644 html/changelogs/Nanako-Swords.yml diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 73377d7a517..529ca0b8e11 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -36,6 +36,7 @@ var/siemens_coefficient = 1 // for electrical admittance/conductance (electrocution checks and shit) var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N + var/can_embed = 1//If zero, this item/weapon cannot become embedded in people when you hit them with it var/list/armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) var/list/allowed = null //suit storage stuff. var/obj/item/device/uplink/hidden/hidden_uplink = null // All items can have an uplink hidden inside, just remember to add the triggers. diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 4ac80d56471..c1f31e82c00 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -6,6 +6,7 @@ sharp = 0 edge = 0 flags = NOBLOODY + can_embed = 0//No embedding pls /obj/item/weapon/melee/energy/proc/activate(mob/living/user) anchored = 1 diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 2e3412ceb8c..47de26179d3 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -31,6 +31,7 @@ attack_verb = list("chopped", "sliced", "shredded", "slashed", "cut", "ripped") hitsound = 'sound/weapons/bladeslice.ogg' var/active = 0 + can_embed = 0//A chainsword can slice through flesh and bone, and the direction can be reversed if it ever did get stuck /obj/item/weapon/melee/chainsword/attack_self(mob/user) active= !active @@ -47,7 +48,8 @@ hitsound = initial(hitsound) icon_state = initial(icon_state) slot_flags = initial(slot_flags) - + user.regenerate_icons() + /obj/item/weapon/melee/chainsword/suicide_act(mob/user) viewers(user) << "\red [user] is slicing \himself apart with the [src.name]! It looks like \he's trying to commit suicide." return (BRUTELOSS|OXYLOSS) diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index 29f4f803bab..59a4dc2dd52 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -214,6 +214,11 @@ if(!do_after(user,cut_delay)) return + + //This prevents runtime errors if someone clicks the same wall more than once + if (!istype(src, /turf/simulated/wall)) + return + user << "You remove the outer plating." dismantle_wall() user.visible_message("The wall was torn open by [user]!") diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index d01561afc62..b5bc4021b4b 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -302,13 +302,15 @@ emp_act if (armor) damage /= armor+1 - //blunt objects should really not be embedding in things unless a huge amount of force is involved - var/embed_chance = weapon_sharp? damage/I.w_class : damage/(I.w_class*3) - var/embed_threshold = weapon_sharp? 5*I.w_class : 15*I.w_class - //Sharp objects will always embed if they do enough damage. - if((weapon_sharp && damage > (10*I.w_class)) || (damage > embed_threshold && prob(embed_chance))) - affecting.embed(I) + if (I.can_embed)//If this weapon is allowed to embed in people + //blunt objects should really not be embedding in things unless a huge amount of force is involved + var/embed_chance = weapon_sharp? damage/I.w_class : damage/(I.w_class*3) + var/embed_threshold = weapon_sharp? 5*I.w_class : 15*I.w_class + + //Sharp objects will always embed if they do enough damage. + if((weapon_sharp && damage > (10*I.w_class)) || (damage > embed_threshold && prob(embed_chance))) + affecting.embed(I) return 1 //this proc handles being hit by a thrown atom diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index 52858b63e4f..ccf0e62bc0f 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -28,7 +28,8 @@ /obj/item/weapon/scalpel/laser3 = 95, \ /obj/item/weapon/scalpel/laser2 = 85, \ /obj/item/weapon/scalpel/laser1 = 75, \ - /obj/item/weapon/melee/energy/sword = 5 + //Removed energy sword from here. with a 5% chance of success, it's a feature nobody ever used anyway + //Energy swords amputate instead now ) priority = 2 min_duration = 90 @@ -283,11 +284,11 @@ target.apply_damage(12, BRUTE, affected, sharp=1) /datum/surgery_step/generic/cauterize - allowed_tools = list( + allowed_tools = list(//Fixed these tool probabilities because they were dumb /obj/item/weapon/cautery = 100, \ - /obj/item/clothing/mask/smokable/cigarette = 75, \ + /obj/item/clothing/mask/smokable/cigarette = 25, \ /obj/item/weapon/flame/lighter = 50, \ - /obj/item/weapon/weldingtool = 25 + /obj/item/weapon/weldingtool = 75 ) min_duration = 70 @@ -322,7 +323,9 @@ /datum/surgery_step/generic/amputate allowed_tools = list( /obj/item/weapon/circular_saw = 100, \ - /obj/item/weapon/material/hatchet = 75 + /obj/item/weapon/melee/energy = 100, \ + /obj/item/weapon/melee/chainsword = 100, \ + /obj/item/weapon/material/hatchet = 55 ) min_duration = 110 @@ -336,20 +339,49 @@ var/obj/item/organ/external/affected = target.get_organ(target_zone) if (affected == null) return 0 + + if (istype(tool, /obj/item/weapon/melee/energy)) + var/obj/item/weapon/melee/energy/E = tool + if (!E.active) + user << "\red The energy blade is not turned on!" + return 0 + + if (istype(tool, /obj/item/weapon/melee/chainsword)) + var/obj/item/weapon/melee/chainsword/E = tool + if (!E.active) + user << "\red The blades aren't spinning, you can't cut anything!" + return 0 + return !affected.cannot_amputate begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] is beginning to amputate [target]'s [affected.name] with \the [tool]." , \ - "You are beginning to cut through [target]'s [affected.amputation_point] with \the [tool].") + user.visible_message("[user] is beginning to amputate [target]'s [affected.name] with \the [tool]." , \ + "You begin to cut through [target]'s [affected.amputation_point] with \the [tool].") target.custom_pain("Your [affected.amputation_point] is being ripped apart!",1) ..() end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("\blue [user] amputates [target]'s [affected.name] at the [affected.amputation_point] with \the [tool].", \ - "\blue You amputate [target]'s [affected.name] with \the [tool].") - affected.droplimb(1,DROPLIMB_EDGE) + user.visible_message("[user] amputates [target]'s [affected.name] at the [affected.amputation_point] with \the [tool].", \ + "You amputate [target]'s [affected.name] with \the [tool].") + + var/clean = 1 + if (istype(tool, /obj/item/weapon/melee/chainsword))//Chainswords rip and tear, so the limb removal is not clean + clean = 0 + + var/var/obj/item/organ/external/parent = affected.parent//Cache the parent organ of the limb before we sever it + affected.droplimb(clean,DROPLIMB_EDGE) + + if (istype(tool, /obj/item/weapon/melee/energy))//Code for energy weapons cauterising the cut + spawn(1) + affected = parent + affected.open = 0//Close open wounds + for (var/datum/wound/lost_limb/W in affected.wounds) + W.disinfected = 1//Cleanse the wound of any germs + W.autoheal_cutoff = INFINITY//Allow the wound to auto-heal, regardless of damage + W.max_bleeding_stage = 0//Stop bleeding fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) diff --git a/html/changelogs/Nanako-Swords.yml b/html/changelogs/Nanako-Swords.yml new file mode 100644 index 00000000000..d8e1a4ae461 --- /dev/null +++ b/html/changelogs/Nanako-Swords.yml @@ -0,0 +1,43 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Nanako + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Chainswords now have an improved animation." + - rscadd: "Chainswords and energy blades can no longer get embedded in people." + - rscadd: "Chainswords and energy blades can now be used as surgical tools to amputate limbs. Chainswords are messy. Energy blades will cut clean and cauterize the wound" + - tweak: "Surgery messages about amputating bodyparts are now very noticeable" + - tweak: "Cauterising wounds with a welding tool is much more reliable. Cauterising with a cigarette is no longer effective." + - bugfix: "Fixed chainsword held sprite not updating when toggled" + + \ No newline at end of file diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 319b9cf7116d275d2d876f006789d75bb15f63c5..e3a468194f681c4175b93d637f22e332c112407a 100644 GIT binary patch delta 11576 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