Adds drones, drone fabrication, commit options. This is the squashed version of the original 22 commit pull, so I'm summarizing.

Conflicts:
	baystation12.dme
	code/controllers/configuration.dm
	code/game/objects/items/weapons/AI_modules.dm
	code/modules/mob/living/living.dm
	code/modules/mob/living/silicon/robot/examine.dm
	code/modules/mob/living/silicon/robot/life.dm
	code/modules/mob/living/silicon/robot/robot.dm
	code/modules/mob/living/silicon/robot/robot_modules.dm
	code/modules/recycling/disposal.dm
	icons/mob/robots.dmi
	icons/obj/device.dmi
This commit is contained in:
Zuhayr
2014-05-12 01:41:02 -04:00
committed by ZomgPonies
parent c6d481f00a
commit d606d774d8
29 changed files with 1082 additions and 121 deletions
+21 -10
View File
@@ -367,7 +367,7 @@
return
use_power = 1
if(mode != 1) // if off or ready, no need to charge
return
@@ -401,7 +401,11 @@
var/wrapcheck = 0
var/obj/structure/disposalholder/H = new() // virtual holder object which actually
// travels through the pipes.
// travels through the pipes.
//Hacky test to get drones to mail themselves through disposals.
for(var/mob/living/silicon/robot/drone/D in src)
wrapcheck = 1
for(var/obj/item/smallDelivery/O in src)
wrapcheck = 1
@@ -449,9 +453,10 @@
AM.loc = src.loc
AM.pipe_eject(0)
spawn(1)
if(AM)
AM.throw_at(target, 5, 1)
if(!istype(AM,/mob/living/silicon/robot/drone)) //Poor drones kept smashing windows and taking system damage being fired out of disposals. ~Z
spawn(1)
if(AM)
AM.throw_at(target, 5, 1)
H.vent_gas(loc)
del(H)
@@ -496,7 +501,7 @@
//Check for any living mobs trigger hasmob.
//hasmob effects whether the package goes to cargo or its tagged destination.
for(var/mob/living/M in D)
if(M && M.stat != 2)
if(M && M.stat != 2 && !istype(M,/mob/living/silicon/robot/drone))
hasmob = 1
//Checks 1 contents level deep. This means that players can be sent through disposals...
@@ -504,7 +509,7 @@
for(var/obj/O in D)
if(O.contents)
for(var/mob/living/M in O.contents)
if(M && M.stat != 2)
if(M && M.stat != 2 && !istype(M,/mob/living/silicon/robot/drone))
hasmob = 1
// now everything inside the disposal gets put into the holder
@@ -521,6 +526,10 @@
if(istype(AM, /obj/item/smallDelivery) && !hasmob)
var/obj/item/smallDelivery/T = AM
src.destinationTag = T.sortTag
//Drones can mail themselves through maint.
if(istype(AM, /mob/living/silicon/robot/drone))
var/mob/living/silicon/robot/drone/drone = AM
src.destinationTag = drone.mail_destination
// start the movement process
@@ -544,7 +553,8 @@
while(active)
if(hasmob && prob(3))
for(var/mob/living/H in src)
H.take_overall_damage(10, 0, "Blunt Trauma")//horribly maim any living creature jumping down disposals. c'est la vie
if(!istype(H,/mob/living/silicon/robot/drone)) //Drones use the mailing code to move through the disposal system,
H.take_overall_damage(20, 0, "Blunt Trauma")//horribly maim any living creature jumping down disposals. c'est la vie
if(has_fat_guy && prob(2)) // chance of becoming stuck per segment if contains a fat guy
active = 0
@@ -1261,8 +1271,9 @@
for(var/atom/movable/AM in H)
AM.loc = src.loc
AM.pipe_eject(dir)
spawn(5)
AM.throw_at(target, 3, 1)
if(!istype(AM,/mob/living/silicon/robot/drone)) //Drones keep smashing windows from being fired out of chutes. Bad for the station. ~Z
spawn(5)
AM.throw_at(target, 3, 1)
H.vent_gas(src.loc)
del(H)