From 94ed8a54dcf009ed2c6f3e6d65f189d12102c20e Mon Sep 17 00:00:00 2001 From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com> Date: Mon, 9 May 2022 14:43:25 -0400 Subject: [PATCH] Bot patches Fixing login/out overwriting bot settings for pAI, fixing vore settings being kept on logout. Sapient cleanbots can now clean a whole turf by clicking on themselves, allowing the bot to clean dirt that they wouldn't previously have been able to. --- code/modules/mob/living/bot/bot.dm | 10 +++++- code/modules/mob/living/bot/cleanbot.dm | 45 +++++++++++++++++-------- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/code/modules/mob/living/bot/bot.dm b/code/modules/mob/living/bot/bot.dm index 206d9f0321b..b9838dbc47c 100644 --- a/code/modules/mob/living/bot/bot.dm +++ b/code/modules/mob/living/bot/bot.dm @@ -543,8 +543,16 @@ init_vore() // ROBOT VORE verbs |= /mob/living/proc/insidePanel + return ..() + /mob/living/bot/Logout() no_vore = TRUE // ROBOT VORE release_vore_contents() init_vore() // ROBOT VORE - verbs -= /mob/living/proc/insidePanel \ No newline at end of file + verbs -= /mob/living/proc/insidePanel + no_vore = TRUE + devourable = FALSE + feeding = FALSE + can_be_drop_pred = FALSE + + return ..() \ No newline at end of file diff --git a/code/modules/mob/living/bot/cleanbot.dm b/code/modules/mob/living/bot/cleanbot.dm index f60bccbfc32..cbde93c8fd2 100644 --- a/code/modules/mob/living/bot/cleanbot.dm +++ b/code/modules/mob/living/bot/cleanbot.dm @@ -99,12 +99,13 @@ if(get_turf(target) == src.loc) UnarmedAttack(target) -/mob/living/bot/cleanbot/UnarmedAttack(var/obj/effect/decal/cleanable/D, var/proximity) +//mob/living/bot/cleanbot/UnarmedAttack(var/obj/effect/decal/cleanable/D, var/proximity) +/mob/living/bot/cleanbot/UnarmedAttack(atom/D, var/proximity) if(!..()) return - if(!istype(D)) - return + //if(!istype(D)) + // return if(D.loc != loc) return @@ -113,17 +114,33 @@ if(prob(20)) custom_emote(2, "begins to clean up \the [D]") update_icons() - var/cleantime = istype(D, /obj/effect/decal/cleanable/dirt) ? 10 : 50 - if(do_after(src, cleantime)) - if(istype(loc, /turf/simulated)) - var/turf/simulated/f = loc - f.dirt = 0 - if(!D) - return - qdel(D) - if(D == target) - cleanbot_reserved_turfs -= target - target = null + var/cleantime = 0 + if(istype(D, /obj/effect/decal/cleanable)) + cleantime = istype(D, /obj/effect/decal/cleanable/dirt) ? 10 : 50 + if(do_after(src, cleantime)) + if(istype(loc, /turf/simulated)) + var/turf/simulated/f = loc + f.dirt = 0 + if(!D) + return + qdel(D) + if(D == target) + cleanbot_reserved_turfs -= target + target = null + else if(D == src) + for(var/obj/effect/O in loc) + if(istype(O, /obj/effect/decal/cleanable/dirt)) + cleantime += 10 + if(istype(O,/obj/effect/rune) || istype(O,/obj/effect/decal/cleanable) || istype(O,/obj/effect/overlay)) + cleantime += 50 + if(do_after(src, cleantime)) + clean_blood() + if(istype(loc, /turf/simulated)) + var/turf/simulated/T = loc + T.dirt = 0 + for(var/obj/effect/O in loc) + if(istype(O,/obj/effect/rune) || istype(O,/obj/effect/decal/cleanable) || istype(O,/obj/effect/overlay)) + qdel(O) busy = 0 update_icons()