diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 4f612535f08..a8c78e3e608 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -843,7 +843,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/gun/energy/robotic/laser/rifle(src) src.modules += new /obj/item/gun/energy/robotic/disabler(src) src.modules += new /obj/item/pickaxe/plasmacutter/borg(src) - src.modules += new /obj/item/melee/robotic/dagger(src) + src.modules += new /obj/item/melee/robotic/blade/dagger(src) src.modules += new /obj/item/borg/combat/shield(src) src.modules += new /obj/item/borg/combat/mobility(src) src.modules += new /obj/item/melee/robotic/borg_combat_shocker(src) diff --git a/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm b/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm index 9930e588a9b..3db2610165d 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm @@ -24,7 +24,7 @@ /obj/item/robot_module/robot/syndicate/create_equipment(var/mob/living/silicon/robot/robot) ..() src.modules += new /obj/item/pinpointer/shuttle/merc(src) - src.modules += new /obj/item/melee/robotic/blade(src) + src.modules += new /obj/item/melee/robotic/blade/syndicate(src) var/datum/matter_synth/cloth = new /datum/matter_synth/cloth(40000) synths += cloth diff --git a/code/modules/mob/living/silicon/robot/sprites/combat.dm b/code/modules/mob/living/silicon/robot/sprites/combat.dm index 33489ac65fa..1fd11107c71 100644 --- a/code/modules/mob/living/silicon/robot/sprites/combat.dm +++ b/code/modules/mob/living/silicon/robot/sprites/combat.dm @@ -94,7 +94,7 @@ ..() - var/obj/item/melee/robotic/dagger/CBB = locate() in module.modules + var/obj/item/melee/robotic/blade/dagger/CBB = locate() in module.modules if(CBB) CBB.name = "sword tail" CBB.desc = "A glowing dagger normally attached to the end of a cyborg's tail. It appears to be extremely sharp." diff --git a/code/modules/projectiles/guns/energy/cyborg.dm b/code/modules/projectiles/guns/energy/cyborg.dm index 7f895cc6600..0e0626a0ebc 100644 --- a/code/modules/projectiles/guns/energy/cyborg.dm +++ b/code/modules/projectiles/guns/energy/cyborg.dm @@ -263,7 +263,7 @@ borg_flags = COUNTS_AS_ROBOTIC_MELEE | COUNTS_AS_ROBOT_BLADE icon = 'icons/mob/dogborg_vr.dmi' icon_state = "swordtail" - force = 35 //Takes 3 hits to 100-0 + force = 0 armor_penetration = 70 sharp = TRUE edge = TRUE @@ -271,21 +271,63 @@ hitsound = 'sound/weapons/blade1.ogg' attack_verb = list("slashed", "stabbed", "jabbed", "mauled", "sliced") w_class = ITEMSIZE_NORMAL + var/active_force = 35 + var/active = 0 //Off by default. + var/lcolor = "#38e541" -/obj/item/melee/robotic/dagger //For downstreams that use dagger +/obj/item/melee/robotic/blade/attack_self(mob/user) + if(active) //turning off + playsound(src, 'sound/weapons/saberoff.ogg', 50, 1) + force = 0 + else //turning on + playsound(src, 'sound/weapons/saberon.ogg', 50, 1) + force = active_force + active = !active + to_chat(user, span_notice("[src] is now [active ? "on" : "off"].")) + update_icon() + +/obj/item/melee/robotic/blade/update_icon() + cut_overlays() //So that it doesn't keep stacking overlays non-stop on top of each other + if(active) + var/mutable_appearance/blade_overlay = mutable_appearance(icon, "[icon_state]_blade") + blade_overlay.color = lcolor + add_overlay(blade_overlay) + set_light(2, 1, lcolor) + else + set_light(0) + +/obj/item/melee/robotic/blade/AltClick(mob/living/user) + if(!in_range(src, user)) //Basic checks to prevent abuse + return + if(user.incapacitated() || !istype(user)) + to_chat(user, span_warning("You can't do that right now!")) + return + + if(tgui_alert(user, "Are you sure you want to recolor your blade?", "Confirm Recolor", list("Yes", "No")) == "Yes") + var/energy_color_input = tgui_color_picker(user,"","Choose Energy Color",lcolor) + if(energy_color_input) + lcolor = sanitize_hexcolor(energy_color_input) + update_icon() + +/obj/item/melee/robotic/blade/examine(mob/user) + . = ..() + . += span_notice("Alt-click to recolor it.") + +///Syndicate version. Just had a red glow. +/obj/item/melee/robotic/blade/syndicate + lcolor = "#ff0000" + +///Ninja version. Has more damage and 100% armor pen, along with parry chance. +/obj/item/melee/robotic/blade/ninja + lcolor = "#38e541" + active_force = 40 + armor_penetration = 100 + projectile_parry_chance = 60 + +/obj/item/melee/robotic/blade/dagger //For downstreams that use dagger name = "Robotic Dagger" desc = "A glowing dagger. It appears to be extremely sharp." borg_flags = COUNTS_AS_ROBOTIC_MELEE | COUNTS_AS_ROBOT_DAGGER - icon = 'icons/mob/dogborg_vr.dmi' - icon_state = "swordtail" - force = 35 //Takes 3 hits to 100-0 - armor_penetration = 70 - sharp = TRUE - edge = TRUE - throwforce = 0 //This shouldn't be thrown in the first place. - hitsound = 'sound/weapons/blade1.ogg' - attack_verb = list("slashed", "stabbed", "jabbed", "mauled", "sliced") - w_class = ITEMSIZE_NORMAL /obj/item/melee/robotic/blade/ionic name = "ionic rapier" @@ -329,7 +371,7 @@ name = "stunbaton" desc = "A stun baton for incapacitating people with." icon = 'icons/obj/weapons.dmi' - icon_state = "stunbaton_active" + icon_state = "stunbaton" item_state = "baton" slot_flags = SLOT_BELT force = 15 @@ -344,7 +386,7 @@ var/stunforce = 0 var/agonyforce = 60 var/hitcost = 500 - var/status = 1 //On by default. + var/status = 0 //Off by default. var/lightcolor = "#FF6A00" borg_flags = COUNTS_AS_ROBOTIC_MELEE diff --git a/icons/mob/dogborg_vr.dmi b/icons/mob/dogborg_vr.dmi index ac5c60f8384..2036fc59363 100644 Binary files a/icons/mob/dogborg_vr.dmi and b/icons/mob/dogborg_vr.dmi differ