mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 11:37:40 +01:00
New WIP TK system added. To activate your TK click the throw button with an empty hand. This will bring up a tkgrab item. Click on a non-anchored (currently) non mob Object to select it as your "focus". Once a focus is selected so long as you are in range of the focus you can now click somewhere to throw the focus at the target. To quit using TK just drop the tkgrab item.
The captains laser, aegun, and xbow recharge a bit slower now, they recharged so fast that you almost never had to stop shooting. Cleaned up the cyborg_modules file Medical and Security borgs have a hud item. Medical bots bottles hold 60 of their chemical (up from 30). Medical bots now have three syringes that are labeled "Syringe-(Inaprovaline)", "Syringe-(Anti-Toxin)", and "Syringe-(Mixed)". Medical bots now have two kelotane/dexalin pills (up from 1/ea). Engineering bots got a new RCD thats just like the old one but the code is cleaner and meant for borgs only. Husks brains can no longer be cut out. Healing hands code has been removed till whoever wants to finish it adds it to a place that is NOT the base click procs. Added veyveyr's nuke team weapon. Its more or less the Uzi with a new icon. Nuke teams also got a bit of extra ammo and a few more pinpointers/eguns in their locker. Glass doors will not set opacity to 1 after they close. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2431 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -1,18 +1,24 @@
|
||||
/obj/structure/closet/syndicate/nuclear/New()
|
||||
..()
|
||||
sleep(2)
|
||||
new /obj/item/ammo_magazine/c45( src )
|
||||
new /obj/item/ammo_magazine/c45( src )
|
||||
new /obj/item/ammo_magazine/c45( src )
|
||||
new /obj/item/weapon/storage/handcuff_kit( src )
|
||||
new /obj/item/weapon/storage/flashbang_kit( src )
|
||||
new /obj/item/weapon/gun/energy/gun( src )
|
||||
new /obj/item/weapon/gun/energy/gun( src )
|
||||
new /obj/item/weapon/gun/energy/gun( src )
|
||||
new /obj/item/weapon/pinpointer( src )
|
||||
new /obj/item/weapon/pinpointer( src )
|
||||
new /obj/item/weapon/pinpointer( src )
|
||||
new /obj/item/device/pda/syndicate( src )
|
||||
var/obj/item/weapon/syndicate_uplink/U = new /obj/item/weapon/syndicate_uplink( src )
|
||||
new /obj/item/ammo_magazine/a12mm(src)
|
||||
new /obj/item/ammo_magazine/a12mm(src)
|
||||
new /obj/item/ammo_magazine/a12mm(src)
|
||||
new /obj/item/ammo_magazine/a12mm(src)
|
||||
new /obj/item/ammo_magazine/a12mm(src)
|
||||
new /obj/item/weapon/storage/handcuff_kit(src)
|
||||
new /obj/item/weapon/storage/flashbang_kit(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
new /obj/item/weapon/pinpointer(src)
|
||||
new /obj/item/weapon/pinpointer(src)
|
||||
new /obj/item/weapon/pinpointer(src)
|
||||
new /obj/item/weapon/pinpointer(src)
|
||||
new /obj/item/weapon/pinpointer(src)
|
||||
new /obj/item/device/pda/syndicate(src)
|
||||
var/obj/item/weapon/syndicate_uplink/U = new /obj/item/weapon/syndicate_uplink(src)
|
||||
U.uses = 40
|
||||
return
|
||||
|
||||
@@ -0,0 +1,294 @@
|
||||
/**********************************************************************
|
||||
Cyborg Spec Items
|
||||
***********************************************************************/
|
||||
//Might want to move this into several files later but for now it works here
|
||||
/obj/item/borg/stun
|
||||
name = "Electrified Arm"
|
||||
icon = 'decals.dmi'
|
||||
icon_state = "shock"
|
||||
|
||||
attack(mob/M as mob, mob/living/silicon/robot/user as mob)
|
||||
M.attack_log += text("\[[time_stamp()]\] <font color='orange'>Has been attacked with [src.name] by [user.name] ([user.ckey])</font>")
|
||||
user.attack_log += text("\[[time_stamp()]\] <font color='red'>Used the [src.name] to attack [M.name] ([M.ckey])</font>")
|
||||
user.cell.charge -= 30
|
||||
if (M.weakened < 5)
|
||||
M.weakened = 5
|
||||
if (M.stuttering < 5)
|
||||
M.stuttering = 5
|
||||
if (M.stunned < 5)
|
||||
M.stunned = 5
|
||||
for(var/mob/O in viewers(M, null))
|
||||
if (O.client)
|
||||
O.show_message("\red <B>[user] has prodded [M] with an electrically-charged arm!</B>", 1, "\red You hear someone fall", 2)
|
||||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
HUD/SIGHT things
|
||||
***********************************************************************/
|
||||
/obj/item/borg/sight
|
||||
icon = 'decals.dmi'
|
||||
icon_state = "securearea"
|
||||
var/sight_mode = null
|
||||
|
||||
|
||||
/obj/item/borg/sight/xray
|
||||
name = "X-ray Vision"
|
||||
sight_mode = BORGXRAY
|
||||
|
||||
|
||||
/obj/item/borg/sight/thermal
|
||||
name = "Thermal Vision"
|
||||
sight_mode = BORGTHERM
|
||||
|
||||
|
||||
/obj/item/borg/sight/meson
|
||||
name = "Meson Vision"
|
||||
sight_mode = BORGMESON
|
||||
|
||||
|
||||
/obj/item/borg/sight/hud
|
||||
name = "Hud"
|
||||
var/obj/item/clothing/glasses/hud/hud = null
|
||||
|
||||
|
||||
/obj/item/borg/sight/hud/med
|
||||
name = "Medical Hud"
|
||||
|
||||
|
||||
New()
|
||||
..()
|
||||
hud = new /obj/item/clothing/glasses/hud/health(src)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/borg/sight/hud/sec
|
||||
name = "Security Hud"
|
||||
|
||||
|
||||
New()
|
||||
..()
|
||||
hud = new /obj/item/clothing/glasses/hud/security(src)
|
||||
return
|
||||
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
Chemical things
|
||||
***********************************************************************/
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(5,10,15)
|
||||
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
||||
volume = 60
|
||||
var
|
||||
reagent = ""
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/inaprovaline
|
||||
name = "internal inaprovaline bottle"
|
||||
desc = "A small bottle. Contains inaprovaline - used to stabilize patients."
|
||||
icon = 'chemical.dmi'
|
||||
icon_state = "bottle16"
|
||||
reagent = "inaprovaline"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("inaprovaline", 60)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/robot/antitoxin
|
||||
name = "internal anti-toxin bottle"
|
||||
desc = "A small bottle of Anti-toxins. Counters poisons, and repairs damage, a wonder drug."
|
||||
icon = 'chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
reagent = "anti_toxin"
|
||||
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("anti_toxin", 60)
|
||||
return
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/reagent_containers/robodropper
|
||||
name = "Industrial Dropper"
|
||||
desc = "A larger dropper. Transfers 10 units."
|
||||
icon = 'chemical.dmi'
|
||||
icon_state = "dropper0"
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(1,2,3,4,5,6,7,8,9,10)
|
||||
volume = 10
|
||||
var/filled = 0
|
||||
|
||||
afterattack(obj/target, mob/user , flag)
|
||||
if(!target.reagents) return
|
||||
|
||||
if(filled)
|
||||
|
||||
if(target.reagents.total_volume >= target.reagents.maximum_volume)
|
||||
user << "\red [target] is full."
|
||||
return
|
||||
|
||||
if(!target.is_open_container() && !ismob(target) && !istype(target,/obj/item/weapon/reagent_containers/food)) //You can inject humans and food but you cant remove the shit.
|
||||
user << "\red You cannot directly fill this object."
|
||||
return
|
||||
|
||||
if(ismob(target))
|
||||
for(var/mob/O in viewers(world.view, user))
|
||||
O.show_message(text("\red <B>[] drips something onto []!</B>", user, target), 1)
|
||||
src.reagents.reaction(target, TOUCH)
|
||||
|
||||
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
user << "\blue You transfer [trans] units of the solution."
|
||||
if (src.reagents.total_volume<=0)
|
||||
filled = 0
|
||||
icon_state = "dropper[filled]"
|
||||
|
||||
else
|
||||
|
||||
if(!target.is_open_container() && !istype(target,/obj/structure/reagent_dispensers))
|
||||
user << "\red You cannot directly remove reagents from [target]."
|
||||
return
|
||||
|
||||
if(!target.reagents.total_volume)
|
||||
user << "\red [target] is empty."
|
||||
return
|
||||
|
||||
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this)
|
||||
|
||||
user << "\blue You fill the dropper with [trans] units of the solution."
|
||||
|
||||
filled = 1
|
||||
icon_state = "dropper[filled]"
|
||||
|
||||
return
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
Chemical things
|
||||
***********************************************************************/
|
||||
/obj/item/borg/rcd
|
||||
name = "robotic rapid-construction-device"
|
||||
desc = "A device used to rapidly build walls/floor."
|
||||
icon = 'items.dmi'
|
||||
icon_state = "rcd"
|
||||
flags = FPRINT | TABLEPASS| CONDUCT
|
||||
force = 5.0
|
||||
w_class = 3.0
|
||||
var
|
||||
datum/effect/effect/system/spark_spread/spark_system
|
||||
working = 0
|
||||
mode = 1
|
||||
|
||||
|
||||
New()
|
||||
src.spark_system = new /datum/effect/effect/system/spark_spread
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
return
|
||||
|
||||
|
||||
proc/activate()
|
||||
spark_system.set_up(5, 0, src)
|
||||
src.spark_system.start()
|
||||
playsound(src.loc, 'Deconstruct.ogg', 50, 1)
|
||||
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
//Change the mode
|
||||
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
|
||||
|
||||
|
||||
afterattack(atom/A, mob/user as mob)
|
||||
if(!isrobot(user)) return
|
||||
if(!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock))) return
|
||||
|
||||
var/mob/living/silicon/robot/R = user
|
||||
var/obj/item/weapon/cell/cell = R.cell
|
||||
if(!cell) return
|
||||
|
||||
if(istype(A, /turf))
|
||||
switch(mode)
|
||||
if(1)
|
||||
if(istype(A, /turf/space))
|
||||
if(!cell.use(30)) return
|
||||
user << "Building Floor..."
|
||||
activate()
|
||||
A:ReplaceWithFloor()
|
||||
return
|
||||
|
||||
if(istype(A, /turf/simulated/floor))
|
||||
if(!cell.use(90)) return
|
||||
user << "Building Wall (3)..."
|
||||
playsound(src.loc, 'click.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
activate()
|
||||
A:ReplaceWithWall()
|
||||
return
|
||||
|
||||
if(2)
|
||||
if(istype(A, /turf/simulated/floor))
|
||||
if(!cell.use(300)) return
|
||||
user << "Building Airlock..."
|
||||
playsound(src.loc, 'click.ogg', 50, 1)
|
||||
if(do_after(user, 50))
|
||||
activate()
|
||||
if(locate(/obj/machinery/door) in get_turf(src)) return
|
||||
var/obj/machinery/door/airlock/T = new /obj/machinery/door/airlock( A )
|
||||
T.autoclose = 1
|
||||
return
|
||||
|
||||
if(3)
|
||||
if(istype(A, /turf/simulated/wall))
|
||||
if(!cell.use(150)) return
|
||||
user << "Deconstructing Wall..."
|
||||
playsound(src.loc, 'click.ogg', 50, 1)
|
||||
if(do_after(user, 40))
|
||||
activate()
|
||||
A:ReplaceWithFloor()
|
||||
return
|
||||
|
||||
if(istype(A, /turf/simulated/wall/r_wall))
|
||||
if(!cell.use(300)) return
|
||||
user << "Deconstructing RWall..."
|
||||
playsound(src.loc, 'click.ogg', 50, 1)
|
||||
if(do_after(user, 60))
|
||||
activate()
|
||||
A:ReplaceWithWall()
|
||||
return
|
||||
|
||||
if(istype(A, /turf/simulated/floor))
|
||||
user << "Deconstructing Floor..."
|
||||
playsound(src.loc, 'click.ogg', 50, 1)
|
||||
if(do_after(user, 50))
|
||||
activate()
|
||||
A:ReplaceWithSpace()
|
||||
return
|
||||
|
||||
if(istype(A, /obj/machinery/door/airlock))
|
||||
user << "Deconstructing Airlock..."
|
||||
playsound(src.loc, 'click.ogg', 50, 1)
|
||||
if(do_after(user, 50))
|
||||
playsound(src.loc, 'click.ogg', 50, 1)
|
||||
del(A)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
/obj/item/tk_grab
|
||||
name = "Telekinetic Grab"
|
||||
icon = 'magic.dmi'//Needs sprites
|
||||
icon_state = "2"
|
||||
flags = USEDELAY
|
||||
//item_state = null
|
||||
w_class = 10.0
|
||||
layer = 20
|
||||
|
||||
var
|
||||
last_throw = 0
|
||||
obj/focus = null
|
||||
mob/living/host = null
|
||||
|
||||
|
||||
dropped(mob/user as mob)
|
||||
del(src)
|
||||
return
|
||||
|
||||
|
||||
equipped(var/mob/user, var/slot)
|
||||
del(src)
|
||||
return
|
||||
|
||||
|
||||
afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)//TODO: go over this
|
||||
if(!target || !user) return
|
||||
if(last_throw+4 > world.time) return
|
||||
if(!host)
|
||||
del(src)
|
||||
return
|
||||
if(!host.mutations & TK)
|
||||
del(src)
|
||||
return
|
||||
if(!focus)
|
||||
focus_object(target)
|
||||
return
|
||||
|
||||
if((get_dist(target, user) <= 16) && (get_dist(focus, user) <= 10))
|
||||
apply_focus_overlay()
|
||||
focus.throw_at(target, 10, 1)
|
||||
last_throw = world.time
|
||||
return
|
||||
|
||||
|
||||
proc/focus_object(var/obj/target)
|
||||
if(!istype(target,/obj)) return//Cant throw non objects atm might let it do mobs later
|
||||
if(target.anchored) return//No throwing anchored things
|
||||
focus = target
|
||||
update_icon()
|
||||
apply_focus_overlay()
|
||||
return
|
||||
|
||||
|
||||
proc/apply_focus_overlay()
|
||||
if(!focus) return
|
||||
var/obj/effect/overlay/O = new /obj/effect/overlay(locate(focus.x,focus.y,focus.z))
|
||||
O.name = "sparkles"
|
||||
O.anchored = 1
|
||||
O.density = 0
|
||||
O.layer = FLY_LAYER
|
||||
O.dir = pick(cardinal)
|
||||
O.icon = 'effects.dmi'
|
||||
O.icon_state = "nothing"
|
||||
flick("empdisable",O)
|
||||
spawn(5)
|
||||
del(O)
|
||||
return
|
||||
|
||||
|
||||
update_icon()
|
||||
overlays = null
|
||||
if(focus)
|
||||
overlays += "[focus.icon_state]"
|
||||
return
|
||||
|
||||
//equip_if_possible(obj/item/W, slot, del_on_fail = 1)
|
||||
/*
|
||||
if(istype(user, /mob/living/carbon))
|
||||
if(user:mutations & TK && get_dist(source, user) <= 7)
|
||||
if(user:equipped()) return 0
|
||||
var/X = source:x
|
||||
var/Y = source:y
|
||||
var/Z = source:z
|
||||
spawn(0)
|
||||
//I really shouldnt put this here but i dont have a better idea
|
||||
|
||||
*/
|
||||
@@ -36,8 +36,8 @@ RCD
|
||||
|
||||
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
if (istype(W, /obj/item/weapon/rcd_ammo))
|
||||
if ((matter + 10) > 30)
|
||||
if(istype(W, /obj/item/weapon/rcd_ammo))
|
||||
if((matter + 10) > 30)
|
||||
user << "The RCD cant hold any more matter."
|
||||
return
|
||||
del(W)
|
||||
@@ -51,17 +51,17 @@ RCD
|
||||
attack_self(mob/user as mob)
|
||||
//Change the mode
|
||||
playsound(src.loc, 'pop.ogg', 50, 0)
|
||||
if (mode == 1)
|
||||
if(mode == 1)
|
||||
mode = 2
|
||||
user << "Changed mode to 'Airlock'"
|
||||
src.spark_system.start()
|
||||
return
|
||||
if (mode == 2)
|
||||
if(mode == 2)
|
||||
mode = 3
|
||||
user << "Changed mode to 'Deconstruct'"
|
||||
src.spark_system.start()
|
||||
return
|
||||
if (mode == 3)
|
||||
if(mode == 3)
|
||||
mode = 1
|
||||
user << "Changed mode to 'Floor & Walls'"
|
||||
src.spark_system.start()
|
||||
@@ -69,49 +69,39 @@ RCD
|
||||
|
||||
|
||||
afterattack(atom/A, mob/user as mob)
|
||||
if (!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock)))
|
||||
if(!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock)))
|
||||
return
|
||||
|
||||
if (istype(A, /turf) && mode == 1)
|
||||
if (istype(A, /turf/space) && matter >= 1)
|
||||
if(istype(A, /turf) && mode == 1)
|
||||
if(istype(A, /turf/space) && matter >= 1)
|
||||
user << "Building Floor (1)..."
|
||||
if (!disabled)
|
||||
if(!disabled && matter >= 1)
|
||||
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
|
||||
if(!matter >= 1) return
|
||||
matter--
|
||||
user << "The RCD now holds [matter]/30 matter-units."
|
||||
desc = "A RCD. It currently holds [matter]/30 matter-units."
|
||||
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)
|
||||
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)
|
||||
if(!disabled && matter >= 3)
|
||||
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
|
||||
if(!matter >= 3) return
|
||||
matter -= 3
|
||||
user << "The RCD now holds [matter]/30 matter-units."
|
||||
desc = "A RCD. It currently holds [matter]/30 matter-units."
|
||||
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)
|
||||
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)
|
||||
if(!disabled && matter >= 10)
|
||||
spark_system.set_up(5, 0, src)
|
||||
src.spark_system.start()
|
||||
if(locate(/obj/machinery/door) in get_turf(src)) return
|
||||
@@ -122,86 +112,60 @@ RCD
|
||||
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
|
||||
if(!matter >= 10) return
|
||||
matter -= 10
|
||||
user << "The RCD now holds [matter]/30 matter-units."
|
||||
desc = "A RCD. It currently holds [matter]/30 matter-units."
|
||||
|
||||
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)..."
|
||||
else if(mode == 3 && (istype(A, /turf) || istype(A, /obj/machinery/door/airlock) ) )
|
||||
if(istype(A, /turf/simulated/wall) && matter >= 4)
|
||||
user << "Deconstructing Wall (4)..."
|
||||
playsound(src.loc, 'click.ogg', 50, 1)
|
||||
if(do_after(user, 50))
|
||||
if (!disabled)
|
||||
if(do_after(user, 40))
|
||||
if(!disabled && matter >= 4)
|
||||
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
|
||||
if(!matter >= 5) return
|
||||
matter -= 5
|
||||
user << "The RCD now holds [matter]/30 matter-units."
|
||||
desc = "A RCD. It currently holds [matter]/30 matter-units."
|
||||
matter -= 4
|
||||
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)..."
|
||||
if(istype(A, /turf/simulated/wall/r_wall) && matter >= 8)
|
||||
user << "Deconstructing RWall (8)..."
|
||||
playsound(src.loc, 'click.ogg', 50, 1)
|
||||
if(do_after(user, 50))
|
||||
if (!disabled)
|
||||
if(do_after(user, 60))
|
||||
if(!disabled && matter >= 8)
|
||||
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
|
||||
if(!matter >= 5) return
|
||||
matter -= 5
|
||||
user << "The RCD now holds [matter]/30 matter-units."
|
||||
desc = "A RCD. It currently holds [matter]/30 matter-units."
|
||||
matter -= 8
|
||||
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)
|
||||
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)
|
||||
if(!disabled && matter >= 5)
|
||||
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
|
||||
if(!matter >= 5) return
|
||||
matter -= 5
|
||||
user << "The RCD now holds [matter]/30 matter-units."
|
||||
desc = "A RCD. It currently holds [matter]/30 matter-units."
|
||||
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)
|
||||
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)
|
||||
if(!disabled && matter >= 10)
|
||||
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
|
||||
if(!matter >= 10) return
|
||||
matter -= 10
|
||||
user << "The RCD now holds [matter]/30 matter-units."
|
||||
desc = "A RCD. It currently holds [matter]/30 matter-units."
|
||||
matter -= 10
|
||||
user << "The RCD now holds [matter]/30 matter-units."
|
||||
desc = "A RCD. It currently holds [matter]/30 matter-units."
|
||||
return
|
||||
|
||||
@@ -253,6 +253,8 @@ CIRCULAR SAW
|
||||
if(!istype(M))
|
||||
return ..()
|
||||
|
||||
if(M.mutations & HUSK) return ..()
|
||||
|
||||
if((user.mutations & CLUMSY) && prob(50))
|
||||
M = user
|
||||
return eyestab(M,user)
|
||||
|
||||
@@ -82,8 +82,7 @@
|
||||
var/col_num = 0
|
||||
var/row_count = min(7,storage_slots) -1 //For belts, the meanings of the two variables are inverted, so we don't have to declare new ones
|
||||
if (contents.len > 7)
|
||||
if(contents.len % 7) //So having 14 items keeps them in 2 wors instead of 3
|
||||
col_num = round(contents.len / 7) // 7 is the maximum allowed column height for r_hand, l_hand and back storage items.
|
||||
col_num = round((contents.len-1) / 7) // 7 is the maximum allowed column height for r_hand, l_hand and back storage items.
|
||||
if (src == user.l_hand)
|
||||
src.orient_objs(3-col_num, 3+row_count, 3, 3)
|
||||
else if(src == user.r_hand)
|
||||
@@ -148,7 +147,7 @@
|
||||
sum_w_class += I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it.
|
||||
|
||||
if(sum_w_class > max_combined_w_class)
|
||||
user << "\red The [W] cannot fit in the [src]. Remove some items or add a smaller one.."
|
||||
user << "\red The [src] is full, make some space."
|
||||
return
|
||||
|
||||
if ( W.w_class >= src.w_class && (istype(W, /obj/item/weapon/storage)))
|
||||
@@ -172,8 +171,7 @@
|
||||
var/col_num = 0
|
||||
var/row_count = min(7,storage_slots) -1
|
||||
if (contents.len > 7)
|
||||
if(contents.len % 7)
|
||||
col_num = round(contents.len / 7) // 7 is the maximum allowed column height for r_hand, l_hand and back storage items.
|
||||
col_num = round((contents.len-1) / 7) // 7 is the maximum allowed column height for r_hand, l_hand and back storage items.
|
||||
src.orient_objs(5, 10+col_num, 5 + row_count, 10)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user