Arm Combat Cybernetic Implants (because toolset arm shanks weren't enough) (#20544)

* combat_cybernetics

* flashlight-arms

* surgery

* thiswillprobablyfixit...

* nopethatdoesntwork

* revert

* nerf

* prayingtornjesusitcompiles
This commit is contained in:
kevinz000
2016-09-20 02:36:11 -07:00
committed by oranges
parent 7e5b05ed1f
commit 8a83df0d3b
6 changed files with 86 additions and 6 deletions

View File

@@ -10,14 +10,15 @@
icon_state = "elecarm"
var/charge_cost = 30
/obj/item/borg/stun/attack(mob/living/M, mob/living/silicon/robot/user)
/obj/item/borg/stun/attack(mob/living/M, mob/living/user)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.check_shields(0, "[M]'s [name]", src, MELEE_ATTACK))
playsound(M, 'sound/weapons/Genhit.ogg', 50, 1)
return 0
if(!user.cell.use(charge_cost))
if(isrobot(user))
var/mob/living/silicon/robot/R = user
if(!R.cell.use(charge_cost))
return
user.do_attack_animation(M)

View File

@@ -238,7 +238,6 @@
/obj/item/weapon/melee/energy/blade/dropped()
..()
qdel(src)
/obj/item/weapon/melee/energy/blade/attack_self(mob/user)
return

View File

@@ -190,3 +190,32 @@
item_state = "nullrod"
/obj/item/device/assembly/flash/handheld //this is now the regular pocket flashes
/obj/item/device/assembly/flash/armimplant
name = "photon projector"
desc = "A high-powered photon projector implant normally used for lighting purposes, but also doubles as a flashbulb weapon. Self-repair protocals fix the flashbulb if it ever burns out."
var/flashcd = 20
var/overheat = 0
var/obj/item/organ/cyberimp/arm/flash/I = null
/obj/item/device/assembly/flash/armimplant/burn_out()
if(I && I.owner)
I.owner << "<span class='warning'>Your photon projector implant overheats and deactivates!</span>"
I.Retract()
overheat = FALSE
addtimer(src, "cooldown", flashcd * 2)
/obj/item/device/assembly/flash/armimplant/try_use_flash(mob/user = null)
if(overheat)
if(I && I.owner)
I.owner << "<span class='warning'>Your photon projector is running too hot to be used again so quickly!</span>"
return FALSE
overheat = TRUE
addtimer(src, "cooldown", flashcd)
playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
update_icon(1)
return TRUE
/obj/item/device/assembly/flash/armimplant/proc/cooldown()
overheat = FALSE

View File

@@ -68,6 +68,10 @@
"<span class='notice'>[holder] snaps back into your [zone == "r_arm" ? "right" : "left"] arm.</span>",
"<span class='italics'>You hear a short mechanical noise.</span>")
if(istype(holder, /obj/item/device/assembly/flash/armimplant))
var/obj/item/device/assembly/flash/F = holder
F.SetLuminosity(0)
owner.unEquip(holder, 1)
holder.loc = src
holder = null
@@ -85,6 +89,10 @@
holder.w_class = 5
holder.materials = null
if(istype(holder, /obj/item/device/assembly/flash/armimplant))
var/obj/item/device/assembly/flash/F = holder
F.SetLuminosity(7)
var/obj/item/arm_item = owner.get_active_held_item()
if(arm_item)
@@ -178,3 +186,45 @@
items_list += new /obj/item/weapon/kitchen/knife/combat/cyborg(src)
return 1
return 0
/obj/item/organ/cyberimp/arm/esword
name = "arm-mounted energy blade"
desc = "An illegal, and highly dangerous cybernetic implant that can project a deadly blade of concentrated enregy."
contents = newlist(/obj/item/weapon/melee/energy/blade)
/obj/item/organ/cyberimp/arm/medibeam
name = "integrated medical beamgun"
desc = "A cybernetic implant that allows the user to project a healing beam from their hand."
contents = newlist(/obj/item/weapon/gun/medbeam)
/obj/item/organ/cyberimp/arm/flash
name = "integrated high-intensity photon projector" //Why not
desc = "An integrated projector mounted onto a user's arm, that is able to be used as a powerful flash."
contents = newlist(/obj/item/device/assembly/flash/armimplant)
/obj/item/organ/cyberimp/arm/flash/New()
..()
if(locate(/obj/item/device/assembly/flash/armimplant) in items_list)
var/obj/item/device/assembly/flash/armimplant/F = locate(/obj/item/device/assembly/flash/armimplant) in items_list
F.I = src
/obj/item/organ/cyberimp/arm/baton
name = "arm electrification implant"
desc = "An illegal combat implant that allows the user to administer disabling shocks from their arm."
contents = newlist(/obj/item/borg/stun)
/obj/item/organ/cyberimp/arm/combat
name = "combat cybernetics implant"
desc = "A powerful cybernetic implant that contains combat modules built into the user's arm"
contents = newlist(/obj/item/weapon/melee/energy/blade, /obj/item/weapon/gun/medbeam, /obj/item/borg/stun, /obj/item/device/assembly/flash/armimplant)
/obj/item/organ/cyberimp/arm/combat/New()
..()
if(locate(/obj/item/device/assembly/flash/armimplant) in items_list)
var/obj/item/device/assembly/flash/armimplant/F = locate(/obj/item/device/assembly/flash/armimplant) in items_list
F.I = src
/obj/item/organ/cyberimp/arm/surgery
name = "surgical toolset implant"
desc = "A set of surgical tools hidden behind a concealed panel on the user's arm"
contents = newlist(/obj/item/weapon/retractor, /obj/item/weapon/hemostat, /obj/item/weapon/cautery, /obj/item/weapon/surgicaldrill, /obj/item/weapon/scalpel, /obj/item/weapon/circular_saw, /obj/item/weapon/surgical_drapes)

View File

@@ -197,3 +197,4 @@
toggle(silent=1)
return 0