mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Migrates /obj/item/stack to the new attack chain (#31709)
* e * stuff not in the stack folder * A * Update gift_wrappaper.dm * golg * dancing around SHOULD_NOT_SLEEP and storage still being legacy * Update asteroid_floors.dm * Update medical_packs.dm * Update medical_packs.dm
This commit is contained in:
@@ -65,20 +65,21 @@ GLOBAL_LIST_INIT(glass_recipes, list (
|
||||
. = ..()
|
||||
recipes = GLOB.glass_recipes
|
||||
|
||||
/obj/item/stack/sheet/glass/attackby__legacy__attackchain(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/CC = W
|
||||
/obj/item/stack/sheet/glass/item_interaction(mob/living/user, obj/item/used, list/modifiers)
|
||||
if(istype(used, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/CC = used
|
||||
if(CC.get_amount() < 5)
|
||||
to_chat(user, "<b>There is not enough wire in this coil. You need 5 lengths.</b>")
|
||||
return
|
||||
to_chat(user, SPAN_WARNING("[used] doesn't have enough cable! You need 5 lengths."))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
CC.use(5)
|
||||
to_chat(user, SPAN_NOTICE("You attach wire to [src]."))
|
||||
new /obj/item/stack/light_w(user.loc)
|
||||
use(1)
|
||||
return
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(istype(W, /obj/item/stack/rods))
|
||||
var/obj/item/stack/rods/V = W
|
||||
if(istype(used, /obj/item/stack/rods))
|
||||
var/obj/item/stack/rods/V = used
|
||||
var/obj/item/stack/sheet/rglass/RG = new (user.loc)
|
||||
RG.add_fingerprint(user)
|
||||
V.use(1)
|
||||
@@ -88,7 +89,7 @@ GLOBAL_LIST_INIT(glass_recipes, list (
|
||||
G.use(1)
|
||||
if(!G && !RG && replace)
|
||||
user.put_in_hands(RG)
|
||||
return
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -186,22 +187,22 @@ GLOBAL_LIST_INIT(pglass_recipes, list (
|
||||
. = ..()
|
||||
recipes = GLOB.pglass_recipes
|
||||
|
||||
/obj/item/stack/sheet/plasmaglass/attackby__legacy__attackchain(obj/item/W, mob/user, params)
|
||||
..()
|
||||
if(istype(W, /obj/item/stack/rods))
|
||||
var/obj/item/stack/rods/V = W
|
||||
var/obj/item/stack/sheet/plasmarglass/RG = new (user.loc)
|
||||
RG.add_fingerprint(user)
|
||||
V.use(1)
|
||||
var/obj/item/stack/sheet/glass/G = src
|
||||
src = null
|
||||
var/replace = (user.get_inactive_hand()==G)
|
||||
G.use(1)
|
||||
if(!G && !RG && replace)
|
||||
user.put_in_hands(RG)
|
||||
else
|
||||
/obj/item/stack/sheet/plasmaglass/item_interaction(mob/living/user, obj/item/used, list/modifiers)
|
||||
if(!istype(used, /obj/item/stack/rods))
|
||||
return ..()
|
||||
|
||||
var/obj/item/stack/rods/V = used
|
||||
var/obj/item/stack/sheet/plasmarglass/RG = new (user.loc)
|
||||
RG.add_fingerprint(user)
|
||||
V.use(1)
|
||||
var/obj/item/stack/sheet/glass/G = src
|
||||
src = null
|
||||
var/replace = (user.get_inactive_hand() == G)
|
||||
G.use(1)
|
||||
if(!G && !RG && replace)
|
||||
user.put_in_hands(RG)
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
//////////////////////////////
|
||||
// MARK: REINFORCED PLASMA GLASS
|
||||
//////////////////////////////
|
||||
|
||||
@@ -187,48 +187,62 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
|
||||
/obj/item/clothing/head/hooded/explorer,
|
||||
/obj/item/clothing/head/helmet/space/plasmaman/mining))
|
||||
|
||||
/obj/item/stack/sheet/animalhide/goliath_hide/afterattack__legacy__attackchain(atom/target, mob/user, proximity_flag)
|
||||
if(!proximity_flag)
|
||||
return
|
||||
/obj/item/stack/sheet/animalhide/goliath_hide/interact_with_atom(atom/target, mob/living/user, list/modifiers)
|
||||
if(is_type_in_typecache(target, goliath_platable_armor_typecache))
|
||||
var/obj/item/clothing/C = target
|
||||
var/datum/armor/current_armor = C.armor
|
||||
if(current_armor.getRating(MELEE) < 75)
|
||||
if(!use(1))
|
||||
to_chat(user, SPAN_NOTICE("You dont have enough [src] for this!"))
|
||||
return
|
||||
C.armor = current_armor.setRating(melee_value = min(current_armor.getRating(MELEE) + 15, 75))
|
||||
to_chat(user, SPAN_NOTICE("You strengthen [target], improving its resistance against melee attacks."))
|
||||
else
|
||||
if(current_armor.getRating(MELEE) >= 75)
|
||||
to_chat(user, SPAN_WARNING("You can't improve [C] any further!"))
|
||||
else if(istype(target, /obj/mecha/working/ripley))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(!use(1))
|
||||
to_chat(user, SPAN_WARNING("You dont have enough [src] for this!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
C.armor = current_armor.setRating(melee_value = min(current_armor.getRating(MELEE) + 15, 75))
|
||||
to_chat(user, SPAN_NOTICE("You strengthen [target], improving its resistance against melee attacks."))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(istype(target, /obj/mecha/working/ripley))
|
||||
var/obj/mecha/working/ripley/D = target
|
||||
if(D.hides < HIDES_COVERED_FULL && !D.plates && !D.drake_hides)
|
||||
if(!use(1))
|
||||
to_chat(user, SPAN_NOTICE("You dont have enough [src] for this!"))
|
||||
return
|
||||
D.hides++
|
||||
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 10, 70))
|
||||
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 7, 60))
|
||||
D.armor = D.armor.setRating(laser_value = min(D.armor.getRating(LASER) + 7, 60))
|
||||
to_chat(user, SPAN_NOTICE("You strengthen [target], improving its resistance against attacks."))
|
||||
D.update_appearance(UPDATE_DESC|UPDATE_OVERLAYS)
|
||||
else
|
||||
if(D.hides >= HIDES_COVERED_FULL)
|
||||
to_chat(user, SPAN_WARNING("You can't improve [D] any further!"))
|
||||
else if(isrobot(target))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(D.plates || D.drake_hides)
|
||||
to_chat(user, SPAN_WARNING("[D] is already protected by a different kind of armor!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(!use(1))
|
||||
to_chat(user, SPAN_WARNING("You dont have enough [src] for this!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
D.hides++
|
||||
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 10, 70))
|
||||
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 7, 60))
|
||||
D.armor = D.armor.setRating(laser_value = min(D.armor.getRating(LASER) + 7, 60))
|
||||
D.update_appearance(UPDATE_DESC|UPDATE_OVERLAYS)
|
||||
to_chat(user, SPAN_NOTICE("You strengthen [target], improving its resistance against attacks."))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(isrobot(target))
|
||||
var/mob/living/silicon/robot/R = target
|
||||
if(istype(R.module, /obj/item/robot_module/miner))
|
||||
var/datum/armor/current_armor = R.armor
|
||||
if(current_armor.getRating(MELEE) < 75)
|
||||
if(!use(1))
|
||||
to_chat(user, SPAN_NOTICE("You dont have enough [src] for this!"))
|
||||
return
|
||||
R.armor = current_armor.setRating(melee_value = min(current_armor.getRating(MELEE) + 15, 75))
|
||||
to_chat(user, SPAN_NOTICE("You strengthen [target], improving its resistance against melee attacks."))
|
||||
else
|
||||
to_chat(user, SPAN_WARNING("You can't improve [R] any further!"))
|
||||
else
|
||||
to_chat(user, SPAN_WARNING("[R]'s armor can not be improved!"))
|
||||
if(!istype(R.module, /obj/item/robot_module/miner))
|
||||
to_chat(user, SPAN_WARNING("[R]'s armor can not be improved, only mining modules have hardpoints for attaching [src]!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
var/datum/armor/current_armor = R.armor
|
||||
if(current_armor.getRating(MELEE) >= 75)
|
||||
to_chat(user, SPAN_WARNING("You can't improve the armor on [R] any further!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(!use(1))
|
||||
to_chat(user, SPAN_WARNING("You dont have enough [src] for this!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
R.armor = current_armor.setRating(melee_value = min(current_armor.getRating(MELEE) + 15, 75))
|
||||
to_chat(user, SPAN_NOTICE("You strengthen [target], improving its resistance against melee attacks."))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
/obj/item/stack/sheet/animalhide/armor_plate
|
||||
name = "armor plate"
|
||||
@@ -240,26 +254,29 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
|
||||
layer = MOB_LAYER
|
||||
materials = list(MAT_METAL = 20000, MAT_TITANIUM = 5000)
|
||||
|
||||
/obj/item/stack/sheet/animalhide/armor_plate/afterattack__legacy__attackchain(atom/target, mob/user, proximity_flag)
|
||||
if(!proximity_flag)
|
||||
return
|
||||
if(istype(target, /obj/mecha/working/ripley))
|
||||
var/obj/mecha/working/ripley/D = target
|
||||
if(D.plates < PLATES_COVERED_FULL && !D.hides && !D.drake_hides)
|
||||
if(!use(1))
|
||||
to_chat(user, SPAN_NOTICE("You dont have enough [src] for this!"))
|
||||
return
|
||||
D.plates++
|
||||
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 7, 60))
|
||||
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 4, 50))
|
||||
D.armor = D.armor.setRating(laser_value = min(D.armor.getRating(LASER) + 4, 50))
|
||||
to_chat(user, SPAN_NOTICE("You strengthen [target], improving its resistance against attacks."))
|
||||
D.update_appearance(UPDATE_DESC|UPDATE_OVERLAYS)
|
||||
else
|
||||
to_chat(user, SPAN_WARNING("You can't improve [D] any further!"))
|
||||
/obj/item/stack/sheet/animalhide/armor_plate/interact_with_atom(atom/target, mob/living/user, list/modifiers)
|
||||
if(!istype(target, /obj/mecha/working/ripley))
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/sheet/animalhide/armor_plate/attackby__legacy__attackchain(obj/item/W, mob/user, params)
|
||||
return // no steel leather for ya
|
||||
var/obj/mecha/working/ripley/D = target
|
||||
if(D.plates >= PLATES_COVERED_FULL)
|
||||
to_chat(user, SPAN_WARNING("You can't improve [D] any further!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(D.hides || D.drake_hides)
|
||||
to_chat(user, SPAN_WARNING("[D] is already protected by a different kind of armor!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(!use(1))
|
||||
to_chat(user, SPAN_NOTICE("You dont have enough [src] for this!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
D.plates++
|
||||
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 7, 60))
|
||||
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 4, 50))
|
||||
D.armor = D.armor.setRating(laser_value = min(D.armor.getRating(LASER) + 4, 50))
|
||||
D.update_appearance(UPDATE_DESC|UPDATE_OVERLAYS)
|
||||
to_chat(user, SPAN_NOTICE("You strengthen [target], improving its resistance against attacks."))
|
||||
|
||||
/obj/item/stack/sheet/animalhide/ashdrake
|
||||
name = "ash drake hide"
|
||||
@@ -270,45 +287,58 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
|
||||
layer = MOB_LAYER
|
||||
dynamic_icon_state = TRUE
|
||||
|
||||
/obj/item/stack/sheet/animalhide/ashdrake/afterattack__legacy__attackchain(atom/target, mob/user, proximity_flag)
|
||||
if(!proximity_flag)
|
||||
return
|
||||
if(istype(target, /obj/mecha/working/ripley))
|
||||
var/obj/mecha/working/ripley/D = target
|
||||
if(D.drake_hides < DRAKE_HIDES_COVERED_FULL && !D.hides && !D.plates)
|
||||
if(!use(3))
|
||||
to_chat(user, SPAN_NOTICE("You dont have enough [src] for this!"))
|
||||
return
|
||||
D.drake_hides++
|
||||
D.max_integrity += 50
|
||||
D.obj_integrity += 50
|
||||
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 13, 80))
|
||||
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 7, 60))
|
||||
D.armor = D.armor.setRating(laser_value = min(D.armor.getRating(LASER) + 7, 60))
|
||||
to_chat(user, SPAN_NOTICE("You strengthen [target], improving its resistance against attacks."))
|
||||
D.update_appearance(UPDATE_DESC|UPDATE_OVERLAYS)
|
||||
else
|
||||
to_chat(user, SPAN_WARNING("You can't improve [D] any further!"))
|
||||
/obj/item/stack/sheet/animalhide/ashdrake/interact_with_atom(atom/target, mob/living/user, list/modifiers)
|
||||
if(!istype(target, /obj/mecha/working/ripley))
|
||||
return ..()
|
||||
|
||||
var/obj/mecha/working/ripley/D = target
|
||||
if(D.drake_hides >= DRAKE_HIDES_COVERED_FULL)
|
||||
to_chat(user, SPAN_WARNING("You can't improve [D] any further!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(D.hides || D.plates)
|
||||
to_chat(user, SPAN_WARNING("[D] is already protected by a different kind of armor!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(!use(3))
|
||||
to_chat(user, SPAN_NOTICE("You dont have enough [src] for this!"))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
D.drake_hides++
|
||||
D.max_integrity += 50
|
||||
D.obj_integrity += 50
|
||||
D.armor = D.armor.setRating(melee_value = min(D.armor.getRating(MELEE) + 13, 80))
|
||||
D.armor = D.armor.setRating(bullet_value = min(D.armor.getRating(BULLET) + 7, 60))
|
||||
D.armor = D.armor.setRating(laser_value = min(D.armor.getRating(LASER) + 7, 60))
|
||||
D.update_appearance(UPDATE_DESC|UPDATE_OVERLAYS)
|
||||
to_chat(user, SPAN_NOTICE("You strengthen [target], improving its resistance against attacks."))
|
||||
|
||||
//Step one - dehairing.
|
||||
/obj/item/stack/sheet/animalhide/item_interaction(mob/living/user, obj/item/used, list/modifiers)
|
||||
if(!used.sharp)
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/sheet/animalhide/attackby__legacy__attackchain(obj/item/W, mob/user, params)
|
||||
if(W.sharp)
|
||||
user.visible_message("[user] starts cutting hair off \the [src].", SPAN_NOTICE("You start cutting the hair off \the [src]..."), SPAN_ITALICS("You hear the sound of a knife rubbing against flesh."))
|
||||
if(do_after(user, 50 * W.toolspeed, target = src))
|
||||
to_chat(user, SPAN_NOTICE("You cut the hair from this [src.singular_name]."))
|
||||
//Try locating an exisitng stack on the tile and add to there if possible
|
||||
for(var/obj/item/stack/sheet/hairlesshide/HS in usr.loc)
|
||||
if(HS.amount < 50)
|
||||
HS.amount++
|
||||
src.use(1)
|
||||
break
|
||||
//If it gets to here it means it did not find a suitable stack on the tile.
|
||||
var/obj/item/stack/sheet/hairlesshide/HS = new(usr.loc)
|
||||
HS.amount = 1
|
||||
user.visible_message(
|
||||
SPAN_NOTICE("[user] starts cutting hair off [src]."),
|
||||
SPAN_NOTICE("You start cutting the hair off [src]..."),
|
||||
SPAN_WARNING("You hear the sound of a knife rubbing against flesh!")
|
||||
)
|
||||
if(!do_after(user, 50 * used.toolspeed, target = src))
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
to_chat(user, SPAN_NOTICE("You cut the hair from this [src.singular_name]."))
|
||||
//Try locating an exisitng stack on the tile and add to there if possible
|
||||
for(var/obj/item/stack/sheet/hairlesshide/hide in usr.loc)
|
||||
if(hide.amount < 50)
|
||||
hide.amount++
|
||||
src.use(1)
|
||||
else
|
||||
..()
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
//If it gets to here it means it did not find a suitable stack on the tile.
|
||||
var/obj/item/stack/sheet/hairlesshide/hide = new(usr.loc)
|
||||
hide.amount = 1
|
||||
src.use(1)
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
//Step two - washing (also handled by water reagent code and washing machine code)
|
||||
/obj/item/stack/sheet/hairlesshide/water_act(volume, temperature, source, method = REAGENT_TOUCH)
|
||||
|
||||
@@ -12,16 +12,22 @@
|
||||
flags = CONDUCT
|
||||
max_amount = 60
|
||||
|
||||
/obj/item/stack/light_w/attackby__legacy__attackchain(obj/item/I, mob/user, params)
|
||||
..()
|
||||
if(istype(I, /obj/item/wirecutters))
|
||||
var/obj/item/stack/cable_coil/CC = new(user.loc)
|
||||
CC.amount = 5
|
||||
new/obj/item/stack/sheet/glass(user.loc)
|
||||
use(1)
|
||||
/obj/item/stack/light_w/item_interaction(mob/living/user, obj/item/used, list/modifiers)
|
||||
if(!istype(used, /obj/item/stack/sheet/metal))
|
||||
return ..()
|
||||
|
||||
if(istype(I, /obj/item/stack/sheet/metal))
|
||||
var/obj/item/stack/sheet/metal/M = I
|
||||
M.use(1)
|
||||
new /obj/item/stack/tile/light(user.loc)
|
||||
use(1)
|
||||
var/obj/item/stack/sheet/metal/M = used
|
||||
M.use(1)
|
||||
new /obj/item/stack/tile/light(user.loc)
|
||||
use(1)
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
/obj/item/stack/light_w/wirecutter_act(mob/living/user, obj/item/I)
|
||||
if(!istype(I, /obj/item/wirecutters))
|
||||
return
|
||||
|
||||
var/obj/item/stack/cable_coil/CC = new(user.loc)
|
||||
CC.amount = 5
|
||||
new/obj/item/stack/sheet/glass(user.loc)
|
||||
use(1)
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
@@ -197,19 +197,21 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
|
||||
icon = 'icons/obj/stacks/miscellaneous.dmi'
|
||||
icon_state = "empty-sandbags"
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
new_attack_chain = TRUE
|
||||
|
||||
/obj/item/emptysandbag/attackby__legacy__attackchain(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/stack/ore/glass))
|
||||
var/obj/item/stack/ore/glass/G = I
|
||||
to_chat(user, SPAN_NOTICE("You fill the sandbag."))
|
||||
var/obj/item/stack/sheet/mineral/sandbags/S = new /obj/item/stack/sheet/mineral/sandbags(drop_location())
|
||||
qdel(src)
|
||||
if(Adjacent(user) && !issilicon(user))
|
||||
user.put_in_hands(S)
|
||||
G.use(1)
|
||||
else
|
||||
/obj/item/emptysandbag/item_interaction(mob/living/user, obj/item/used, list/modifiers)
|
||||
if(!istype(used, /obj/item/stack/ore/glass))
|
||||
return ..()
|
||||
|
||||
to_chat(user, SPAN_NOTICE("You fill the sandbag."))
|
||||
var/obj/item/stack/sheet/mineral/sandbags/S = new /obj/item/stack/sheet/mineral/sandbags(drop_location())
|
||||
if(Adjacent(user) && ishuman(user))
|
||||
user.put_in_hands(S)
|
||||
var/obj/item/stack/ore/glass/G = used
|
||||
G.use(1)
|
||||
qdel(src)
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
/obj/item/stack/sheet/mineral/diamond
|
||||
name = "diamond"
|
||||
desc = "Sparkles like a twinkling star."
|
||||
@@ -311,12 +313,13 @@ GLOBAL_LIST_INIT(sandbag_recipes, list (
|
||||
log_and_set_aflame(user, I)
|
||||
return TRUE
|
||||
|
||||
/obj/item/stack/sheet/mineral/plasma/attackby__legacy__attackchain(obj/item/I, mob/living/user, params)
|
||||
if(I.get_heat())
|
||||
log_and_set_aflame(user, I)
|
||||
else
|
||||
/obj/item/stack/sheet/mineral/plasma/item_interaction(mob/living/user, obj/item/used, list/modifiers)
|
||||
if(!used.get_heat())
|
||||
return ..()
|
||||
|
||||
log_and_set_aflame(user, used)
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
/obj/item/stack/sheet/mineral/plasma/proc/log_and_set_aflame(mob/user, obj/item/I)
|
||||
var/turf/T = get_turf(src)
|
||||
message_admins("Plasma sheets ignited by [key_name_admin(user)]([ADMIN_QUE(user, "?")]) ([ADMIN_FLW(user, "FLW")]) in ([COORD(T)] - [ADMIN_JMP(T)]")
|
||||
|
||||
@@ -535,15 +535,16 @@ GLOBAL_LIST_INIT(cardboard_recipes, list (
|
||||
)),
|
||||
))
|
||||
|
||||
/obj/item/stack/sheet/cardboard/attackby__legacy__attackchain(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/stamp/clown) && !isstorage(loc))
|
||||
/obj/item/stack/sheet/cardboard/item_interaction(mob/living/user, obj/item/used, list/modifiers)
|
||||
if(!istype(used, /obj/item/stamp/clown) || isstorage(loc))
|
||||
return ..()
|
||||
|
||||
if(use(1))
|
||||
var/atom/droploc = drop_location()
|
||||
if(use(1))
|
||||
playsound(I, 'sound/items/bikehorn.ogg', 50, TRUE, -1)
|
||||
to_chat(user, SPAN_NOTICE("You stamp the cardboard! It's a clown box! Honk!"))
|
||||
new/obj/item/storage/box/clown(droploc) //bugfix
|
||||
else
|
||||
. = ..()
|
||||
to_chat(user, SPAN_NOTICE("You stamp the cardboard! It's a clown box! Honk!"))
|
||||
playsound(used, 'sound/items/bikehorn.ogg', 50, TRUE, -1)
|
||||
new/obj/item/storage/box/clown(droploc)
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
/// BubbleWrap
|
||||
/obj/item/stack/sheet/cardboard
|
||||
@@ -621,15 +622,14 @@ GLOBAL_LIST_INIT(cult_recipes, list (
|
||||
icon_state = GET_CULT_DATA(runed_metal_icon_state, initial(icon_state))
|
||||
recipes = GLOB.cult_recipes
|
||||
|
||||
/obj/item/stack/sheet/runed_metal/attack_self__legacy__attackchain(mob/living/user)
|
||||
if(!IS_CULTIST(user))
|
||||
/obj/item/stack/sheet/runed_metal/activate_self(mob/user)
|
||||
if(!IS_CULTIST(user) || user.holy_check())
|
||||
to_chat(user, SPAN_WARNING("Only one with forbidden knowledge could hope to work this metal..."))
|
||||
return
|
||||
if(usr.holy_check())
|
||||
return
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
if(!is_level_reachable(user.z))
|
||||
to_chat(user, SPAN_WARNING("The energies of this place interfere with the metal shaping!"))
|
||||
return
|
||||
return ITEM_INTERACT_COMPLETE
|
||||
|
||||
return ..()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user