Several drone fixes (walking over, pushing, pulling, AI sync)

Conflicts:
	code/modules/mob/living/silicon/robot/robot.dm
	code/modules/mob/living/simple_animal/simple_animal.dm
This commit is contained in:
Zuhayr
2014-05-31 18:25:07 +02:00
committed by alex-gh
parent 2a6cace982
commit d041c7af2d
5 changed files with 25 additions and 3 deletions
@@ -131,6 +131,11 @@
now_pushing = 0
return
if(istype(tmob,/mob/living/silicon/robot/drone)) //I have no idea why the hell this isn't already happening. How do mice do it?
loc = tmob.loc
now_pushing = 0
return
//BubbleWrap: people in handcuffs are always switched around as if they were on 'help' intent to prevent a person being pulled from being seperated from their puller
if((tmob.a_intent == "help" || tmob.restrained()) && (a_intent == "help" || src.restrained()) && tmob.canmove && canmove) // mutual brohugs all around!
var/turf/oldloc = loc
@@ -12,6 +12,7 @@
braintype = "Robot"
lawupdate = 0
density = 0
small = 1
// We need to keep track of a few module items so we don't need to do list operations
// every time we need them. These get set in New() after the module is chosen.
@@ -303,3 +304,16 @@
src << "<b>Systems rebooted</b>. Loading base pattern maintenance protocol... <b>loaded</b>."
full_law_reset()
/mob/living/silicon/robot/drone/Bump(atom/movable/AM as mob|obj, yes)
if (!yes) return
if (istype(AM, /obj/machinery/recharge_station))
var/obj/machinery/recharge_station/F = AM
F.move_inside()
return
/mob/living/silicon/robot/drone/Bumped(AM as mob|obj)
return
/mob/living/silicon/robot/drone/start_pulling(var/atom/movable/AM)
src << "<span class='warning'>You are too small to pull anything.</span>"
return
@@ -160,7 +160,7 @@
stored_comms["plastic"]++
return
else if(istype(M,/mob/living/silicon/robot/drone) && M.stat == 2 && !M.client)
else if(istype(M,/mob/living/silicon/robot/drone) && !M.client)
var/mob/living/silicon/robot/drone/D = src.loc
@@ -100,6 +100,9 @@
hands.icon_state = "standard"
icon_state = "secborg"
modtype = "Security"
else if(istype(src,/mob/living/silicon/robot/drone))
laws = new /datum/ai_laws/drone()
connected_ai = null
else
if(mmi.alien || alien)
laws = new /datum/ai_laws/alienmov()
@@ -274,9 +274,9 @@
src.modules += new /obj/item/weapon/wirecutters(src)
src.modules += new /obj/item/device/multitool(src)
src.modules += new /obj/item/device/lightreplacer(src)
src.modules += new /obj/item/weapon/reagent_containers/spray/cleaner(src)
src.modules += new /obj/item/weapon/gripper(src)
src.modules += new /obj/item/weapon/matter_decompiler(src)
src.modules += new /obj/item/weapon/reagent_containers/spray/cleaner/drone(src)
src.emag = new /obj/item/weapon/card/emag(src)
src.emag.name = "Cryptographic Sequencer"
@@ -290,7 +290,7 @@
/obj/item/weapon/robot_module/drone/respawn_consumable(var/mob/living/silicon/robot/R)
var/obj/item/weapon/reagent_containers/spray/cleaner/C = locate() in src.modules
C.reagents.add_reagent("cleaner", 10)
C.reagents.add_reagent("cleaner", 3)
for(var/T in stacktypes)
var/O = locate(T) in src.modules