Files
Paradise/code/game/objects/items/weapons/RCD.dm
n3ophyt3@gmail.com f10af06a6b Monkeys can now be stungloved
Cyborgs got a makeover
  Standard model now gets an energy sword when emagged
  Engineering model
    RCDs now run on cell charge for engyborgs
    Emagged engyborgs get the functional equivalent of stungloves
  Security model gets a laser when emagged
  Janitor model 
    Spraybottle contents slowly refill at the cost of cell charge
    Emagged janitors get a spraybottle full of space lube
  Brobot
    Bottle contents slowly refill at the cost of cell charge
    Emagged brobots get a bottle of Mickey Finn's Special Brew

Traitor/malf AIs can 'emag' their borgs with the robotics terminal (subject to removal/conversion to malf module should it prove hilariously overpowered)
  

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@634 316c924e-a436-60f5-8080-3fe189b3f50e
2010-12-16 03:11:49 +00:00

170 lines
5.5 KiB
Plaintext

/*
CONTAINS:
RCD
*/
/obj/item/weapon/rcd/New()
desc = "A RCD. It currently holds [matter]/30 matter-units."
src.spark_system = new /datum/effects/system/spark_spread
spark_system.set_up(5, 0, src)
spark_system.attach(src)
return
/obj/item/weapon/rcd/attackby(obj/item/weapon/W as obj, mob/user as mob)
if (istype(W, /obj/item/weapon/rcd_ammo))
if ((matter + 10) > 30)
user << "The RCD cant hold any more matter."
return
del(W)
matter += 10
playsound(src.loc, 'click.ogg', 50, 1)
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
return
/obj/item/weapon/rcd/attack_self(mob/user as mob)
playsound(src.loc, 'pop.ogg', 50, 0)
if (mode == 1)
mode = 2
user << "Changed mode to 'Airlock'"
src.spark_system.start()
return
if (mode == 2)
mode = 3
user << "Changed mode to 'Deconstruct'"
src.spark_system.start()
return
if (mode == 3)
mode = 1
user << "Changed mode to 'Floor & Walls'"
src.spark_system.start()
return
// Change mode
/obj/item/weapon/rcd/afterattack(atom/A, mob/user as mob)
if (!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock)))
return
if (istype(A, /turf) && mode == 1)
if (istype(A, /turf/space) && matter >= 1)
user << "Building Floor (1)..."
if (!disabled)
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
spark_system.set_up(5, 0, src)
src.spark_system.start()
A:ReplaceWithFloor()
if (isrobot(user))
var/mob/living/silicon/robot/engy = user
engy.cell.charge -= 30
else
matter--
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
return
if (istype(A, /turf/simulated/floor) && matter >= 3)
user << "Building Wall (3)..."
playsound(src.loc, 'click.ogg', 50, 1)
if(do_after(user, 20))
if (!disabled)
spark_system.set_up(5, 0, src)
src.spark_system.start()
A:ReplaceWithWall()
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if (isrobot(user))
var/mob/living/silicon/robot/engy = user
engy.cell.charge -= 90
else
matter -= 3
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
return
else if (istype(A, /turf/simulated/floor) && mode == 2 && matter >= 10)
user << "Building Airlock (10)..."
playsound(src.loc, 'click.ogg', 50, 1)
if(do_after(user, 50))
if (!disabled)
spark_system.set_up(5, 0, src)
src.spark_system.start()
var/obj/machinery/door/airlock/T = new /obj/machinery/door/airlock( A )
T.autoclose = 1
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
playsound(src.loc, 'sparks2.ogg', 50, 1)
if (isrobot(user))
var/mob/living/silicon/robot/engy = user
engy.cell.charge -= 300
else
matter -= 10
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
return
else if (mode == 3 && (istype(A, /turf) || istype(A, /obj/machinery/door/airlock) ) )
if (istype(A, /turf/simulated/wall) && matter >= 5)
user << "Deconstructing Wall (5)..."
playsound(src.loc, 'click.ogg', 50, 1)
if(do_after(user, 50))
if (!disabled)
spark_system.set_up(5, 0, src)
src.spark_system.start()
A:ReplaceWithFloor()
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if (isrobot(user))
var/mob/living/silicon/robot/engy = user
engy.cell.charge -= 150
else
matter -= 5
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
return
if (istype(A, /turf/simulated/wall/r_wall) && matter >= 5)
user << "Deconstructing RWall (5)..."
playsound(src.loc, 'click.ogg', 50, 1)
if(do_after(user, 50))
if (!disabled)
spark_system.set_up(5, 0, src)
src.spark_system.start()
A:ReplaceWithWall()
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if (isrobot(user))
var/mob/living/silicon/robot/engy = user
engy.cell.charge -= 150
else
matter -= 5
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
return
if (istype(A, /turf/simulated/floor) && matter >= 5)
user << "Deconstructing Floor (5)..."
playsound(src.loc, 'click.ogg', 50, 1)
if(do_after(user, 50))
if (!disabled)
spark_system.set_up(5, 0, src)
src.spark_system.start()
A:ReplaceWithSpace()
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if (isrobot(user))
var/mob/living/silicon/robot/engy = user
engy.cell.charge -= 150
else
matter -= 5
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
return
if (istype(A, /obj/machinery/door/airlock) && matter >= 10)
user << "Deconstructing Airlock (10)..."
playsound(src.loc, 'click.ogg', 50, 1)
if(do_after(user, 50))
if (!disabled)
spark_system.set_up(5, 0, src)
src.spark_system.start()
del(A)
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
if (isrobot(user))
var/mob/living/silicon/robot/engy = user
engy.cell.charge -= 300
else
matter -= 10
user << "The RCD now holds [matter]/30 matter-units."
desc = "A RCD. It currently holds [matter]/30 matter-units."
return