Merge remote-tracking branch 'upstream/master' into TG-carp-2-electric-boogaloo
@@ -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)
|
||||
|
||||
@@ -23,7 +23,16 @@
|
||||
D.visible_message("<span class='danger'>[A] [atk_verb] [D]!</span>",
|
||||
"<span class='userdanger'>[A] [atk_verb] you!</span>")
|
||||
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("<span class='warning'>[D] stumbles and falls!</span>", "<span class='userdanger'>The blow sends you to the ground!</span>")
|
||||
D.Weaken(4)
|
||||
>>>>>>> upstream/master
|
||||
add_attack_logs(A, D, "Melee attacked with martial-art [src] : Punched", ATKLOG_ALL)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -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 = "<b>[src]</b> 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 += "\n<u>Vox specific emotes</u> :- wag(s), swag(s), quill(s)"
|
||||
if("Vulpkanin")
|
||||
emotelist += "\n<u>Vulpkanin specific emotes</u> :- wag(s), swag(s), growl(s)-none/mob, howl(s)-none/mob"
|
||||
if("Plasmaman")
|
||||
emotelist += "\n<u>Plasmaman specific emotes</u> :- rattle(s)-none/mob"
|
||||
if("Skeleton")
|
||||
emotelist += "\n<u>Skeleton specific emotes</u> :- rattle(s)-none/mob"
|
||||
|
||||
if(ismachineperson(src))
|
||||
emotelist += "\n<u>Machine specific emotes</u> :- beep(s)-none/mob, buzz(es)-none/mob, no-none/mob, ping(s)-none/mob, yes-none/mob, buzz2-none/mob"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 9.3 KiB |