mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-26 06:22:26 +01:00
Shells and Periphery (#1327)
Adds Shells. Adds tags. Adds IPC subspecies. Adds HK-47's. Does not add IPC construction. Beyond the obvious review of shells, the exact stats of the IPC subspecies need review. They were largely an afterthought, and quickly overshadowed by the shell project.
This commit is contained in:
@@ -132,3 +132,69 @@
|
||||
S.remove_from_storage(A)
|
||||
A.loc.contents.Remove(A)
|
||||
update()
|
||||
|
||||
/obj/item/weapon/implanter/ipc_tag
|
||||
name = "IPC/Shell tag implanter"
|
||||
desc = "A special implanter used for implanting synthetics with a special tag."
|
||||
var/obj/item/organ/ipc_tag/ipc_tag = null
|
||||
|
||||
/obj/item/weapon/implanter/ipc_tag/New()
|
||||
ipc_tag = new(src)
|
||||
..()
|
||||
update()
|
||||
|
||||
/obj/item/weapon/implanter/ipc_tag/update()
|
||||
if (ipc_tag)
|
||||
icon_state = "cimplanter1"
|
||||
else
|
||||
icon_state = "cimplanter0"
|
||||
return
|
||||
|
||||
/obj/item/weapon/implanter/ipc_tag/attack(mob/M as mob, mob/user as mob)
|
||||
if (!ishuman(M))
|
||||
return
|
||||
|
||||
if (!ipc_tag)
|
||||
user << "<span class ='warning'>[src] is empty!</span>"
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/H = M
|
||||
if (!H.species || !isipc(H) || !H.organs_by_name["groin"])
|
||||
user << "<span class = 'warning'>You cannot use this on a non-synthetic organism!</span>"
|
||||
return
|
||||
|
||||
if (H.internal_organs_by_name["ipc tag"])
|
||||
user << "<span class = 'warning'>[H] is already tagged!</span>"
|
||||
return
|
||||
|
||||
for (var/mob/O in viewers(M, null))
|
||||
O.show_message("<span class = 'warning'>[M] has been implanted by [user].</span>", 1)
|
||||
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'> Implanted with [src.name] ([src.ipc_tag.name]) by [user.name] ([user.ckey])</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] ([src.ipc_tag.name]) to implant [M.name] ([M.ckey])</font>")
|
||||
msg_admin_attack("[key_name_admin(user)] implanted [key_name_admin(M)] with [src.name] (INTENT: [uppertext(user.a_intent)]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
|
||||
|
||||
user.show_message("<span class = 'warning'>You implanted the implant into [M].</span>")
|
||||
|
||||
ipc_tag.replaced(H, H.organs_by_name["groin"])
|
||||
|
||||
qdel(ipc_tag)
|
||||
|
||||
update()
|
||||
|
||||
var/datum/species/machine/machine = H.species
|
||||
machine.update_tag(H, H.client)
|
||||
|
||||
/obj/item/weapon/implanter/ipc_tag/attackby(var/obj/item/organ/ipc_tag/new_tag, mob/user as mob)
|
||||
..()
|
||||
|
||||
if (!istype(new_tag))
|
||||
return
|
||||
|
||||
if (ipc_tag)
|
||||
return
|
||||
|
||||
ipc_tag = new_tag
|
||||
user.drop_item()
|
||||
new_tag.loc = src
|
||||
update()
|
||||
Reference in New Issue
Block a user