Revert "Removes some obselete attackby() code [Removes attackby crafting]"

This commit is contained in:
Leo
2016-05-27 20:37:45 -03:00
parent edac9e2171
commit 7304f31325
10 changed files with 168 additions and 14 deletions
+1 -1
View File
@@ -1410,7 +1410,7 @@
"aBf" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/white,/area/maintenance/asmaint2)
"aBg" = (/obj/item/clothing/gloves/color/latex/nitrile,/turf/open/floor/plasteel/white,/area/maintenance/asmaint2)
"aBh" = (/turf/open/floor/plasteel/white,/area/maintenance/asmaint2)
"aBi" = (/obj/structure/table,/obj/item/weapon/melee/baton/cattleprod,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/restraints/handcuffs,/obj/item/clothing/tie/stethoscope,/turf/open/floor/plasteel/white,/area/space)
"aBi" = (/obj/structure/table,/obj/item/weapon/wirerod,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/restraints/handcuffs,/obj/item/clothing/tie/stethoscope,/turf/open/floor/plasteel/white,/area/space)
"aBj" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"})
"aBk" = (/obj/structure/cable/cyan{icon_state = "1-2"},/turf/open/floor/plating,/area/quartermaster/miningdock{name = "\improper Mining Office"})
"aBl" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/quartermaster/miningdock{name = "\improper Mining Office"})
@@ -12173,7 +12173,7 @@
"ayJ" = (
/obj/structure/rack,
/obj/item/weapon/lipstick/jade,
/obj/item/weapon/melee/baton/cattleprod,
/obj/item/weapon/wirerod,
/obj/effect/spawner/lootdrop/maintenance{
lootcount = 3;
name = "3maintenance loot spawner"
@@ -77150,7 +77150,7 @@
tag = "icon-1-2";
icon_state = "1-2"
},
/obj/item/weapon/melee/baton/cattleprod,
/obj/item/weapon/wirerod,
/turf/open/floor/plating/airless,
/area/engine/engineering)
"cQP" = (
@@ -62391,6 +62391,7 @@
"cwy" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table_frame,
/obj/item/weapon/wirerod,
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/asmaint2)
@@ -12,6 +12,7 @@
w_class = 3
materials = list(MAT_METAL=500)
origin_tech = "combat=1;plasmatech=1"
var/status = 0
var/throw_amount = 100
var/lit = 0 //on or off
var/operating = 0//cooldown
@@ -48,7 +49,7 @@
/obj/item/weapon/flamethrower/update_icon()
overlays.Cut()
if(igniter)
overlays += "+igniter1"
overlays += "+igniter[status]"
if(ptank)
overlays += "+ptank"
if(lit)
@@ -69,7 +70,41 @@
flame_turf(turflist)
/obj/item/weapon/flamethrower/attackby(obj/item/W, mob/user, params)
if(istype(W,/obj/item/weapon/tank/internals/plasma))
if(istype(W, /obj/item/weapon/wrench) && !status)//Taking this apart
var/turf/T = get_turf(src)
if(weldtool)
weldtool.loc = T
weldtool = null
if(igniter)
igniter.loc = T
igniter = null
if(ptank)
ptank.loc = T
ptank = null
new /obj/item/stack/rods(T)
qdel(src)
return
else if(istype(W, /obj/item/weapon/screwdriver) && igniter && !lit)
status = !status
user << "<span class='notice'>[igniter] is now [status ? "secured" : "unsecured"]!</span>"
update_icon()
return
else if(isigniter(W))
var/obj/item/device/assembly/igniter/I = W
if(I.secured)
return
if(igniter)
return
if(!user.unEquip(W))
return
I.loc = src
igniter = I
update_icon()
return
else if(istype(W,/obj/item/weapon/tank/internals/plasma))
if(ptank)
user << "<span class='notice'>There appears to already be a plasma tank loaded in [src]!</span>"
return
@@ -110,6 +145,8 @@
if(href_list["light"])
if(!ptank)
return
if(!status)
return
lit = !lit
if(lit)
SSobj.processing |= src
@@ -137,7 +174,9 @@
..()
weldtool = locate(/obj/item/weapon/weldingtool) in contents
igniter = locate(/obj/item/device/assembly/igniter) in contents
weldtool.status = 0
igniter.secured = 0
status = 1
update_icon()
//Called from turf.dm turf/dblclick
@@ -179,9 +218,11 @@
..()
if(!weldtool)
weldtool = new /obj/item/weapon/weldingtool(src)
weldtool.status = 0
if(!igniter)
igniter = new /obj/item/device/assembly/igniter(src)
igniter.secured = 0
status = 1
update_icon()
/obj/item/weapon/flamethrower/full/tank/New(var/loc)
@@ -151,6 +151,37 @@
desc = "Fake handcuffs meant for erotic roleplay."
icon_state = "handcuffGag"
/obj/item/weapon/restraints/handcuffs/cable/attackby(obj/item/I, mob/user, params)
..()
if(istype(I, /obj/item/stack/rods))
var/obj/item/stack/rods/R = I
if (R.use(1))
var/obj/item/weapon/wirerod/W = new /obj/item/weapon/wirerod
if(!remove_item_from_storage(user))
user.unEquip(src)
user.put_in_hands(W)
user << "<span class='notice'>You wrap the cable restraint around the top of the rod.</span>"
qdel(src)
else
user << "<span class='warning'>You need one rod to make a wired rod!</span>"
return
else if(istype(I, /obj/item/stack/sheet/metal))
var/obj/item/stack/sheet/metal/M = I
if(M.amount < 6)
user << "<span class='warning'>You need at least six metal sheets to make good enough weights!</span>"
return
user << "<span class='notice'>You begin to apply [I] to [src]...</span>"
if(do_after(user, 35, target = src))
var/obj/item/weapon/restraints/legcuffs/bola/S = new /obj/item/weapon/restraints/legcuffs/bola
M.use(6)
user.put_in_hands(S)
user << "<span class='notice'>You make some weights out of [I] and tie them to [src].</span>"
if(!remove_item_from_storage(user))
user.unEquip(src)
qdel(src)
else
return ..()
/obj/item/weapon/restraints/handcuffs/cable/zipties/cyborg/attack(mob/living/carbon/C, mob/user)
if(isrobot(user))
if(!C.handcuffed)
@@ -93,7 +93,7 @@
/obj/item/weapon/tank/internals/plasma/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/flamethrower))
var/obj/item/weapon/flamethrower/F = W
if(F.ptank)
if ((!F.status)||(F.ptank))
return
src.master = F
F.ptank = src
+49
View File
@@ -202,6 +202,7 @@
materials = list(MAT_METAL=70, MAT_GLASS=30)
origin_tech = "engineering=1"
var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2)
var/status = 1 //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower)
var/max_fuel = 20 //The max amount of fuel the welder can hold
var/change_icons = 1
var/can_off_process = 0
@@ -243,6 +244,16 @@
user.visible_message("<span class='suicide'>[user] welds \his every orifice closed! It looks like \he's trying to commit suicide..</span>")
return (FIRELOSS)
/obj/item/weapon/weldingtool/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
flamethrower_screwdriver(I, user)
else if(istype(I, /obj/item/stack/rods))
flamethrower_rods(I, user)
else
return ..()
/obj/item/weapon/weldingtool/attack(mob/living/carbon/human/H, mob/user)
if(!istype(H))
return ..()
@@ -356,6 +367,9 @@
//Toggles the welder off and on
/obj/item/weapon/weldingtool/proc/toggle(mob/user, message = 0)
if(!status)
user << "<span class='warning'>[src] can't be turned on while unsecured!</span>"
return
welding = !welding
if(welding)
if(get_fuel() >= 1)
@@ -381,6 +395,33 @@
/obj/item/weapon/weldingtool/is_hot()
return welding * heat
/obj/item/weapon/weldingtool/proc/flamethrower_screwdriver(obj/item/I, mob/user)
if(welding)
user << "<span class='warning'>Turn it off first!</span>"
return
status = !status
if(status)
user << "<span class='notice'>You resecure [src].</span>"
else
user << "<span class='notice'>[src] can now be attached and modified.</span>"
add_fingerprint(user)
/obj/item/weapon/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user)
if(!status)
var/obj/item/stack/rods/R = I
if (R.use(1))
var/obj/item/weapon/flamethrower/F = new /obj/item/weapon/flamethrower(user.loc)
if(!remove_item_from_storage(F))
user.unEquip(src)
loc = F
F.weldtool = src
add_fingerprint(user)
user << "<span class='notice'>You add a rod to a welder, starting to build a flamethrower.</span>"
user.put_in_hands(F)
else
user << "<span class='warning'>You need one rod to start building a flamethrower!</span>"
return
/obj/item/weapon/weldingtool/largetank
name = "industrial welding tool"
desc = "A slightly larger welder with a larger tank."
@@ -396,6 +437,10 @@
icon_state = "indwelder"
toolspeed = 2
/obj/item/weapon/weldingtool/largetank/flamethrower_screwdriver()
return
/obj/item/weapon/weldingtool/mini
name = "emergency welding tool"
desc = "A miniature welder used during emergencies."
@@ -405,6 +450,10 @@
materials = list(MAT_METAL=30, MAT_GLASS=10)
change_icons = 0
/obj/item/weapon/weldingtool/mini/flamethrower_screwdriver()
return
/obj/item/weapon/weldingtool/hugetank
name = "upgraded industrial welding tool"
desc = "An upgraded welder based of the industrial welder."
@@ -78,6 +78,46 @@
user.visible_message("<span class='suicide'>[user] is slitting \his stomach open with the [src.name]! It looks like \he's trying to commit seppuku.</span>")
return(BRUTELOSS)
/obj/item/weapon/wirerod
name = "wired rod"
desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit."
icon_state = "wiredrod"
item_state = "rods"
flags = CONDUCT
force = 9
throwforce = 10
w_class = 3
materials = list(MAT_METAL=1150, MAT_GLASS=75)
attack_verb = list("hit", "bludgeoned", "whacked", "bonked")
/obj/item/weapon/wirerod/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/shard))
var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear
if(!remove_item_from_storage(user))
user.unEquip(src)
user.unEquip(I)
user.put_in_hands(S)
user << "<span class='notice'>You fasten the glass shard to the top of the rod with the cable.</span>"
qdel(I)
qdel(src)
else if(istype(I, /obj/item/device/assembly/igniter) && !(I.flags & NODROP))
var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod
if(!remove_item_from_storage(user))
user.unEquip(src)
user.unEquip(I)
user.put_in_hands(P)
user << "<span class='notice'>You fasten [I] to the top of the rod with the cable.</span>"
qdel(I)
qdel(src)
else
return ..()
/obj/item/weapon/throwing_star
name = "throwing star"
desc = "An ancient weapon still used to this day due to it's ease of lodging itself into victim's body parts"
-8
View File
@@ -9,14 +9,6 @@
var/chem_catalysts[] = list() //like tools but for reagents
var/category = CAT_NONE //where it shows up in the crafting UI
/datum/crafting_recipe/spear
name = "Spear"
result = /obj/item/weapon/twohanded/spear
reqs = list(/obj/item/weapon/restraints/handcuffs/cable = 1,
/obj/item/weapon/shard = 1,
/obj/item/stack/rods = 1)
time = 40
category = CAT_WEAPON
/datum/crafting_recipe/pin_removal
name = "Pin Removal"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 889 B

After

Width:  |  Height:  |  Size: 859 B