From 95f30cf5b824046dd056a9517a2c204b111b0115 Mon Sep 17 00:00:00 2001 From: "tronaldnwn@hotmail.com" Date: Tue, 5 Apr 2011 22:53:46 +0000 Subject: [PATCH] Ahem... Glasses: Added Optical Material Scanner - A gimmicky item that lets people see ALL OBJCECTS, even if hidden by turf. Storage: Added dice pack - one d6, one d20 (will add more once I add more Dice types). Toys: Typo fixes. Cigarette lighters: Zippo - Made the lighting message gender neutral. Match - Made the lighting message gender neutral. RSF: Provides new items - Dice packs, pens, and cigarettes Human life: Made the Optical material scanners work to see objects. Robot Modules: Servicce borg - Has a lighter now (which will be modified soon so people can light other people's cigarettes). Icons: Night vision goggles slightly modifies to have a space for the nose of humans to stick out. The item state changed a bit out of the place holder status. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1386 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/obj/clothing/glasses.dm | 6 ++ code/defines/obj/storage.dm | 8 +++ code/defines/obj/toy.dm | 6 +- code/game/objects/items/weapons/RSF.dm | 54 ++++++++++++++++++ .../objects/items/weapons/cigs_lighters.dm | 4 +- code/game/objects/storage/storage.dm | 6 ++ code/modules/mob/living/carbon/human/life.dm | 4 ++ .../mob/living/silicon/robot/robot_modules.dm | 7 ++- icons/mob/eyes.dmi | Bin 4491 -> 4512 bytes icons/obj/clothing/glasses.dmi | Bin 2968 -> 3032 bytes 10 files changed, 88 insertions(+), 7 deletions(-) diff --git a/code/defines/obj/clothing/glasses.dm b/code/defines/obj/clothing/glasses.dm index 0334db29995..9c4b03fc7bd 100644 --- a/code/defines/obj/clothing/glasses.dm +++ b/code/defines/obj/clothing/glasses.dm @@ -23,6 +23,12 @@ item_state = "glasses" origin_tech = "magnets=2" +/obj/item/clothing/glasses/material + name = "Optical Material Scanner" + icon_state = "blindfold" + item_state = "blindfold" + origin_tech = "magnets=2" + /obj/item/clothing/glasses/regular name = "Prescription Glasses" icon_state = "glasses" diff --git a/code/defines/obj/storage.dm b/code/defines/obj/storage.dm index 83151d2db3f..959a2b0e34b 100644 --- a/code/defines/obj/storage.dm +++ b/code/defines/obj/storage.dm @@ -59,6 +59,14 @@ w_class = 2.0 can_hold = list("/obj/item/weapon/reagent_containers/pill") +/obj/item/weapon/storage/dice + name = "dice pack" + icon_state = "pill_canister" + icon = 'chemical.dmi' + item_state = "contsolid" + w_class = 2.0 + can_hold = list("/obj/item/weapon/dice") + /obj/item/weapon/storage/box name = "box" icon_state = "box" diff --git a/code/defines/obj/toy.dm b/code/defines/obj/toy.dm index 7f8162624fc..250a5624fa3 100644 --- a/code/defines/obj/toy.dm +++ b/code/defines/obj/toy.dm @@ -13,7 +13,7 @@ obj/item/toy/blink /obj/item/toy/ammo/gun name = "ammo-caps" - desc = "There are 7 caps left! Make sure to recyle the box when it gets empty." + desc = "There are 7 caps left! Make sure to recyle the box in an autolathe when it gets empty." icon = 'ammo.dmi' icon_state = "357-7" flags = FPRINT | TABLEPASS| CONDUCT @@ -24,7 +24,7 @@ obj/item/toy/blink update_icon() src.icon_state = text("357-[]", src.amount_left) - src.desc = text("There are [] caps\s left! Make sure to recycle the box in your local autolathe when it gets empty.", src.amount_left) + src.desc = text("There are [] caps\s left! Make sure to recycle the box in an autolathe when it gets empty.", src.amount_left) return /obj/item/toy/ammo/crossbow @@ -45,7 +45,7 @@ obj/item/toy/blink /obj/item/toy/gun name = "cap gun" - desc = "There are 0 caps left. Looks almost like the real thing! Ages 8 and up. Please recycle in your local autolathe when your out of caps!" + desc = "There are 0 caps left. Looks almost like the real thing! Ages 8 and up. Please recycle in an autolathe when you're out of caps!" icon = 'gun.dmi' icon_state = "revolver" item_state = "gun" diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index bbde1a252c3..6919ab6e383 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -31,6 +31,18 @@ RSF user << "Changed dispensing mode to 'Paper'" return if (mode == 3) + mode = 4 + user << "Changed dispensing mode to 'Pen'" + return + if (mode == 4) + mode = 5 + user << "Changed dispensing mode to 'Dice Pack'" + return + if (mode == 5) + mode = 6 + user << "Changed dispensing mode to 'Cigarette'" + return + if (mode == 6) mode = 1 user << "Changed dispensing mode to 'Dosh'" return @@ -80,4 +92,46 @@ RSF matter-- user << "The RSF now holds [matter]/30 fabrication-units." desc = "A RSF. It currently holds [matter]/30 fabrication-units." + return + + else if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && mode == 4) + if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && matter >= 1) + user << "Dispensing Pen..." + playsound(src.loc, 'click.ogg', 10, 1) + new /obj/item/weapon/pen( A.loc ) + if (isrobot(user)) + var/mob/living/silicon/robot/engy = user + engy.cell.charge -= 50 + else + matter-- + user << "The RSF now holds [matter]/30 fabrication-units." + desc = "A RSF. It currently holds [matter]/30 fabrication-units." + return + + else if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && mode == 5) + if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && matter >= 1) + user << "Dispensing Dice Pack..." + playsound(src.loc, 'click.ogg', 10, 1) + new /obj/item/weapon/storage/dice( A.loc ) + if (isrobot(user)) + var/mob/living/silicon/robot/engy = user + engy.cell.charge -= 200 + else + matter-- + user << "The RSF now holds [matter]/30 fabrication-units." + desc = "A RSF. It currently holds [matter]/30 fabrication-units." + return + + else if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && mode == 6) + if (((istype(A, /obj/table) || istype(A, /turf/simulated/floor))) && matter >= 1) + user << "Dispensing Cigarette..." + playsound(src.loc, 'click.ogg', 10, 1) + new /obj/item/clothing/mask/cigarette( A.loc ) + if (isrobot(user)) + var/mob/living/silicon/robot/engy = user + engy.cell.charge -= 10 + else + matter-- + user << "The RSF now holds [matter]/30 fabrication-units." + desc = "A RSF. It currently holds [matter]/30 fabrication-units." return \ No newline at end of file diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 67905d946ec..6365e7e64bd 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -89,7 +89,7 @@ obj/item/weapon/matchbox.attackby(obj/item/weapon/match/W as obj, mob/user as mo src.icon_state = icon_on src.item_state = icon_on for(var/mob/O in viewers(user, null)) - O.show_message(text("\red With a single flick of his wrist, [] smoothly lights his [] with his []. Damn they're cool.", user, src.name, W), 1) + O.show_message(text("\red With a single flick of their wrist, [] smoothly lights their [] with their []. Damn they're cool.", user, src.name, W), 1) spawn() //start fires while it's lit src.process() else if(istype(W, /obj/item/weapon/match) && W:lit) @@ -98,7 +98,7 @@ obj/item/weapon/matchbox.attackby(obj/item/weapon/match/W as obj, mob/user as mo src.icon_state = icon_on src.item_state = icon_on for(var/mob/O in viewers(user, null)) - O.show_message(text("\red [] lights his [] with his []. How poor can you get?", user, src.name, W), 1) + O.show_message(text("\red [] lights their [] with their []. How poor can you get?", user, src.name, W), 1) spawn() //start fires while it's lit src.process() diff --git a/code/game/objects/storage/storage.dm b/code/game/objects/storage/storage.dm index e145447bf61..8abaa8c6ae6 100644 --- a/code/game/objects/storage/storage.dm +++ b/code/game/objects/storage/storage.dm @@ -176,6 +176,12 @@ ..() return +/obj/item/weapon/storage/dice/New() + new /obj/item/weapon/dice( src ) + new /obj/item/weapon/dice/d20( src ) + ..() + return + /obj/item/weapon/storage/mousetraps/New() new /obj/item/weapon/mousetrap( src ) new /obj/item/weapon/mousetrap( src ) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index f83b2b24771..283f58f04fc 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -751,6 +751,10 @@ src.sight |= SEE_MOBS if(!src.druggy) src.see_invisible = 2 + else if (istype(src.glasses, /obj/item/clothing/glasses/material)) + src.sight |= SEE_OBJS + if (!src.druggy) + src.see_invisible = 0 else if (src.stat != 2) src.sight &= ~SEE_TURFS diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 68b95bb54a6..34289b3a665 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -31,9 +31,10 @@ /obj/item/weapon/robot_module/janitor name = "janitorial robot module" +/* /obj/item/weapon/robot_module/brobot name = "brobot robot module" - +*/ /obj/item/weapon/robot_module/butler name = "service robot module" @@ -113,6 +114,7 @@ obj/item/weapon/robot_module/syndicate src.modules += M src.modules += new /obj/item/weapon/reagent_containers/robodropper(src) + src.modules += new /obj/item/weapon/zippo(src) src.modules += new /obj/item/weapon/tray(src) src.modules += new /obj/item/weapon/reagent_containers/food/drinks/shaker(src) // src.emag = new /obj/item/weapon/reagent_containers/food/snacks/roburgerbig(src) @@ -164,7 +166,8 @@ obj/item/weapon/robot_module/syndicate src.emag.reagents = R R.my_atom = src.emag R.add_reagent("beer2", 50) - src.emag.name = "Mickey Finn's Special Brew" */ //Merged with Service borg, not a death, just a transformation + src.emag.name = "Mickey Finn's Special Brew" +*/ //Merged with Service borg, not a death, just a transformation obj/item/weapon/robot_module/syndicate/New() src.modules += new /obj/item/weapon/gun/energy/crossbow(src) diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index f80cbf9082057932f9a4746cd9821a7434545bb2..a1645d9e1b04a0a7182602b5be3b99d5ad472bf0 100644 GIT binary patch delta 3855 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 diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 376bff674b31649110b1fbd5e0c75f45ab04021c..147cc6352167b2fe3451bb9cafd65d034c17c4eb 100644 GIT binary patch delta 2771 zcmV;^3M}=Q7uXk&-+$yuL_t(|ob8=`Ocd!I$G<~FJP=s+SOje&g*^?nDd!8CXcM5d zx$9ky)4jTPY4%!Ul;|35BWf{T>b7EP73}q{(gwA;dbBJA_m`9q`Eq$hg)mvn zGadCz>1 zb#>wQ%XWLkf8~4^0PqXd768EQ!chRgz+k_$O~uJmA)kx9{bfhJ+jqVxwy)YFwqN*V z@a+fG1)QrNRV>S|{B!lA$ViMq$G{j`oq|`K5~?ZW;yayA0OMD_r}&geXNJElJL~gHe)l=EuGL{iL`At;&2~8R%W&$1&3n- zm3}?2XbJG&J^(Gj#{;V1+7GA(DE!?&0RWbtZd6>!Mx&9eE4w8L zf2DW>Dl03ccqB}q)9Hv>twusZ0`A?r=T!r!)oN+m-rinCJQ5}_nM`DZMa(?c3sum6 zXf#MpPKL|nLU(sJ(k-3HMx0lie)uMniI_~Lu(|<@a{z!SzGwTE*iKP+k9eT%`!xU{ z3LXE%6BDL!qtPg(0J->)gr@X~#FMA{NEd(gudhazp4`Cn^n4@Gv>%M%v*=!j*I3H*&bHy8wvS2!+(WAUjj&fylU~Z-p)%Y}k(P$+7{r#w}t`7PaFc=IZ zDJf~H9u`prxjrc5f>Gg%i;KykMT>mxHtBJH-Kpo#$X?LTL6Hj znnUEdwV80c|Ba@aLnPEK>0>k+No8fFP+eUu7z_qtHk$)YdBk8akm~Ac zp|Y}4kUu#j|2a&0gIpgHa^XG2kBf_gXGWL|v)L?!n+2%&skUd3`uakozP=EnjWJk% zmwBFiv-u|k0Cwoq*!o-oE?YYM9Zo`#0jTKof4aV?s0dc86`y|ciQiv%*zHD9QIWJP zH$fz_L0z3ycwF!ufzrT_ZloPPTUQsE8h{EG7Z>Mu+i=_S$GXh(mX zwqtx0@TW)=fWWw@DwRrM0F`RIhjBWcaJ${8s;Zju{yjJLRigUy4;13dabEvAMjK&>8)IPqq7OL%9y_Q}z*LGG2zhx6 zV6%;nbHl0jec?G0C@wB0Zns;?25z?-0H)>Y2gG6zuix?#9{_qF8o>TVA4Wb~jo9W+ z0DS=;JF2FFZMI=VD$V=CvtXltLc87WX&0Z;^RtIu>;45`#hIl5fTJ({4?A>fykhtg zx!*`Z>_oU*#txuxH05ttiC-MTXs;Ww;s;Uy4PUp0XZy$MEn73jKJ!h7p5n|e> z;?G+#hC@daaN*`+47ZD2z}jC}V(Wd2InY#~4Y4KiIBfa2K|&~-C^HL>Gs9^h)} zCh}y)Jbc)+5CHIEVFm#BEe4~;0P*oB$aIQNnP`|dn`ic#Y7UWaYnriYTM<5M`?25i zjEbq?@#=s2+n&v0PsH7ZCgdFdy8!s_|A8nmfM@m3@rGXcN8Zt4^RrvYi-j4;dD;Jd zQBefe)$JAX@)js2fmow|spb%wsIsT)xBfgwD*Q_S_?8gzcLB2%n{61=Jqnmj$SZql z1W)0Q@7zk>`c2@|z(5okU})%|V6zP)KmQG{EHKf!xyCK0N)ng~?kRjQS3V_bMgbJh z>EM|d9?m4kcWxzsILy0j>44bR2Pe9ms51aCZUWjZOx2Vy3q+-V0XUH(YH9$^)W8kE zI8iYXG?ytTD45aqc?Mt{ZUDyN24Ea+fVsoP{IcLDM7aUx4lmWc7W{k|Hvr>s127IZ z00a0EnHzus#(c!M0T_oHfN}VD0YOl5V4q^3otU6}PBIcNiJWe@0Rn)&opWXGD!5!O zMXa^Wfy9I)Xti2@#aldQzzhZX`IS#DJtkZ{|D9a{@8t7_5VcyptGT(kGBq_7DJdxc zfad0A$d~*2`q0zUBdw#$4_z*-T(d^nrp@8N(yXkYKa{=k;$H%bZCDKes8~M!`dS*B zEFK9;4(uaYnb``VsR>%!9Kdz~BP;&{^}zx~th>8AAQQ}g>Td%Z>gy}RZGeg&3VY)V zh&_+Mo=33hsgJSgsgF_ex%g^&d2Gu=w^uw8$i;v5#uzqOoM>rjL2`1kVmoR+N^6?~ z1B3luUB+z0XBXgd{sTGR`s(rR*v|j}hKDaJmVpl*-<$XT<7FLewqbmFcRu?1veD*n zVC9-M#@^n4-aiC;aMdREK~1B3l&X=#C0t5xhD&a306gDD*a z(6k?l_<$((wo4=E7#KtU{2}zu9|8dE*S{vnV;uv3;z*ai#=c^Cg^*!SLB;Y4f&L38 zGteviJ=-m>SXO2>1_t|q?E-pFSkYj=iIuslkeHB!ij${=ij${=*^mh)6WV7DaJRLU zEKE*Ds5L++eZD8<<}#A=qjv!SO@G~j{rd55Jj%^wM6>aIN%)WMY*bw7<>oRX-@fGY z5)w>*CXjal*e>pt__su8wOTaTZz3@v2^x(?5yx4A#DpZN|M!;xX1WIOdspy-2M_}^31 zaE5=}0E{!!2H;b{jKdAUINSh?!wtYV+yD$NF_GBZ01PqFok83HjKdAUINSh?!wtYV Z{|BHsf4pN4VNn18002ovPDHLkV1m{eI2ix{ delta 2706 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 h8z4J2^8eM$K_gZ