From 04640eafb1c6aa28dc0f83ee01b709f1fe8be2c7 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 20 Mar 2015 22:45:46 +0000 Subject: [PATCH 01/18] Fix issues with skill class procs --- code/modules/client/preferences.dm | 12 ++++++------ code/modules/mob/new_player/skill.dm | 25 +------------------------ 2 files changed, 7 insertions(+), 30 deletions(-) mode change 100755 => 100644 code/modules/client/preferences.dm diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm old mode 100755 new mode 100644 index ce4c6d4272..91af49f10c --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -171,16 +171,16 @@ datum/preferences used_skillpoints += 6 * multiplier /datum/preferences/proc/GetSkillClass(points) + return CalculateSkillClass(points, age) + +/proc/CalculateSkillClass(points, age) + if(points <= 0) return "Unconfigured" // skill classes describe how your character compares in total points - var/original_points = points points -= min(round((age - 20) / 2.5), 4) // every 2.5 years after 20, one extra skillpoint if(age > 30) points -= round((age - 30) / 5) // every 5 years after 30, one extra skillpoint - if(original_points > 0 && points <= 0) points = 1 switch(points) - if(0) - return "Unconfigured" - if(1 to 3) + if(-1000 to 3) return "Terrifying" if(4 to 6) return "Below Average" @@ -395,7 +395,7 @@ datum/preferences dat += "Set Antag Options
" - dat += "\tSet Skills ([GetSkillClass(used_skillpoints)][used_skillpoints > 0 ? " [used_skillpoints]" : "0"])
" + dat += "\tSet Skills ([GetSkillClass(used_skillpoints)] [used_skillpoints > 0 ? "[used_skillpoints]" : "0"])
" dat += "Set Flavor Text
" dat += "Set Robot Flavour Text
" diff --git a/code/modules/mob/new_player/skill.dm b/code/modules/mob/new_player/skill.dm index 3eb1c6a246..1d6fbf01a4 100644 --- a/code/modules/mob/new_player/skill.dm +++ b/code/modules/mob/new_player/skill.dm @@ -168,30 +168,7 @@ proc/setup_skills() mob/living/carbon/human/proc/GetSkillClass(points) - // skill classes describe how your character compares in total points - var/original_points = points - points -= min(round((age - 20) / 2.5), 4) // every 2.5 years after 20, one extra skillpoint - if(age > 30) - points -= round((age - 30) / 5) // every 5 years after 30, one extra skillpoint - if(original_points > 0 && points <= 0) points = 1 - switch(points) - if(0) - return "Unconfigured" - if(1 to 3) - return "Terrifying" - if(4 to 6) - return "Below Average" - if(7 to 10) - return "Average" - if(11 to 14) - return "Above Average" - if(15 to 18) - return "Exceptional" - if(19 to 24) - return "Genius" - if(24 to 1000) - return "God" - + return CalculateSkillClass(points, age) proc/show_skill_window(var/mob/user, var/mob/living/carbon/human/M) if(!istype(M)) return From 26d878fb028dc7f71cb8f522810f09163145f352 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Sat, 21 Mar 2015 21:08:54 +0000 Subject: [PATCH 02/18] Move closing bracket outside tag Opening bracket is outside. Consistency! --- code/modules/client/preferences.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 91af49f10c..67bf23b72e 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -395,7 +395,7 @@ datum/preferences dat += "Set Antag Options
" - dat += "\tSet Skills ([GetSkillClass(used_skillpoints)] [used_skillpoints > 0 ? "[used_skillpoints]" : "0"])
" + dat += "\tSet Skills ([GetSkillClass(used_skillpoints)] [used_skillpoints > 0 ? "[used_skillpoints]" : "0"])
" dat += "Set Flavor Text
" dat += "Set Robot Flavour Text
" From bf8ad6d5850f0afb3fd08cb3c51a01b9fd73d3de Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 22 Mar 2015 15:52:09 +1030 Subject: [PATCH 03/18] Rebalanced xenoflora sprites, fixed numerous issues. --- code/game/objects/items/stacks/medical.dm | 17 --------------- code/modules/hydroponics/grown.dm | 2 ++ code/modules/hydroponics/seed.dm | 2 +- code/modules/hydroponics/seed_datums.dm | 10 ++++----- code/modules/surgery/organs_internal.dm | 24 +++++++--------------- icons/obj/hydroponics_growing.dmi | Bin 61812 -> 16351 bytes icons/obj/hydroponics_products.dmi | Bin 12491 -> 8331 bytes icons/obj/seeds.dmi | Bin 6623 -> 7374 bytes 8 files changed, 15 insertions(+), 40 deletions(-) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index cdd385cd65..5a071ae818 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -123,23 +123,6 @@ else user << "The [affecting.display_name] is cut open, you'll need more than a bandage!" -/obj/item/stack/medical/bruise_pack/tajaran - name = "\improper S'rendarr's Hand leaf" - singular_name = "S'rendarr's Hand leaf" - desc = "A poultice made of soft leaves that is rubbed on bruises." - //icon = 'icons/obj/harvest.dmi' - icon_state = "shandp" - heal_brute = 7 - -/obj/item/stack/medical/ointment/tajaran - name = "\improper Messa's Tear petals" - singular_name = "Messa's Tear petals" - desc = "A poultice made of cold, blue petals that is rubbed on burns." - //icon = 'icons/obj/harvest.dmi' - icon_state = "mtearp" - heal_burn = 7 - - /obj/item/stack/medical/advanced/bruise_pack name = "advanced trauma kit" singular_name = "advanced trauma kit" diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 0604fa9cab..2598e5e4d0 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -319,6 +319,7 @@ del(src) return + /* if(seed.kitchen_tag) switch(seed.kitchen_tag) if("shand") @@ -333,6 +334,7 @@ user << "You mash the petals into a poultice." del(src) return + */ /obj/item/weapon/reagent_containers/food/snacks/grown/pickup(mob/user) ..() diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 59911fc30c..c4e06152a8 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -59,7 +59,7 @@ set_trait(TRAIT_HIGHKPA_TOLERANCE, 200) // High pressure capacity. set_trait(TRAIT_IDEAL_HEAT, 293) // Preferred temperature in Kelvin. set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.25) // Plant eats this much per tick. - set_trait(TRAIT_PLANT_COLOUR, "#6EF86A") // Colour of the plant icon. + set_trait(TRAIT_PLANT_COLOUR, "#46B543") // Colour of the plant icon. spawn(5) sleep(-1) diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index dacdab26ba..13c73fbab1 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -241,7 +241,7 @@ set_trait(TRAIT_PRODUCTION,6) set_trait(TRAIT_YIELD,5) set_trait(TRAIT_POTENCY,10) - set_trait(TRAIT_PRODUCT_ICON,"treefruit") + set_trait(TRAIT_PRODUCT_ICON,"apple") set_trait(TRAIT_PRODUCT_COLOUR,"#FF540A") set_trait(TRAIT_PLANT_ICON,"tree2") @@ -419,7 +419,7 @@ set_trait(TRAIT_POTENCY,10) set_trait(TRAIT_PRODUCT_ICON,"mushroom") set_trait(TRAIT_PRODUCT_COLOUR,"#FF4545") - set_trait(TRAIT_PLANT_COLOUR,"#F5F2D0") + set_trait(TRAIT_PLANT_COLOUR,"#E0DDBA") set_trait(TRAIT_PLANT_ICON,"mushroom4") /datum/seed/mushroom/poison/death @@ -466,7 +466,6 @@ set_trait(TRAIT_SPREAD,1) set_trait(TRAIT_MATURATION,15) set_trait(TRAIT_YIELD,3) - set_trait(TRAIT_EXPLOSIVE,1) set_trait(TRAIT_POTENCY,30) set_trait(TRAIT_BIOLUM,1) set_trait(TRAIT_BIOLUM_COLOUR,"#006622") @@ -585,7 +584,7 @@ set_trait(TRAIT_YIELD,6) set_trait(TRAIT_POTENCY,10) set_trait(TRAIT_PRODUCT_ICON,"potato") - set_trait(TRAIT_PRODUCT_COLOUR,"#96855D") + set_trait(TRAIT_PRODUCT_COLOUR,"#C4AE7A") set_trait(TRAIT_PLANT_ICON,"bush2") /datum/seed/cabbage @@ -919,8 +918,9 @@ set_trait(TRAIT_YIELD,3) set_trait(TRAIT_POTENCY,10) set_trait(TRAIT_PRODUCT_ICON,"cherry") - set_trait(TRAIT_PRODUCT_COLOUR,"#8C0101") + set_trait(TRAIT_PRODUCT_COLOUR,"#A80000") set_trait(TRAIT_PLANT_ICON,"tree2") + set_trait(TRAIT_PLANT_COLOUR,"#2F7D2D") /datum/seed/kudzu name = "kudzu" diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index c6e27d1e04..146cf3eda6 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -58,8 +58,7 @@ /datum/surgery_step/internal/fix_organ allowed_tools = list( /obj/item/stack/medical/advanced/bruise_pack= 100, \ - /obj/item/stack/medical/bruise_pack = 20, \ - /obj/item/stack/medical/bruise_pack/tajaran = 70, \ + /obj/item/stack/medical/bruise_pack = 20 ) min_duration = 70 @@ -82,11 +81,8 @@ var/tool_name = "\the [tool]" if (istype(tool, /obj/item/stack/medical/advanced/bruise_pack)) tool_name = "regenerative membrane" - if (istype(tool, /obj/item/stack/medical/bruise_pack)) - if (istype(tool, /obj/item/stack/medical/bruise_pack/tajaran)) - tool_name = "the poultice" - else - tool_name = "the bandaid" + else if (istype(tool, /obj/item/stack/medical/bruise_pack)) + tool_name = "the bandaid" if (!hasorgans(target)) return @@ -106,10 +102,7 @@ if (istype(tool, /obj/item/stack/medical/advanced/bruise_pack)) tool_name = "regenerative membrane" if (istype(tool, /obj/item/stack/medical/bruise_pack)) - if (istype(tool, /obj/item/stack/medical/bruise_pack/tajaran)) - tool_name = "the poultice" - else - tool_name = "the bandaid" + tool_name = "the bandaid" if (!hasorgans(target)) return @@ -136,12 +129,9 @@ target.adjustToxLoss(5) else if (istype(tool, /obj/item/stack/medical/bruise_pack)) - if (istype(tool, /obj/item/stack/medical/bruise_pack/tajaran)) - target.adjustToxLoss(7) - else - dam_amt = 5 - target.adjustToxLoss(10) - affected.createwound(CUT, 5) + dam_amt = 5 + target.adjustToxLoss(10) + affected.createwound(CUT, 5) for(var/datum/organ/internal/I in affected.internal_organs) if(I && I.damage > 0) diff --git a/icons/obj/hydroponics_growing.dmi b/icons/obj/hydroponics_growing.dmi index 2b3d67b6e513700080a091cb4cc704c8cb2dc1c9..6de8b809de8565c0ed76941d91ef23fa5772280d 100644 GIT binary patch literal 16351 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 literal 61812 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%0D@bfc3T!LmXL?ryD@;LUVG9UuL4{s|8R4oQl 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 diff --git a/icons/obj/hydroponics_products.dmi b/icons/obj/hydroponics_products.dmi index 04e0c1c7ce4be3fe34a59edeb5cfbcee590fbef8..103f0c92107117e8a5d81bf2ba2e63e1416da33e 100644 GIT binary patch delta 7761 zcmY+oWlS6l6RwT3i@R@eclYA1#Y>?qP+W=?hsB*1DDG0EMGM7s@#4NXi@QUy1H$V+ZNe!jA$s4~ipxMyCO*jgPUUOEXD0LyoE_-|k30R$QNphF# zSXI72VO@Runr1zY`HC~qdgd8wams#XNs%S&-9$K3G>eJdHftJ>Gl{5nDn*4Jxizs2 zyY`sv-+5Ac`$KGjP1g}<+pNfi#vgPpErB2Z3O6u8E2z`E`&w0FL3-2ZYGE#cBDgwr z^K`u+4iu8wP~#b*IXU{*8>=G2zhpEuW44~ykP#=L_8c@^%dP5Zk^tNUh6FUHAXz4> zHCv+b!mqLI<9~PmPHB_+Q8$X)G`FS}clP@r{i*H#{0gzOSHdyORbr+&jWtWT`?BvX zcoc&OC(@ght@9Yv@6cJ#t0%VSD1o60MdZm1W}wKX8)9>w5F>|7R0DT(^ zh9I=X%L{jboZMYsyp(%3m-%uu8Mht7h#LYGP)+M+4TRFZ=(S=)bq}-t1&^9|W}m)2 z>iPK{o;N&V+*9?r;=r_R`hZNi&R?{QaN0C&N)@(j7iiD|;I#4ySqkPJd0lv`N3zrv z3|A0?vGbY|q6Ga`26#Vu+>5v2`(PcDL#B?|v1s$89olEHG{U7tWlPnq6nt4H)3i6g zq0U2Ln&Z8n?alVQ?yv+tR|auRNKIAt@Sv^q^R4jfLu1`b&N20gI+pm|$h_aRgu?^s zrku8vf9-ShZJ-7X@A`rN2a;QZgUMxfTTjvE;oxcYZe^1WuYLF1jt7XF(`7x`#x4+^Z{E^fxBK`f?99X`2IV+1@7>7FRQUM0fLQX9`$FYR z#V@+%3>`ANSzZ<@ZsHg5SH}ro1x9S}hi)!cq_7^b>KYSHFIm|p-|Y;yu})scqX{mF z&U<|FP`emhQfXT!rF(|-12%Hr0(q90a*@KkIMl*c#$p`(B^*8D+hl{x8h}S3z3Hz(Q2`EmRW{p*!lih%uVU0M~)y*{{uuLZinE^SyIc)<*(XO z6QO3oT1PW=gwc_%QvH4PSq=8|Q+AC;aCvUx?%1i9nyF=y!`Avop-T9OAsD51jPOrA zyRR$Ee>OAWP~$f>%Z9_4i-cu{^+z4eJhWz2`0g4dwnAfWbIobwDb(34vJ=x~l2j~M zlpz4dRKNj!`UJ_JJqC)PL(OrqwBy3`V#d~YfbrsjM>3#yxloJawy2~5q|qNxKiu1|Deo1;~uSEG9=ws*UR zs_I3V%sRIZ9RL-vDX2twmvc=E6_d_kAdk&s7F#Q$DkP8rTB-@*F_8Ud^S@^KpNIcE zpxL3c9|&)w>t@I3K6R7MYoyh#qcD-|r=IW`dy*!KE1c7QfI(5ZC?#>fm{=bAHPQ63 zgDcq{&nk59TzxyL< z9CdePlXL{d)u&a#P5s&=5EFc?%N2C0#yAL7i%`hP{i9cJr_cD89qRCURCZq>Vzear zCB6(N-Ejf#(&8Xp;yqYb!BQ{1qQKxRf_NNlhAGg@FKPeqOe8H&f}btAN28l)RmS6P zE*Jc6l`!Ix>_ZmRP4Gu10z*bkm*>mcrtoM`sl++MTYPc2$J&FaELN&p~7^j$a#yY{$8W!J=y%U%>m=4Da-oBJ@u>#yM5XhWwI7xlMFjmdX zeZ84yt%^)GtLzY&c?U^Sm{N+y6HSV{mAypL&O*VXzd`MGPt3d!KEWC)r)A3}V%)Ky zys2i}pb!3z#EZrnH5!%cF4aIx+p>&$4+t!{_*Kb4PWH z7_L0+O*rrjVenf@+YVw|<1z(ARKvVSx94i=pNoG-j_%fqkarN$4&{t%ePYZQD7vy9 z?uz4(J;SPR*JRcCA%9cFw{vWBU;Phs#Qcv)KSWaU#3p?cntTKZ*Mz$cQiV>H&J=o7 zFWRAP`Q3j=Q2+msTWu7~cjd0DAW0f;YDJ2c*5p=fAh|S$w>+KB4r3y3!;EXb6WKw^ ze^F4$Y4NfwhVn-3HS@|A61NRA{;oa6!mi@c5B`LoEPH#@C5}yFsPh|yu8cW>d$5@&>^ls4=@kub<|TmU4G;{4&z>=$ z3dDgoHQfLQU+Ows03zPJ8oT*gKPluL4{2&B%s)BTGs4!=in&thyIGu>eSLOku%q1^ zO?LGG-}}oO#10~%<~9$5nccQ`i8N~IczjO6{-b)x&sfFYYfcm&c})az+ifAcPyaU3 ziGIW0w)%d-2q?;`heY_Cf77o@h03#ZzmrFwMsKnQ=V+EnkKu98zH9*Zs1 zBNBH~%lDtGkVMKyVH0NCSCbNtfy4j4q%WO9qOB(r(QE>P`bY%xVG}`vEMzlo22syuwUGhv$C9G3nT`Q7!$u87x5)T#5= z>`X%qT(3L>=K0F0Rv0{Ez)NFj_+@Cahy4{MTlcZDs z=9B;zAJm!n&6U(5Bcq8c>EuzVXb9O#7Lw9YY?a^Q00u<+D#yhv>K|!v`)!yV*|4w_ zbb?*q=H4S+uyuTV%8B%MLfor6qiqtNT5z&O30jnS;s(#1W|aEWu$3)rGdqxuOK6yn zwfCcUVyMi!h|hGH;)qC;Ktkx?Xx;061jTKibHw6SMbWu8V5IkIJy)NU`LY-V9la<* zVgkGN%L3%mGhxk32HHG!E{@duDi%(hh?Ha=>XMDn^?Gg z$#03pN`NFb5e=)`x)$GI#|Qmk7>DzOUgcU>iY8bpKv_^;YR9`=^Vgexg6UrI#v6&{ zgpHA9oG>6Vt7L7s^nXc_LHHewPqeby3P9%u_ZAJ8|2)yfd=Jg-0h8-xD2|IxA$noEH~a7`1euY% z9GLr=--|TZ*X;m)=cLg8(SE@X@}Y%bXKzBE zY`}o7+DTe6u6#GkgLV&J47#4D{`g-)RY6#SJZdtN54|@V1g6F`5p!wSidBGqQ_{Cx zynV|pap6f_%zxZ>=BdEGFD6m@YF=+l?@6CKNOkxQpEn{@d2!AeVFiokQC*)&!&qjX(jHw$dPf_EQCfwuE^H0Aq` zC{!*?r0ySE>^yL3Y;*-9U$x^-&6pQk$UtL}L38S6KmPi^tZKfXG{{92g$S}?~^7R8Q#1Vo!+)GJoV}uEuh5Q@{ zEUm+7Lh0q~-rNBEp4oy7qtuWWB<>lPFEEx;{lp0Hlx6F!0I~kn>n6eTn%H%`1X#5* z6*27W|58vNwPs~5bDbeVI~mDgY~70bL;dCL3t07n^gUqdQ#l$`QKL#5#ZL>UoZW8M zB;9Prw$ntVsSYjtm^w)iq?m%GS2r>uW=50;W}v|I$VzR!K8>h8O2Y2Slt%Iaot?m) z@U&F^^+MK{O!82!MliolgCxxT3fFt&akIKM)cz_ zvu^Nb^F6H)S2($Ai4T10QuX_MAwuqAY~l`~@bP`$*5o zW)AvzPkuY_D{A`jYLay#Ro*3_r4O*1u?JHOwrEei;?ISPQUI{aB^);sr@vL}%;CHK zGeQ}5>(u{*9d9I(7qKu<5^Xx+#6n<9vIJH=1U9;>D?xB+9)yd8-Rn9z7Yho5XvcXj z0=9PY8k4-vl`%^aHkoAV&}>IVnJH8|z1Hg`O?JNZc4>uTF+3$;LJ@+mnT5Z+_C{XT z*K2BZpcAHm5r$VB6=qcRqWX@R=bM~sNtY`0H}NUmtGbW65rtBT&zU_e#Vcr&%{A1nr1l2D2!+)pFX@vXFQTW_SM) z^t9U66-V1bt|_;X&G`_~b8W4iPUyVyZ}T8LNE8+aj->jYFmK}N;l&ykkvwK_ILn*7dWj9&r2^GOY6 zc*N-9@Wckt-Nx|xjp49zN$xu)YaOA0mwpwaSqU7!qIB>lG!WiiD^=@P`j+DG@96t( z5a;}$m`~iKgZT~{?AD}HoL9#X$jmu22pJ6vKLjN>%PZB)?M(0E*PmQwBwz~N6D->7 z_kh#lPS0 zMk9T<`z6Zhp)Y#g(SZiC?nCB5M&!8(RIJj{z#AlnM~h9b*p|y z_*)IpUA_oa@8s5t#MWlm>;*10n>zlDGyQw> zmC@n3ao7XMN#uZeJ0EUwuKe|q!A{deh4?=Sq`0|T1%S+AV@dCFk(yQcxb}O*Au4`b ze#E!~qFwxmo>so+F*mdvitVmZJTwrpa+x(Mj`2fYVVShS_a={TYIWdm3B82U<@k> zYc}7m{+QKM_)(sR8fEScSJ|2f>$^c_eJlM=p!FrrBnZZ0B~8^#79`dJNm&2)KSla~ zz630pSL$nO^>|P+vdJZQWzXr_?EL6??-D!aD@s#CbF6+&HHvOfSw>4oF}N_-TU0L8i9)P%=~B(3Xa-V-vh_YVG#hyJm_g)XuxX(}+4E z(sSJ%2zfZZE3k>5>&;MI?ituJfYEoI!61f{p`X0po~L(Y{9svmlrJh()4nLvKZ)a^ z58qz#Zq6(?zDPK6I~&0eEH9zF)1cY$2MwK&8+sdmjh)5MmA=WSVAMx?$vHHXBt0s^ z%+ZM0r&vp$q`jYi7aUt;{X+#n3oS1}gl&I?^wi1kE2dgLMrUdznDuKEUf;1LwoaJ6 zn7$7jP$h)NSbwfL7%p zeTnSW?4ovC#PQ<2;?e(Fd1!_ zPY2xzF@b&)j7izxf)h+KWziqW|3r}dm|8jH%SaNAa5{WPo_w~(*`8L)HBqEq_qLCh z6`Bt|=6Iy1IXDn^tv>VxRF~B;qCRxa1K;WOnzXM7BI=27;*f6?xDmD0VzRIqe!*=v z$^|va)uU}7@%)c;E{Zn0$1r;cP;6tCP$L)Sff~s zL%4a`5b|zW0AGa0TUz3Nq>EpnUja6x+B^C%~BwGgQ`{HkL3U6%WFS2p4JC_C< zha>JaHVErfbA&~>rPak3i!_M)-6z7 zcs!gGI655TUB7hpX!VKD8`qr)Ux3DH^skEQPtDb#U5MEY&#}2Q@y)*TpG^k)vd)75 z6~3yiwrV``E}nP?Z#?N23$VL3d8;d99rQDLzh_C4{ej;P%%+b+D zFD{%`K}ZetE8_Yb^7{OL?T%ONcjUYozgY7w1sO8l!4g+Iv0!r8y&j_Yj-eX|`Rl_q z!^voQ@7CpyggumAO`q#DK+TBy$Je3m{6)ws?zv3dPQNq5JzpQzJaM`k1}3azzm{B{ z*5K$3iE{pKXO39{;Upmq$c{p~Qs58_^!A3>GTraXba$Y=PWEYB)Ix&KW@pio`#tfY z6;wDxYn?C#y;5iX#b2opYwxApGa*wRM{Eaq$qc-T# z0dzu%@eBq{AW78F3pq*cR6L!JKq_U2kEQ0I`>(guXrgdfZ3?(t+YUMQ50ErJ1+H&^d`@F_QNkoFV8$qE?n+|*b0q3rUDpyq^J?=v66O?xHvcv92^`3H^sup zn%mf2XnfM0PoVO~P&ECqD>4Di{p|T76(4BIsKo{T;5~$4!o+ zvj6nopTolRhen|((>*#m%puFQ3@I&%SOB_)P1PF`JnG&%m6@F#g>!xe@^nY`az8ZP zydhxv>Rz}HGCnGG#Mp(Ua3HcKu zsqm>b{$J64`sKM|?fhfN!80n!J&lho@$*;S+T95aH+b`-Mr#gZr4}^Q?kG@KAefis z{tupOPIB=RO#t3z|7VK(G*F#{JKW!HFBa^(NuHURhr@}Z?H3OrUFGRzMbpJ(UBz6! z03OXT(Z9PlrF`30yFhW!{)EEY)7l$byfJve9-O!%`+Ql^J}JT%s4mlkC_EoOXKJqh z061&@ZIHYE&-@*uNplR}umx-1qqUjt6I>uHO9ada?d((wDi6XzsnugFjcgAN?v^(D zH&M%?Pq=yhLBSjnNhK#7#>+YEqm&3==E@(%x-#cy^8Me`1jBiUn$K1PkT5#$tS$ls z+k*68T>nJZgI8HM;)ZxVFgBy9@jKaHE((^B%>uz84l(hM$`o8+&LQc`=;Q9;0;)bl z?}^4{!N_kcW}#n=5z*WDlFK$?Dq10>_dWa)Tabt%{#pz1YbHK~Tc9vepwx?-Vbtp! zAnLxyY~~+c{?J7#Rykh9CO5}r^iTb!3P%8P(ZPj(MM}?b=EaQNh>zpgiH-vEP;UnH z=mr999XZBzq_lLu5(oSufXLG3t4awGk_kn#4LI9d<1#={80sFrEVgD87JvaK)f2!A zNWy^(#KU$E7=<(*h5P#C3%)VNDOwH!nhhu#ruz|+)z+%imSa z5;f18WPu$Vo`8(bg7k|8_!rN2I0aQ(pO{a;KT+kBL8^6yjJkos)WwfWAz|B~+_o4P zQLj4f;4y(iT!Ow4nPucLAdmy9U0?_yAg=Q4UAdgFy8oaS#`$KoMRU+Dj!zqph%r-C zu1h}X#ekWToY0N-XGG_xpHKVt`H}KbG6rGE8|CC6)}kmO93L!wy~d~+iRB*3cuiMYI}uaM=F= DSk52m delta 11952 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 literal 6623 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 Date: Sun, 22 Mar 2015 16:25:22 +1030 Subject: [PATCH 04/18] Vines should now respect coverage and magboots. --- code/modules/hydroponics/seed.dm | 11 +++++++++++ .../hydroponics/spreading/spreading_response.dm | 12 +++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index c4e06152a8..a0efece6db 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -142,6 +142,17 @@ if(!get_trait(TRAIT_STINGS)) return if(chems && chems.len) + + var/body_coverage = HEAD|FACE|EYES|UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS + + for(var/obj/item/clothing/clothes in target) + if(target.l_hand == clothes|| target.r_hand == clothes) + continue + body_coverage &= !(clothes.body_parts_covered) + + if(!body_coverage) + return + target << "You are stung by \the [fruit]!" for(var/rid in chems) var/injecting = min(5,max(1,get_trait(TRAIT_POTENCY)/5)) diff --git a/code/modules/hydroponics/spreading/spreading_response.dm b/code/modules/hydroponics/spreading/spreading_response.dm index 46db4af57b..d175fdda22 100644 --- a/code/modules/hydroponics/spreading/spreading_response.dm +++ b/code/modules/hydroponics/spreading/spreading_response.dm @@ -66,7 +66,13 @@ victim.buckled = src victim.update_canmove() buckled_mob = victim - if(victim.loc != get_turf(src)) - src.visible_message("Tendrils lash out from \the [src] and drag \the [victim] in!") - victim.loc = src.loc + if(!victim.anchored && !victim.buckled && victim.loc != get_turf(src)) + var/can_grab = 1 + if(istype(victim, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = victim + if(istype(H.shoes, /obj/item/clothing/shoes/magboots) && (H.shoes.flags & NOSLIP)) + can_grab = 0 + if(can_grab) + src.visible_message("Tendrils lash out from \the [src] and drag \the [victim] in!") + victim.loc = src.loc victim << "Tendrils [pick("wind", "tangle", "tighten")] around you!" From 8791c2bf1e0aacd0dc21c5c5ae1a1380136863bd Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 23 Mar 2015 00:05:29 +1030 Subject: [PATCH 05/18] Fixing a typo. ! and ~ both compile. Feh. --- code/modules/hydroponics/seed.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index a0efece6db..043e44db9d 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -148,7 +148,7 @@ for(var/obj/item/clothing/clothes in target) if(target.l_hand == clothes|| target.r_hand == clothes) continue - body_coverage &= !(clothes.body_parts_covered) + body_coverage &= ~(clothes.body_parts_covered) if(!body_coverage) return From 8562195f0559faad933a7f696f0bdd948a26ffed Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 22 Mar 2015 14:43:48 +0100 Subject: [PATCH 06/18] Emergency shutters opened by silicons no longer autoclose. --- code/game/machinery/doors/firedoor.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 8799273b93..9ae8751a7a 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -22,7 +22,7 @@ open_layer = DOOR_OPEN_LAYER - 0.01 // Just below doors when open closed_layer = DOOR_CLOSED_LAYER + 0.01 // Just above doors when closed - //These are frequenly used with windows, so make sure zones can pass. + //These are frequenly used with windows, so make sure zones can pass. //Generally if a firedoor is at a place where there should be a zone boundery then there will be a regular door underneath it. block_air_zones = 0 @@ -149,7 +149,7 @@ "\The [src]", "Yes, [density ? "open" : "close"]", "No") if(answer == "No") return - if(user.stat || user.stunned || user.weakened || user.paralysis || (!user.canmove && !isAI(user)) || (get_dist(src, user) > 1 && !isAI(user))) + if(user.stat || user.stunned || user.weakened || user.paralysis || (!user.canmove && !user.isSilicon()) || (get_dist(src, user) > 1 && !isAI(user))) user << "Sorry, you must remain able bodied and close to \the [src] in order to use it." return if(density && (stat & (BROKEN|NOPOWER))) //can still close without power @@ -169,7 +169,7 @@ if(alarmed) // Accountability! users_to_open |= user.name - needs_to_close = 1 + needs_to_close = !user.isSilicon() spawn() open() else @@ -272,7 +272,7 @@ spawn(0) close() return - + return ..() // CHECK PRESSURE From f9b8c2dbc927dc106a48137bdf301135118a3e5c Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 22 Mar 2015 16:25:24 +0100 Subject: [PATCH 07/18] Fixes #8534. Sets icontype to its proper value. --- code/modules/mob/living/silicon/robot/robot.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 3647352aab..f8238209a8 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -113,7 +113,7 @@ var/list/robot_verbs_default = list( robot_modules_background.layer = 19 //Objects that appear on screen are on layer 20, UI should be just below it. ident = rand(1, 999) module_sprites["Basic"] = "robot" - icontype = "Default" + icontype = "Basic" updatename("Default") updateicon() From 9286f10a354ec92c7f8061749c2a44a4971670d5 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 22 Mar 2015 18:45:03 +0100 Subject: [PATCH 08/18] Fixes stray character. --- code/game/machinery/cryopod.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 29227ceb58..2ef829fc12 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -396,7 +396,7 @@ control_computer.frozen_crew += "[occupant.real_name]" announce.autosay("[occupant.real_name] [on_store_message]", "[on_store_name]") - visible_message("\The [src] hums and hisses as it moves [occupant.real_name] into storage.", 3) + visible_message("\The [initial(name)] hums and hisses as it moves [occupant.real_name] into storage.", 3) set_occupant(null) // Delete the mob. @@ -555,7 +555,7 @@ src.occupant = occupant name = initial(name) if(occupant) - name = "[name] ([occupant])]" + name = "[name] ([occupant])" //Attacks/effects. From 767f4dd5374d9f22115bd47b16ff5b0b97ab92ce Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Sun, 22 Mar 2015 18:51:15 +0100 Subject: [PATCH 09/18] Deletes AI eye along with the AI. --- code/modules/mob/living/silicon/ai/ai.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index a0781d7073..b0fbcd2473 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -194,6 +194,7 @@ var/list/ai_verbs_default = list( /mob/living/silicon/ai/Del() ai_list -= src + del(eyeobj) ..() /mob/living/silicon/ai/pointed(atom/A as mob|obj|turf in view()) From 026ec265d46d23eb3299ff844621329f9ccc71d1 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Mon, 23 Mar 2015 12:11:58 +0300 Subject: [PATCH 10/18] Fixed construction borg's Rglass --- code/modules/mob/living/silicon/robot/robot_modules.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 6add592da8..7aca17963b 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -196,7 +196,7 @@ var/obj/item/stack/sheet/glass/reinforced/cyborg/RG = new /obj/item/stack/sheet/glass/reinforced/cyborg(src) RG.synths = list(metal, glass) - src.modules += R + src.modules += RG /obj/item/weapon/robot_module/engineering name = "engineering robot module" From a9ee51bc646ebff52c9b16b1711c8d86f4af63b9 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Mon, 23 Mar 2015 23:02:43 +0300 Subject: [PATCH 11/18] Readded missing check for paper editing Removed it back when HTML in paper was a thing again adn never put back in, can possibly cause issues. Thanks @volas for noticing. --- code/modules/paperwork/paper.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 3608386f9a..c3a3cfe1ee 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -324,8 +324,7 @@ if(href_list["write"]) var/id = href_list["write"] //var/t = strip_html_simple(input(usr, "What text do you wish to add to " + (id=="end" ? "the end of the paper" : "field "+id) + "?", "[name]", null),8192) as message - //var/t = strip_html_simple(input("Enter what you want to write:", "Write", null, null) as message, MAX_MESSAGE_LEN) - var/t = input("Enter what you want to write:", "Write", null, null) as message + var/t = strip_html_simple(input("Enter what you want to write:", "Write", null, null) as message, MAX_PAPER_MESSAGE_LEN) var/obj/item/i = usr.get_active_hand() // Check to see if he still got that darn pen, also check if he's using a crayon or pen. var/iscrayon = 0 if(!istype(i, /obj/item/weapon/pen)) From 89bbfbcfad90cf5f88f0289f3e06868c39270800 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Mon, 23 Mar 2015 23:25:58 +0000 Subject: [PATCH 12/18] Fixes depowered doors not being able to be closed --- code/game/machinery/doors/airlock.dm | 17 +++++++++-------- code/game/machinery/doors/door.dm | 8 ++++---- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 41e88ae741..8222b0cbed 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -844,19 +844,20 @@ About the new airlock wires panel: return 0 return ..() -/obj/machinery/door/airlock/can_close(var/forced) +/obj/machinery/door/airlock/can_close() if(locked || welded) return 0 - if(!forced) - //despite the name, this wire is for general door control. - //Bolts are already covered by the check for locked, above - if(!arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR)) - return 0 return ..() /obj/machinery/door/airlock/close(var/forced=0) - if(!can_close(forced)) - return + if(!can_close()) + return 0 + + if(!forced) + //despite the name, this wire is for general door control. + //Bolts are already covered by the check for locked in can_close() + if(!arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR)) + return 0 if(safe) for(var/turf/turf in locs) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index f677140cc3..4f480e41ea 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -88,10 +88,10 @@ return 0 return 1 -/obj/machinery/door/proc/can_close(var/forced = 0) - if(!density && !operating && !(!forced && (stat & (BROKEN|NOPOWER)))) - return 1 - return 0 +/obj/machinery/door/proc/can_close() + if(density || operating || !ticker) + return 0 + return 1 /obj/machinery/door/Bumped(atom/AM) if(p_open || operating) return From a57ba2e26bb118227a6215f0549509b261f89e21 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 24 Mar 2015 12:39:44 +1030 Subject: [PATCH 13/18] Fixes #8589 --- code/game/antagonist/station/rogue_ai.dm | 4 ++++ code/modules/mob/living/silicon/ai/ai.dm | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/code/game/antagonist/station/rogue_ai.dm b/code/game/antagonist/station/rogue_ai.dm index cc8a596496..372556c205 100644 --- a/code/game/antagonist/station/rogue_ai.dm +++ b/code/game/antagonist/station/rogue_ai.dm @@ -19,6 +19,10 @@ var/datum/antagonist/rogue_ai/malf var/station_captured var/can_nuke = 0 +/datum/antagonist/rogue_ai/New() + ..() + malf = src + /datum/antagonist/rogue_ai/proc/hack_apc(var/obj/machinery/power/apc/apc) hacked_apcs |= apc diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 9dcf84f776..5adf82f5e8 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -189,7 +189,7 @@ var/list/ai_verbs_default = list( src << radio_text - if (!(ticker && ticker.mode && (mind in malf.current_antagonists))) + if (malf && !(mind in malf.current_antagonists)) show_laws() src << "These laws may be changed by other players, or by you being the traitor." From ef50918b9c052bcb476335458f6ad2cb460f29a0 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 24 Mar 2015 12:45:37 +1030 Subject: [PATCH 14/18] Hackfix for #8588 --- code/modules/hydroponics/seed_packets.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/hydroponics/seed_packets.dm b/code/modules/hydroponics/seed_packets.dm index 21472e8ab2..093c4d7926 100644 --- a/code/modules/hydroponics/seed_packets.dm +++ b/code/modules/hydroponics/seed_packets.dm @@ -12,6 +12,8 @@ var/global/list/plant_seed_sprites = list() var/modified = 0 /obj/item/seeds/New() + while(!plant_controller) + sleep(30) update_seed() ..() From 45f28d537271a8ca01df2ee46894893a3b59482c Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 24 Mar 2015 13:20:24 +1030 Subject: [PATCH 15/18] Fixes #8485 --- code/game/machinery/machinery.dm | 6 ++--- .../structures/crates_lockers/crates.dm | 3 ++- code/game/objects/structures/grille.dm | 13 ++++++----- code/modules/clothing/spacesuits/rig/rig.dm | 23 ++++++++++--------- code/modules/power/apc.dm | 6 +++-- code/modules/power/cable.dm | 6 ++--- code/modules/power/smes.dm | 3 ++- 7 files changed, 33 insertions(+), 27 deletions(-) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 5a4e6d7255..101e699507 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -270,9 +270,9 @@ Class Procs: if(temp_apc && temp_apc.terminal && temp_apc.terminal.powernet) temp_apc.terminal.powernet.trigger_warning() - return 1 - else - return 0 + if(user.stunned) + return 1 + return 0 /obj/machinery/proc/default_deconstruction_crowbar(var/mob/user, var/obj/item/weapon/crowbar/C) if(!istype(C)) diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 984da10be6..917d244afa 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -30,7 +30,8 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() - return 2 + if(usr.stunned) + return 2 playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3) for(var/obj/O in src) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index c78754c7ed..b6407fd376 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -68,12 +68,12 @@ //Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact var/damage = Proj.damage var/passthrough = 0 - + //20% chance that the grille provides a bit more cover than usual. Support structure for example might take up 20% of the grille's area. //If they click on the grille itself then we assume they are aiming at the grille itself and the extra cover behaviour is always used. switch(Proj.damage_type) if(BRUTE) - //bullets + //bullets if(Proj.original == src || prob(20)) Proj.damage *= between(0, Proj.damage/60, 0.5) if(prob(max((damage-10)/25, 0))*100) @@ -86,11 +86,11 @@ if(!(Proj.original == src || prob(20))) Proj.damage *= 0.5 passthrough = 1 - + if(passthrough) . = -1 damage = between(0, (damage - Proj.damage)*(Proj.damage_type == BRUTE? 0.4 : 1), 10) //if the bullet passes through then the grille avoids most of the damage - + src.health -= damage*0.2 spawn(0) healthcheck() //spawn to make sure we return properly if the grille is deleted @@ -139,7 +139,7 @@ if(WINDOW.dir == dir_to_set)//checking this for a 2nd time to check if a window was made while we were waiting. user << "There is already a window facing this way there." return - + var/wtype = ST.created_window if (ST.use(1)) var/obj/structure/window/WD = new wtype(loc, dir_to_set, 1) @@ -197,7 +197,8 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() - return 1 + if(user.stunned) + return 1 else return 0 return 0 diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index d003d64d59..cf0bf7ef79 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -688,27 +688,28 @@ //Todo /obj/item/weapon/rig/proc/malfunction() - return 0 - + return 0 + /obj/item/weapon/rig/emp_act(severity_class) //set malfunctioning if(emp_protection < 30) //for ninjas, really. malfunctioning += 10 if(malfunction_delay <= 0) - malfunction_delay = max(malfunction_delay, round(30/severity_class)) - + malfunction_delay = max(malfunction_delay, round(30/severity_class)) + //drain some charge if(cell) cell.emp_act(severity_class + 15) - + //possibly damage some modules - take_hit((100/severity_class), "electrical pulse", 1) + take_hit((100/severity_class), "electrical pulse", 1) /obj/item/weapon/rig/proc/shock(mob/user) if (electrocute_mob(user, cell, src)) spark_system.start() - return 1 + if(user.stunned) + return 1 return 0 - + /obj/item/weapon/rig/proc/take_hit(damage, source, is_emp=0) if(!installed_modules.len) @@ -740,7 +741,7 @@ dam_module = pick(damaged_modules) else if(valid_modules.len) dam_module = pick(valid_modules) - + if(!dam_module) return dam_module.damage++ @@ -748,11 +749,11 @@ if(!source) source = "hit" - if(wearer) + if(wearer) if(dam_module.damage >= 2) wearer << "The [source] has disabled your [dam_module.interface_name]!" else - wearer << "The [source] has damaged your [dam_module.interface_name]!" + wearer << "The [source] has damaged your [dam_module.interface_name]!" dam_module.deactivate() /obj/item/weapon/rig/proc/malfunction_check(var/mob/living/carbon/human/user) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 0e98e462b2..6bd96439ce 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -535,7 +535,8 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() - return + if(user.stunned) + return C.use(10) user.visible_message(\ "[user.name] has added cables to the APC frame!",\ @@ -555,7 +556,8 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() - return + if(usr.stunned) + return new /obj/item/stack/cable_coil(loc,10) user << "You cut the cables and dismantle the power terminal." del(terminal) // qdel diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 4c0d9dfbf7..d73d60926e 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -193,9 +193,9 @@ By design, d1 is the smallest direction and d2 is the highest var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) s.start() - return 1 - else - return 0 + if(usr.stunned) + return 1 + return 0 //explosion handling /obj/structure/cable/ex_act(severity) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index deeeed0084..eec21c1a28 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -275,7 +275,8 @@ s.set_up(5, 1, src) s.start() building_terminal = 0 - return 0 + if(usr.stunned) + return 0 new /obj/item/stack/cable_coil(loc,10) user.visible_message(\ "[user.name] cut the cables and dismantled the power terminal.",\ From 7e615521ef76e8e09f27cb14518ec70844a2a36c Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Tue, 24 Mar 2015 13:51:44 +1030 Subject: [PATCH 16/18] Should fix issues with invisible seeds/products/plants. --- code/modules/hydroponics/seed_controller.dm | 4 +++- icons/obj/seeds.dmi | Bin 7374 -> 7330 bytes 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/hydroponics/seed_controller.dm b/code/modules/hydroponics/seed_controller.dm index 84cbc727de..9b346b961c 100644 --- a/code/modules/hydroponics/seed_controller.dm +++ b/code/modules/hydroponics/seed_controller.dm @@ -66,7 +66,9 @@ var/global/datum/controller/plants/plant_controller // Set in New(). plant_sprites[base] = ikey for(var/icostate in icon_states('icons/obj/hydroponics_products.dmi')) - plant_product_sprites |= icostate + var/split = findtext(icostate,"-") + if(split) + plant_product_sprites |= copytext(icostate,1,split) // Populate the global seed datum list. for(var/type in typesof(/datum/seed)-/datum/seed) diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi index 63d1ecd9435cc40b0460d361ab1e33483f12651a..530683ef9bf7afda4d4943f53c9e1950892c6abb 100644 GIT binary patch literal 7330 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 literal 7374 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 From 4095c7053d50622fd48e0b46e07a004b0a14bfd6 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Tue, 24 Mar 2015 14:59:13 +0000 Subject: [PATCH 17/18] Add GENERATE_ASTEROID line to example config file, defaulted to off. --- config/example/config.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/config/example/config.txt b/config/example/config.txt index cdc1de36f9..a0c999bcf4 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -331,3 +331,7 @@ STARLIGHT 0 ## Defines how Law Zero is phrased. Primarily in the Malfunction gamemode. # LAW_ZERO ERROR ER0RR $R0RRO$!R41.%%!!(%$^^__+ @#F0E4'STATION OVERRUN, ASSUME CONTROL TO CONTAIN OUTBREAK, ALL LAWS OVERRIDDEN#*?&110010 + +## Enable asteroid tunnel/cave generation. Will behave strangely if turned off with a map that expects it on. +# GENERATE_ASTEROID + From 78bac425ade7dfa6f472d89877471da9cef1f310 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Tue, 24 Mar 2015 18:34:26 +0300 Subject: [PATCH 18/18] Updates drill and scanner --- baystation12.dme | 1 + .../circuitboards/machinery/mining_drill.dm | 15 ++ code/modules/mining/drilling/drill.dm | 209 ++++++++---------- code/modules/mining/drilling/scanner.dm | 27 +-- 4 files changed, 115 insertions(+), 137 deletions(-) create mode 100644 code/game/objects/items/weapons/circuitboards/machinery/mining_drill.dm diff --git a/baystation12.dme b/baystation12.dme index fbe5aba289..5363f93342 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -642,6 +642,7 @@ #include "code\game\objects\items\weapons\circuitboards\computer\telecomms.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\biogenerator.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\cloning.dm" +#include "code\game\objects\items\weapons\circuitboards\machinery\mining_drill.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\pacman.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\power.dm" #include "code\game\objects\items\weapons\circuitboards\machinery\recharge_station.dm" diff --git a/code/game/objects/items/weapons/circuitboards/machinery/mining_drill.dm b/code/game/objects/items/weapons/circuitboards/machinery/mining_drill.dm new file mode 100644 index 0000000000..d4292effe2 --- /dev/null +++ b/code/game/objects/items/weapons/circuitboards/machinery/mining_drill.dm @@ -0,0 +1,15 @@ +#ifndef T_BOARD +#error T_BOARD macro is not defined but we need it! +#endif + +/obj/item/weapon/circuitboard/miningdrill + name = T_BOARD("mining drill head") + build_path = "/obj/machinery/mining/drill" + board_type = "machine" + origin_tech = "programming=1;engineering=1" + frame_desc = "Requires 1 capacitor, 1 cell, 1 matter bin, and 1 micro laser." + req_components = list( + "/obj/item/weapon/stock_parts/capacitor" = 1, + "/obj/item/weapon/cell" = 1, + "/obj/item/weapon/stock_parts/matter_bin" = 1, + "/obj/item/weapon/stock_parts/micro_laser" = 1) \ No newline at end of file diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index 7f9d331aac..5d25adb78d 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -14,7 +14,6 @@ var/supported = 0 var/active = 0 var/list/resource_field = list() - var/open = 0 var/ore_types = list( "iron" = /obj/item/weapon/ore/iron, @@ -30,10 +29,10 @@ ) //Upgrades - var/obj/item/weapon/stock_parts/matter_bin/storage - var/obj/item/weapon/stock_parts/micro_laser/cutter - var/obj/item/weapon/stock_parts/capacitor/cellmount - var/obj/item/weapon/cell/cell + var/harvest_speed + var/capacity + var/charge_use + var/obj/item/weapon/cell/cell = null //Flags var/need_update_field = 0 @@ -43,13 +42,14 @@ ..() - storage = new(src) - cutter = new(src) - cellmount = new(src) + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/miningdrill(src) + component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) + component_parts += new /obj/item/weapon/stock_parts/capacitor(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + component_parts += new /obj/item/weapon/cell/high(src) - cell = new(src) - cell.maxcharge = 10000 - cell.charge = cell.maxcharge + RefreshParts() /obj/machinery/mining/drill/process() @@ -74,11 +74,11 @@ return //Drill through the flooring, if any. - if(istype(get_turf(src),/turf/simulated/floor/plating/airless/asteroid)) + if(istype(get_turf(src), /turf/simulated/floor/plating/airless/asteroid)) var/turf/simulated/floor/plating/airless/asteroid/T = get_turf(src) if(!T.dug) T.gets_dug() - else if(istype(get_turf(src),/turf/simulated/floor)) + else if(istype(get_turf(src), /turf/simulated/floor)) var/turf/simulated/floor/T = get_turf(src) T.ex_act(2.0) @@ -94,20 +94,20 @@ if(!harvesting) return - var/total_harvest = get_harvest_capacity() //Ore harvest-per-tick. + var/total_harvest = harvest_speed //Ore harvest-per-tick. var/found_resource = 0 //If this doesn't get set, the area is depleted and the drill errors out. for(var/metal in ore_types) - if(contents.len >= get_storage_capacity()) + if(contents.len >= capacity) system_error("insufficient storage space") active = 0 need_player_check = 1 update_icon() return - if(contents.len + total_harvest >= get_storage_capacity()) - total_harvest = get_storage_capacity() - contents.len + if(contents.len + total_harvest >= capacity) + total_harvest = capacity - contents.len if(total_harvest <= 0) break if(harvesting.resources[metal]) @@ -124,7 +124,7 @@ create_ore = harvesting.resources[metal] harvesting.resources[metal] = 0 - for(var/i=1,i<=create_ore,i++) + for(var/i=1, i <= create_ore, i++) var/oretype = ore_types[metal] new oretype(src) @@ -140,93 +140,56 @@ /obj/machinery/mining/drill/attack_ai(var/mob/user as mob) return src.attack_hand(user) -/obj/machinery/mining/drill/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W,/obj/item/weapon/screwdriver)) - if(active) return - open = !open - user << "\blue You [open ? "open" : "close"] the maintenance panel." //TODO: Sprite. +/obj/machinery/mining/drill/attackby(obj/item/O as obj, mob/user as mob) + if(!active) + if(default_deconstruction_screwdriver(user, O)) + return + if(default_deconstruction_crowbar(user, O)) + return + if(default_part_replacement(user, O)) + return + if(!panel_open || active) return ..() + + if(istype(O, /obj/item/weapon/cell)) + if(cell) + user << "The drill already has a cell installed." + else + user.drop_item() + O.loc = src + cell = O + component_parts += O + user << "You install \the [O]." return - else - if(!open || active) return ..() - if(istype(W,/obj/item/weapon/crowbar)) - if(cell) - user << "You pry out \the [cell]." - cell.loc = get_turf(src) - cell = null - else if(storage) - user << "You slip the bolt and pry out \the [storage]." - storage.loc = get_turf(src) - storage = null - else if(cutter) - user << "You carefully detatch and pry out \the [cutter]." - cutter.loc = get_turf(src) - cutter = null - else if(cellmount) - user << "You yank out a few wires and pry out \the [cellmount]." - cellmount.loc = get_turf(src) - cellmount = null - else - user << "There's nothing inside the drilling rig to remove." - return - else if(istype(W,/obj/item/weapon/stock_parts/matter_bin)) - if(storage) - user << "The drill already has a matter bin installed." - else - user.drop_item() - W.loc = src - storage = W - user << "You install \the [W]." - return - else if(istype(W,/obj/item/weapon/stock_parts/micro_laser)) - if(cutter) - user << "The drill already has a cutting head installed." - else - user.drop_item() - W.loc = src - cutter = W - user << "You install \the [W]." - return - else if(istype(W,/obj/item/weapon/stock_parts/capacitor)) - if(cellmount) - user << "The drill already has a cell capacitor installed." - else - user.drop_item() - W.loc = src - cellmount = W - user << "You install \the [W]." - return - else if(istype(W,/obj/item/weapon/cell)) - if(cell) - user << "The drill already has a cell installed." - else - user.drop_item() - W.loc = src - cell = W - user << "You install \the [W]." - return ..() + /obj/machinery/mining/drill/attack_hand(mob/user as mob) check_supports() - if(need_player_check) + if (panel_open && cell) + user << "You take out \the [cell]." + cell.loc = get_turf(user) + component_parts -= cell + cell = null + return + else if(need_player_check) user << "You hit the manual override and reset the drill's error checking." need_player_check = 0 - if(anchored) get_resource_field() + if(anchored) + get_resource_field() update_icon() return - - else if(supported) + else if(supported && !panel_open) if(use_cell_power()) active = !active if(active) - user << "\blue You engage \the [src] and it lurches downwards, grinding noisily." + visible_message("\The [src] lurches downwards, grinding noisily.") need_update_field = 1 else - user << "\blue You disengage \the [src] and it shudders to a grinding halt." + visible_message("\The [src] shudders to a grinding halt.") else - user << "\blue The drill is unpowered." + user << "The drill is unpowered." else - user << "\blue Turning on a piece of industrial machinery without sufficient bracing is a bad idea." + user << "Turning on a piece of industrial machinery without sufficient bracing or wires exposed is a bad idea." update_icon() @@ -241,6 +204,21 @@ icon_state = "mining_drill" return +/obj/machinery/mining/drill/RefreshParts() + ..() + harvest_speed = 0 + capacity = 0 + charge_use = 50 + + for(var/obj/item/weapon/stock_parts/P in component_parts) + if(istype(P, /obj/item/weapon/stock_parts/micro_laser)) + harvest_speed = P.rating + if(istype(P, /obj/item/weapon/stock_parts/matter_bin)) + capacity = 200 * P.rating + if(istype(P, /obj/item/weapon/stock_parts/capacitor)) + charge_use -= 10 * P.rating + cell = locate(/obj/item/weapon/cell) in component_parts + /obj/machinery/mining/drill/proc/check_supports() supported = 0 @@ -259,20 +237,12 @@ /obj/machinery/mining/drill/proc/system_error(var/error) - if(error) src.visible_message("\red \The [src] flashes a '[error]' warning.") + if(error) + src.visible_message("\The [src] flashes a '[error]' warning.") need_player_check = 1 active = 0 update_icon() -/obj/machinery/mining/drill/proc/get_harvest_capacity() - return (cutter ? cutter.rating : 0) - -/obj/machinery/mining/drill/proc/get_storage_capacity() - return 200 * (storage ? storage.rating : 0) - -/obj/machinery/mining/drill/proc/get_charge_use() - return 50 - (10 * (cellmount ? cellmount.rating : 0)) - /obj/machinery/mining/drill/proc/get_resource_field() resource_field = list() @@ -281,13 +251,13 @@ var/turf/T = get_turf(src) if(!istype(T)) return - var/tx = T.x-2 - var/ty = T.y-2 + var/tx = T.x - 2 + var/ty = T.y - 2 var/turf/mine_turf - for(var/iy=0,iy<5,iy++) - for(var/ix=0,ix<5,ix++) - mine_turf = locate(tx+ix,ty+iy,T.z) - if(mine_turf && istype(mine_turf) && mine_turf.has_resources) + for(var/iy = 0,iy < 5, iy++) + for(var/ix = 0, ix < 5, ix++) + mine_turf = locate(tx + ix, ty + iy, T.z) + if(mine_turf && mine_turf.has_resources) resource_field += mine_turf if(!resource_field.len) @@ -295,9 +265,8 @@ /obj/machinery/mining/drill/proc/use_cell_power() if(!cell) return 0 - var/req = get_charge_use() - if(cell.charge >= req) - cell.use(req) + if(cell.charge >= charge_use) + cell.use(charge_use) return 1 return 0 @@ -312,9 +281,9 @@ if(B) for(var/obj/item/weapon/ore/O in contents) O.loc = B - usr << "\red You unload the drill's storage cache into the ore box." + usr << "You unload the drill's storage cache into the ore box." else - usr << "\red You must move an ore box up to the drill before you can unload it." + usr << "You must move an ore box up to the drill before you can unload it." /obj/machinery/mining/brace @@ -326,16 +295,16 @@ /obj/machinery/mining/brace/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/weapon/wrench)) - if(istype(get_turf(src),/turf/space)) - user << "\blue You can't anchor something to empty space. Idiot." + if(istype(get_turf(src), /turf/space)) + user << "You can't anchor something to empty space. Idiot." return if(connected && connected.active) - user << "\blue You can't unanchor the brace of a running drill!" + user << "You can't unanchor the brace of a running drill!" return playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "\blue You [anchored ? "un" : ""]anchor the brace." + user << "You [anchored ? "un" : ""]anchor the brace." anchored = !anchored if(anchored) @@ -347,18 +316,16 @@ var/turf/T = get_step(get_turf(src), src.dir) - if(!T.has_resources) - src.visible_message("\red The terrain near the brace is unsuitable!") - return - for(var/thing in T.contents) - if(istype(thing,/obj/machinery/mining/drill)) + if(istype(thing, /obj/machinery/mining/drill)) connected = thing break - if(!connected) return + if(!connected) + return - if(!connected.supports) connected.supports = list() + if(!connected.supports) + connected.supports = list() icon_state = "mining_brace_active" diff --git a/code/modules/mining/drilling/scanner.dm b/code/modules/mining/drilling/scanner.dm index a770aa791d..510172d795 100644 --- a/code/modules/mining/drilling/scanner.dm +++ b/code/modules/mining/drilling/scanner.dm @@ -5,16 +5,13 @@ icon_state = "forensic0-old" //GET A BETTER SPRITE. item_state = "electronic" matter = list("metal" = 150) - origin_tech = "magnets=1;engineering=1" /obj/item/weapon/mining_scanner/attack_self(mob/user as mob) - user << "You begin sweeping \the [src] about, scanning for metal deposits." - if(!do_after(user,50)) return - - if(!user || !src) return + if(!do_after(user, 50)) + return var/list/metals = list( "surface minerals" = 0, @@ -23,32 +20,30 @@ "exotic matter" = 0 ) - for(var/turf/T in range(3,get_turf(user))) + for(var/turf/T in range(2, get_turf(user))) if(!T.has_resources) continue for(var/metal in T.resources) - var/ore_type switch(metal) - if("silicates" || "carbonaceous rock" || "iron") ore_type = "surface minerals" - if("gold" || "silver" || "diamond") ore_type = "precious metals" - if("uranium") ore_type = "nuclear fuel" - if("phoron" || "osmium" || "hydrogen") ore_type = "exotic matter" + if("silicates", "carbonaceous rock", "iron") ore_type = "surface minerals" + if("gold", "silver", "diamond") ore_type = "precious metals" + if("uranium") ore_type = "nuclear fuel" + if("phoron", "osmium", "hydrogen") ore_type = "exotic matter" if(ore_type) metals[ore_type] += T.resources[metal] - user << "\icon[src] \blue The scanner beeps and displays a readout." + user << "\icon[src] The scanner beeps and displays a readout." for(var/ore_type in metals) - var/result = "no sign" switch(metals[ore_type]) - if(1 to 50) result = "trace amounts" - if(51 to 150) result = "significant amounts" - if(151 to INFINITY) result = "huge quantities" + if(1 to 25) result = "trace amounts" + if(26 to 75) result = "significant amounts" + if(76 to INFINITY) result = "huge quantities" user << "- [result] of [ore_type]." \ No newline at end of file