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.
This commit is contained in:
FartMaster69420
2022-05-09 14:43:25 -04:00
parent afd673c6f6
commit 94ed8a54dc
2 changed files with 40 additions and 15 deletions
+9 -1
View File
@@ -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
verbs -= /mob/living/proc/insidePanel
no_vore = TRUE
devourable = FALSE
feeding = FALSE
can_be_drop_pred = FALSE
return ..()
+31 -14
View File
@@ -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()