mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-15 04:32:42 +00:00
Flamethrower construction code cleaned up. Signalers on doors should work fine now. Changelog Updated. Weapons: Xbow radiation has been lowered from 100 to 20 and it has a 5% chance to do no rad damage Admin: Attempted to clean up the code a bit Commands Removed/CommentedOut: air_status, radio_report, toggletintedweldhelmets, modifytemperature, givetestverbs, restartcontroller, fix_next_move, Cell Renamed: edit_memory - show_traitor_panel un\stealthadmin - show/hide_verbs Cargo: Engineering crates cost 10 and contain: 1 mechanical toolbox, 1 electrical toolbox, 1 glove, 1 toolbelt, 1 vest, and 1 hard hat. PowerCell crates cost 10 and contain: 1 electrical toolbox, 2 wire coils, 2 power cells, and 1 high power cell. Water/Fuel tank crates cost 15 and contain: 1 water tank and 1 fuel tank. Cyborg: Fixed the open cover icons To override a cyborg's laws you must emag it when the cover is open Emags can now unlock the cover git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1995 316c924e-a436-60f5-8080-3fe189b3f50e
174 lines
4.2 KiB
Plaintext
174 lines
4.2 KiB
Plaintext
/obj/item/device/assembly_holder
|
|
name = "Assembly"
|
|
desc = "Holds various devices"//Fix this by adding dynamic desc
|
|
icon = 'new_assemblies.dmi'
|
|
icon_state = "holder"
|
|
item_state = "assembly"
|
|
flags = FPRINT | TABLEPASS| CONDUCT
|
|
item_state = "electronic"
|
|
m_amt = 100
|
|
throwforce = 5
|
|
w_class = 1.0
|
|
throw_speed = 3
|
|
throw_range = 10
|
|
|
|
var
|
|
secured = 0
|
|
obj/item/device/assembly_left = null
|
|
obj/item/device/assembly_right = null
|
|
//The "other" thing will go here
|
|
|
|
proc
|
|
attach(var/obj/item/device/D, var/obj/item/device/D2, var/mob/user)
|
|
Process_Activation(var/obj/item/device/D)
|
|
|
|
|
|
IsAssemblyHolder()
|
|
return 1
|
|
|
|
|
|
attach(var/obj/item/device/D, var/obj/item/device/D2, var/mob/user)
|
|
if((!D)||(!D2)) return 0
|
|
if((!D.IsAssembly())||(!D2.IsAssembly())) return 0
|
|
if((D:secured)||(D2:secured)) return 0
|
|
if(user)
|
|
user.remove_from_mob(D)
|
|
user.remove_from_mob(D2)
|
|
D:holder = src
|
|
D2:holder = src
|
|
D.loc = src
|
|
D2.loc = src
|
|
assembly_left = D
|
|
assembly_right = D2
|
|
src.name = "[D.name] [D2.name] assembly"
|
|
update_icon()
|
|
return 1
|
|
|
|
|
|
update_icon()
|
|
src.overlays = null
|
|
if(assembly_left)
|
|
src.overlays += assembly_left:small_icon_state_left
|
|
for(var/O in assembly_left:small_icon_state_overlays)
|
|
src.overlays += text("[]_l", O)
|
|
if(assembly_right)
|
|
src.overlays += assembly_right:small_icon_state_right
|
|
for(var/O in assembly_right:small_icon_state_overlays)
|
|
src.overlays += text("[]_r", O)
|
|
// if(other)
|
|
// other.update_icon()
|
|
|
|
|
|
examine()
|
|
set src in view()
|
|
..()
|
|
if ((in_range(src, usr) || src.loc == usr))
|
|
if (src.secured)
|
|
usr.show_message("The [src.name] is ready!")
|
|
else
|
|
usr.show_message("The [src.name] can be attached!")
|
|
return
|
|
|
|
|
|
HasProximity(atom/movable/AM as mob|obj)
|
|
if(!assembly_left || !assembly_right) return 0
|
|
assembly_left.HasProximity(AM)
|
|
assembly_right.HasProximity(AM)
|
|
|
|
|
|
Move()//I dont like this but it will do for now
|
|
var/t = src.dir
|
|
..()
|
|
if(istype(assembly_left,/obj/item/device/infra))
|
|
assembly_left.dir = t
|
|
del(assembly_left:first)
|
|
if(istype(assembly_right,/obj/item/device/infra))
|
|
assembly_right.dir = t
|
|
del(assembly_right:first)
|
|
return
|
|
|
|
|
|
attack_hand()//I dont like this one either
|
|
if(istype(assembly_left,/obj/item/device/infra))
|
|
del(assembly_left:first)
|
|
if(istype(assembly_right,/obj/item/device/infra))
|
|
del(assembly_right:first)
|
|
..()
|
|
return
|
|
|
|
|
|
attackby(obj/item/weapon/W as obj, mob/user as mob)
|
|
if(isscrewdriver(W))
|
|
if(!assembly_left || !assembly_right)
|
|
user.show_message("\red Assembly part missing!")
|
|
return
|
|
if(src.secured)
|
|
src.secured = 0
|
|
assembly_left:Unsecure()
|
|
assembly_right:Unsecure()
|
|
user.show_message("\blue The [src.name] can now be taken apart!")
|
|
else
|
|
src.secured = 1
|
|
assembly_left:Secure()
|
|
assembly_right:Secure()
|
|
user.show_message("\blue The [src.name] is ready!")
|
|
update_icon()
|
|
return
|
|
else
|
|
..()
|
|
return
|
|
|
|
|
|
attack_self(mob/user as mob)
|
|
src.add_fingerprint(user)
|
|
if(src.secured)
|
|
if(!assembly_left || !assembly_right)
|
|
user.show_message("\red Assembly part missing!")
|
|
return
|
|
if(istype(assembly_left,assembly_right.type))//If they are the same type it causes issues due to window code
|
|
switch(alert("Which side would you like to use?",,"Left","Right"))
|
|
if("Left")
|
|
assembly_left.attack_self(user)
|
|
if("Right")
|
|
assembly_right.attack_self(user)
|
|
return
|
|
else
|
|
assembly_left.attack_self(user)
|
|
assembly_right.attack_self(user)
|
|
else
|
|
var/turf/T = get_turf(src)
|
|
if(!T) return 0
|
|
if(assembly_left)
|
|
assembly_left:holder = null
|
|
assembly_left.loc = T
|
|
if(assembly_right)
|
|
assembly_right:holder = null
|
|
assembly_right.loc = T
|
|
spawn(0)
|
|
del(src)
|
|
return
|
|
|
|
|
|
Process_Activation(var/obj/item/device/D)
|
|
if(!D) return 0
|
|
if(assembly_left == D)
|
|
assembly_right:Activate()
|
|
//If anymore things can be on a holder this will have to be edited
|
|
else if(assembly_right == D)
|
|
assembly_left:Activate()
|
|
// else if(assemblyother == D)
|
|
// assembly_left.Activate()
|
|
// assembly_right.Activate()
|
|
return 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|