diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 24d6ee4f59..2533a07e63 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -58,9 +58,9 @@ /obj/item/weapon/melee/energy/suicide_act(mob/user) var/tempgender = "[user.gender == MALE ? "he's" : user.gender == FEMALE ? "she's" : "they are"]" - if (active) - viewers(user) << pick("\The [user] is slitting \his stomach open with \the [src]! It looks like [tempgender] trying to commit seppuku.", \ - "\The [user] is falling on \the [src]! It looks like [tempgender] trying to commit suicide.") + if(active) + user.visible_message(pick("\The [user] is slitting \his stomach open with \the [src]! It looks like [tempgender] trying to commit seppuku.",\ + "\The [user] is falling on \the [src]! It looks like [tempgender] trying to commit suicide.")) return (BRUTELOSS|FIRELOSS) /* @@ -90,15 +90,15 @@ /obj/item/weapon/melee/energy/axe/activate(mob/living/user) ..() icon_state = "axe1" - user << "\The [src] is now energised." + to_chat(user, "\The [src] is now energised.") /obj/item/weapon/melee/energy/axe/deactivate(mob/living/user) ..() icon_state = initial(icon_state) - user << "\The [src] is de-energised. It's just a regular axe now." + to_chat(user, "\The [src] is de-energised. It's just a regular axe now.") /obj/item/weapon/melee/energy/axe/suicide_act(mob/user) - viewers(user) << "\The [user] swings \the [src] towards \his head! It looks like \he's trying to commit suicide." + visible_message("\The [user] swings \the [src] towards \his head! It looks like \he's trying to commit suicide.") return (BRUTELOSS|FIRELOSS) /* @@ -153,7 +153,7 @@ /obj/item/weapon/melee/energy/sword/activate(mob/living/user) if(!active) - user << "\The [src] is now energised." + to_chat(user, "\The [src] is now energised.") ..() attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") @@ -162,7 +162,7 @@ /obj/item/weapon/melee/energy/sword/deactivate(mob/living/user) if(active) - user << "\The [src] deactivates!" + to_chat(user, "\The [src] deactivates!") ..() attack_verb = list() icon_state = initial(icon_state) @@ -294,3 +294,73 @@ host.embedded -= src host.drop_from_inventory(src) spawn(1) if(src) qdel(src) + +/* + *Energy Spear + */ + +/obj/item/weapon/melee/energy/spear + name = "energy spear" + desc = "Concentrated energy forming a sharp tip at the end of a long rod." + icon_state = "espear0" + armor_penetration = 75 + sharp = 1 + edge = 1 + force = 5 + throwforce = 10 + throw_speed = 7 + throw_range = 11 + reach = 2 + w_class = ITEMSIZE_LARGE + active_force = 25 + active_throwforce = 30 + active_w_class = ITEMSIZE_HUGE + var/random_color = TRUE + var/tip_color = "" + var/active_state = "espear" + +/obj/item/weapon/melee/energy/spear/New() + if(random_color) + tip_color = pick("red","blue","green","purple") + lcolor = tip_color + +/obj/item/weapon/melee/energy/spear/green/New() + tip_color = "green" + lcolor = "#008000" + +/obj/item/weapon/melee/energy/spear/red/New() + tip_color = "red" + lcolor = "#FF0000" + +/obj/item/weapon/melee/energy/spear/blue/New() + tip_color = "blue" + lcolor = "#0000FF" + +/obj/item/weapon/melee/energy/spear/purple/New() + tip_color = "purple" + lcolor = "#800080" + +/obj/item/weapon/melee/energy/spear/activate(mob/living/user) + if(!active) + to_chat(user, "\The [src] is now energised.") + ..() + attack_verb = list("jabbed", "stabbed", "impaled") + icon_state = "[active_state]-[tip_color]" + + +/obj/item/weapon/melee/energy/spear/deactivate(mob/living/user) + if(active) + to_chat(user, "\The [src] deactivates!") + ..() + attack_verb = list("whacked", "beat", "slapped", "thonked") + icon_state = "espear0" + +/obj/item/weapon/melee/energy/spear/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") + if(active && default_parry_check(user, attacker, damage_source) && prob(50)) + user.visible_message("\The [user] parries [attack_text] with \the [src]!") + var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() + spark_system.set_up(5, 0, user.loc) + spark_system.start() + playsound(user.loc, 'sound/weapons/blade1.ogg', 50, 1) + return 1 + return 0 \ No newline at end of file diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 1153c2439f..e1294bd482 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ