mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-29 23:17:02 +01:00
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:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user