diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index e90d6bf1..5761d4f5 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -69,7 +69,7 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("apc frame", /obj/item/apc_frame, 2), \ new/datum/stack_recipe("air alarm frame", /obj/item/alarm_frame, 2), \ new/datum/stack_recipe("fire alarm frame", /obj/item/firealarm_frame, 2), \ - new/datum/stack_recipe("metal bat", /obj/item/weapon/metal_bat, 5), \ + new/datum/stack_recipe("metal bat", /obj/item/weapon/twohanded/baseballbat/metal, 5), \ null, \ new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = 1, on_floor = 1), \ ) @@ -102,7 +102,6 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ */ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = 1), \ - new/datum/stack_recipe("plasteel bat", /obj/item/weapon/pla_bat, 5), \ new/datum/stack_recipe("Metal crate", /obj/structure/closet/crate, 10, time = 50, one_per_turf = 1), \ new/datum/stack_recipe("RUST fuel assembly port frame", /obj/item/rust_fuel_assembly_port_frame, 12, time = 50, one_per_turf = 1), \ new/datum/stack_recipe("RUST fuel compressor frame", /obj/item/rust_fuel_compressor_frame, 12, time = 50, one_per_turf = 1), \ @@ -135,7 +134,7 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \ new/datum/stack_recipe("crossbow frame", /obj/item/weapon/crossbowframe, 5, time = 25, one_per_turf = 0, on_floor = 0), \ new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("wooden bat", /obj/item/weapon/wood_bat, 5), \ + new/datum/stack_recipe("wooden bat", /obj/item/weapon/twohanded/baseballbat, 5), \ // new/datum/stack_recipe("apiary", /obj/item/apiary, 10, time = 25, one_per_turf = 0, on_floor = 0) ) diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 0d1c3456..695b7fc9 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -147,6 +147,19 @@ var/last_chew = 0 /obj/item/weapon/handcuffs/cable/white color = "#FFFFFF" +/obj/item/weapon/handcuffs/cable/attackby(var/obj/item/I, mob/user as mob) + ..() + if(istype(I, /obj/item/stack/rods)) + var/obj/item/stack/rods/R = I + if(R.get_amount() > 0) + R.use(1) + var/obj/item/weapon/wirerod/W = new /obj/item/weapon/wirerod + + user.put_in_hands(W) + user << "You wrap the cable restraint around the top of the rod." + del(src) + update_icon(user) + /obj/item/weapon/handcuffs/cyborg dispenser = 1 diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index a4d694fb..02a297a7 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -183,11 +183,7 @@ return /* - * - * - *Stun Rod, WALL OF TEXT! - * - * + *Stun Rod */ /obj/item/weapon/melee/baton/stunrod @@ -207,3 +203,18 @@ bcell = new/obj/item/weapon/cell/high(src) update_icon() return + +/* + *Cattleprod + */ + +/obj/item/weapon/melee/baton/cattleprod + name = "stunprod" + desc = "An improvised stun baton." + icon_state = "stunprod_nocell" + item_state = "prod" + force = 3 + throwforce = 5 + hitcost = 2500 + attack_verb = list("poked") + slot_flags = null diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index bb714ca9..b4b813d5 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -3,6 +3,8 @@ * Twohanded * Fireaxe * Double-Bladed Energy Swords + * Spear + * Baseball bats (2x) */ /*################################################################## @@ -18,14 +20,14 @@ */ /obj/item/weapon/twohanded var/wielded = 0 - var/force_unwielded = 0 var/force_wielded = 0 var/wieldsound = null var/unwieldsound = null + var/base_icon /obj/item/weapon/twohanded/proc/unwield() wielded = 0 - force = force_unwielded + force = initial(force) name = "[initial(name)]" update_icon() @@ -52,6 +54,7 @@ return unwield() /obj/item/weapon/twohanded/update_icon() + icon_state = "[base_icon][wielded]" return /obj/item/weapon/twohanded/pickup(mob/user) @@ -106,6 +109,7 @@ */ /obj/item/weapon/twohanded/fireaxe // DEM AXES MAN, marker -Agouri icon_state = "fireaxe0" + base_icon = "fireaxe" name = "fire axe" desc = "Truly, the weapon of a madman. Who would think to fight fire with an axe?" force = 5 @@ -113,14 +117,9 @@ edge = 1 w_class = 4.0 slot_flags = SLOT_BACK - force_unwielded = 10 force_wielded = 40 attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") -/obj/item/weapon/twohanded/fireaxe/update_icon() //Currently only here to fuck with the on-mob icons. - icon_state = "fireaxe[wielded]" - return - /obj/item/weapon/twohanded/fireaxe/afterattack(atom/A as mob|obj|turf|area, mob/user as mob, proximity) if(!proximity) return ..() @@ -142,6 +141,7 @@ */ /obj/item/weapon/twohanded/dualsaber icon_state = "dualsaber0" + base_icon = "dualsaber" name = "double-bladed energy sword" desc = "Handle with care." force = 3 @@ -149,7 +149,6 @@ throw_speed = 1 throw_range = 5 w_class = 2.0 - force_unwielded = 3 force_wielded = 30 wieldsound = 'sound/weapons/saberon.ogg' unwieldsound = 'sound/weapons/saberoff.ogg' @@ -159,10 +158,6 @@ sharp = 1 edge = 1 -/obj/item/weapon/twohanded/dualsaber/update_icon() - icon_state = "dualsaber[wielded]" - return - /obj/item/weapon/twohanded/dualsaber/attack(target as mob, mob/living/user as mob) ..() if((CLUMSY in user.mutations) && (wielded) &&prob(40)) @@ -179,4 +174,49 @@ if(wielded) return 1 else - return 0 \ No newline at end of file + return 0 + +/* + * Glass/makeshift spear + */ +/obj/item/weapon/twohanded/spear + icon_state = "spearglass0" + base_icon = "spearglass" + name = "spear" + desc = "A haphazardly-constructed yet still deadly weapon of ancient design." + force = 11 + w_class = 4.0 + slot_flags = SLOT_BACK + force_wielded = 22 // Was 13, Buffed - RR + throwforce = 20 + throw_speed = 3 + edge = 0 + sharp = 1 + flags = NOSHIELD + hitsound = 'sound/weapons/bladeslice.ogg' + attack_verb = list("attacked", "poked", "jabbed", "torn", "gored") + +/* + * Baseball bats + */ +/obj/item/weapon/twohanded/baseballbat + desc = "The quality is a swing and a miss." + name = "wooden bat" + icon_state = "woodbat0" + base_icon = "woodbat" + force = 5 + force_wielded = 10 + throwforce = 5 + throw_speed = 5 + throw_range = 10 + w_class = 4.0 + flags = FPRINT | TABLEPASS + attack_verb = list("struck out", "beat", "bludgeoned", "homerunned") + hitsound = 'sound/weapons/genhit3.ogg' + +/obj/item/weapon/twohanded/baseballbat/metal + name = "metal bat" + icon_state = "metalbat0" + base_icon = "metalbat" + force = 7 + force_wielded = 15 diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 9ac82b03..2b8801e1 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -241,41 +241,35 @@ locked = 1 update_icon() -/obj/item/weapon/metal_bat - desc = "The quality is a swing and a miss." - name = "Metal Bat" - icon_state = "metalbat" - item_state = "bat_l" - force = 15.0 - throwforce = 5.0 - throw_speed = 5 - throw_range = 10 - w_class = 4.0 - flags = FPRINT | TABLEPASS - attack_verb = list("struck out", "beat", "bludgeoned", "homerunned") +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 = 8 + throwforce = 10 + w_class = 3 + attack_verb = list("hit", "bludgeoned", "whacked", "bonked") -/obj/item/weapon/pla_bat - desc = "The quality is a swing and a miss." - name = "Plasteel Bat" - icon_state = "plabat" - item_state = "bat_l" - force = 20.0 - throwforce = 5.0 - throw_speed = 5 - throw_range = 10 - w_class = 4.0 - flags = FPRINT | TABLEPASS - attack_verb = list("struck out", "beat", "bludgeoned", "homerunned") -/obj/item/weapon/wood_bat - desc = "The quality is a swing and a miss." - name = "Wooden Bat" - icon_state = "woodbat" - item_state = "bat_l" - force = 10.0 - throwforce = 5.0 - throw_speed = 5 - throw_range = 10 - w_class = 4.0 - flags = FPRINT | TABLEPASS - attack_verb = list("struck out", "beat", "bludgeoned", "homerunned") \ No newline at end of file +obj/item/weapon/wirerod/attackby(var/obj/item/I, mob/user as mob) + ..() + if(istype(I, /obj/item/weapon/shard)) + var/obj/item/weapon/twohanded/spear/S = new /obj/item/weapon/twohanded/spear + + user.put_in_hands(S) + user << "You fasten the glass shard to the top of the rod with the cable." + del(I) + del(src) + update_icon(user) + + else if(istype(I, /obj/item/weapon/wirecutters)) + var/obj/item/weapon/melee/baton/cattleprod/P = new /obj/item/weapon/melee/baton/cattleprod + + user.put_in_hands(P) + user << "You fasten the wirecutters to the top of the rod with the cable, prongs outward." + del(I) + del(src) + update_icon(user) + update_icon(user) diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index 9b3211d5..b45ee521 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index dd33e7d6..01272c27 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index 401851a8..74853c2d 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ