-Added a new, and admin spawnable only, machine which can turn humans into Cyborgs. Probably can be used for Robot Uprising events. The human has to be lying down and alive to be Borged. When spawned a conveyor belt will spawn on the left and right side too.

-Reduced the duration of the flare. I think putting it in process() made it last longer.

-Added some null checks in camera chunks.

-Large NarSie now force calls the shuttle and displays a threatening warning message.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4915 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
giacomand@gmail.com
2012-10-20 02:13:40 +00:00
parent 1e1f173ca2
commit 28fbd01e7f
7 changed files with 78 additions and 9 deletions

View File

@@ -0,0 +1,54 @@
/obj/machinery/transformer
name = "Automatic Robotic Factory 5000"
desc = "A large metalic machine with an entrance and an exit. A sign on the side reads, 'human go in, robot come out', human must be lying down and alive."
icon = 'icons/obj/recycling.dmi'
icon_state = "separator-AO1"
layer = MOB_LAYER+1 // Overhead
anchored = 1
density = 1
var/transform_dead = 0
/obj/machinery/transformer/New()
..()
var/turf/T = loc
if(T)
// Spawn Conveyour Belts
//East
var/turf/east = locate(T.x + 1, T.y, T.z)
if(istype(east, /turf/simulated/floor))
new /obj/machinery/conveyor(east, WEST, 1)
// West
var/turf/west = locate(T.x - 1, T.y, T.z)
if(istype(west, /turf/simulated/floor))
new /obj/machinery/conveyor(west, WEST, 1)
// On us
new /obj/machinery/conveyor(T, WEST, 1)
/obj/machinery/transformer/Bumped(var/atom/movable/AM)
// HasEntered didn't like people lying down.
world << "BUMP!"
if(ishuman(AM))
// Only humans can enter from the west side, while lying down.
var/move_dir = get_dir(loc, AM.loc)
var/mob/living/carbon/human/H = AM
if(H.lying && move_dir == EAST)// || move_dir == WEST)
AM.loc = src.loc
transform(AM)
/obj/machinery/transformer/proc/transform(var/mob/living/carbon/human/H)
if(stat & (BROKEN|NOPOWER))
return
if(!transform_dead && H.stat == DEAD)
playsound(src.loc, 'sound/machines/buzz-sigh.ogg', 50, 0)
return
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
use_power(5000) // Use a lot of power.
var/mob/living/silicon/robot = H.Robotize()
robot.lying = 1
spawn(50) // So he can't jump out the gate right away.
playsound(src.loc, 'sound/machines/ping.ogg', 50, 0)
if(robot)
robot.lying = 0

View File

@@ -152,12 +152,9 @@
var/produce_heat = 1500
/obj/item/device/flashlight/flare/New()
fuel = rand(6000, 9000) // Last 10 to 15 minutes.
fuel = rand(3000, 4500) // Last 10 to 15 minutes.
..()
/obj/item/device/flashlight/flare/attack(mob/living/M as mob, mob/living/user as mob)
..(M, user, 0)
/obj/item/device/flashlight/flare/process()
var/turf/pos = get_turf(src)
pos.hotspot_expose(produce_heat, 5)

View File

@@ -75,6 +75,9 @@
for(var/camera in cameras)
var/obj/machinery/camera/c = camera
if(!c)
continue
if(!c.can_use())
continue
@@ -142,6 +145,9 @@
for(var/camera in cameras)
var/obj/machinery/camera/c = camera
if(!c)
continue
if(!c.can_use())
continue

View File

@@ -65,8 +65,6 @@
updatename("Default")
updateicon()
playsound(src, 'sound/voice/liveagain.ogg', 75, 1)
if(!cell)
cell = new /obj/item/weapon/cell(src)
cell.maxcharge = 7500
@@ -101,6 +99,9 @@
camera.status = 0
..()
playsound(loc, 'sound/voice/liveagain.ogg', 75, 1)
//If there's an MMI in the robot, have it ejected when the mob goes away. --NEO
//Improved /N
/mob/living/silicon/robot/Del()

View File

@@ -473,9 +473,14 @@ var/global/list/uneatable = list(
pixel_y = -256
current_size = 12
move_self = 1 //Do we move on our own?
grav_pull = 13 //How many tiles out do we pull?
consume_range = 12 //How many tiles out do we eat
/obj/machinery/singularity/narsie/large/New()
..()
world << "<font size='28' color='red'><b>NAR-SIE HAS RISEN</b></font>"
if(emergency_shuttle)
emergency_shuttle.incall(0.5) // Cannot recall
/obj/machinery/singularity/narsie/process()
eat()
if(!target || prob(5))

View File

@@ -20,8 +20,10 @@
id = "round_end_belt"
// create a conveyor
/obj/machinery/conveyor/New()
..()
/obj/machinery/conveyor/New(loc, newdir, on = 0)
..(loc)
if(newdir)
dir = newdir
switch(dir)
if(NORTH)
forwards = NORTH
@@ -47,6 +49,9 @@
if(SOUTHWEST)
forwards = WEST
backwards = NORTH
if(on)
operating = 1
setmove()
/obj/machinery/conveyor/proc/setmove()
if(operating == 1)

View File

@@ -759,6 +759,7 @@
#include "code\game\machinery\suit_storage_unit.dm"
#include "code\game\machinery\syndicatebeacon.dm"
#include "code\game\machinery\teleporter.dm"
#include "code\game\machinery\transformer.dm"
#include "code\game\machinery\turrets.dm"
#include "code\game\machinery\vending.dm"
#include "code\game\machinery\washing_machine.dm"