diff --git a/code/game/gamemodes/miniantags/guardian/guardian.dm b/code/game/gamemodes/miniantags/guardian/guardian.dm
index 94a7895bf51..39acdabacc5 100644
--- a/code/game/gamemodes/miniantags/guardian/guardian.dm
+++ b/code/game/gamemodes/miniantags/guardian/guardian.dm
@@ -496,7 +496,7 @@
melee_damage_upper = 10
damage_transfer = 0.9
projectiletype = /obj/item/projectile/guardian
- ranged_cooldown_time = 1
+ ranged_cooldown_time = 10
projectilesound = 'sound/effects/hit_on_shattered_glass.ogg'
ranged = 1
rapid = 1
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 343841b639c..d0037485c5c 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -192,8 +192,8 @@
// Engineering
if(istype(O,/obj/item/stack/sheet))
var/obj/item/stack/sheet/S = O
- if(S.amount < 50)
- S.amount += 1 * coeff
+ if(S.amount < S.max_amount)
+ S.amount += min(1 * coeff, S.max_amount)
// Security
if(istype(O,/obj/item/device/flash))
var/obj/item/device/flash/F = O
diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm
index 263f287a823..d38ac3b71ff 100644
--- a/code/game/objects/items/devices/megaphone.dm
+++ b/code/game/objects/items/devices/megaphone.dm
@@ -12,24 +12,22 @@
var/list/insultmsg = list("FUCK EVERYONE!", "I'M A TATER!", "ALL SECURITY TO SHOOT ME ON SIGHT!", "I HAVE A BOMB!", "CAPTAIN IS A COMDOM!", "FOR THE SYNDICATE!")
/obj/item/device/megaphone/attack_self(mob/living/user as mob)
- if(user.client)
- if(user.client.prefs.muted & MUTE_IC)
- to_chat(src, "\red You cannot speak in IC (muted).")
- return
- if(!ishuman(user))
- to_chat(user, "\red You don't know how to use this!")
+ if(user.client && (user.client.prefs.muted & MUTE_IC))
+ to_chat(src, "You cannot speak in IC (muted).")
return
- if(user.silent)
+ if(!ishuman(user))
+ to_chat(user, "You don't know how to use this!")
+ return
+ if(!user.can_speak())
to_chat(user, "You find yourself unable to speak at all.")
return
if(ishuman(user))
var/mob/living/carbon/human/H = user
- if(H && H.mind)
- if(H.mind.miming)
- to_chat(user, "Your vow of silence prevents you from speaking.")
- return
+ if(H && H.mind && H.mind.miming)
+ to_chat(user, "Your vow of silence prevents you from speaking.")
+ return
if(spamcheck)
- to_chat(user, "\red \The [src] needs to recharge!")
+ to_chat(user, "\The [src] needs to recharge!")
return
var/message = input(user, "Shout a message:", "Megaphone") as text|null
@@ -39,28 +37,27 @@
if(!message)
return
message = capitalize(message)
- if((src.loc == user && usr.stat == 0))
+ if((loc == user && !user.incapacitated()))
if(emagged)
if(insults)
saymsg(user, pick(insultmsg))
insults--
else
- to_chat(user, "\red *BZZZZzzzzzt*")
+ to_chat(user, "*BZZZZzzzzzt*")
else
saymsg(user, message)
spamcheck = 1
spawn(20)
spamcheck = 0
- return
/obj/item/device/megaphone/proc/saymsg(mob/living/user as mob, message)
- audible_message("[user] broadcasts, \"[message]\"", hearing_distance = 14)
+ audible_message("[user] broadcasts, \"[message]\"", hearing_distance = 14)
for(var/obj/O in oview(14, get_turf(src)))
- O.hear_talk(user, "[message]")
+ O.hear_talk(user, "[message]")
/obj/item/device/megaphone/emag_act(user as mob)
if(!emagged)
- to_chat(user, "\red You overload \the [src]'s voice synthesizer.")
+ to_chat(user, "You overload \the [src]'s voice synthesizer.")
emagged = 1
insults = rand(1, 3)//to prevent dickflooding