diff --git a/baystation12.dme b/baystation12.dme index f8af77ffab6..5e57769cf3d 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -162,6 +162,7 @@ #define FILE_DIR "code/WorkInProgress/Wrongnumber" #define FILE_DIR "html" #define FILE_DIR "icons" +#define FILE_DIR "icons/48x48" #define FILE_DIR "icons/effects" #define FILE_DIR "icons/misc" #define FILE_DIR "icons/mob" diff --git a/code/WorkInProgress/Wrongnumber/weldbackpack.dm b/code/WorkInProgress/Wrongnumber/weldbackpack.dm index 0490ea6109a..d59708f9dfc 100644 --- a/code/WorkInProgress/Wrongnumber/weldbackpack.dm +++ b/code/WorkInProgress/Wrongnumber/weldbackpack.dm @@ -2,6 +2,7 @@ name = "Welding kit" desc = "A heavy-duty, portable welding fluid carrier." flags = ONBACK + icon = 'storage.dmi' icon_state = "engiepack" w_class = 4.0 var/max_fuel = 350 diff --git a/code/game/events/EventProcs/miniblob.dm b/code/game/events/EventProcs/miniblob.dm index db3df423c99..718ef0ace51 100644 --- a/code/game/events/EventProcs/miniblob.dm +++ b/code/game/events/EventProcs/miniblob.dm @@ -1,7 +1,7 @@ /proc/mini_blob_event() //command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") //world << sound('outbreak5.ogg') - var/turf/T = pick(blobstart) +/* var/turf/T = pick(blobstart) var/obj/effect/blob/bl = new /obj/effect/blob( T.loc, 30 ) spawn(0) bl.Life() @@ -14,9 +14,9 @@ spawn(0) dotheblobbaby() spawn(15000) - blobevent = 0 + blobevent = 0*/ spawn(rand(30, 60)) //Delayed announcements to keep the crew on their toes. - command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") + command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()].", "Biohazard Alert") world << sound('outbreak5.ogg') /proc/dotheblobbaby() diff --git a/code/game/objects/items/clothing.dm b/code/game/objects/items/clothing.dm index cd62e7f3961..82332e2287b 100644 --- a/code/game/objects/items/clothing.dm +++ b/code/game/objects/items/clothing.dm @@ -266,6 +266,7 @@ THERMAL GLASSES src.flags &= ~HEADCOVERSEYES icon_state = "weldingup" usr << "You push the mask up out of your face." + usr.update_clothing() /obj/item/clothing/shoes/magboots/verb/toggle() set name = "Toggle Magboots" @@ -304,6 +305,7 @@ THERMAL GLASSES usr << "You unbutton the suit jacket." else usr << "Sorry! The suit you're wearing doesn't have buttons!" + usr.update_clothing() /obj/item/clothing/suit/storage/labcoat/verb/toggle() set name = "Toggle Labcoat Buttons" @@ -365,6 +367,7 @@ THERMAL GLASSES else usr << "Sorry! The suit you're wearing doesn't have buttons!" + usr.update_clothing() /obj/item/clothing/head/ushanka/attack_self(mob/user as mob) if(src.icon_state == "ushankadown") diff --git a/code/modules/chemical/Chemistry-Tools.dm b/code/modules/chemical/Chemistry-Tools.dm index f163b5bfd1e..da586839b8d 100644 --- a/code/modules/chemical/Chemistry-Tools.dm +++ b/code/modules/chemical/Chemistry-Tools.dm @@ -1411,9 +1411,10 @@ if(!reagents.total_volume) if(M == user) user << "\red You finish eating [src]." else user << "\red [M] finishes eating [src]." + spawn(5) + user.update_clothing() del(src) playsound(M.loc,'eatfood.ogg', rand(10,50), 1) - user.update_clothing() return 1 else if(istype(M, /mob/living/simple_animal/livestock)) if(M == user) //If you're eating it yourself. diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index ecc6a41fff8..096da6e2cef 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -42,13 +42,13 @@ if(!effect || (blocked >= 2)) return 0 switch(effecttype) if(STUN) - Stun(effect/(blocked+1)) + Stun((effect - (effect*getarmor(null, "melee")))/(blocked + 1)) if(WEAKEN) - Weaken(effect/(blocked+1)) + Weaken((effect - (effect*getarmor(null, "melee")))/(blocked + 1)) if(PARALYZE) Paralyse(effect/(blocked+1)) if(IRRADIATE) - radiation += max((effect - (effect*getarmor(null, "rad"))), 0)//Rads auto check armor + radiation += max((effect - (effect*getarmor(null, "melee"))), 0)//Rads auto check armor if(STUTTER) stuttering = max(stuttering,(effect/(blocked+1))) if(SLUR) diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 5907676d1ea..7064dfd4723 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -78,9 +78,13 @@ if ((killing && state == 3)) affecting.Stun(5) affecting.Paralyse(3) - affecting.being_strangled = 1 - var/datum/organ/external/head = affecting.organs["head"] - head.add_wound("Strangulation", 0) + if(ishuman(affecting)) + var/mob/living/carbon/human/H = affecting + affecting.being_strangled = 1 + var/datum/organ/external/head = H.organs["head"] + head.add_wound("Strangulation", 0) + else + affecting.losebreath = min(affecting.losebreath + 2, 3) return diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 5c759614b59..aace8e472ad 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -43,9 +43,18 @@ if(!do_after(user, 40)) M.visible_message("\blue [user] decided life was worth living") return - M.visible_message("\red [user] pulls the trigger.") - M.apply_damage(70, BRUTE, "head") - M.apply_damage(110, BRUTE, "chest") + if(istype(src.in_chamber, /obj/item/projectile/bullet) && !istype(src.in_chamber, /obj/item/projectile/bullet/stunshot)) + M.apply_damage(160, BRUTE, "head", used_weapon = "Suicide attempt with a projectile weapon.") + M.visible_message("\red [user] pulls the trigger.") + else if(istype(src.in_chamber, /obj/item/projectile/bullet/stunshot) || istype(src.in_chamber, /obj/item/projectile/energy/electrode)) + M.apply_damage(10, BURN, "head", used_weapon = "Suicide attempt with a stun round.") + M.visible_message("\red [user] pulls the trigger, but luckily it was a stun round.") + else if(istype(src.in_chamber, /obj/item/projectile/beam) || istype(src.in_chamber, /obj/item/projectile/energy)) + M.apply_damage(160, BURN, "head", used_weapon = "Suicide attempt with an energy weapon") + M.visible_message("\red [user] pulls the trigger.") + else + M.apply_damage(160, BRUTE, "head", used_weapon = "Suicide attempt with a gun") + M.visible_message("\red [user] pulls the trigger. Ow.") return else return ..() diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 3c80aa220a2..220d5add65a 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -6,6 +6,40 @@ damage_type = BURN flag = "laser" eyeblur = 2 + var/ID = 0 + var/main = 0 + + process() + main = 1 + ID = rand(0,1000) + var/lets_not_be_a_derp = 1 + spawn(0) + while(!bumped) + for(var/mob/living/M in loc) + Bump(M) + if((!( current ) || loc == current)) + current = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z) + if((x == 1 || x == world.maxx || y == 1 || y == world.maxy)) + del(src) + return + if(!lets_not_be_a_derp) + var/obj/item/projectile/beam/new_beam = new src.type(loc) + processing_objects.Remove(new_beam) + new_beam.dir = dir + new_beam.ID = ID + else + lets_not_be_a_derp = 0 + step_towards(src, current) + processing_objects.Remove(src) + return + + Del() + if(main) + sleep(3) + for(var/obj/item/projectile/beam/beam in world) + if(beam.ID == ID) + del(beam) + ..() /obj/item/projectile/beam/heavylaser diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 74d2e4ce730..d10eddf1a4f 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -8,7 +8,7 @@ /obj/item/projectile/bullet/weakbullet - damage = 10 + damage = 5 stun = 5 weaken = 5 diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 07ecdcb710b..95d7931e850 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -13,6 +13,7 @@ stun = 10 weaken = 10 stutter = 10 + flag = "melee" //Give it a better chance to be blocked. /obj/item/projectile/energy/declone diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 6ba602f58d0..ac9864fe2d5 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ