From 2ce15a66d6906992ac4088591ce0c30471a0b126 Mon Sep 17 00:00:00 2001 From: phil235 Date: Tue, 14 Jun 2016 21:12:23 +0200 Subject: [PATCH] Fixes robotic chest and head augmentation being invisible for species without sexual dimorphism. Fixes failing to heal robotic bodypart with coil still using 1 coil. Fixes not being able to eat with sechailer adjust down. Fixes damage overlay being invisible. Adds some game logs and warn admins when a player reset a RD console database. --- code/game/objects/items/weapons/tools.dm | 3 -- code/modules/clothing/masks/hailer.dm | 1 + .../mob/living/carbon/human/update_icons.dm | 4 +-- code/modules/mob/mob_helpers.dm | 27 +++++++----------- code/modules/power/cable.dm | 4 +-- code/modules/research/rdconsole.dm | 2 ++ icons/mob/augments.dmi | Bin 1488 -> 1650 bytes 7 files changed, 17 insertions(+), 24 deletions(-) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index d90ce051b49..c1839937dc3 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -268,9 +268,6 @@ if(!do_mob(user, H, 50)) return item_heal_robotic(H, user, 5, 0) - return - else - return else return ..() diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 819d8ac9975..2fa1416c129 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -12,6 +12,7 @@ visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS visor_flags_inv = HIDEFACE flags_cover = MASKCOVERSMOUTH + visor_flags_cover = MASKCOVERSMOUTH var/aggressiveness = 2 var/cooldown_special var/recent_uses = 0 diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 2d95d154002..584fa91045b 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -63,9 +63,9 @@ There are several things that need to be remembered: for(var/X in bodyparts) var/obj/item/bodypart/BP = X if(BP.brutestate) - standing.overlays += "[dmgoverlaytype][BP.icon_state]_[BP.brutestate]0" //we're adding icon_states of the base image as overlays + standing.overlays += "[dmgoverlaytype][BP.body_zone]_[BP.brutestate]0" //we're adding icon_states of the base image as overlays if(BP.burnstate) - standing.overlays += "[dmgoverlaytype][BP.icon_state]_0[BP.burnstate]" + standing.overlays += "[dmgoverlaytype][BP.body_zone]_0[BP.burnstate]" apply_overlay(DAMAGE_LAYER) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index f9f5561661f..83e650ed67d 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -414,28 +414,21 @@ It's fairly easy to fix if dealing with single letters but not so much with comp alert_overlay.layer = FLOAT_LAYER A.overlays += alert_overlay -/proc/item_heal_robotic(mob/living/carbon/human/H, mob/user, brute, burn) +/proc/item_heal_robotic(mob/living/carbon/human/H, mob/user, brute_heal, burn_heal) var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) - - var/dam //changes repair text based on how much brute/burn was supplied - - if(brute > burn) - dam = 1 - else - dam = 0 - if(affecting && affecting.status == ORGAN_ROBOTIC) - if((brute > 0 && affecting.brute_dam > 0) || (burn > 0 && affecting.burn_dam > 0)) - affecting.heal_damage(brute,burn,1) - H.update_damage_overlays(0) - H.updatehealth() + var/dam //changes repair text based on how much brute/burn was supplied + if(brute_heal > burn_heal) + dam = 1 + else + dam = 0 + if((brute_heal > 0 && affecting.brute_dam > 0) || (burn_heal > 0 && affecting.burn_dam > 0)) + affecting.heal_damage(brute_heal,burn_heal,1) user.visible_message("[user] has fixed some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting].", "You fix some of the [dam ? "dents on" : "burnt wires in"] [H]'s [affecting].") - return + return 1 //successful heal else user << "[H]'s [affecting] is already in good condition!" - return - else - return + /proc/IsAdminGhost(var/mob/user) if(!user) //Are they a mob? Auto interface updates call this with a null src diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 51b6eb9558f..fb20f6c8ee1 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -517,8 +517,8 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list ( \ user.visible_message("[user] starts to fix some of the wires in [H]'s [affecting.name].", "You start fixing some of the wires in [H]'s [affecting.name].") if(!do_mob(user, H, 50)) return - item_heal_robotic(H, user, 0, 5) - src.use(1) + if(item_heal_robotic(H, user, 0, 5)) + use(1) return else return ..() diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index dfd361a885b..e51445ce616 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -522,6 +522,8 @@ won't update every console in existence) but it's more of a hassle to do. Also, griefProtection() var/choice = alert("R&D Console Database Reset", "Are you sure you want to reset the R&D console's database? Data lost cannot be recovered.", "Continue", "Cancel") if(choice == "Continue") + message_admins("[key_name_admin(usr)] reset \the [src.name]'s database") + log_game("[key_name_admin(usr)] reset \the [src.name]'s database") screen = 0.0 qdel(files) files = new /datum/research(src) diff --git a/icons/mob/augments.dmi b/icons/mob/augments.dmi index 2b7239ba1a90149a05a3b295be2bbf8757711b19..8cbb3f03d5e7a56b8ab28c5adfe7a2c03222c34c 100644 GIT binary patch delta 1625 zcmV-f2B!JY3-SyliBL{Q4GJ0x0000DNk~Le0002s0002s1Oos70O$jE(f|MeEs-TI zf55=N{Q=z%00001bW%=J06^y0W&i*HpL$eSbVOxyV{&P5bZKvH004NLjgh?y!!Qhl zXX`0UvX}m?T}nd9ki3F0wGtVe1}xLQe*U&XskS@#bV8@n-s?xx*{W^eO-aJ^vNwA@ z9Kn2o&%Bt+84ObxIPXTX%e2Vi$s`#^f0P1@4@uTRFnw|(t@`v$_6m~8c~#^FsuKmL z=>MV-UDE7MN-kogL6xWD_EVH?|Kv(rch&ar87@sj)7HW63@5_@u;r~DqMOi5brU4?j+dRJ z(}wm#()onWchGs!C=S5Ku842J^F{oxMm##Nn(I{z9e!J^P{Q?UJ%s_?b+(3=^n`ev zuu*To02RMUPy?Mof=4(=;0V3rRX=HK=rG^q@E0r6TBBdIW^n*?**iX(f7P4tlF8n7 zkM8Mew(7%xIGbf)gx>MRJz2G&Lw7oBW4jB_i)h-N!iUB;zUU%)CZ3-{{BEo_aKd&S z-IHkQ7hgQrhFv$_wZ$JqO<;$X5nm(X8HQn);$2&J+uoQjb2RNNUdDM|bJ) zWrZiw;!5Xe=6#iGWK;1Lf8#tyT^iS~kloM6c#gBnW8_c7o2dNy8g@x-Cj->Qes+yV zxJ9!zGTtOw=X-cfqBKd+Kk1`}c}d$yOKhH=obeXDHJ(Q%S&D4c+y4mdSDOX8WWAr= z@s@szIvsRAdV_6Q$8!+VrsAK6bSGS#J0&sWBSY_1j-mH1kPz#=f9f&xUiCzV-m5+# z)_c`s=)LMO^j`HCdars+y;prgL+@3OsrML$VHkgc>pcRwG4TN z{2ZsI%_G`9SMTQ|toN2k@2L+$Ah~r@uNivL=#RpB(N36MKSBE!toNe#LO}Udq8D4Z z!D!`9Na#J$digmte`o7OvqcrreH^;nfRQB;bkx%8|e~VVNvc=_3@bgQRnX4L@ z_y>A~quWChu{FTw5d!_En(k?Rowx!oZG3lV@7t2@E8Rah$VcY@<-0$~eB$f)-}a99 z1N|ra&K6G+Zt^g~BmUs9d~{ChPZDlY9}<@PgTuhN47DshjSm8Kcf=p+zY*?}vB)Cd zex?&X9K_ZUe}Aa|UcYrF{QZOxz6J>&O8tQc`n#P_oU-~0)m^zi^k6N>Fbu;m48t%C z6AHMHp~(N_SJ*1?Hx@=L4~2FQ&bAAGIgs+}$G{ zVTciGcqn$Sm02FKy^kt3dStE7rSrpQUvgLSu?-rcydT14pgjHFN|?gW$Yg3=)1`)s zfhEg#IH4ZFgj!om*zpqGqa}IGm`n4Y+kfcGx%&^jId}h|FX!$*^yb|ChyI+q|InLr z_a9RAe`;tvzbB>Y)dYvAR}&nnUQPIfM7^5eQ1xnpL)E(p4ppxvd_tmLP56XFy_(=q z^=iUH)T;>(RqrM|M72F ze@Dc<2mk;80d!JMQvg8b*k%9#0F!!DSad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1 zEqmzFvn+Q_ZOKKq#6KAHzi18_y54eg_xuwbGv-gK9N^;jC`vSsPH`ysf4Lj( z(R}*yNrdzzWgH<6hvR=kz{j1om?rJ9E}zi+28K**#SS*~%HkSz$ji4T`Gk)-JOJCw zrfU#;`^7wg{l|mFGCDuMYS@W&OHAJmrf5Xd-MrUn?k~qx#oI#$N1U$8F%$^8DHd4Y z^r3(zpCpUPB#TaQJef_#Af`8bf3kuJ!;E)L*Q8h!BbX58iyTy-%Ripee8|@#cd$yvUmT;}Fm_JkAn)Z}9^x(D%^+ym@YwsNHby0kfAT9_!L~3G@Jexj=g7;F1U8{|Lp}d{@)s%|F=fx|Lp~IfBxSZo&UE+>;D}N zhvO;m&HevI_Wy^=`u}HKVDBk7im$)?wxIX_DSl?Jk^g6J2tgyd_B(hh`V9Yn592?u z|My-K0#89L-`m{ZTlxR!%Wrc&8UC*G|ME3hwVrc1U+e!X!{2EMYt-^<82bN<=Q|t@ zhr{7;I37ud%Pst}f8J~)BrnU%_W$()d4wB0v;BW9X&|>4?*Hpxk=)|dTC7l9QE36d zcvEm8SPrJa?4VWP#$%YAE(*)vz1EFK6z%I;MN0Pdq=moeD@bol1<35HfPY5)?1k~Z z=*Nf6XZq9M`rhA%#sc(C{-d?Gc?EPN|Iyl;8w-RF(}=B=f4R6ZG`|ykde{!3ul~^s z+`d=!X(f0_p?{rG!E%oe;WKgboePAgW*O=gWvxIUXMP1WhHQ{tN=QE$?dBI&`y9f>C}E7I()s` zXXtIN)vQ)CK?1wRevcP`cLTP#d^k6trcv)#_Zv58l4T=}&IUi+&yf%wM zX$1QBo2Uf3pTK3f$bPN~WbkXuG{fgeRR9*?DHPzm_KH1Rqczi-HwgR-Gpg6;pWdAw Q000002uVdwM6N<$g3>?H?EnA(