diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index b3e3bb4e80c..53aa3258e1c 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -122,6 +122,8 @@ sharp = 1 edge = 1 var/blade_color + var/random_color = TRUE + var/active_state = "sword" /obj/item/weapon/melee/energy/sword/dropped(var/mob/user) ..() @@ -129,8 +131,9 @@ deactivate(user) /obj/item/weapon/melee/energy/sword/New() - blade_color = pick("red","blue","green","purple") - lcolor = blade_color + if(random_color) + blade_color = pick("red","blue","green","purple") + lcolor = blade_color /obj/item/weapon/melee/energy/sword/green/New() blade_color = "green" @@ -154,7 +157,7 @@ ..() attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - icon_state = "sword[blade_color]" + icon_state = "[active_state][blade_color]" /obj/item/weapon/melee/energy/sword/deactivate(mob/living/user) @@ -184,6 +187,55 @@ ..() icon_state = "cutlass1" +/* + *Ionic Rapier + */ + +/obj/item/weapon/melee/energy/sword/ionic_rapier + name = "ionic rapier" + desc = "Designed specifically for disrupting electronics at close range, it is extremely deadly against synthetics, but almost harmless to pure organic targets." + description_info = "This is a dangerous melee weapon that will deliver a moderately powerful electromagnetic pulse to whatever it strikes. \ + Striking a lesser robotic entity will compel it to attack you, as well. It also does extra burn damage to robotic entities, but it does \ + very little damage to purely organic targets." + icon_state = "ionic_rapier0" + random_color = FALSE + active_force = 5 + active_throwforce = 3 + active_embed_chance = 0 + sharp = 1 + edge = 1 + armor_penetration = 0 + flags = NOBLOODY + lrange = 2 + lpower = 2 + lcolor = "#0000FF" + active_state = "ionic_rapier" + +/obj/item/weapon/melee/energy/sword/ionic_rapier/afterattack(var/atom/movable/AM, var/mob/living/user, var/proximity) + if(istype(AM, /obj) && proximity && active) + // EMP stuff. + var/obj/O = AM + O.emp_act(3) // A weaker severity is used because this has infinite uses. + playsound(get_turf(O), 'sound/effects/EMPulse.ogg', 100, 1) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) // A lot of objects don't set click delay. + return ..() + +/obj/item/weapon/melee/energy/sword/ionic_rapier/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone) + . = ..() + if(target.isSynthetic() && active) + // Do some extra damage. Not a whole lot more since emp_act() is pretty nasty on FBPs already. + target.emp_act(3) // A weaker severity is used because this has infinite uses. + playsound(get_turf(target), 'sound/effects/EMPulse.ogg', 100, 1) + target.adjustFireLoss(force * 3) // 15 Burn, for 20 total. + playsound(get_turf(target), 'sound/weapons/blade1.ogg', 100, 1) + + // Make lesser robots really mad at us. + if(istype(target, /mob/living/simple_animal)) + var/mob/living/simple_animal/SA = target + if(SA.intelligence_level == SA_ROBOTIC) + SA.taunt(user) + SA.adjustFireLoss(force * 6) // 30 Burn, for 50 total. + /* *Energy Blade */ diff --git a/code/modules/mob/living/simple_animal/aliens/hivebot.dm b/code/modules/mob/living/simple_animal/aliens/hivebot.dm index 02f48d13fa2..aefe91b3710 100644 --- a/code/modules/mob/living/simple_animal/aliens/hivebot.dm +++ b/code/modules/mob/living/simple_animal/aliens/hivebot.dm @@ -51,6 +51,9 @@ say_maybe_target = list("Possible threat detected. Investigating.", "Motion detected.", "Investigating.") say_got_target = list("Threat detected.", "New task: Remove threat.", "Threat removal engaged.", "Engaging target.") +/mob/living/simple_animal/hostile/hivebot/isSynthetic() + return TRUE + // Subtypes. // Melee like the base type, but more fragile. diff --git a/icons/mob/items/lefthand_melee.dmi b/icons/mob/items/lefthand_melee.dmi index 41f7617c3fc..0f08605207a 100644 Binary files a/icons/mob/items/lefthand_melee.dmi and b/icons/mob/items/lefthand_melee.dmi differ diff --git a/icons/mob/items/righthand_melee.dmi b/icons/mob/items/righthand_melee.dmi index fb7baddc29c..c1313715a6f 100644 Binary files a/icons/mob/items/righthand_melee.dmi and b/icons/mob/items/righthand_melee.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 6807e3fbc9e..9b434f628db 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ