mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-01 13:12:23 +00:00
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
170 lines
5.5 KiB
Plaintext
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
|