mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-18 02:19:30 +01:00
Refactored hitby to be in line with TG's version. Refactored item weight defines to a more clear naming scheme, also in line with TG's version. Refactored how the movement bumps are handled, ported signals to handle them, in preparation for the movement update. Fixed disposal hit bouncing the hitting atom on the wall. Items do not push other items anymore if they are tiny.
193 lines
6.9 KiB
Plaintext
193 lines
6.9 KiB
Plaintext
/obj/item/material/butterflyconstruction
|
|
name = "unfinished concealed knife"
|
|
desc = "An unfinished concealed knife, it looks like the screws need to be tightened."
|
|
icon = 'icons/obj/weapons_build.dmi'
|
|
icon_state = "butterflystep1"
|
|
force_divisor = 0.1
|
|
thrown_force_divisor = 0.1
|
|
|
|
/obj/item/material/butterflyconstruction/attackby(obj/item/attacking_item, mob/user)
|
|
if(attacking_item.isscrewdriver())
|
|
to_chat(user, "You finish the concealed blade weapon.")
|
|
new /obj/item/material/knife/butterfly(user.loc, material.name)
|
|
qdel(src)
|
|
return
|
|
|
|
/obj/item/material/butterflyblade
|
|
name = "knife blade"
|
|
desc = "A knife blade. Unusable as a weapon without a grip."
|
|
icon = 'icons/obj/weapons_build.dmi'
|
|
icon_state = "butterfly2"
|
|
force_divisor = 0.1
|
|
thrown_force_divisor = 0.1
|
|
|
|
/obj/item/material/butterflyhandle
|
|
name = "concealed knife grip"
|
|
desc = "A plasteel grip with screw fittings for a blade."
|
|
icon = 'icons/obj/weapons_build.dmi'
|
|
icon_state = "butterfly1"
|
|
force_divisor = 0.1
|
|
thrown_force_divisor = 0.1
|
|
|
|
/obj/item/material/butterflyhandle/attackby(obj/item/attacking_item, mob/user)
|
|
if(istype(attacking_item, /obj/item/material/butterflyblade))
|
|
var/obj/item/material/butterflyblade/B = attacking_item
|
|
to_chat(user, "You attach the two concealed blade parts.")
|
|
var/finished = new /obj/item/material/butterflyconstruction(user.loc, B.material.name)
|
|
qdel(attacking_item)
|
|
qdel(src)
|
|
user.put_in_hands(finished)
|
|
return
|
|
|
|
/obj/item/material/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"
|
|
obj_flags = OBJ_FLAG_CONDUCTABLE
|
|
force = 18
|
|
throwforce = 10
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
attack_verb = list("hit", "bludgeoned", "whacked", "bonked")
|
|
force_divisor = 0.1
|
|
thrown_force_divisor = 0.1
|
|
applies_material_colour = FALSE
|
|
var/forward_cable_color = COLOR_RED
|
|
|
|
/obj/item/material/wirerod/Initialize(mapload, var/material_key, var/cable_color)
|
|
. = ..()
|
|
if(!cable_color)
|
|
cable_color = COLOR_RED
|
|
forward_cable_color = cable_color
|
|
var/image/I = image(icon, null, "wiredrod_cable")
|
|
I.appearance_flags = RESET_COLOR
|
|
I.color = cable_color
|
|
AddOverlays(I)
|
|
|
|
/obj/item/material/wirerod/attackby(obj/item/attacking_item, mob/user)
|
|
..()
|
|
var/obj/item/finished
|
|
if(istype(attacking_item, /obj/item/material/shard) || istype(attacking_item, /obj/item/material/spearhead))
|
|
var/obj/item/material/tmp_shard = attacking_item
|
|
finished = new /obj/item/material/twohanded/spear(get_turf(user), tmp_shard.material.name)
|
|
to_chat(user, SPAN_NOTICE("You fasten \the [attacking_item] to the top of the rod with the cable."))
|
|
else if(attacking_item.iswirecutter())
|
|
finished = new /obj/item/melee/baton/cattleprod(get_turf(user), forward_cable_color)
|
|
to_chat(user, SPAN_NOTICE("You fasten the wirecutters to the top of the rod with the cable, prongs outward."))
|
|
else if(istype(attacking_item, /obj/item/material/wirerod))
|
|
finished = new /obj/item/trap/tripwire(get_turf(user), forward_cable_color)
|
|
to_chat(user, SPAN_NOTICE("You attach the two wired rods together, spooling the cable between them."))
|
|
if(finished)
|
|
user.drop_from_inventory(src,finished)
|
|
user.drop_from_inventory(attacking_item,finished)
|
|
//TODO: Possible better animation here.
|
|
qdel(attacking_item)
|
|
qdel(src)
|
|
user.put_in_hands(finished)
|
|
update_icon(user)
|
|
|
|
/obj/item/material/shaft
|
|
name = "shaft"
|
|
desc = "A large stick, you could probably attach something to it."
|
|
icon = 'icons/obj/weapons_build.dmi'
|
|
icon_state = "shaft"
|
|
item_state = "rods"
|
|
force = 11
|
|
throwforce = 3
|
|
w_class = WEIGHT_CLASS_BULKY
|
|
attack_verb = list("hit", "bludgeoned", "whacked", "bonked")
|
|
force_divisor = 0.1
|
|
thrown_force_divisor = 0.1
|
|
default_material = "wood"
|
|
|
|
/obj/item/material/shaft/attackby(obj/item/attacking_item, mob/user)
|
|
..()
|
|
var/obj/item/finished
|
|
if(istype(attacking_item, /obj/item/material/spearhead))
|
|
var/obj/item/material/spearhead/tip = attacking_item
|
|
finished = new /obj/item/material/twohanded/pike(get_turf(user), tip.material.name)
|
|
to_chat(user, SPAN_NOTICE("You attach \the [attacking_item] to the top of \the [src]."))
|
|
if(finished)
|
|
user.drop_from_inventory(src,finished)
|
|
user.drop_from_inventory(attacking_item,finished)
|
|
qdel(attacking_item)
|
|
qdel(src)
|
|
//TODO: Possible better animation here.
|
|
user.put_in_hands(finished)
|
|
update_icon(user)
|
|
|
|
/obj/item/material/spearhead
|
|
name = "spearhead"
|
|
desc = "A pointy spearhead, not really useful without a shaft."
|
|
icon = 'icons/obj/weapons_build.dmi'
|
|
icon_state = "spearhead"
|
|
force = 11
|
|
throwforce = 5
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
attack_verb = list("attacked", "poked")
|
|
force_divisor = 0.1
|
|
thrown_force_divisor = 0.1
|
|
default_material = "steel"
|
|
|
|
|
|
/obj/item/material/woodenshield
|
|
name = "shield donut"
|
|
desc = "A wooden disc. Unusable as a shield without metal. Don't eat this."
|
|
icon = 'icons/obj/square_shield.dmi'
|
|
icon_state = "shield_fitting_inner"
|
|
force_divisor = 0.1
|
|
thrown_force_divisor = 0.1
|
|
default_material = "wood"
|
|
|
|
/obj/item/material/woodenshield/attackby(obj/item/attacking_item, mob/user)
|
|
..()
|
|
var/obj/item/finished
|
|
if(istype(attacking_item, /obj/item/material/shieldbits))
|
|
var/obj/item/material/woodenshield/donut = attacking_item
|
|
finished = new /obj/item/shield/buckler(get_turf(user), donut.material.name)
|
|
to_chat(user, SPAN_NOTICE("You attach \the [attacking_item] to \the [src]."))
|
|
if(finished)
|
|
user.drop_from_inventory(src)
|
|
user.drop_from_inventory(attacking_item)
|
|
qdel(attacking_item)
|
|
qdel(src)
|
|
user.put_in_hands(finished)
|
|
update_icon(user)
|
|
|
|
/obj/item/material/shieldbits
|
|
name = "shield fittings"
|
|
desc = "A metal ring and boss, fitting for a buckler."
|
|
icon = 'icons/obj/square_shield.dmi'
|
|
icon_state = "shield_fitting_outer"
|
|
force_divisor = 0.1
|
|
thrown_force_divisor = 0.1
|
|
default_material = "steel"
|
|
|
|
/obj/item/woodcirclet
|
|
name = "wood circlet"
|
|
desc = "A small wood circlet for making a flower crown."
|
|
icon = 'icons/obj/weapons_build.dmi'
|
|
icon_state = "woodcirclet"
|
|
item_state = "woodcirclet"
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
|
|
/obj/item/woodcirclet/attackby(obj/item/attacking_item, mob/user)
|
|
var/obj/item/complete = null
|
|
if(istype(attacking_item, /obj/item/seeds)) // Only allow seeds, since we rely on their structure
|
|
var/obj/item/seeds/S = attacking_item
|
|
if(istype(S.seed, /datum/seed/flower/poppy))
|
|
complete = new /obj/item/clothing/head/poppy_crown(get_turf(user))
|
|
else if(istype(S.seed, /datum/seed/flower/sunflower))
|
|
complete = new /obj/item/clothing/head/sunflower_crown(get_turf(user))
|
|
else if(istype(S.seed, /datum/seed/flower)) // Note: might be a problem if more flowers are added
|
|
complete = new /obj/item/clothing/head/lavender_crown(get_turf(user))
|
|
|
|
if(complete != null)
|
|
to_chat(user, SPAN_NOTICE("You attach the " + S.seed.seed_name + " to the circlet and create a beautiful flower crown."))
|
|
user.drop_from_inventory(attacking_item)
|
|
user.drop_from_inventory(src)
|
|
qdel(attacking_item)
|
|
qdel(src)
|
|
user.put_in_hands(complete)
|
|
return
|