diff --git a/code/defines/obj/clothing.dm b/code/defines/obj/clothing.dm index 3b6cde9a5de..98eefefc750 100644 --- a/code/defines/obj/clothing.dm +++ b/code/defines/obj/clothing.dm @@ -904,10 +904,17 @@ /obj/item/clothing/under/rank/centcom_officer desc = "It has a CentCom officer rank stripe on it." name = "CentCom Officer Jumpsuit" - icon_state = "hop" - item_state = "b_suit" + icon_state = "officer" + item_state = "g_suit" color = "officer" +/obj/item/clothing/under/rank/centcom_commander + desc = "It has a CentCom commander rank stripe on it." + name = "CentCom Officer Jumpsuit" + icon_state = "centcom" + item_state = "dg_suit" + color = "centcom" + /obj/item/clothing/under/rank/head_of_security desc = "It has a Head of Security rank stripe on it." name = "Head of Security Jumpsuit" diff --git a/code/game/objects/items/weapons/guns_ammo.dm b/code/game/objects/items/weapons/guns_ammo.dm index 0eeabdc7acc..909e9e596f5 100644 --- a/code/game/objects/items/weapons/guns_ammo.dm +++ b/code/game/objects/items/weapons/guns_ammo.dm @@ -68,30 +68,30 @@ TELEPORT GUN spawn() A.process() return - attack(mob/M as mob, mob/user as mob) - ..() - src.add_fingerprint(user) - if ((prob(50) && M.stat < 2)) - var/mob/living/carbon/human/H = M - if ((istype(H, /mob/living/carbon/human) && istype(H, /obj/item/clothing/head) && H.flags & 8 && prob(80))) - M << "\blue The helmet protects you from being hit hard in the head!" - for(var/mob/O in viewers(M, null)) - if(O.client) - O.show_message(text("\red [] blocked a hit from []!", M, user), 1) - return - var/time = rand(20, 60) - if (prob(90)) - M.paralysis = max(time, M.paralysis) - else - M.weakened = max(time, M.weakened) - src.force = 35 - ..() - if(M.stat != 2) M.stat = 1 - for(var/mob/O in viewers(M, null)) - if(O.client) - O.show_message(text("\red [] has been rifle butted by []!", M, user), 1, "\red You hear someone fall.", 2) - return +/obj/item/weapon/gun/energy/pulse_rifle/attack(mob/M as mob, mob/user as mob) + src.add_fingerprint(user) + var/mob/living/carbon/human/H = M + + if ((istype(H, /mob/living/carbon/human) && istype(H, /obj/item/clothing/head) && H.flags & 8 && prob(80))) + M << "\blue The helmet protects you from being hit hard in the head!" + for(var/mob/O in viewers(M, null)) + if(O.client) + O.show_message(text("\red [] blocked a hit from []!", M, user), 1) + return + else + var/time = rand(20, 60) + if (prob(90)) + M.paralysis = max(time, M.paralysis) + else + M.weakened = max(time, M.weakened) + src.force = 35 + ..() + if(M.stat != 2) M.stat = 1 + for(var/mob/O in viewers(M, null)) + if(O.client) + O.show_message(text("\red [] has been rifle butted by []!", M, user), 1, "\red You hear someone fall.", 2) + return // AMMO @@ -539,10 +539,6 @@ obj/item/weapon/gun/revolver/attackby(obj/item/weapon/ammo/a357/A as obj, mob/us if (O.client) O.show_message(text("\red [] has been pistol whipped with the detectives revolver by []!", M, user), 1, "\red You hear someone fall", 2) return - - - - // ENERGY GUN /obj/item/weapon/gun/energy/proc/update_icon() diff --git a/code/game/objects/livestock.dm b/code/game/objects/livestock.dm index a6d123bf2b8..0aa573d0789 100644 --- a/code/game/objects/livestock.dm +++ b/code/game/objects/livestock.dm @@ -72,6 +72,39 @@ attack_hand(user as mob) return + attack_alien(var/mob/living/carbon/alien/user as mob) //So aliums can attack and potentially eat space carp. + if(src.alive) + if (user.a_intent == "help") + for(var/mob/O in viewers(src, null)) + if ((O.client && !( O.blinded ))) + O.show_message(text("\blue [user] caresses [src.name] with its scythe like arm."), 1) + else + src.health -= rand(15,30) + if(src.aggressive) + src.target = user + src.state = 1 + for(var/mob/O in viewers(src, null)) + if ((O.client && !( O.blinded ))) + O.show_message(text("\red [] has slashed [src.name]!", user), 1) + playsound(src.loc, 'slice.ogg', 25, 1, -1) + if(prob(10)) new /obj/decal/cleanable/blood(src.loc) + if (src.health <= 0) + src.death() + else + if (user.a_intent == "grab") + for(var/mob/N in viewers(user, null)) + if(N.client) + N.show_message(text("\red [user] is attempting to devour the carp!"), 1) + if(!do_after(user, 50)) return + for(var/mob/N in viewers(user, null)) + if(N.client) + N.show_message(text("\red [user] hungrily devours the carp!"), 1) + user.health += rand(10,25) + del(src) + else + user << "\green The creature is already dead." + return + attackby(obj/item/weapon/W as obj, mob/user as mob) if(src.alive) switch(W.damtype) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index c4aca2d7eb3..cb2c0985ab0 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -1,15 +1,5 @@ /*NOTES: - -There are several problems with alien powers right now. I am currently trying to fix the dissolve verb so it makes a lot more sense. -Alien spit is ridiculous and needs to be toned down. It homes in on targets when it should probably work -more like a taser shot but with continuous toxin damage to the target if they are hit. -Invisibility works well but 30 seconds is too long. 15 would be good considering it doesn't cost much and makes the alien a lot more -robust (can't be canceled by anything short of thermals or a superpower). -Vent crawl shouldn't transport the alien to the Prison Station or back. The list should also be in some order since right now it's -often difficult to pick the right destination. -Resin wall should also apply to mobs so that aliens can envelope them in resin (effectively paralyze them) to successfully hatch more -aliens. Perhaps it should also prevent the target from suiciding. -All I can think of right now./N +These are being worked on. */ /mob/living/carbon/alien/humanoid/verb/invis() diff --git a/code/modules/mob/living/carbon/alien/humanoid/death.dm b/code/modules/mob/living/carbon/alien/humanoid/death.dm index a38e549ae63..0e34eea9827 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/death.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/death.dm @@ -6,8 +6,8 @@ src.stat = 2 if (!gibbed) - // emote("deathgasp") // Dead -- Skie // Doesn't work due to stat == 2 -- Urist + playsound(src.loc, 'hiss6.ogg', 80, 1, 1) for(var/mob/O in viewers(src, null)) O.show_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...", 1) diff --git a/code/modules/mob/living/carbon/alien/humanoid/emote.dm b/code/modules/mob/living/carbon/alien/humanoid/emote.dm index caf8642e9a6..83a8576f397 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/emote.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/emote.dm @@ -20,7 +20,7 @@ m_type = 2 if ("deathgasp") message = "[src] lets out a waning guttural screech, green blood bubbling from its maw..." - m_type = 1 + m_type = 2 if("scratch") if (!src.restrained()) message = "The [src.name] scratches." @@ -99,6 +99,8 @@ if ((message && src.stat == 0)) if (act == "roar") playsound(src.loc, 'hiss5.ogg', 40, 1, 1) + if (act == "deathgasp") + playsound(src.loc, 'hiss6.ogg', 80, 1, 1) if (m_type & 1) for(var/mob/O in viewers(src, null)) O.show_message(message, m_type) diff --git a/code/modules/mob/living/carbon/alien/say.dm b/code/modules/mob/living/carbon/alien/say.dm index 410d270fbfa..8393ae5b645 100644 --- a/code/modules/mob/living/carbon/alien/say.dm +++ b/code/modules/mob/living/carbon/alien/say.dm @@ -11,7 +11,8 @@ message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) src.alien_talk(message) else - playsound(src.loc, "hiss", 25, 1, 1)//So aliens can hiss while they hiss yo/N + if (copytext(message, 1, 2) != "*" && !src.stat) + playsound(src.loc, "hiss", 25, 1, 1)//So aliens can hiss while they hiss yo/N return ..(message) else diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 77eac63c638..2c2e8578b9c 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -285,7 +285,8 @@ if (M.a_intent == "help") for(var/mob/O in viewers(src, null)) - O.show_message(text("\blue [M] caresses [src] with its scythe like arm."), 1) + if ((O.client && !( O.blinded ))) + O.show_message(text("\blue [M] caresses [src] with its scythe like arm."), 1) else if (M.a_intent == "hurt") if ((prob(95) && src.health > 0)) @@ -294,7 +295,7 @@ O.show_message(text("\red [] has slashed [src.name]!", M), 1) playsound(src.loc, 'slice.ogg', 25, 1, -1) - var/damage = rand(5, 10) + var/damage = rand(15, 30) if (prob(40)) damage = rand(20, 40) if (src.paralysis < 5) diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 22241eaf355..00de6abfd42 100644 Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 932fd73e0a8..2788fbc9fd0 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/screen1_alien.dmi b/icons/mob/screen1_alien.dmi index a8fddfc2a44..3cb3a996a8e 100644 Binary files a/icons/mob/screen1_alien.dmi and b/icons/mob/screen1_alien.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 45e7619d73f..c378b52e4a3 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 3560f99a6ed..c19a4b12cb5 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/sound/voice/hiss6.ogg b/sound/voice/hiss6.ogg new file mode 100644 index 00000000000..6c7b75d8a24 Binary files /dev/null and b/sound/voice/hiss6.ogg differ