diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 9292bd85292..a6ece08feee 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -166,7 +166,7 @@ var/mob/living/M = loc if(M.a_intent in accepted_intents) - if(istype(M.mind.martial_art, /datum/martial_art/cqc)) + if(M.mind.martial_art || HAS_TRAIT(M, TRAIT_HULK)) M.changeNext_move(CLICK_CD_MELEE)//normal attack speed for hulk, CQC and Carp. else M.changeNext_move(click_speed_modifier) diff --git a/code/modules/martial_arts/sleeping_carp.dm b/code/modules/martial_arts/sleeping_carp.dm index 278437e997d..79415ee7246 100644 --- a/code/modules/martial_arts/sleeping_carp.dm +++ b/code/modules/martial_arts/sleeping_carp.dm @@ -23,7 +23,16 @@ D.visible_message("[A] [atk_verb] [D]!", "[A] [atk_verb] you!") D.apply_damage(rand(10,15), BRUTE) +<<<<<<< HEAD playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, TRUE, -1) +======= + playsound(get_turf(D), 'sound/weapons/punch1.ogg', 25, 1, -1) + if(prob(50)) + A.say(pick("HUAH!", "HYA!", "CHOO!", "WUO!", "KYA!", "HUH!", "HIYOH!", "CARP STRIKE!", "CARP BITE!")) + if(prob(D.getBruteLoss()) && !D.lying) + D.visible_message("[D] stumbles and falls!", "The blow sends you to the ground!") + D.Weaken(4) +>>>>>>> upstream/master add_attack_logs(A, D, "Melee attacked with martial-art [src] : Punched", ATKLOG_ALL) return TRUE diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index b8257bb877f..d80ab50e0b0 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -118,6 +118,11 @@ on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' else //Everyone else fails, skip the emote attempt return + if("rattle", "rattles") + if(isskeleton(src) || isplasmaman(src)) //Only Plasmamen and Skeletons can rattle. + on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' + else //Everyone else fails, skip the emote attempt + return if("scream", "screams") on_CD = handle_emote_CD(50) //longer cooldown @@ -269,6 +274,12 @@ playsound(loc, 'sound/machines/synth_no.ogg', 50, 1, frequency = get_age_pitch()) m_type = 2 + if("rattle", "rattles") + var/M = handle_emote_param(param) + + message = "[src] rattles [p_their()] bones[M ? " at [M]" : ""]." + m_type = 1 + if("wag", "wags") if(body_accessory) if(body_accessory.try_restrictions(src)) @@ -966,6 +977,10 @@ emotelist += "\nVox specific emotes :- wag(s), swag(s), quill(s)" if("Vulpkanin") emotelist += "\nVulpkanin specific emotes :- wag(s), swag(s), growl(s)-none/mob, howl(s)-none/mob" + if("Plasmaman") + emotelist += "\nPlasmaman specific emotes :- rattle(s)-none/mob" + if("Skeleton") + emotelist += "\nSkeleton specific emotes :- rattle(s)-none/mob" if(ismachineperson(src)) emotelist += "\nMachine specific emotes :- beep(s)-none/mob, buzz(es)-none/mob, no-none/mob, ping(s)-none/mob, yes-none/mob, buzz2-none/mob" diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index 485039c56b7..44fa7e00e1b 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -63,18 +63,18 @@ Note: Must be placed west/left of and R&D console to function. for(var/obj/item/stock_parts/matter_bin/M in component_parts) T += M.rating materials.max_amount = T * 75000 - T = 1.2 + T = 12 for(var/obj/item/stock_parts/manipulator/M in component_parts) - T -= M.rating/10 - efficiency_coeff = min(max(0, T), 1) + T -= M.rating + efficiency_coeff = min(max(0, T / 10), 1) /obj/machinery/r_n_d/protolathe/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material var/A = materials.amount(M) if(!A) A = reagents.get_reagent_amount(M) - A = A / max(1, (being_built.reagents_list[M])) + A = A / max(1, (being_built.reagents_list[M] * efficiency_coeff)) else - A = A / max(1, (being_built.materials[M])) + A = A / max(1, (being_built.materials[M] * efficiency_coeff)) return A /obj/machinery/r_n_d/protolathe/attackby(obj/item/O as obj, mob/user as mob, params) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 7d146e08feb..da21ae77d78 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -427,7 +427,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/enough_materials = TRUE - if(!machine.materials.has_materials(efficient_mats, amount)) + if(!machine.materials.has_materials(being_built.materials, coeff)) atom_say("Not enough materials to complete prototype.") enough_materials = FALSE else diff --git a/icons/mob/species/drask/eyes.dmi b/icons/mob/species/drask/eyes.dmi index 697a8c7fa8d..04771713282 100644 Binary files a/icons/mob/species/drask/eyes.dmi and b/icons/mob/species/drask/eyes.dmi differ diff --git a/icons/mob/species/grey/eyes.dmi b/icons/mob/species/grey/eyes.dmi index 522756904f0..707c9c1659f 100644 Binary files a/icons/mob/species/grey/eyes.dmi and b/icons/mob/species/grey/eyes.dmi differ diff --git a/icons/mob/species/vox/eyes.dmi b/icons/mob/species/vox/eyes.dmi index 4d3e8c984dd..4b9ee667e6c 100644 Binary files a/icons/mob/species/vox/eyes.dmi and b/icons/mob/species/vox/eyes.dmi differ diff --git a/icons/obj/doors/doorfireglass.dmi b/icons/obj/doors/doorfireglass.dmi index 33eec559927..61e7dbb174f 100644 Binary files a/icons/obj/doors/doorfireglass.dmi and b/icons/obj/doors/doorfireglass.dmi differ