diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 7e58853ca44..8b8bcc63adb 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -813,6 +813,7 @@ density = 1 anchored = 1.0 layer = 2.8 + var/dented = 0 New() ..() diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 19e009ea666..cfa1cf25b33 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -355,14 +355,61 @@ if(ishuman(G.affecting)) var/mob/living/carbon/human/H = G.affecting var/datum/organ/external/affecting = H.get_organ("head") - affecting.take_damage(4, 0) - H.UpdateDamageIcon() - H.updatehealth() - playsound(src.loc, 'punch1.ogg', 50, 1, -3) - src.add_blood(G.affecting) - for(var/mob/O in viewers(world.view, src)) - if (O.client) - O << text("\red [] smashes []'s head on the table!", G.assailant, G.affecting) + //Fucking hacky, but whatever. + var/obj/machinery/computer/HolodeckControl/HC = locate() in world + if(istype(HC) && HC.safety) //If the computer exists, and the safety is active... + if(prob(25)) + add_blood(G.affecting) + H.halloss += rand(10, 15) + G.assailant.visible_message("\red \The [G.assailant] smashes \the [H]'s head on \the [src] with enough force to engage \the [src]'s safeties!",\ + "\red You smash \the [H]\s head on \the [src] with enough force to engage \the [src]'s safeties!",\ + "\red You hear a whine as \the [src]'s engage.") + else + H.halloss += rand(5, 10) + G.assailant.visible_message("\red \The [G.assailant] smashes \the [H]'s head on \the [src]!",\ + "\red You smash \the [H]\s head on \the [src]!",\ + "\red You hear a whine as \the [src]'s is hit by something dense.") + H.UpdateDamageIcon() + H.updatehealth() + playsound(src.loc, 'punch1.ogg', 50, 1, -3) + else //Lets do REAL DAMAGE, YEAH! + G.affecting.attack_log += text("\[[time_stamp()]\] Has been smashed on a table by [G.assailant.name] ([G.assailant.ckey])") + G.assailant.attack_log += text("\[[time_stamp()]\] Smashed [G.affecting.name] ([G.affecting.ckey]) on a table.") + + log_admin("ATTACK: [G.assailant] ([G.assailant.ckey]) smashed [G.affecting] ([G.affecting.ckey]) on a table.") + message_admins("ATTACK: [G.assailant] ([G.assailant.ckey]) smashed [G.affecting] ([G.affecting.ckey]) on a table.") + log_attack("[G.assailant] ([G.assailant.ckey]) smashed [G.affecting] ([G.affecting.ckey]) on a table.") + if(prob(25)) + add_blood(G.affecting) + affecting.take_damage(rand(10,15), 0) + H.Weaken(2) + if(prob(20)) // One chance in 20 to DENT THE TABLE + affecting.take_damage(rand(0,5), 0) //Extra damage + if(dented) + G.assailant.visible_message("\red \The [G.assailant] smashes \the [H]'s head on \the [src] with enough force to further deform \the [src]!\nYou wish you could unhear that sound.",\ + "\red You smash \the [H]\s head on \the [src] with enough force to leave another dent!\n[prob(50)?"That was a satisfying noise." : "That sound will haunt your nightmares"]",\ + "\red You hear the nauseating crunch of bone and gristle on solid metal and the squeal of said metal deforming.") + else + dented = 1 + G.assailant.visible_message("\red \The [G.assailant] smashes \the [H]'s head on \the [src] so hard it left a dent!\nYou wish you could unhear that sound.",\ + "\red You smash \the [H]\s head on \the [src] with enough force to leave a dent!\n[prob(5)?"That was a satisfying noise." : "That sound will haunt your nightmares"]",\ + "\red You hear the nauseating crunch of bone and gristle on solid metal and the squeal of said metal deforming.") + else if(prob(50)) + G.assailant.visible_message("\red [G.assailant] smashes \the [G.assailant]\s head on \the [src], [H.gender == MALE? "his" : "her"] bone and cartilage making a loud crunch!",\ + "\red You smash \the [H]\s head on \the [src], [H.gender == MALE? "his" : "her"] bone and cartilage making a loud crunch!",\ + "\red You hear the nauseating crunch of bone and gristle on solid metal, the noise echoing through the room.") + else + G.assailant.visible_message("\red [G.assailant] smashes \the [G.assailant]\s head on \the [src], [H.gender == MALE? "his" : "her"] nose smashed and face bloodied!",\ + "\red You smash \the [H]\s head on \the [src], [H.gender == MALE? "his" : "her"] nose smashed and face bloodied!",\ + "\red You hear the nauseating crunch of bone and gristle on solid metal and the gurgling gasp of someone who is trying to breathe through their own blood.") + else + affecting.take_damage(rand(5,10), 0) + G.assailant.visible_message("\red [G.assailant] smashes \the [H]\s head on \the [src]!",\ + "\red You smash \the [H]\s head on \the [src]!",\ + "\red You hear the nauseating crunch of bone and gristle on solid metal.") + H.UpdateDamageIcon() + H.updatehealth() + playsound(src.loc, 'punch1.ogg', 50, 1, -3) return G.affecting.loc = src.loc G.affecting.Weaken(5) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index cc9f98ef659..0670ee2f25a 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -677,10 +677,6 @@ var/list/obj/machinery/newscaster/allCasters = list() //list that will contain r var/scribble="" var/scribble_page = null -/*obj/item/weapon/newspaper/attack_hand(mob/user as mob) - ..() - world << "derp"*/ - obj/item/weapon/newspaper/attack_self(mob/user as mob) if(ishuman(user)) var/mob/living/carbon/human/human_user = user diff --git a/code/game/objects/tables_racks.dm b/code/game/objects/tables_racks.dm index 57fecf8889d..b6a2db14b45 100644 --- a/code/game/objects/tables_racks.dm +++ b/code/game/objects/tables_racks.dm @@ -159,14 +159,37 @@ TABLE AND RACK OBJECT INTERATIONS var/mob/living/carbon/human/H = G.affecting var/datum/organ/external/affecting = H.get_organ("head") - affecting.take_damage(4, 0) + if(prob(25)) + add_blood(G.affecting) + affecting.take_damage(rand(10,15), 0) + H.Weaken(2) + if(prob(20)) // One chance in 20 to DENT THE TABLE + affecting.take_damage(rand(0,5), 0) //Extra damage + if(dented) + G.assailant.visible_message("\red \The [G.assailant] smashes \the [H]'s head on \the [src] with enough force to further deform \the [src]!\nYou wish you could unhear that sound.",\ + "\red You smash \the [H]\s head on \the [src] with enough force to leave another dent!\n[prob(50)?"That was a satisfying noise." : "That sound will haunt your nightmares"]",\ + "\red You hear the nauseating crunch of bone and gristle on solid metal and the squeal of said metal deforming.") + else + dented = 1 + G.assailant.visible_message("\red \The [G.assailant] smashes \the [H]'s head on \the [src] so hard it left a dent!\nYou wish you could unhear that sound.",\ + "\red You smash \the [H]\s head on \the [src] with enough force to leave a dent!\n[prob(5)?"That was a satisfying noise." : "That sound will haunt your nightmares"]",\ + "\red You hear the nauseating crunch of bone and gristle on solid metal and the squeal of said metal deforming.") + else if(prob(50)) + G.assailant.visible_message("\red [G.assailant] smashes \the [G.assailant]\s head on \the [src], [H.gender == MALE? "his" : "her"] bone and cartilage making a loud crunch!",\ + "\red You smash \the [H]\s head on \the [src], [H.gender == MALE? "his" : "her"] bone and cartilage making a loud crunch!",\ + "\red You hear the nauseating crunch of bone and gristle on solid metal, the noise echoing through the room.") + else + G.assailant.visible_message("\red [G.assailant] smashes \the [G.assailant]\s head on \the [src], [H.gender == MALE? "his" : "her"] nose smashed and face bloodied!",\ + "\red You smash \the [H]\s head on \the [src], [H.gender == MALE? "his" : "her"] nose smashed and face bloodied!",\ + "\red You hear the nauseating crunch of bone and gristle on solid metal and the gurgling gasp of someone who is trying to breathe through their own blood.") + else + affecting.take_damage(rand(5,10), 0) + G.assailant.visible_message("\red [G.assailant] smashes \the [H]\s head on \the [src]!",\ + "\red You smash \the [H]\s head on \the [src]!",\ + "\red You hear the nauseating crunch of bone and gristle on solid metal.") H.UpdateDamageIcon() H.updatehealth() playsound(src.loc, 'punch1.ogg', 50, 1, -3) - src.add_blood(G.affecting) - for(var/mob/O in viewers(world.view, src)) - if (O.client) - O << text("\red [] smashes []'s head on the table!", G.assailant, G.affecting) return G.affecting.loc = src.loc G.affecting.Weaken(5)