Files
Leland KembleandGitHub d6f14fe29d Moves an amount up to interpretation of things from attackby() to item_interaction() (#96757)
## About The Pull Request

Thirty files changed, one's not really changed, one's actually just a
copy of a change from a different pr, because for the sake of pipe
cleaners I decided to change the base turf. Probably wasn't a good idea.
This one contains the full set of `/turf/` `attackby()`s(besides those
meant for attacks), converted all at once because the tree of turf
subtypes looks a lot more like a spire than a bush.

Changes beyond conversion:
I added messaging for when you're crowbarring transit tube pods out of
the tubes because I genuinely wasted half an hour trying to figure out
what I'd done wrong in conversion because they don't look any different
so I thought it wasn't working.

If you're reinforcing plating and the plating is reinforced
mid-reinforcement you will no longer waste your plasteel reinforcing the
reinforced plating.


## Why It's Good For The Game

what are we at, ~120? I was expecting this to be a lot more drawn out,
but most of them are really small. I'm gonna have to do a final pass of
calls to `attackby()` once the dust settles, but the end of non-attack
`attackby()`s is just a week away.
2026-07-15 17:37:00 -05:00

99 lines
2.5 KiB
Plaintext

/// Used as a parent type for types that want to allow construction, but do not want to be floors
/// I wish I could use components for turfs at scale
/// Please do not bloat this. Love you <3
/turf/open/misc
name = "coder/mapper fucked up"
desc = "report on GitHub please"
flags_1 = NO_SCREENTIPS_1 | CAN_BE_DIRTY_1
turf_flags = IS_SOLID | NO_RUST
footstep = FOOTSTEP_FLOOR
barefootstep = FOOTSTEP_HARD_BAREFOOT
clawfootstep = FOOTSTEP_HARD_CLAW
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
underfloor_accessibility = UNDERFLOOR_INTERACTABLE
smoothing_groups = SMOOTH_GROUP_TURF_OPEN
canSmoothWith = SMOOTH_GROUP_TURF_OPEN + SMOOTH_GROUP_OPEN_FLOOR
thermal_conductivity = 0.02
heat_capacity = 20000
tiled_turf = TRUE
/turf/open/misc/item_interaction(mob/living/user, obj/item/tool, list/modifiers)
. = ..()
if(ITEM_INTERACT_ANY_BLOCKER & .)
return .
if(istype(tool, /obj/item/stack/rods))
build_with_rods(tool, user)
return ITEM_INTERACT_SUCCESS
if(ismetaltile(tool))
build_with_floor_tiles(tool, user)
return ITEM_INTERACT_SUCCESS
/turf/open/misc/attack_paw(mob/user, list/modifiers)
return attack_hand(user, modifiers)
/turf/open/misc/ex_act(severity, target)
. = ..()
if(target == src)
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
return TRUE
if(is_explosion_shielded(severity))
return FALSE
if(target)
severity = EXPLODE_LIGHT
switch(severity)
if(EXPLODE_DEVASTATE)
ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
if(EXPLODE_HEAVY)
switch(rand(1, 3))
if(1 to 2)
ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR)
if(3)
if(prob(80))
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
else
break_tile()
hotspot_expose(1000,CELL_VOLUME)
if(EXPLODE_LIGHT)
if (prob(50))
break_tile()
hotspot_expose(1000,CELL_VOLUME)
return TRUE
/turf/open/misc/is_explosion_shielded(severity)
if(severity >= EXPLODE_DEVASTATE)
return FALSE
for(var/obj/blocker in src)
if(blocker.density)
return TRUE
return FALSE
/turf/open/misc/blob_act(obj/structure/blob/B)
return
/turf/open/misc/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
if(the_rcd.mode == RCD_TURF)
if(the_rcd.rcd_design_path != /turf/open/floor/plating/rcd)
return FALSE
return list("delay" = 0, "cost" = 3)
return FALSE
/turf/open/misc/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, list/rcd_data)
if(rcd_data[RCD_DESIGN_MODE] == RCD_TURF)
if(rcd_data[RCD_DESIGN_PATH] != /turf/open/floor/plating/rcd)
return FALSE
place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
return TRUE
return FALSE