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:
+
+ - Reverted dismemberment, the recent gun changes, and Tarajans. Before you shit up the forums, read this:
+ - Dismemberment was ported from Bay12, but only halfway, and there were several problems with it. I know many people really liked it, but as it stood it did not fit the playstyle here at all. This had to be removed, there is work on a more fitting system, but this had to be taken out first regardless, and the longer people beat around the bush the worse the situation got.
+ - The gun change was made for no real reason and was pretty problematic, so reverting that should mean there are a lot less 'accidental suicides.'
+ - Tarjans were reverted by request as well, and since keeping them working after removing dismemberment would be a stupid amount of work.
+
+
+
May 06-07, 2012
Cheridan updated:
diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi
index 492f253711..aad3b10478 100644
Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 7d13256f46..b9cdacd577 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -899,8 +899,6 @@
#include "code\modules\mob\living\carbon\human\login.dm"
#include "code\modules\mob\living\carbon\human\say.dm"
#include "code\modules\mob\living\carbon\human\whisper.dm"
-#include "code\modules\mob\living\carbon\human\Tajara\tajara_transformation.dm"
-#include "code\modules\mob\living\carbon\human\Tajara\tajaran.dm"
#include "code\modules\mob\living\carbon\metroid\death.dm"
#include "code\modules\mob\living\carbon\metroid\emote.dm"
#include "code\modules\mob\living\carbon\metroid\examine.dm"
@@ -967,7 +965,6 @@
#include "code\modules\mob\organ\organ.dm"
#include "code\modules\mob\organ\organ_external.dm"
#include "code\modules\mob\organ\organ_internal.dm"
-#include "code\modules\mob\organ\pain.dm"
#include "code\modules\mob\simple_animal\behemoth.dm"
#include "code\modules\mob\simple_animal\cat.dm"
#include "code\modules\mob\simple_animal\constructs.dm"