From 6951ec37ed6f9182bd76744e66fe2c22d29e4770 Mon Sep 17 00:00:00 2001 From: "johnsonmt88@gmail.com" Date: Fri, 11 May 2012 02:21:00 +0000 Subject: [PATCH] Committed for Sieve: Reverted dismemberment - This is the majority of the files Reverted the gun change - You wont shoot yourself putting your gun away - You don't have to fire off all of your shots before hitting someone with your gun Reverted Tarajans - As requested Hotfix for the Holodeck. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3574 316c924e-a436-60f5-8080-3fe189b3f50e --- code/datums/configuration.dm | 4 - code/defines/obj/decal.dm | 12 - code/defines/procs/gamehelpers.dm | 5 +- code/game/atom_procs.dm | 30 - .../gamemodes/changeling/changeling_powers.dm | 6 +- code/game/machinery/Sleeper.dm | 36 +- .../machinery/computer/HolodeckControl.dm | 10 + code/game/objects/items/item.dm | 12 - code/modules/admin/admin_verbs.dm | 2 - code/modules/chemical/Chemistry-Reagents.dm | 5 - code/modules/critters/critter_defenses.dm | 9 +- code/modules/mob/living/carbon/carbon.dm | 3 - code/modules/mob/living/carbon/human/death.dm | 5 +- .../mob/living/carbon/human/examine.dm | 11 - code/modules/mob/living/carbon/human/human.dm | 245 ++------ .../living/carbon/human/human_attackhand.dm | 3 +- .../mob/living/carbon/human/human_damage.dm | 25 +- code/modules/mob/living/carbon/human/life.dm | 116 ---- code/modules/mob/living/carbon/human/say.dm | 2 - code/modules/mob/living/living.dm | 29 +- code/modules/mob/mob.dm | 13 - code/modules/mob/mob_defines.dm | 1 - code/modules/mob/mob_helpers.dm | 16 +- code/modules/mob/organ/organ.dm | 592 ++---------------- code/modules/mob/organ/organ_external.dm | 166 +---- code/modules/projectiles/gun.dm | 55 +- code/modules/projectiles/guns/projectile.dm | 12 +- .../projectiles/guns/projectile/shotgun.dm | 4 +- html/changelog.html | 11 + icons/mob/human.dmi | Bin 22842 -> 22848 bytes tgstation.dme | 3 - 31 files changed, 206 insertions(+), 1237 deletions(-) diff --git a/code/datums/configuration.dm b/code/datums/configuration.dm index e9c2d26b7d..d9c6d31e37 100644 --- a/code/datums/configuration.dm +++ b/code/datums/configuration.dm @@ -34,7 +34,6 @@ var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1. var/Ticklag = 0.9 var/Tickcomp = 0 - var/no_taj = 0 var/list/mode_names = list() var/list/modes = list() // allowed modes @@ -306,9 +305,6 @@ if("tickcomp") Tickcomp = 1 - if("no_taj") - no_taj = 1 - else diary << "Unknown setting in configuration: '[name]'" diff --git a/code/defines/obj/decal.dm b/code/defines/obj/decal.dm index 3ee485fd45..11d72fd9ff 100644 --- a/code/defines/obj/decal.dm +++ b/code/defines/obj/decal.dm @@ -71,18 +71,6 @@ if(B != src) del(B) - -/obj/effect/decal/cleanable/blood/drip - name = "drips of blood" - desc = "It's red." - gender = PLURAL - density = 0 - anchored = 1 - layer = 2 - icon = 'drip.dmi' - icon_state = "1" -// track_amt = 0 - /obj/effect/decal/cleanable/blood/splatter random_icon_states = list("gibbl1", "gibbl2", "gibbl3", "gibbl4", "gibbl5") diff --git a/code/defines/procs/gamehelpers.dm b/code/defines/procs/gamehelpers.dm index f6638eef1c..6f4a89f1c3 100644 --- a/code/defines/procs/gamehelpers.dm +++ b/code/defines/procs/gamehelpers.dm @@ -244,7 +244,7 @@ proc/isInSight(var/atom/A, var/atom/B) return 0 -proc/doafterattack(obj/target , obj/source) +/*proc/doafterattack(obj/target , obj/source) if (istype(target, /obj/item/weapon/storage/ )) return 0 @@ -256,4 +256,5 @@ proc/doafterattack(obj/target , obj/source) return 0 else - return 1 \ No newline at end of file + return 1 +{R}*/ \ No newline at end of file diff --git a/code/game/atom_procs.dm b/code/game/atom_procs.dm index fd8cdb9893..c9510751de 100644 --- a/code/game/atom_procs.dm +++ b/code/game/atom_procs.dm @@ -644,25 +644,6 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl if ( !animal.restrained() ) attack_animal(animal) - - - - - - - - - - - - - - - - - - - /atom/DblClick(location, control, params) //TODO: DEFERRED: REWRITE // world << "checking if this shit gets called at all" @@ -935,18 +916,7 @@ var/using_new_click_proc = 0 //TODO ERRORAGE (This is temporary, while the DblCl // ------- YOU DO NOT HAVE AN ITEM IN YOUR HAND ------- if (istype(usr, /mob/living/carbon/human)) // ------- YOU ARE HUMAN ------- - if(usr.hand) // if he's using his left hand. - var/datum/organ/external/temp = usr:get_organ("l_hand") - if(temp.destroyed) - usr << "\blue You look at your stump." - return - else - var/datum/organ/external/temp = usr:get_organ("r_hand") - if(temp.destroyed) - usr << "\blue You look at your stump." - return src.attack_hand(usr, usr.hand) - usr:afterattack(src, usr, (t5 ? 1 : 0), params) else // ------- YOU ARE NOT HUMAN. WHAT ARE YOU - DETERMINED HERE AND PROPER ATTACK_MOBTYPE CALLED ------- if (istype(usr, /mob/living/carbon/monkey)) diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 85965decb1..f28c4b3270 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -429,7 +429,7 @@ flick("h2monkey", animation) sleep(48) //animation = null - var/mob/living/carbon/human/tajaran/Emissary/O = new /mob/living/carbon/human/tajaran/Emissary( src ) + var/mob/living/carbon/human/O = new /mob/living/carbon/human( src )//Removed Emissary shit -Sieve{R} del(animation) O.real_name = usr.real_name @@ -495,7 +495,7 @@ new_objective.owner = O.mind O.mind.objectives += new_objective - spawn(0) +/* spawn(0) while(emergency_shuttle.online == 0) sleep(10) command_alert("Authorization codes recieved, confirming hostile entity terminated. The emergancy shuttle is now departing.") @@ -512,7 +512,7 @@ sleep(10) if((locate(/mob/living/carbon/human/tajaran/Emissary) in locate(/area/shuttle/escape/centcom)) || (locate(/mob/living/carbon/human/tajaran/Emissary) in locate(/area/centcom/evac)) || (locate(/mob/living/carbon/human/tajaran/Emissary) in locate(/area/centcom/control) ) ) command_alert("What the fu- Shoot it! SHOOT IT! CENTRAL COMMAND TRANSMITTING DIST- *static* Nevermind previous transmission, Nanotrasen. We're all good here. Subject contained. Standing down alert status.") - +Tarjan shit, not recoding this -Sieve{R}*/ /client/proc/changeling_fakedeath() set category = "Changeling" diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 4080275f98..a3d2f3ef7d 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -72,7 +72,7 @@ dat += text("Dermaline: [] units
", occupant.reagents.get_reagent_amount("dermaline")) dat += text("Bicaridine: [] units
", occupant.reagents.get_reagent_amount("bicaridine")) dat += text("Dexalin: [] units
", occupant.reagents.get_reagent_amount("dexalin")) - dat += text("
Refresh meter readings each second
Inject Inaprovaline
Inject Soporific
Inject Dermaline
Inject Bicaridine
Inject Dexalin
Regenerate Organs", src, src, src, src, src, src,src) + dat += text("
Refresh meter readings each second
Inject Inaprovaline
Inject Soporific
Inject Dermaline
Inject Bicaridine
Inject Dexalin", src, src, src, src, src, src) else dat += "The sleeper is empty." dat += text("

Close", user) @@ -98,43 +98,11 @@ src.connected.inject_bicaridine(usr) if (href_list["dex"]) src.connected.inject_dexalin(usr) - if (href_list["organ"]) - if(istype(src.connected.occupant,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = src.connected.occupant - for(var/datum/organ/external/e in H.organs) - if(e.destroyed) - usr << "Please wait, regenerating limb. Administring nanite-bath. Do not eject occupant until told to." - sleep(100) - if(!src.connected.occupant) - return - e.destroyed = 0 - // e.brute_dam = 0.0 - // e.burn_dam = 0.0 - e.bandaged = 0.0 - e.max_damage = initial(e.max_damage) - e.bleeding = 0 - e.open = 0 - e.broken = 0 - e.destroyed = 0 - e.perma_injury = 0 - - if(e.wounds) - for(var/datum/organ/wound/W in e.wounds) - del(W) - e.update_icon() - - H.vessel.clear_reagents() - H.vessel.add_reagent("blood",560) - H.update_body() - H.update_face() - H.UpdateDamageIcon() - usr << "Run complete. Limbs regenerated. Additional healing may be required." else if(src.connected.occupant.health > -100) if (href_list["inap"]) src.connected.inject_inap(usr) - else - //if (href_list["stox"] || href_list["derm"] || href_list["bic"] || href_list["dex"]) + if (href_list["stox"] || href_list["derm"] || href_list["bic"] || href_list["dex"]) usr << "\red \b this person is not in good enough condition for sleepers to be effective! Use another means of treatment, such as cryogenics!" else usr << "\red \b This person has no life for to preserve anymore. Take them to a department capable of reanimating them." diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index f00e864cdc..cd6657d2a4 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -7,6 +7,7 @@ var/active = 0 var/list/holographic_items = list() var/damaged = 0 + var/last_change = 0 attack_ai(var/mob/user as mob) @@ -233,6 +234,15 @@ /obj/machinery/computer/HolodeckControl/proc/loadProgram(var/area/A) + if(world.time < (last_change + 25)) + if(world.time < (last_change + 15))//To prevent super-spam clicking, reduced process size and annoyance -Sieve + return + for(var/mob/M in range(3,src)) + M.show_message("\b ERROR. Recalibrating projetion apparatus.") + last_change = world.time + return + + last_change = world.time active = 1 for(var/item in holographic_items) diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm index b20cc063e5..d0e9c34b57 100644 --- a/code/game/objects/items/item.dm +++ b/code/game/objects/items/item.dm @@ -93,18 +93,6 @@ /obj/item/attack_hand(mob/user as mob) if (!user) return - if (user.hand) - if(ishuman(user)) - var/datum/organ/external/temp = user:get_organ("l_hand") - if(temp.destroyed) - user << "\blue You look at your stump." - return - else - if(ishuman(user)) - var/datum/organ/external/temp = user:get_organ("r_hand") - if(temp.destroyed) - user << "\blue You look at your stump." - if (istype(src.loc, /obj/item/weapon/storage)) for(var/mob/M in range(1, src.loc)) if (M.s_active == src.loc) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 56ac32b702..99aaf33581 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -189,7 +189,6 @@ verbs += /client/proc/toggleadminhelpsound verbs += /proc/possess verbs += /proc/release - verbs += /client/proc/make_tajaran else return @@ -420,7 +419,6 @@ verbs -= /client/proc/togglebuildmodeself verbs -= /client/proc/kill_airgroup verbs -= /client/proc/debug_master_controller - verbs -= /client/proc/make_tajaran return diff --git a/code/modules/chemical/Chemistry-Reagents.dm b/code/modules/chemical/Chemistry-Reagents.dm index 60a6f05f0d..426bbc5a0d 100644 --- a/code/modules/chemical/Chemistry-Reagents.dm +++ b/code/modules/chemical/Chemistry-Reagents.dm @@ -661,7 +661,6 @@ datum affecting.take_damage(25, 0) M:UpdateDamageIcon() M:emote("scream") - M:disfigure_face() else M.take_organ_damage(min(15, volume * 2)) // uses min() and volume to make sure they aren't being sprayed in trace amounts (1 unit != insta rape) -- Doohl else @@ -712,8 +711,6 @@ datum affecting.take_damage(15, 0) M:UpdateDamageIcon() M:emote("scream") - if(prob(15)) - M:disfigure_face() else if(istype(M, /mob/living/carbon/monkey) && M:wear_mask) del (M:wear_mask) @@ -730,8 +727,6 @@ datum affecting.take_damage(15, 0) M:UpdateDamageIcon() M:emote("scream") - if(prob(15)) - M:disfigure_face() else M.take_organ_damage(min(15, volume * 4)) diff --git a/code/modules/critters/critter_defenses.dm b/code/modules/critters/critter_defenses.dm index 766a9d63b5..f370053ca7 100644 --- a/code/modules/critters/critter_defenses.dm +++ b/code/modules/critters/critter_defenses.dm @@ -22,12 +22,7 @@ Contains the procs that control attacking critters if (user.a_intent == "hurt") TakeDamage(rand(1,2) * brutevuln) - if(istajaran(user)) - for(var/mob/O in viewers(src, null)) - O.show_message("\red [user] has slashed at [src]!", 1) - playsound(src.loc, 'slice.ogg', 25, 1, -1) - - else if(istype(user, /mob/living/carbon/human)) + if(istype(user, /mob/living/carbon/human)) for(var/mob/O in viewers(src, null)) O.show_message("\red [user] has punched [src]!", 1) playsound(src.loc, pick('punch1.ogg','punch2.ogg','punch3.ogg','punch4.ogg'), 100, 1) @@ -37,8 +32,6 @@ Contains the procs that control attacking critters O.show_message("\red [user] has slashed at [src]!", 1) playsound(src.loc, 'slice.ogg', 25, 1, -1) - - else for(var/mob/O in viewers(src, null)) O.show_message("\red [user] has bit [src]!", 1) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 633debdac1..0a9b872d6c 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -188,9 +188,6 @@ status += "blistered" else if(burndamage > 0) status += "numb" - if(org.destroyed) - status = "MISSING!" - if(status == "") status = "OK" src.show_message(text("\t []My [] is [].",status=="OK"?"\blue ":"\red ",org.getDisplayName(),status),1) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 547685a2b1..d7eeb6c75f 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -99,11 +99,8 @@ /mob/living/carbon/human/proc/ChangeToHusk() if(mutations & HUSK) return - var/datum/organ/external/head/head = get_organ("head") - if(head) - head.disfigured = 1 - name = get_visible_name() mutations |= HUSK + real_name = "Unknown" update_body() return diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index e6c00e13f5..528f719d81 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -221,18 +221,7 @@ msg += "[t_He] [t_is] plump and delicious looking - Like a fat little piggy. A tasty piggy.\n" else msg += "[t_He] [t_is] quite chubby.\n" - /* - if(src.bloodloss) - msg += "[t_He] [t_is] bleeding profusely!" - for(var/datum/organ/external/organ in organs) - if(!temp.bleeding || temp.robot) //THAT WAS DUMB. - continue - if(temp.wounds) - for(var/datum/organ/wound/W in temp.wounds) - if(W.wound_size && W.bleeding) - blood_max += W.wound_size -*/ msg += "" if (src.stat == UNCONSCIOUS) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index aee89b2d00..d7b8ef862b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -54,9 +54,6 @@ var/mutantrace = null var/list/organs = list() - var/bloodloss = 0 - var/datum/reagents/vessel - var/pale = 0 /mob/living/carbon/human/dummy @@ -67,9 +64,6 @@ /mob/living/carbon/human/New() - ..() - - var/datum/reagents/R = new/datum/reagents(1000) reagents = R @@ -78,7 +72,24 @@ if(!dna) dna = new /datum/dna(null) - make_human_organs() + var/datum/organ/external/chest/chest = new /datum/organ/external/chest(src) + var/datum/organ/external/head/head = new /datum/organ/external/head(src) + var/datum/organ/external/l_arm/l_arm = new /datum/organ/external/l_arm(src) + var/datum/organ/external/r_arm/r_arm = new /datum/organ/external/r_arm(src) + var/datum/organ/external/r_leg/r_leg = new /datum/organ/external/r_leg(src) + var/datum/organ/external/l_leg/l_leg = new /datum/organ/external/l_leg(src) + chest.owner = src + head.owner = src + r_arm.owner = src + l_arm.owner = src + r_leg.owner = src + l_leg.owner = src + organs += chest + organs += head + organs += r_arm + organs += l_arm + organs += r_leg + organs += l_leg var/g = "m" if (gender == MALE) @@ -90,60 +101,16 @@ g = "m" spawn(1) - stand_icon = new /icon('human.dmi', "body_[g]_s") - lying_icon = new /icon('human.dmi', "body_[g]_l") + if(!stand_icon) + stand_icon = new /icon('human.dmi', "body_[g]_s") + if(!lying_icon) + lying_icon = new /icon('human.dmi', "body_[g]_l") icon = stand_icon update_clothing() src << "\blue Your icons have been generated!" - - spawn(10) // Failsafe for.. weirdness. - update_clothing() - update_body() - - vessel = new/datum/reagents(600) - vessel.my_atom = src - vessel.add_reagent("blood",560) - spawn(1) - fixblood() - - -/mob/living/carbon/human/proc/fixblood() - for(var/datum/reagent/blood/B in vessel.reagent_list) - if(B.id == "blood") - B.data = list("donor"=src,"viruses"=null,"blood_DNA"=dna.unique_enzymes,"blood_type"=dna.b_type,"resistances"=null,"trace_chem"=null) - -/mob/living/carbon/human/proc/drip(var/amt as num) - if(!amt) - return - - var/amm = 0.1 * amt - var/turf/T = get_turf(src) - var/list/obj/effect/decal/cleanable/blood/drip/nums = list() - var/list/iconL = list("1","2","3","4","5") - - vessel.remove_reagent("blood",amm) - - for(var/obj/effect/decal/cleanable/blood/drip/G in T) - nums += G - iconL.Remove(G.icon_state) - if(nums.len >= 3) - var/obj/effect/decal/cleanable/blood/drip/D = pick(nums) - D.blood_DNA.len++ - D.blood_DNA[D.blood_DNA.len] = list(dna.unique_enzymes,dna.b_type) -// if(virus2) -// D.virus2 = virus2.getcopy() - return - - var/obj/effect/decal/cleanable/blood/drip/this = new(T) - this.icon_state = pick(iconL) - this.blood_DNA = list(list(dna.unique_enzymes,dna.b_type)) -// this.blood_owner = src - -// if(virus2) -// this.virus2 = virus2.getcopy() - + ..() // organStructure = new /obj/effect/organstructure/human(src) @@ -235,14 +202,6 @@ var/hungry = (500 - nutrition)/5 // So overeat would be 100 and default level would be 80 if (hungry >= 70) tally += hungry/50 - - for(var/organ in list("l_leg","l_foot","r_leg","r_foot")) - var/datum/organ/external/o = get_organ(organ) - if(o.broken) - tally += 6 - if(o.destroyed) - tally += 12 - if(wear_suit) tally += wear_suit.slowdown @@ -1236,104 +1195,39 @@ return 1 return 0 -#define BS12TEST 1 /mob/living/carbon/human/proc/update_body() + if(stand_icon) + del(stand_icon) + if(lying_icon) + del(lying_icon) - if(!BS12TEST) + if (mutantrace) + return - if(stand_icon) - del(stand_icon) - if(lying_icon) - del(lying_icon) + var/g = "m" + if (gender == MALE) + g = "m" + else if (gender == FEMALE) + g = "f" - if (mutantrace) - return + stand_icon = new /icon('human.dmi', "blank") + lying_icon = new /icon('human.dmi', "blank") - var/g = "m" - if (gender == MALE) - g = "m" - else if (gender == FEMALE) - g = "f" + var/husk = (mutations & HUSK) + var/obese = (mutations & FAT) - stand_icon = new /icon('human.dmi', "blank") - lying_icon = new /icon('human.dmi', "blank") - - var/husk = (mutations & HUSK) - var/obese = (mutations & FAT) - - if (husk) - stand_icon.Blend(new /icon('human.dmi', "husk_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon('human.dmi', "husk_l"), ICON_OVERLAY) - else if(obese) - stand_icon.Blend(new /icon('human.dmi', "fatbody_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY) - else - stand_icon.Blend(new /icon('human.dmi', "chest_[g]_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon('human.dmi', "chest_[g]_l"), ICON_OVERLAY) - - for (var/part in list("head", "arm_left", "arm_right", "hand_left", "hand_right", "leg_left", "leg_right", "foot_left", "foot_right")) - stand_icon.Blend(new /icon('human.dmi', "[part]_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon('human.dmi', "[part]_l"), ICON_OVERLAY) - - stand_icon.Blend(new /icon('human.dmi', "groin_[g]_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon('human.dmi', "groin_[g]_l"), ICON_OVERLAY) - - // Skin tone - if (s_tone >= 0) - stand_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) - lying_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) - else - stand_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) - lying_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) - - if (underwear < 6 && underwear > 0) - if(!obese) - stand_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon('human.dmi', "underwear[underwear]_[g]_l"), ICON_OVERLAY) + if (husk) + stand_icon.Blend(new /icon('human.dmi', "husk_s"), ICON_OVERLAY) + lying_icon.Blend(new /icon('human.dmi', "husk_l"), ICON_OVERLAY) + else if(obese) + stand_icon.Blend(new /icon('human.dmi', "fatbody_s"), ICON_OVERLAY) + lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY) +/* else - if(stand_icon) - del(stand_icon) - if(lying_icon) - del(lying_icon) - - if (mutantrace) - return - - var/g = "m" - if (gender == MALE) - g = "m" - else if (gender == FEMALE) - g = "f" - - stand_icon = new /icon('human.dmi', "torso_[g]_s") - lying_icon = new /icon('human.dmi', "torso_[g]_l") - - var/husk = (mutations & HUSK) - var/obese = (mutations & FAT) - stand_icon.Blend(new /icon('human.dmi', "chest_[g]_s"), ICON_OVERLAY) lying_icon.Blend(new /icon('human.dmi', "chest_[g]_l"), ICON_OVERLAY) - var/datum/organ/external/head = get_organ("head") - if(!head.destroyed) - stand_icon.Blend(new /icon('human.dmi', "head_[g]_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon('human.dmi', "head_[g]_l"), ICON_OVERLAY) - - for(var/datum/organ/external/part in organs) - if(!istype(part, /datum/organ/external/groin) \ - && !istype(part, /datum/organ/external/chest) \ - && !istype(part, /datum/organ/external/head) \ - && !part.destroyed) - var/icon/temp = new /icon('human.dmi', "[part.icon_name]_s") - if(part.robot) - temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) - stand_icon.Blend(temp, ICON_OVERLAY) - temp = new /icon('human.dmi', "[part.icon_name]_l") - if(part.robot) - temp.MapColors(rgb(77,77,77), rgb(150,150,150), rgb(28,28,28), rgb(0,0,0)) - lying_icon.Blend(temp , ICON_OVERLAY) - stand_icon.Blend(new /icon('human.dmi', "groin_[g]_s"), ICON_OVERLAY) lying_icon.Blend(new /icon('human.dmi', "groin_[g]_l"), ICON_OVERLAY) @@ -1341,30 +1235,31 @@ var/icon/husk_s = new /icon('human.dmi', "husk_s") var/icon/husk_l = new /icon('human.dmi', "husk_l") - for(var/datum/organ/external/part in organs) - if(!istype(part, /datum/organ/external/groin) \ - && !istype(part, /datum/organ/external/chest) \ - && !istype(part, /datum/organ/external/head) \ - && part.destroyed) - husk_s.Blend(new /icon('dam_mask.dmi', "[part.icon_name]"), ICON_SUBTRACT) - husk_l.Blend(new /icon('dam_mask.dmi', "[part.icon_name]2"), ICON_SUBTRACT) - stand_icon.Blend(husk_s, ICON_OVERLAY) lying_icon.Blend(husk_l, ICON_OVERLAY) else if(obese) stand_icon.Blend(new /icon('human.dmi', "fatbody_s"), ICON_OVERLAY) lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY) +{R}*/ + else + stand_icon.Blend(new /icon('human.dmi', "chest_[g]_s"), ICON_OVERLAY) + lying_icon.Blend(new /icon('human.dmi', "chest_[g]_l"), ICON_OVERLAY) - // Skin tone - if (s_tone >= 0) - stand_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) - lying_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) - else - stand_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) - lying_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) -// if(pale) -// stand_icon.Blend(rgb(100,100,100)) -// lying_icon.Blend(rgb(100,100,100)) + for (var/part in list("arm_left", "arm_right", "hand_left", "hand_right", "leg_left", "leg_right", "foot_left", "foot_right")) + stand_icon.Blend(new /icon('human.dmi', "[part]_s"), ICON_OVERLAY) + lying_icon.Blend(new /icon('human.dmi', "[part]_l"), ICON_OVERLAY) + + for(var/part in list("head","groin")) + stand_icon.Blend(new /icon('human.dmi', "[part]_[g]_s"), ICON_OVERLAY) + lying_icon.Blend(new /icon('human.dmi', "[part]_[g]_l"), ICON_OVERLAY) + + // Skin tone + if (s_tone >= 0) + stand_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) + lying_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD) + else + stand_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) + lying_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT) if (underwear < 6 && underwear > 0) if(!obese) @@ -1375,13 +1270,7 @@ /mob/living/carbon/human/proc/update_face() - if(organs) - var/datum/organ/external/head = get_organ("head") - if(head) - if(head.destroyed) - del(face_standing) - del(face_lying) - return + if(!facial_hair_style || !hair_style) return//Seems people like to lose their icons, this should stop the runtimes for now del(face_standing) del(face_lying) @@ -2181,7 +2070,7 @@ It can still be worn/put on as normal. //repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere /mob/living/carbon/human/proc/get_visible_name() - if ((wear_mask && !(wear_mask.see_face)) || (head && !(head.see_face))) // can't see their face + if ((wear_mask && !(wear_mask.see_face))) //Making this work -Sieve return get_id_name("Unknown") else var/face_name = get_face_name() @@ -2193,7 +2082,7 @@ It can still be worn/put on as normal. //Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when polyacided or when updating a human's name variable /mob/living/carbon/human/proc/get_face_name() var/datum/organ/external/head/head = get_organ("head") - if(!head || head.disfigured) //no face! + if(!head) //no face! return "Unknown" else return "[real_name]" diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 23bdbf3499..9e5360b97a 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -101,6 +101,7 @@ if("hurt") M.attack_log += text("\[[time_stamp()]\] Punched [src.name] ([src.ckey])") src.attack_log += text("\[[time_stamp()]\] Has been punched by [M.name] ([M.ckey])") + log_attack("[M.name] ([M.ckey]) punched [src.name] ([src.ckey])") @@ -113,8 +114,6 @@ else attack_verb = "punch" - if(istajaran(M)) - attack_verb = "slash" var/damage = rand(0, 9) if(!damage) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 2a99ce6260..0cc56c0070 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -1,12 +1,3 @@ -//Instead of setting real_name = "Unknown", use this when necessary. -//It will prevent the cloned-as-unknown bug and various other derpy things. -/mob/living/carbon/human/proc/disfigure_face() - var/datum/organ/external/head/head = get_organ("head") - if(head && !head.disfigured) - head.disfigured = 1 - name = get_visible_name() - src << "\red Your face has become disfigured." - /mob/living/carbon/human/proc/HealDamage(zone, brute, burn) var/datum/organ/external/E = get_organ(zone) if(istype(E, /datum/organ/external)) @@ -36,37 +27,33 @@ /mob/living/carbon/human/proc/get_organ(var/zone) - if(!zone) - zone = "chest" + if(!zone) zone = "chest" for(var/datum/organ/external/O in organs) if(O.name == zone) return O return null -/mob/living/carbon/human/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0 , var/weapon = null) +/mob/living/carbon/human/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0) if((damagetype != BRUTE) && (damagetype != BURN)) ..(damage, damagetype, def_zone, blocked) return 1 - if(blocked >= 2) - return 0 + if(blocked >= 2) return 0 var/datum/organ/external/organ = null if(isorgan(def_zone)) organ = def_zone else - if(!def_zone) - def_zone = ran_zone(def_zone) + if(!def_zone) def_zone = ran_zone(def_zone) organ = get_organ(check_zone(def_zone)) - if(!organ) - return 0 + if(!organ) return 0 if(blocked) damage = (damage/(blocked+1)) switch(damagetype) if(BRUTE) - organ.take_damage(damage, 0, is_sharp(weapon), weapon) + organ.take_damage(damage, 0) if(BURN) organ.take_damage(0, damage) UpdateDamageIcon() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index fdf1d94acb..45c1dbdbbc 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -7,7 +7,6 @@ fire_alert = 0 temperature_alert = 0 - organDelay = 0 /mob/living/carbon/human/Life() @@ -719,58 +718,6 @@ handle_regular_status_updates() // health = 100 - (getOxyLoss() + getToxLoss() + getFireLoss() + getBruteLoss() + getCloneLoss()) - if(!organDelay) - var/leg_tally = 2 - for(var/datum/organ/external/E in organs) - - E.process() - - if(E.robot && prob(E.brute_dam + E.burn_dam)) - if(E.name == "l_hand" || E.name == "l_arm") - if(hand && equipped()) - drop_item() - emote("custom v drops what they were holding, their limb malfunctioning!") - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, src) - spark_system.attach(src) - spark_system.start() - spawn(10) - del(spark_system) - else if(E.name == "r_hand" || E.name == "r_arm") - if(!hand && equipped()) - drop_item() - emote("custom v drops what they were holding, their limb malfunctioning!") - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, src) - spark_system.attach(src) - spark_system.start() - spawn(10) - del(spark_system) - else if(E.name == "l_leg" || E.name == "l_foot" \ - || E.name == "r_leg" || E.name == "r_foot" && !lying) - leg_tally-- // let it fail even if just foot&leg - if(E.broken || E.destroyed) - if(E.name == "l_hand" || E.name == "l_arm") - if(hand && equipped()) - drop_item() - emote("scream") - else if(E.name == "r_hand" || E.name == "r_arm") - if(!hand && equipped()) - drop_item() - emote("scream") - else if(E.name == "l_leg" || E.name == "l_foot" \ - || E.name == "r_leg" || E.name == "r_foot" && !lying) - leg_tally-- // let it fail even if just foot&leg - - // can't stand - if(leg_tally == 0 && !weakened && !(lying || resting)) - emote("scream") - emote("collapse") - weakened = 10 - - organDelay = 5 - else - organDelay-- if(getOxyLoss() > 50) Paralyse(3) @@ -786,38 +733,6 @@ Paralyse(5) if (stat != 2) //Alive. - /* - var/blood_volume = round(vessel.get_reagent_amount("blood")) - if(bloodloss) - drip(bloodloss) - if(!blood_volume) - bloodloss = 0 - else if(blood_volume > 448) - if(pale) - pale = 0 - update_body() - else if(blood_volume <= 448 && blood_volume > 336) - adjustToxLoss(1) - if(!pale) - pale = 1 - update_body() - var/word = pick("dizzy","woosey","faint") - src << "\red You feel [word]" - if(prob(1)) - var/word = pick("dizzy","woosey","faint") - src << "\red You feel [word]" - else if(blood_volume <= 336 && blood_volume > 244) - adjustToxLoss(5) - if(!pale) - pale = 1 - update_body() - eye_blurry += 6 - if(prob(15)) - paralysis += rand(1,3) - else if(blood_volume <= 244 && blood_volume > 122) - if(toxloss <= 101) - toxloss = 101 - */ if (silent) silent-- @@ -869,33 +784,6 @@ if (stuttering) stuttering-- - - //Carn: marker 4# - var/datum/organ/external/head/head = get_organ("head") - if(head && !head.disfigured) - if(head.brute_dam >= 45 || head.burn_dam >= 45) - emote("scream") - disfigure_face() -// face_op_stage = 0.0 - /* - var/blood_max = 0 - for(var/datum/organ/external/temp in organs) - if(!temp.bleeding || temp.robot) //THAT WAS DUMB. - continue - // else - // if(prob(35)) - // bloodloss += rand(1,10) - if(temp.wounds) - for(var/datum/organ/wound/W in temp.wounds) - if(W.wound_size && W.bleeding) - blood_max += W.wound_size - if(temp.destroyed && !temp.gauzed) - blood_max += 50 //Yer missing a fucking limb. - bloodloss = min(bloodloss+1,(blood_max)) - */ - - - if (eye_blind) eye_blind-- blinded = 1 @@ -994,10 +882,6 @@ if (mutantrace == "lizard" || mutantrace == "metroid") see_in_dark = 3 see_invisible = 1 - - else if (istajaran(src)) - see_in_dark = 8 - else if (druggy) // If drugged~ see_in_dark = 2 //see_invisible regulated by drugs themselves. diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 9c0e135a51..3255689111 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -88,6 +88,4 @@ return 1 if (istype(other, /mob/living/carbon/metroid)) return 1 - if (istype(other, /mob/living/carbon/human/tajaran)) - return 1 return ..() \ No newline at end of file diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 9380005c84..9a3c418b3a 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -161,37 +161,10 @@ src.nutrition = 400 src.bodytemperature = 310 //src.health = 100 - if(ishuman(src)) - var/mob/living/carbon/human/H = src - for(var/datum/organ/external/e in src:organs) - if(e.destroyed) - e.destroyed = 0 - e.brute_dam = 0.0 - e.burn_dam = 0.0 - e.bandaged = 0.0 - e.max_damage = initial(e.max_damage) - e.bleeding = 0 - e.open = 0 - e.broken = 0 - e.destroyed = 0 - e.perma_injury = 0 - - if(e.wounds) - for(var/datum/organ/wound/W in e.wounds) - del(W) - e.update_icon() - src:update_body() - src:update_face() - src:UpdateDamageIcon() - - H.vessel:clear_reagents() - H.vessel:add_reagent("blood",560) - src.heal_overall_damage(1000, 1000) src.buckled = initial(src.buckled) src.handcuffed = initial(src.handcuffed) - if(src.stat > 1) - src.stat = CONSCIOUS + if(src.stat > 1) src.stat = CONSCIOUS ..() return diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 437e3d0eb0..26fe4ae05d 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -615,19 +615,6 @@ if ( !usr || usr==src || !istype(src.loc,/turf) ) //if there's no person pulling OR the person is pulling themself OR the object being pulled is inside something: abort! return - - if(ishuman(usr)) - if(usr.hand) // if he's using his left hand. - var/datum/organ/external/temp = usr:get_organ("l_hand") - if(temp.destroyed) - usr << "\blue You look at your stump." - return - else - var/datum/organ/external/temp = usr:get_organ("r_hand") - if(temp.destroyed) - usr << "\blue You look at your stump." - return - if (!( anchored )) usr.pulling = src if(ismob(src)) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 56483ed58e..eb9b79d6dd 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -243,7 +243,6 @@ var/robot_talk_understand = 0 var/alien_talk_understand = 0 - var/taj_talk_understand = 0 //You can guess what these are for. --SkyMarshal var/list/atom/hallucinations = list() diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 5d64de746b..3560c5791f 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -60,11 +60,6 @@ return 1 return 0 -/proc/istajaran(A) - if(istype(A, /mob/living/carbon/human/tajaran)) - return 1 - return 0 - /*proc/ishivebot(A) if(A && istype(A, /mob/living/silicon/hivebot)) return 1 @@ -110,21 +105,12 @@ proc/isorgan(A) return 1 return 0 -proc/hasorgans(A) - if(ishuman(A) || ismonkey(A)) - return 1 - return 0 - - - - /proc/hsl2rgb(h, s, l) return /proc/check_zone(zone) - if(!zone) - return "chest" + if(!zone) return "chest" switch(zone) if("eyes") zone = "head" diff --git a/code/modules/mob/organ/organ.dm b/code/modules/mob/organ/organ.dm index d68f768738..1f89d9738f 100644 --- a/code/modules/mob/organ/organ.dm +++ b/code/modules/mob/organ/organ.dm @@ -1,83 +1,17 @@ /datum/organ - - -/datum/organ/var - name = "organ" - mob/living/carbon/human/owner = null - - list/datum/autopsy_data/autopsy_data = list() - list/trace_chemicals = list() // traces of chemicals in the organ, - // links chemical IDs to number of ticks for which they'll stay in the blood - - -/datum/organ/proc/process() - return 0 - -/datum/organ/proc/receive_chem(chemical as obj) - return 0 - - - -/mob/living/carbon/human/proc/make_human_organs() - - new /datum/organ/external/chest(src) - new /datum/organ/external/groin(src) - new /datum/organ/external/head(src) - new /datum/organ/external/l_arm(src) - new /datum/organ/external/r_arm(src) - new /datum/organ/external/r_leg(src) - new /datum/organ/external/l_leg(src) - new /datum/organ/external/l_hand(src) - new /datum/organ/external/l_foot(src) - new /datum/organ/external/r_hand(src) - new /datum/organ/external/r_foot(src) - - var/datum/organ/external/part = get_organ("chest") - part.children = list(get_organ("r_leg"),get_organ("l_leg"),get_organ("r_arm"),get_organ("l_arm"),get_organ("groin"),get_organ("head")) - part = get_organ("head") - part.parent = get_organ("chest") - part = get_organ("groin") - part.parent = get_organ("chest") - part = get_organ("r_leg") - part.children = list(get_organ("r_foot")) - part.parent = get_organ("chest") - part = get_organ("l_leg") - part.children = list(get_organ("l_foot")) - part.parent = get_organ("chest") - part = get_organ("r_arm") - part.children = list(get_organ("r_hand")) - part.parent = get_organ("chest") - part = get_organ("l_arm") - part.children = list(get_organ("l_hand")) - part.parent = get_organ("chest") - part = get_organ("r_foot") - part.parent = get_organ("r_leg") - part = get_organ("l_foot") - part.parent = get_organ("l_leg") - part = get_organ("r_hand") - part.parent = get_organ("r_arm") - part = get_organ("l_hand") - part.parent = get_organ("l_arm") - - - - -/datum/autopsy_data var - weapon = null - pretend_weapon = null - damage = 0 - hits = 0 - time_inflicted = 0 + name = "organ" + owner = null + + + proc/process() + return 0 + + + proc/receive_chem(chemical as obj) + return 0 + - proc/copy() - var/datum/autopsy_data/W = new() - W.weapon = weapon - W.pretend_weapon = pretend_weapon - W.damage = damage - W.hits = hits - W.time_inflicted = time_inflicted - return W /**************************************************** EXTERNAL ORGANS @@ -93,230 +27,47 @@ burn_dam = 0 bandaged = 0 max_damage = 0 + wound_size = 0 max_size = 0 - tmp/list/obj/item/weapon/implant/implant = list() - display_name - tmp/list/wounds = list() - tmp/bleeding = 0 - tmp/perma_injury = 0 - tmp/perma_dmg = 0 - tmp/broken = 0 - tmp/destroyed = 0 - tmp/destspawn = 0 //Has it spawned the broken limb? - tmp/gauzed = 0 //Has the missing limb been patched? - tmp/robot = 0 //ROBOT ARM MAN! - tmp/cutaway = 0 //First part of limb reattachment. - tmp/attachable = 0 //Can limb be attached? - min_broken_damage = 30 - datum/organ/external/parent - list/datum/organ/external/children - damage_msg = "\red You feel a intense pain" - var/open = 0 - var/stage = 0 - var/wound = 0 - - New(mob/living/carbon/H) - ..(H) - if(!display_name) - display_name = name - if(istype(H)) - owner = H - H:organs.Add(src) - - Del() - for(var/datum/organ/wound/W in wounds) - del(W) - ..() - - proc/take_damage(brute, burn, sharp, used_weapon = null, spread=0) - if((brute <= 0) && (burn <= 0)) - return 0 - if(destroyed) - return 0 - if(robot) - brute *= 0.66 //~2/3 damage for ROBOLIMBS - burn *= 0.66 //~2/3 damage for ROBOLIMBS - - if(owner && !robot) - owner.pain(display_name, (brute+burn)*3, 1) - if(sharp) - var/nux = brute * rand(10,15) - if(brute_dam >= max_damage) - if(prob(5 * brute)) -// for(var/mob/M in viewers(owner)) -// M.show_message("\red [owner.name]'s [display_name] flies off.") - destroyed = 1 - droplimb() - return - else if(prob(nux)) - createwound(max(1,min(6,round(brute/10) + rand(0,1))),0,brute) - if(!robot) owner << "You feel something wet on your [display_name]" - - if((brute_dam + burn_dam + brute + burn) < max_damage) - if(brute) - brute_dam += brute - if(prob(brute*2) && !sharp) - createwound(rand(4,6),0,brute) - else if(!sharp) - createwound(max(1,min(6,round(brute/10) + rand(1,2))),1,brute) - if(burn) - burn_dam += burn - createwound(max(1,min(6,round(burn/10) + rand(0,1))),2,burn) + proc/take_damage(brute, burn) + if((brute <= 0) && (burn <= 0)) return 0 + if((src.brute_dam + src.burn_dam + brute + burn) < src.max_damage) + src.brute_dam += brute + src.burn_dam += burn else - var/can_inflict = max_damage - (brute_dam + burn_dam) + var/can_inflict = src.max_damage - (src.brute_dam + src.burn_dam) if(can_inflict) if (brute > 0 && burn > 0) brute = can_inflict/2 burn = can_inflict/2 var/ratio = brute / (brute + burn) - brute_dam += ratio * can_inflict - burn_dam += (1 - ratio) * can_inflict + src.brute_dam += ratio * can_inflict + src.burn_dam += (1 - ratio) * can_inflict else if (brute > 0) brute = can_inflict - brute_dam += brute - if(!sharp && !prob(brute*3)) createwound(max(1,min(6,round(brute/10) + rand(0,1))),1,brute) - else createwound(max(1,min(6,round(brute/10) + rand(1,2))),1,brute) + src.brute_dam += brute else burn = can_inflict - burn_dam += burn - createwound(max(1,min(6,round(burn/10) + rand(0,1))),2,burn) - else if(!robot) - var/passed_dam = (brute + burn) - can_inflict //Getting how much overdamage we have. - var/list/datum/organ/external/possible_points = list() - if(parent) - possible_points += parent - if(children) - possible_points += children - if(!possible_points.len) - message_admins("Oh god WHAT! [owner]'s [src] was unable to find an organ to pass overdamage too!") - else - if(!spread) - var/datum/organ/external/target = pick(possible_points) - if(brute) - target.take_damage(passed_dam, 0, sharp, used_weapon,1) - else - target.take_damage(0, passed_dam, sharp, used_weapon,1) + src.burn_dam += burn else - droplimb(1) //Robot limbs just kinda fail at full damage. + return 0 - - if(broken) - owner.emote("scream") - - if(used_weapon) add_wound(used_weapon, brute + burn) - - var/result = update_icon() + var/result = src.update_icon() return result - proc/heal_damage(brute, burn, internal = 0, robo_repair = 0) - if(robot && !robo_repair) - return - var/brute_to_heal = 0 - var/brute_wounds = list() - var/burn_to_heal = 0 - var/burn_wounds = list() - for(var/datum/organ/wound/W in wounds) - if(W.wound_type > 1 && W.damage) - burn_to_heal += W.damage - burn_wounds += W - else if(W.damage) - brute_to_heal += W.damage - brute_wounds += W - if(brute && brute <= brute_to_heal) - for(var/datum/organ/wound/W in brute_wounds) - if(brute >= W.damage) - brute_dam -= W.damage - brute -= W.damage - W.damage = 0 - W.initial_dmg = 0 - W.stopbleeding(1) - else - W.damage -= brute - W.initial_dmg -= brute - W.stopbleeding() - else if(brute) - for(var/datum/organ/wound/W in brute_wounds) - W.damage = 0 - W.initial_dmg = 0 - W.stopbleeding(1) - brute_dam = 0 - if(burn && burn <= burn_to_heal) - for(var/datum/organ/wound/W in burn_wounds) - if(burn >= W.damage) - burn_dam -= W.damage - burn -= W.damage - W.damage = 0 - W.initial_dmg = 0 - W.stopbleeding() - else - W.damage -= burn - W.initial_dmg -= burn - W.stopbleeding() - else if(burn) - for(var/datum/organ/wound/W in burn_wounds) - W.damage = 0 - W.initial_dmg = 0 - W.stopbleeding() - burn_dam = 0 - if(internal) - broken = 0 - perma_injury = 0 - // if all damage is healed, replace the wounds with scars - if(brute_dam + burn_dam == 0) - for(var/V in autopsy_data) - var/datum/autopsy_data/W = autopsy_data[V] - del W - autopsy_data = list() + proc/heal_damage(brute, burn) + src.brute_dam = max(0, src.brute_dam - brute) + src.burn_dam = max(0, src.burn_dam - burn) return update_icon() - proc/add_wound(var/used_weapon, var/damage) - var/datum/autopsy_data/W = autopsy_data[used_weapon] - if(!W) - W = new() - W.weapon = used_weapon - autopsy_data[used_weapon] = W - - W.hits += 1 - W.damage += damage - W.time_inflicted = world.time - - proc/get_damage() //returns total damage - return max(brute_dam + burn_dam - perma_injury,perma_injury) //could use health? + return src.brute_dam + src.burn_dam //could use src.health? - proc/get_damage_brute() - return max(brute_dam+perma_injury,perma_injury) - - proc/get_damage_fire() - return burn_dam - - process() - if(destroyed) - if(!destspawn) - droplimb() - return - if(broken == 0) - perma_dmg = 0 - if(parent) - if(parent.destroyed) - destroyed = 1 - owner:update_body() - return - if(brute_dam > min_broken_damage && !robot) - if(broken == 0) - //owner.unlock_medal("Broke Yarrr Bones!", 0, "Break a bone.", "easy") - owner.visible_message("\red You hear a loud cracking sound coming from [owner.name].","\red Something feels like it shattered in your [display_name]!","You hear a sickening crack.") - owner.emote("scream") - broken = 1 - wound = pick("broken","fracture","hairline fracture") //Randomise in future. Edit: Randomized. --SkyMarshal - perma_injury = brute_dam - return - return // new damage icon system // returns just the brute/burn damage code @@ -326,18 +77,18 @@ if(burn_dam ==0) tburn =0 - else if (burn_dam < (max_damage * 0.25 / 2)) + else if (src.burn_dam < (src.max_damage * 0.25 / 2)) tburn = 1 - else if (burn_dam < (max_damage * 0.75 / 2)) + else if (src.burn_dam < (src.max_damage * 0.75 / 2)) tburn = 2 else tburn = 3 - if (brute_dam == 0) + if (src.brute_dam == 0) tbrute = 0 - else if (brute_dam < (max_damage * 0.25 / 2)) + else if (src.brute_dam < (src.max_damage * 0.25 / 2)) tbrute = 1 - else if (brute_dam < (max_damage * 0.75 / 2)) + else if (src.brute_dam < (src.max_damage * 0.75 / 2)) tbrute = 2 else tbrute = 3 @@ -347,148 +98,13 @@ // new damage icon system // adjusted to set damage_state to brute/burn code only (without r_name0 as before) proc/update_icon() - var/n_is = damage_state_text() - if (n_is != damage_state) - damage_state = n_is + var/n_is = src.damage_state_text() + if (n_is != src.damage_state) + src.damage_state = n_is return 1 return 0 - - proc/droplimb(var/override = 0,var/no_explode = 0) - if(override) - destroyed = 1 - if(destroyed) - if(implant) - for(var/implants in implant) - del(implants) - //owner.unlock_medal("Lost something?", 0, "Lose a limb.", "easy") - - for(var/datum/organ/external/I in children) - if(I && !I.destroyed) - I.droplimb(1,1) - var/obj/item/weapon/organ/H - switch(body_part) - if(UPPER_TORSO) - owner.gib() - if(LOWER_TORSO) - owner << "\red You are now sterile." - if(HEAD) - H = new /obj/item/weapon/organ/head(owner.loc, owner) - if(ishuman(owner)) - if(owner.gender == FEMALE) - H.icon_state = "head_f_l" - H.overlays += owner.face_lying - if(ismonkey(owner)) - H.icon_state = "head_l" - //H.overlays += owner.face_lying - H:transfer_identity(owner) - H.pixel_x = -10 - H.pixel_y = 6 - if(!owner.original_name) - owner.original_name = owner.real_name - H.name = "[owner.original_name]'s head" - - owner.update_face() - owner.update_body() - owner.death() - if(ARM_RIGHT) - H = new /obj/item/weapon/organ/r_arm(owner.loc, owner) - if(ismonkey(owner)) - H.icon_state = "r_arm_l" - if(ARM_LEFT) - H = new /obj/item/weapon/organ/l_arm(owner.loc, owner) - if(ismonkey(owner)) - H.icon_state = "l_arm_l" - if(LEG_RIGHT) - H = new /obj/item/weapon/organ/r_leg(owner.loc, owner) - if(ismonkey(owner)) - H.icon_state = "r_leg_l" - if(LEG_LEFT) - H = new /obj/item/weapon/organ/l_leg(owner.loc, owner) - if(ismonkey(owner)) - H.icon_state = "l_leg_l" - if(HAND_RIGHT) - H = new /obj/item/weapon/organ/r_hand(owner.loc, owner) - if(ismonkey(owner)) - H.icon_state = "r_hand_l" - if(HAND_LEFT) - H = new /obj/item/weapon/organ/l_hand(owner.loc, owner) - if(ismonkey(owner)) - H.icon_state = "l_hand_l" - if(FOOT_RIGHT) - H = new /obj/item/weapon/organ/r_foot/(owner.loc, owner) - if(ismonkey(owner)) - H.icon_state = "r_foot_l" - if(FOOT_LEFT) - H = new /obj/item/weapon/organ/l_foot(owner.loc, owner) - if(ismonkey(owner)) - H.icon_state = "l_foot_l" - if(ismonkey(owner)) - H.icon = 'monkey.dmi' - if(istajaran(owner)) - H.icon = 'tajaran.dmi' - var/lol = pick(cardinal) - step(H,lol) - destspawn = 1 - if(!robot) - owner.visible_message("\red [owner.name]'s [display_name] flies off in an arc.",\ - "Your [display_name] goes flying off!",\ - "You hear a terrible sound of ripping tendons and flesh.") - else - owner.visible_message("\red [owner.name]'s [display_name] explodes violently!",\ - "\red Your [display_name] explodes!",\ - "You hear an explosion followed by a scream!") - if(!no_explode) - explosion(get_turf(owner),-1,-1,2,3) - var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() - spark_system.set_up(5, 0, src) - spark_system.attach(src) - spark_system.start() - spawn(10) - del(spark_system) - for(var/datum/organ/wound/W in wounds) - W.update_health() - del(W) - owner.update_body() - owner.update_clothing() - - proc/createwound(var/size = 1, var/type = 0, var/damage) - var/list/datum/organ/wound/possible_wounds = list() - for(var/datum/organ/wound/W in wounds) - if(W.wound_type == type && W.wound_size <= 3 && size <= 3 && ((!W.is_healing && type == 1) || (!W.healing_state && type != 1))) - possible_wounds += W - if(hasorgans(owner)) - if(!possible_wounds.len || prob(20)) - var/datum/organ/wound/W = new(src) - bleeding = max(!type,bleeding) //Sharp objects cause bleeding. - W.bleeding = !type - // owner:bloodloss += 10 * size - W.damage = damage - W.initial_dmg = damage - W.wound_type = type - W.wound_size = size - W.owner = owner - W.parent = src - if(type == 1) - spawn W.become_scar() - else - spawn W.start_close() //Let small cuts close themselves. - wounds += W - else - var/datum/organ/wound/W = pick(possible_wounds) - bleeding = max(!type,bleeding) //Sharp objects cause bleeding. - W.bleeding = max(!type,W.bleeding) - // owner:bloodloss += 10 * size - W.damage += damage - W.initial_dmg += damage - W.wound_size = max(1,min(6,round(W.damage/10) + rand(0,1))) - - proc/emp_act(severity) - if(!robot) return - if(prob(30*severity)) - take_damage(4(4-severity), 0, 1, used_weapon = "EMP") - else - droplimb(1) - + + proc/getDisplayName() switch(src.name) if("l_leg") @@ -499,141 +115,9 @@ return "left arm" if("r_arm") return "right arm" - if("l_foot") - return "left foot" - if("r_foot") - return "right foot" - if("l_hand") - return "left hand" - if("r_hand") - return "right hand" else return src.name -/datum/organ/wound - name = "wound" - var/wound_type = 0 //0 = cut, 1 = bruise, 2 = burn - var/damage = 0 //How much damage it caused. - var/initial_dmg = 0 - var/wound_size = 1 - var/datum/organ/external/parent - var/bleeding = 0 //You got wounded, of course it's bleeding. -- Scratch that. Rewrote it. - var/healing_state = 0 - var/is_healing = 0 - var/slowheal = 3 - - proc/start_close() - if(parent.robot) - return - sleep(rand(1800,3000)) //3-5 minutes - if(prob(50) && wound_size == 1) - parent.wounds.Remove(src) - update_health(1) - del(src) - else if(prob(33) && wound_size < 3) - stopbleeding() - return - sleep(rand(1800,3000)) - if(wound_size == 1) //Small cuts heal in 6-10 minutes. - parent.wounds.Remove(src) - update_health(1) - del(src) - else if(prob(50) && wound_size < 5 && bleeding) - stopbleeding() - return - if(wound_size < 5 && bleeding) //Give it a chance to stop bleeding on it's own. - spawn while(1) - sleep(1200) - if(prob(50)) - stopbleeding() - return - return - - proc/stopbleeding(var/bleed = 0) - if(is_healing) - return 0 -// owner:bloodloss -= 10 * src.wound_size - parent.bleeding = min(bleed,bleeding) - for(var/datum/organ/wound/W in parent) - if(W.bleeding && W != src) - parent.bleeding = 1 - break - bleeding = min(bleed,bleeding) - is_healing = 1 - slowheal = 1 - if(!healing_state) - spawn become_scar() //spawn off the process of becoming a scar. - return 1 - - proc/become_scar() - if(parent.robot) - return - healing_state = 1 //Patched - spawn(200*slowheal) //~20-60 seconds - update_health(5) //Heals some. - - sleep(rand(1800,3000)*slowheal) //3-5 minutes - - if(!parent || !parent.owner || parent.owner.stat == 2) - if(!parent || !parent.owner) - del(parent) - del(src) - return - if(prob(80) && wound_size < 2) //Small cuts heal. - update_health(1) - parent.wounds.Remove(src) - del(src) - - healing_state = 2 //Noticibly healing. - update_health(2) //Heals more. - - sleep(rand(1800,3000)*slowheal) //3-5 minutes - if(!parent || !parent.owner || parent.owner.stat == 2) - if(!parent || !parent.owner) - del(parent) - del(src) - return - if(prob(60) && wound_size < 3) //Cuts heal up - parent.wounds.Remove(src) - del(src) - healing_state = 3 //Angry red scar - update_health(1) //Heals the rest of the way. - - - sleep(rand(6000,9000)*slowheal) //10-15 minutes - if(!parent || !parent.owner || parent.owner.stat == 2) - if(!parent || !parent.owner) - del(parent) - del(src) - return - if(prob(80) && wound_size < 4) //Minor wounds heal up fully. - parent.wounds.Remove(src) - del(src) - healing_state = 4 //Scar - sleep(rand(6000,9000)*slowheal) //10-15 minutes - if(!parent || !parent.owner || parent.owner.stat == 2) - if(!parent || !parent.owner) - del(parent) - del(src) - return - if(prob(30) || wound_size < 4 || wound_type == 1) //Small chance for the scar to disappear, any small remaining wounds deleted. - parent.wounds.Remove(src) - del(src) - healing_state = 5 //Faded scar - return - - proc/update_health(var/percent = 1) - if(!owner || owner.stat == 2) - return - damage = max(damage - damage/percent,0) //Remove that amount of the damage - if(wound_type > 1) - parent.burn_dam = max(parent.burn_dam - (initial_dmg - damage),0) - else - parent.brute_dam = max(parent.brute_dam - (initial_dmg - damage),0) - initial_dmg = damage //reset it for further updates. - parent.owner.updatehealth() - - /**************************************************** diff --git a/code/modules/mob/organ/organ_external.dm b/code/modules/mob/organ/organ_external.dm index 881e3623a6..fa228505e5 100644 --- a/code/modules/mob/organ/organ_external.dm +++ b/code/modules/mob/organ/organ_external.dm @@ -2,207 +2,61 @@ name = "chest" icon_name = "chest" max_damage = 150 - min_broken_damage = 75 body_part = UPPER_TORSO -/datum/organ/external/groin +/*/datum/organ/external/groin name = "groin" - icon_name = "diaper" - max_damage = 115 - min_broken_damage = 70 + icon_name = "groin" body_part = LOWER_TORSO - +*/ /datum/organ/external/head name = "head" icon_name = "head" - max_damage = 75 - min_broken_damage = 40 + max_damage = 125 body_part = HEAD - var/disfigured = 0 /datum/organ/external/l_arm name = "l_arm" - display_name = "left arm" icon_name = "l_arm" max_damage = 75 - min_broken_damage = 30 body_part = ARM_LEFT /datum/organ/external/l_leg name = "l_leg" - display_name = "left leg" icon_name = "l_leg" max_damage = 75 - min_broken_damage = 30 body_part = LEG_LEFT /datum/organ/external/r_arm name = "r_arm" - display_name = "right arm" icon_name = "r_arm" max_damage = 75 - min_broken_damage = 30 body_part = ARM_RIGHT /datum/organ/external/r_leg name = "r_leg" - display_name = "right leg" icon_name = "r_leg" max_damage = 75 - min_broken_damage = 30 body_part = LEG_RIGHT +/*Leaving these here in case we want to use them later /datum/organ/external/l_foot - name = "l_foot" - display_name = "left foot" + name = "l foot" icon_name = "l_foot" - max_damage = 40 - min_broken_damage = 15 body_part = FOOT_LEFT /datum/organ/external/r_foot - name = "r_foot" - display_name = "right foot" + name = "r foot" icon_name = "r_foot" - max_damage = 40 - min_broken_damage = 15 body_part = FOOT_RIGHT /datum/organ/external/r_hand - name = "r_hand" - display_name = "right hand" + name = "r hand" icon_name = "r_hand" - max_damage = 40 - min_broken_damage = 15 body_part = HAND_RIGHT /datum/organ/external/l_hand - name = "l_hand" - display_name = "left hand" + name = "l hand" icon_name = "l_hand" - max_damage = 40 - min_broken_damage = 15 body_part = HAND_LEFT - - - -obj/item/weapon/organ - icon = 'human.dmi' - -obj/item/weapon/organ/New(loc, mob/living/carbon/human/H) - ..(loc) - if(!istype(H)) - return - if(H.dna) - if(blood_DNA && blood_DNA.len) - blood_DNA.len++ - blood_DNA[blood_DNA.len] = list(H.dna.unique_enzymes, H.dna.b_type) - else - blood_DNA = list(list(H.dna.unique_enzymes, H.dna.b_type)) - - var/icon/I = new /icon(icon, icon_state) - - if (H.s_tone >= 0) - I.Blend(rgb(H.s_tone, H.s_tone, H.s_tone), ICON_ADD) - else - I.Blend(rgb(-H.s_tone, -H.s_tone, -H.s_tone), ICON_SUBTRACT) - icon = I - -obj/item/weapon/organ/head - name = "head" - icon_state = "head_m_l" - var/mob/living/carbon/brain/brainmob - var/brain_op_stage = 0 - -obj/item/weapon/organ/head/New() - ..() - spawn(5) - if(brainmob && brainmob.client) - brainmob.client.screen.len = null //clear the hud - -obj/item/weapon/organ/head/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->head - brainmob = new(src) - brainmob.name = H.real_name - brainmob.real_name = H.real_name - brainmob.dna = H.dna - if(H.mind) - H.mind.transfer_to(brainmob) - brainmob.container = src - if (brainmob.client) - spawn(10) - if(brainmob.client) - verbs += /mob/proc/ghost - -obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W,/obj/item/weapon/scalpel)) - switch(brain_op_stage) - if(0) - for(var/mob/O in (oviewers(brainmob) - user)) - O.show_message("\red [brainmob] is beginning to have \his head cut open with [src] by [user].", 1) - brainmob << "\red [user] begins to cut open your head with [src]!" - user << "\red You cut [brainmob]'s head open with [src]!" - - brain_op_stage = 1 - - if(2) - for(var/mob/O in (oviewers(brainmob) - user)) - O.show_message("\red [brainmob] is having \his connections to the brain delicately severed with [src] by [user].", 1) - brainmob << "\red [user] begins to cut open your head with [src]!" - user << "\red You cut [brainmob]'s head open with [src]!" - - brain_op_stage = 3.0 - else - ..() - else if(istype(W,/obj/item/weapon/circular_saw)) - switch(brain_op_stage) - if(1) - for(var/mob/O in (oviewers(brainmob) - user)) - O.show_message("\red [brainmob] has \his skull sawed open with [src] by [user].", 1) - brainmob << "\red [user] begins to saw open your head with [src]!" - user << "\red You saw [brainmob]'s head open with [src]!" - - brain_op_stage = 2 - if(3) - for(var/mob/O in (oviewers(brainmob) - user)) - O.show_message("\red [brainmob] has \his spine's connection to the brain severed with [src] by [user].", 1) - brainmob << "\red [user] severs your brain's connection to the spine with [src]!" - user << "\red You sever [brainmob]'s brain's connection to the spine with [src]!" - - user.attack_log += "\[[time_stamp()]\] Debrained [brainmob.name] ([brainmob.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" - brainmob.attack_log += "\[[time_stamp()]\] Debrained by [user.name] ([user.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])" - log_admin("ATTACK: [brainmob] ([brainmob.ckey]) debrained [user] ([user.ckey]).") - message_admins("ATTACK: [brainmob] ([brainmob.ckey]) debrained [user] ([user.ckey]).") - - var/obj/item/brain/B = new(loc) - B.transfer_identity(brainmob) - - brain_op_stage = 4.0 - else - ..() - else - ..() - -obj/item/weapon/organ/l_arm - name = "left arm" - icon_state = "l_arm_l" -obj/item/weapon/organ/l_foot - name = "left foot" - icon_state = "l_foot_l" -obj/item/weapon/organ/l_hand - name = "left hand" - icon_state = "l_hand_l" -obj/item/weapon/organ/l_leg - name = "left leg" - icon_state = "l_leg_l" -obj/item/weapon/organ/r_arm - name = "right arm" - icon_state = "r_arm_l" -obj/item/weapon/organ/r_foot - name = "right foot" - icon_state = "r_foot_l" -obj/item/weapon/organ/r_hand - name = "right hand" - icon_state = "r_hand_l" -obj/item/weapon/organ/r_leg - name = "right leg" - icon_state = "r_leg_l" +*/ diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index f0dedb0ddf..9a0a4dfc7c 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -20,7 +20,6 @@ silenced = 0 recoil = 0 ejectshell = 1 - determination = 0 proc load_into_chamber() @@ -39,8 +38,33 @@ for(var/obj/O in contents) O.emp_act(severity) +/* + New() + spawn(15) // Hack, but I need to wait for sub-calls to load the gun before loading the chamber. 1.5 seconds should be fine. + load_into_chamber() + afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params)//TODO: go over this + if(inrange) + if(!doafterattack(target , src)) + return //we're placing gun on a table or in backpack. What the fuck was the previous check? + if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) + return//Shouldnt flag take care of this? +{R} */ + afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params)//TODO: go over this + if(flag) return //we're placing gun on a table or in backpack + if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) return//Shouldnt flag take care of this? + + if(istype(user, /mob/living)) + var/mob/living/M = user + if ((M.mutations & CLUMSY) && prob(50)) + M << "\red The [src.name] blows up in your face." + M.take_organ_damage(0,20) + M.drop_item() + del(src) + return + +/* attack(mob/M as mob, mob/user as mob) if(!in_chamber) if(!load_into_chamber()) @@ -60,15 +84,7 @@ return //we're placing gun on a table or in backpack. What the fuck was the previous check? if(istype(target, /obj/machinery/recharger) && istype(src, /obj/item/weapon/gun/energy)) return//Shouldnt flag take care of this? - - if(istype(user, /mob/living)) - var/mob/living/M = user - if ((M.mutations & CLUMSY) && prob(50)) - M << "\red The [src.name] blows up in your face." - M.take_organ_damage(0,20) - M.drop_item() - del(src) - return +{R} */ if (!user.IsAdvancedToolUser()) user << "\red You don't have the dexterity to do this!" @@ -84,8 +100,7 @@ if(!special_check(user)) return if(!load_into_chamber()) - if(!inrange) // If we're in range, we're just going to hit them instead of pulling the trigger. - user << "\red *click*"; + user << "\red *click*"; return if(!in_chamber) @@ -94,6 +109,7 @@ in_chamber.firer = user in_chamber.def_zone = user.zone_sel.selecting +/* if(user == target) // What the FUCK was this code? If shoot anything on the same tile, you're shooting yourself? What? if(!determination) user << "Are you really sure you want to shoot yourself? You put the gun against your head." @@ -133,6 +149,21 @@ del(in_chamber) update_icon() return +{R}*/ + + if(targloc == curloc) +/* + if(silenced) + playsound(user, fire_sound, 10, 1) + else + playsound(user, fire_sound, 50, 1) + user.visible_message("\red [user.name] fires the [src.name] at themselves!", "\red You fire the [src.name] at yourself!", "\blue You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") +{R}*/ + + user.bullet_act(in_chamber) + del(in_chamber) + update_icon() + return if(recoil) spawn() diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 04b80ff02e..d4a6081bbd 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -24,8 +24,8 @@ load_into_chamber() - if(in_chamber) - return 1 +// if(in_chamber) +// return 1 {R} if(!loaded.len) return 0 @@ -77,9 +77,9 @@ examine() ..() usr << "Has [loaded.len] round\s remaining." - if(in_chamber && !loaded.len) - usr << "However, it has a chambered round." - if(in_chamber && loaded.len) - usr << "It also has a chambered round." +// if(in_chamber && !loaded.len) +// usr << "However, it has a chambered round." +// if(in_chamber && loaded.len) +// usr << "It also has a chambered round." {R} return diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 3f13545b85..c926a29447 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -70,8 +70,8 @@ ammo_type = "/obj/item/ammo_casing/shotgun/beanbag" load_into_chamber() - if(in_chamber) - return 1 +// if(in_chamber) +// return 1 {R} if(!loaded.len) return 0 diff --git a/html/changelog.html b/html/changelog.html index 9b352a234a..5a7c17ff98 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -46,6 +46,17 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit tho. Thanks. --> +
+

May 9th, 2012

+

Sieve updated:

+ +
+

May 06-07, 2012

Cheridan updated:

diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index 492f2537116fd24ef5b54cf6a97debb78dd3fc6b..aad3b10478a83edf11e60e6fb98b711bacfc2e79 100644 GIT binary patch delta 397 zcmV;80doGjvH`%d0gxnrYI;;ybVOxyV{&P5bZKvH004NLm6pqHgD?<9*Z3=}WM7q6 zc5Eu5ibe7Z$f*rRJS^F!QU1OQAf$`dcXmcPIy1T+G(Pf=^JjJC<)vcZ%DT=>yx`f} zJB#j}^qLnuO<1H=*J{6fI4`{71wR~EBs=SP!DALRR*Y&nKY`nSAf`S@wc0ozb{YAo z$J*^+_AfYK#s&cANh*6+!p2Yozi@&*q1h9fJ*C-Gnmwc0Gnzf8*>jpbrVT+t!&4fb z)eS93l0AoTt%QUUU%{|Z*s-=V7NlX%s z^#umaV6ZzI_O{l4bQ6^9Mxst6*^LZ42i3yC?kwg7V|}7wYh#Ru+kJsSGuZIX0$$;7 zMm`YhN&+)GyB-bZfd*!2Chbb*kzZRvX_y z4dDl@{sj$Y9072(Qu(_QK8F_gg%j)r&0f&#CCy&a>=n&k(d;$NUeoM3?IS2?cuB*n zVWb5~veyuM@}T_MBZj1ksP(K5(-iaE1@Jo zqd|?6ce91EOeE@mM6ygIlBH1-6s1uUlqBXepwADZa}io_bS^?0f<}WHM-i`1J^*DR zfzxLV3v%|XVZlqD)Y>Gxpy4GAuW5Kg#|iDx&}z7We(mUdaL^u!++SfM@#%2aA;X{G rpR