diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index bddb01b42e1..fa1d696a067 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -167,7 +167,8 @@ animals lunging, etc. */ /mob/proc/RangedAttack(var/atom/A, var/params) - if(!mutations.len) return + if(!mutations.len) + return if((LASER in mutations) && a_intent == I_HARM) LaserEyes(A) // moved into a proc below return diff --git a/code/_onclick/click_override.dm b/code/_onclick/click_override.dm index 092398ee174..d37b7368b8f 100644 --- a/code/_onclick/click_override.dm +++ b/code/_onclick/click_override.dm @@ -40,4 +40,29 @@ newObject.loc = get_turf(A) to_chat(user, "You release the power you had stored up, summoning \a [newObject.name]! ") usr.loc.visible_message("[user] waves \his hand and summons \a [newObject.name]") - ..() \ No newline at end of file + ..() + +/datum/middleClickOverride/power_gloves + var/last_shocked = 0 + var/shock_delay = 120 + +/datum/middleClickOverride/power_gloves/onClick(var/atom/A, var/mob/living/user) + if(user.incapacitated()) + return + if(world.time < last_shocked + shock_delay) + to_chat(user, "The gloves are still recharging.") + return + if(!isliving(A)) + to_chat(user, "Shocking an inanimate object would be pointless.") + return + var/mob/living/L = A + var/turf/T = get_turf(user) + var/obj/structure/cable/C = locate() in T + if(!C || !istype(C)) + to_chat(user, "There is no cable here to power the gloves.") + return + user.visible_message("[user.name] fires an arc of electricity at [L]!", "You fire an arc of electricity at [L]!", "You hear the loud crackle of electricity!") + var/datum/powernet/PN = C.get_powernet() + user.Beam(L,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) + electrocute_mob(L, PN, user) + last_shocked = world.time diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index fda074ec119..ae5595d69e5 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -55,7 +55,7 @@ sleep(max(0, projectile_delay)) set_ready_state(0) - log_message("Fired from [src.name], targeting [target].") + log_message("Fired from [name], targeting [target].") var/turf/T = get_turf(src) msg_admin_attack("[key_name_admin(chassis.occupant)] fired a [src] in ([T.x], [T.y], [T.z] - JMP)") log_game("[key_name(chassis.occupant)] fired a [src] in [T.x], [T.y], [T.z]") @@ -107,7 +107,7 @@ /obj/item/projectile/beam/pulse/heavy/Bump(atom/A) A.bullet_act(src, def_zone) - src.life -= 10 + life -= 10 if(ismob(A)) var/mob/M = A if(istype(firer, /mob)) @@ -188,7 +188,7 @@ R.use_power(R.get_charge() / 4) chassis.use_power(energy_drain) - log_message("Honked from [src.name]. HONK!") + log_message("Honked from [name]. HONK!") var/turf/T = get_turf(src) msg_admin_attack("[key_name_admin(chassis.occupant)] used a Mecha Honker in ([T.x], [T.y], [T.z] - JMP)") log_game("[key_name(chassis.occupant)] used a Mecha Honker in [T.x], [T.y], [T.z]") @@ -207,7 +207,7 @@ return 0 /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/get_equip_info() - return "[..()]\[[src.projectiles]\][(src.projectiles < initial(src.projectiles))?" - Rearm":null]" + return "[..()]\[[projectiles]\][(projectiles < initial(projectiles))?" - Rearm":null]" /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/proc/rearm() if(projectiles < initial(projectiles)) @@ -216,14 +216,14 @@ projectiles++ projectiles_to_add-- chassis.use_power(projectile_energy_cost) - send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info()) - log_message("Rearmed [src.name].") + send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",get_equip_info()) + log_message("Rearmed [name].") return /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/Topic(href, href_list) ..() if (href_list["rearm"]) - src.rearm() + rearm() return /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine @@ -293,7 +293,7 @@ playsound(chassis, fire_sound, 50, 1) M.throw_at(target, missile_range, missile_speed, chassis) projectiles-- - log_message("Fired from [src.name], targeting [target].") + log_message("Fired from [name], targeting [target].") var/turf/T = get_turf(src) msg_admin_attack("[key_name_admin(chassis.occupant)] fired a [src] in ([T.x], [T.y], [T.z] - JMP)") log_game("[key_name(chassis.occupant)] fired a [src] in [T.x], [T.y], [T.z]") @@ -334,7 +334,7 @@ playsound(chassis, fire_sound, 50, 1) F.throw_at(target, missile_range, missile_speed, chassis) projectiles-- - log_message("Fired from [src.name], targeting [target].") + log_message("Fired from [name], targeting [target].") spawn(det_time) F.prime() do_after_cooldown() @@ -350,7 +350,7 @@ size=1 /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang/limited/get_equip_info()//Limited version of the clusterbang launcher that can't reload - return "* [chassis.selected==src?"":""][src.name][chassis.selected==src?"":""]\[[src.projectiles]\]" + return "* [chassis.selected==src?"":""][name][chassis.selected==src?"":""]\[[projectiles]\]" /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang/limited/rearm() return//Extra bit of security @@ -379,7 +379,7 @@ playsound(chassis, fire_sound, 60, 1) B.throw_at(target, missile_range, missile_speed, chassis) projectiles-- - log_message("Bananed from [src.name], targeting [target]. HONK!") + log_message("Bananed from [name], targeting [target]. HONK!") do_after_cooldown() return @@ -409,7 +409,7 @@ playsound(chassis, fire_sound, 60, 1) M.throw_at(target, missile_range, missile_speed, chassis) projectiles-- - log_message("Launched a mouse-trap from [src.name], targeting [target]. HONK!") + log_message("Launched a mouse-trap from [name], targeting [target]. HONK!") do_after_cooldown() return @@ -439,7 +439,7 @@ M.thrown_from = src M.throw_at(target, missile_range, missile_speed) projectiles-- - log_message("Fired from [src.name], targeting [target].") + log_message("Fired from [name], targeting [target].") do_after_cooldown() return diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index db163ad3e59..a50e56382a1 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -6,8 +6,32 @@ siemens_coefficient = 0 permeability_coefficient = 0.05 item_color="yellow" - power - var/next_shock = 0 + +/obj/item/clothing/gloves/color/yellow/power + description_antag = "These are a pair of power gloves, and can be used to fire bolts of electricity while standing over powered power cables." + var/old_mclick_override + var/datum/middleClickOverride/power_gloves/mclick_override = new /datum/middleClickOverride/power_gloves + +/obj/item/clothing/gloves/color/yellow/power/equipped(mob/user, slot) + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(slot == slot_gloves) + if(H.middleClickOverride) + old_mclick_override = H.middleClickOverride + H.middleClickOverride = mclick_override + to_chat(H, "You feel electricity begin to build up in [src].") + +/obj/item/clothing/gloves/color/yellow/power/dropped(mob/user, slot) + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + if(H.get_item_by_slot(slot_gloves) == src && H.middleClickOverride == mclick_override) + if(old_mclick_override) + H.middleClickOverride = old_mclick_override + old_mclick_override = null + else + H.middleClickOverride = null /obj/item/clothing/gloves/color/yellow/fake desc = "These gloves will protect the wearer from electric shock. They don't feel like rubber..." @@ -167,4 +191,4 @@ min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT - strip_delay = 60 \ No newline at end of file + strip_delay = 60 diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index ba752754b42..03519770eee 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -167,7 +167,7 @@ if(sawn_state == SAWN_OFF) return user.visible_message("[user] shortens \the [src]!", "You shorten \the [src].") - name = "sawn-off [src.name]" + name = "sawn-off [name]" desc = sawn_desc w_class = 3 item_state = "gun"//phil235 is it different with different skin?