Adds RCL inhands

This commit is contained in:
CitadelStationBot
2017-08-17 17:21:44 -05:00
parent 146b5880d5
commit fe567fabde
5 changed files with 24 additions and 22 deletions

View File

@@ -1,4 +1,4 @@
/obj/item/weapon/twohanded/rcl
/obj/item/twohanded/rcl
name = "rapid cable layer"
desc = "A device used to rapidly deploy cables. It has screws on the side which can be removed to slide off the cables. Do not use without insulation!"
icon = 'icons/obj/tools.dmi'
@@ -19,11 +19,13 @@
var/list/colors = list("red", "yellow", "green", "blue", "pink", "orange", "cyan", "white")
var/current_color_index = 1
var/ghetto = FALSE
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
/obj/item/weapon/twohanded/rcl/attackby(obj/item/W, mob/user)
/obj/item/twohanded/rcl/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = W
if(!loaded)
if(!user.transferItemToLoc(W, src))
to_chat(user, "<span class='warning'>[src] is stuck to your hand!</span>")
@@ -41,7 +43,7 @@
return
update_icon()
to_chat(user, "<span class='notice'>You add the cables to the [src]. It now contains [loaded.amount].</span>")
else if(istype(W, /obj/item/weapon/screwdriver))
else if(istype(W, /obj/item/screwdriver))
if(!loaded)
return
if(ghetto && prob(10)) //Is it a ghetto RCL? If so, give it a 10% chance to fall apart
@@ -75,18 +77,18 @@
else
..()
/obj/item/weapon/twohanded/rcl/examine(mob/user)
/obj/item/twohanded/rcl/examine(mob/user)
..()
if(loaded)
to_chat(user, "<span class='info'>It contains [loaded.amount]/[max_amount] cables.</span>")
/obj/item/weapon/twohanded/rcl/Destroy()
/obj/item/twohanded/rcl/Destroy()
QDEL_NULL(loaded)
last = null
active = FALSE
return ..()
/obj/item/weapon/twohanded/rcl/update_icon()
/obj/item/twohanded/rcl/update_icon()
if(!loaded)
icon_state = "rcl-0"
item_state = "rcl-0"
@@ -105,7 +107,7 @@
icon_state = "rcl-0"
item_state = "rcl-0"
/obj/item/weapon/twohanded/rcl/proc/is_empty(mob/user, loud = 1)
/obj/item/twohanded/rcl/proc/is_empty(mob/user, loud = 1)
update_icon()
if(!loaded || !loaded.amount)
if(loud)
@@ -118,12 +120,12 @@
return TRUE
return FALSE
/obj/item/weapon/twohanded/rcl/dropped(mob/wearer)
/obj/item/twohanded/rcl/dropped(mob/wearer)
..()
active = FALSE
last = null
/obj/item/weapon/twohanded/rcl/attack_self(mob/user)
/obj/item/twohanded/rcl/attack_self(mob/user)
..()
active = wielded
if(!active)
@@ -134,11 +136,11 @@
last = C
break
/obj/item/weapon/twohanded/rcl/on_mob_move(direct, mob/user)
/obj/item/twohanded/rcl/on_mob_move(direct, mob/user)
if(active)
trigger(user)
/obj/item/weapon/twohanded/rcl/proc/trigger(mob/user)
/obj/item/twohanded/rcl/proc/trigger(mob/user)
if(!isturf(user.loc))
return
if(is_empty(user, 0))
@@ -170,14 +172,14 @@
is_empty(user) //If we've run out, display message
/obj/item/weapon/twohanded/rcl/pre_loaded/Initialize () //Comes preloaded with cable, for testing stuff
/obj/item/twohanded/rcl/pre_loaded/Initialize () //Comes preloaded with cable, for testing stuff
. = ..()
loaded = new()
loaded.max_amount = max_amount
loaded.amount = max_amount
update_icon()
/obj/item/weapon/twohanded/rcl/ui_action_click(mob/user, action)
/obj/item/twohanded/rcl/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/rcl))
current_color_index++;
if (current_color_index > colors.len)
@@ -185,13 +187,13 @@
var/cwname = colors[current_color_index]
to_chat(user, "Color changed to [cwname]!")
/obj/item/weapon/twohanded/rcl/ghetto
/obj/item/twohanded/rcl/ghetto
actions_types = list()
max_amount = 30
name = "makeshift rapid cable layer"
ghetto = TRUE
/obj/item/weapon/twohanded/rcl/ghetto/update_icon()
/obj/item/twohanded/rcl/ghetto/update_icon()
if(!loaded)
icon_state = "rclg-0"
item_state = "rclg-0"

View File

@@ -85,7 +85,7 @@
/turf/attack_hand(mob/user)
user.Move_Pulled(src)
/turf/proc/handleRCL(obj/item/weapon/twohanded/rcl/C, mob/user)
/turf/proc/handleRCL(obj/item/twohanded/rcl/C, mob/user)
if(C.loaded)
for(var/obj/structure/cable/LC in src)
if(!LC.d1 || !LC.d2)
@@ -104,7 +104,7 @@
coil.place_turf(src, user)
return TRUE
else if(istype(C, /obj/item/weapon/twohanded/rcl))
else if(istype(C, /obj/item/twohanded/rcl))
handleRCL(C, user)
return FALSE
@@ -226,7 +226,7 @@
var/old_affecting_lights = affecting_lights
var/old_lighting_object = lighting_object
var/old_corners = corners
var/old_exl = explosion_level
var/old_exi = explosion_id
var/old_bp = blueprint_data
@@ -250,7 +250,7 @@
W.AfterChange(ignore_air)
W.blueprint_data = old_bp
if(SSlighting.initialized)
recalc_atom_opacity()
lighting_object = old_lighting_object
@@ -338,7 +338,7 @@
/turf/proc/Bless()
flags |= NOJAUNT
/turf/storage_contents_dump_act(obj/item/weapon/storage/src_object, mob/user)
/turf/storage_contents_dump_act(obj/item/storage/src_object, mob/user)
if(src_object.contents.len)
to_chat(usr, "<span class='notice'>You start dumping out the contents...</span>")
if(!do_after(usr,20,target=src_object))
@@ -346,7 +346,7 @@
var/list/things = src_object.contents.Copy()
var/datum/progressbar/progress = new(user, things.len, src)
while (do_after(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, /obj/item/weapon/storage.proc/mass_remove_from_storage, src, things, progress)))
while (do_after(usr, 10, TRUE, src, FALSE, CALLBACK(src_object, /obj/item/storage.proc/mass_remove_from_storage, src, things, progress)))
sleep(1)
qdel(progress)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

0
tgstation.dme Normal file → Executable file
View File