From 1e34c97a9a061ada6cec227ffaa57c293ff83f35 Mon Sep 17 00:00:00 2001
From: Michiyamenotehifunana
<31995558+Michiyamenotehifunana@users.noreply.github.com>
Date: Tue, 13 Aug 2019 14:02:36 +0800
Subject: [PATCH] Turns NIFSoft disks into neuromods
---
code/modules/nifsoft/nifsoft.dm | 74 ++++++++++++++++++++-----------
icons/mob/items/lefthand_vr.dmi | Bin 612 -> 707 bytes
icons/mob/items/righthand_vr.dmi | Bin 601 -> 694 bytes
icons/obj/nanomods.dmi | Bin 0 -> 1515 bytes
4 files changed, 48 insertions(+), 26 deletions(-)
create mode 100644 icons/obj/nanomods.dmi
diff --git a/code/modules/nifsoft/nifsoft.dm b/code/modules/nifsoft/nifsoft.dm
index b4791003d0b..6f110de8566 100644
--- a/code/modules/nifsoft/nifsoft.dm
+++ b/code/modules/nifsoft/nifsoft.dm
@@ -165,15 +165,19 @@
return ..()
/////////////////
-// A NIFSoft Disk
+// A NIFSoft Uploader
/obj/item/weapon/disk/nifsoft
- name = "NIFSoft Disk"
+ name = "NIFSoft Uploader"
desc = "It has a small label: \n\
- \"Portable NIFSoft Disk. \n\
- Insert directly into brain.\""
- icon = 'icons/obj/cloning.dmi'
- icon_state = "datadisk2"
- item_state = "card-id"
+ \"Portable NIFSoft Installation Media. \n\
+ Align ocular port with eye socket and depress red plunger.\""
+ icon = 'icons/obj/nanomods.dmi'
+ icon_state = "medical"
+ item_state = "nanomod"
+ item_icons = list(
+ slot_l_hand_str = 'icons/mob/items/lefthand_vr.dmi',
+ slot_r_hand_str = 'icons/mob/items/righthand_vr.dmi',
+ )
w_class = ITEMSIZE_SMALL
var/datum/nifsoft/stored = null
@@ -188,7 +192,7 @@
var/mob/living/carbon/human/Hu = user
if(!Ht.nif || Ht.nif.stat != NIF_WORKING)
- to_chat(user,"Either they don't have a NIF, or the disk can't connect.")
+ to_chat(user,"Either they don't have a NIF, or the uploader can't connect.")
return
var/extra = extra_params()
@@ -197,9 +201,18 @@
else
Ht.visible_message("[Hu] begins uploading [src] into [Ht]!","[Hu] is uploading [src] into you!")
- if(A == user || do_after(Hu,10 SECONDS,Ht))
+ icon_state = "[initial(icon_state)]-animate" //makes it play the item animation upon using on a valid target
+ update_icon()
+
+ if(A == user && do_after(Hu,1 SECONDS,Ht))
new stored(Ht.nif,extra)
qdel(src)
+ else if(A != user && do_after(Hu,10 SECONDS,Ht))
+ new stored(Ht.nif,extra)
+ qdel(src)
+ else
+ icon_state = "[initial(icon_state)]" //If it fails to apply to a valid target and doesn't get deleted, reset its icon state
+ update_icon()
//So disks can pass fancier stuff.
/obj/item/weapon/disk/nifsoft/proc/extra_params()
@@ -208,8 +221,14 @@
// Compliance Disk //
/obj/item/weapon/disk/nifsoft/compliance
- name = "NIFSoft Disk (Compliance)"
+ name = "NIFSoft Uploader (Compliance)"
desc = "Wow, adding laws to people? That seems illegal. It probably is. Okay, it really is."
+ icon_state = "compliance"
+ item_state = "healthanalyzer"
+ item_icons = list(
+ slot_l_hand_str = 'icons/mob/items/lefthand.dmi',
+ slot_r_hand_str = 'icons/mob/items/righthand.dmi',
+ )
stored = /datum/nifsoft/compliance
var/laws
@@ -233,19 +252,20 @@
// Security Disk //
/obj/item/weapon/disk/nifsoft/security
- name = "NIFSoft Disk - Security"
+ name = "NIFSoft Uploader - Security"
desc = "Contains free NIFSofts useful for security members.\n\
It has a small label: \n\
- \"Portable NIFSoft Disk. \n\
- Insert directly into brain.\""
+ \"Portable NIFSoft Installation Media. \n\
+ Align ocular port with eye socket and depress red plunger.\""
+ icon_state = "security"
stored = /datum/nifsoft/package/security
/datum/nifsoft/package/security
software = list(/datum/nifsoft/ar_sec,/datum/nifsoft/flashprot)
/obj/item/weapon/storage/box/nifsofts_security
- name = "security nifsoft disks"
+ name = "security nifsoft uploaders"
desc = "A box of free nifsofts for security employees."
icon_state = "disk_kit"
@@ -256,19 +276,20 @@
// Engineering Disk //
/obj/item/weapon/disk/nifsoft/engineering
- name = "NIFSoft Disk - Engineering"
+ name = "NIFSoft Uploader - Engineering"
desc = "Contains free NIFSofts useful for engineering members.\n\
It has a small label: \n\
- \"Portable NIFSoft Disk. \n\
- Insert directly into brain.\""
+ \"Portable NIFSoft Installation Media. \n\
+ Align ocular port with eye socket and depress red plunger.\""
+ icon_state = "engineering"
stored = /datum/nifsoft/package/engineering
/datum/nifsoft/package/engineering
software = list(/datum/nifsoft/ar_eng,/datum/nifsoft/alarmmonitor,/datum/nifsoft/uvblocker)
/obj/item/weapon/storage/box/nifsofts_engineering
- name = "engineering nifsoft disks"
+ name = "engineering nifsoft uploaders"
desc = "A box of free nifsofts for engineering employees."
icon_state = "disk_kit"
@@ -279,11 +300,11 @@
// Medical Disk //
/obj/item/weapon/disk/nifsoft/medical
- name = "NIFSoft Disk - Medical"
+ name = "NIFSoft Uploader - Medical"
desc = "Contains free NIFSofts useful for medical members.\n\
It has a small label: \n\
- \"Portable NIFSoft Disk. \n\
- Insert directly into brain.\""
+ \"Portable NIFSoft Installation Media. \n\
+ Align ocular port with eye socket and depress red plunger.\""
stored = /datum/nifsoft/package/medical
@@ -291,7 +312,7 @@
software = list(/datum/nifsoft/ar_med,/datum/nifsoft/crewmonitor)
/obj/item/weapon/storage/box/nifsofts_medical
- name = "medical nifsoft disks"
+ name = "medical nifsoft uploaders"
desc = "A box of free nifsofts for medical employees."
icon_state = "disk_kit"
@@ -302,19 +323,20 @@
// Mining Disk //
/obj/item/weapon/disk/nifsoft/mining
- name = "NIFSoft Disk - Mining"
+ name = "NIFSoft Uploader - Mining"
desc = "Contains free NIFSofts useful for mining members.\n\
It has a small label: \n\
- \"Portable NIFSoft Disk. \n\
- Insert directly into brain.\""
+ \"Portable NIFSoft Installation Media. \n\
+ Align ocular port with eye socket and depress red plunger.\""
+ icon_state = "mining"
stored = /datum/nifsoft/package/mining
/datum/nifsoft/package/mining
software = list(/datum/nifsoft/material,/datum/nifsoft/spare_breath)
/obj/item/weapon/storage/box/nifsofts_mining
- name = "mining nifsoft disks"
+ name = "mining nifsoft uploaders"
desc = "A box of free nifsofts for mining employees."
icon_state = "disk_kit"
diff --git a/icons/mob/items/lefthand_vr.dmi b/icons/mob/items/lefthand_vr.dmi
index 8d1397038dddc17998ee46099600cf8d26d0ba11..a10b0dc81cf032f9e99a1d5431d807dd749bd0bc 100644
GIT binary patch
delta 576
zcmV-G0>Ay_1j7X-iBL{Q4GJ0x0000DNk~Le0001h0001B2m=5B0OF*IdjJ3cNRcHg
zHf97Ox)BjCH%OER8n3&?{a|r+d00DGTPE!Ct=GbNc
z004cFWoUntpxV5|y!_n!6kO_*6lMp+7?;0004?Nklgzf?-*Oar6)VAkbGb>Kdt==Zk{
z3eJx}1n$RKpQE@?HQe6mR&oDB#ccnWqhzS;Ld6rG<5}yMiA@0j00000unGEsKhO{8
zp&x(H-{}XmE;|FI*8F}z@9zin)pY%UxoUPlFt`tfyd2&B(hU88DK)nr=-mgyHb+iB
zpv}||7^Z>IeK6~CWb^|j><0|9AJ8W52ihFZ>Idfg#~i=g4;b_V000000002+f4JR`
zmbl+Ihpm0AJ)#L!k;KDVH>FZN>$OKTp;uTWQ9mm;rBYX`253U>NW$O04>3R!vI_<*
zd4JN_EdwN>xkPOn`u?O@51A?yNxV1)J{vC+g(8XO!!WSLVL||aqxb=-6%9nSXD=fF
O0000^)JiBL{Q4GJ0x0000DNk~Le0001B0001B1Oos701&on3jhEBCy^y9
z6~}9#N&o-=0d!JMQvg8b*k%9#0CSOsXnz!!T4e=SKNqkw0R4I?J%hpJ-2eaqY)M2x
zR9J=Wm%mQKFc63Dwv0KOKLT~YkAM`RMq)v2*pU#-6;FUFc2JkBs8b6IJ1>C5Qf1?*
zut^F{?pztf7Jowq+drS~7=`+2i6@|o=|g*n
z_J{WX$?TThUmZAi)2#q}4J7=+>%_Da$NeO~Tpx)lMp+7?;0004#NklFvhtULX!Xg)0zhQ0FsJ4E$wvnylyS+Dw)i5jR61vFk$U6Z}?en>S_6j>W%c*
zd6sh8%QNSink8klwsPtdyhQZYl%2%k&peYb%-JB?SqHXwaMYZ5z+SBCVE42bHM
zN8;k}$|$ao)$JPg3nM5`aiXYhc(Q(Z1px3zc?a8R4IKo+jjI3v002ovPDHLkV1jyx
B|40A;
delta 470
zcmV;{0V)2r1=$28iBL{Q4GJ0x0000DNk~Le0001B0001B1Oos701&on3jhEBDv>2C
z82|tO_TFa+00001bW%=J06^y0W&i*HbCHH*Et=IG-#8>)%N3Y&lUmGHBI#OrC=XsdY5*ajMYBkPo8>
ze;>C$Q0NkBaPd7(9?T3f?48a1$j3>0S0Kaia^y$a$Cc;Ua9xG~AD7wN&cEk$G+KNv
zdn&|b0vW_2EKL-brYJ5^+wNzvSbtOryr8}GGcP3R`vhKSLK;Wt;M14;cAfdZoCSL>mb3`5+#2{j5@#0pidx#YBMH{@hE5B6<
z2KPSL;KlJ`x`GS}>ZuklH6UIR48pW{5jBHS?%?qvl6k>cVa56YX__{&6cnXU3;+NC
M07*qoM6N<$f+k7AsQ>@~
diff --git a/icons/obj/nanomods.dmi b/icons/obj/nanomods.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..7068034dadedcdce1066544b3e1c949136d1e181
GIT binary patch
literal 1515
zcmV005u}0{{R3yb+fl0001rP)t-sz`(#D
zBP~`|W|RjSx)Bj_MJl+2FfcVnP*r4(kC^1=>ShEY>f3|fwmrMW$1gWXue-)IK6^iT
z!F;sYLM9_cJThiqS;xY^oRo|sDlITOKw@-$OITn4004pM>&_h$mJ|+ee~(5`bD)wA
z2!J>r$}p>C5bBN|7DG)gUul53#94}zxZvX;G(g~P!43cb00DGTPE!Ct=GbNc0072%
zR9JLGWpiV4X>fFDZ*Bkpc$}q@zY4-I5QpdFDMGudsC960krwG--yx)DdyqdRiAvwz
zXc20uRw%dJ{rI@=hKt!TJLLsS&pEw;b!ap@u-$4+$sJ2yhauTgQUg}C?*`|&htNg}
zN)%j1l$2;)NH&yQELYI=LvG16st}FyNk~ER_8BiiQ6i0LJ{N(mPy<-h)ugn?&KE1x
z|2R8rzRrQTTJ-It@D0va3Zoi{T#GL|M$zBe{XpBV-U%_wiuCn=4?)nl2_kT;G5`Ps
zJxN4CRCt{2n~74}Fc5}iz-JDi#U?U=g!D{I-~aWxk{#k>r6tJ1J@(5?r<2c;RvS6f
z{^JP2Fbu;m{|P}LE*dT`udZA?HNVLNVWbIRiT(v~l3rvr7qiRD!32bl+J3Ns`C`%b
zSb=epESJk@u8C%|!3sgVOs{V=+4T(B;W-}JV8>&hKnz<*!vz2xj6&psG>LCNDL&t#
z1z3G#_wz-^qZ_yj!|+ZQsCqcOAP{lTZ1H+n-+3O}An8^2>JF;EAWOhC*A18*(<226
zaq6I{KoRR{;v~iw@a*r@?Yn3y#0yMd4mhgI)UbeGf2Rn;x{r8)B7rF^3;6a)O)Q{D
z(-is(FELxMKCTJWCTvqo51iAfOJEp=VHk#C7>4<~pz^t{r^cIB$cv)LEfrWikah{tCq&%6=Ir=78&2!T?9pUMG&e1mo7{foxx1jR5_j&yu)NdM0dH*C$5%2Z>
zNr?3+&oB(bFbu;m%s-4{ey0OMS(c?l9{xMa8`h6r^Eu4cPXL;|j`z}K`S9>iA`k!3
zK00}P1Fd|{5HP-ayg>NxY?8_~bO7(cIUd_!{RCi>&mjR~{RCj+@dWfy%Ez_t0bYRB
zN7VSU@;fvE4azm3{=hrr=$otRd=3u~DGw)ny@um)Wf<=2#oO~ce1=l*zchBh)jQ{R
zkAONxrUhL62>G4*G7(Z*&XAKIBfkq`kA9^5&ZFo2j$s&vVHoDUJaGY(_FUl{UQ>FK
z1-yjVY`pm=yMJ4OFnl|ar;t$?$*p+a>DR}5g)N^`Z^Qe~**5!Au&=6WKc+ujX2|E@{fD*M
zVWrtam7NKWzB*_sSfv`%pDr`ybNWZYs)KrpJ#?|V!^W$bfeN}%jp}PG`JDdEt+|6o
zZ|s1pKVit{js>dG)$k0yE}+iP0Xaji{)8c)(?1G^ySTo=26yq%A3Hp_3tfG$Ml8eH
z3i0cv!>*mhoqzKDkMdLJf25x{|0Dgx`Jdbn`QX&~pWNEV`_K2B^FiPFo^w9vJKuB92Yu&z
z&iSD4e9t)_^qucH=YziUy%F-k?Zo*XK
literal 0
HcmV?d00001