New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
Makes piping and cabling trip you in maintenance #23359
Conversation
code/game/objects/objs.dm
Outdated
for(var/obj/structure/catwalk/C in get_turf(src)) | ||
return | ||
if(!ishuman(M) || !has_gravity(src) || M.resting || M.can_overcome_gravity() || M.move_intent.flags & MOVE_INTENT_DELIBERATE) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should check NO_SLIP as well. Perhaps also magboots.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why aren't these part of the trip check?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are they? If not, put it there then I guess
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Slipping on something and tripping over something are two different mechanics
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How can you trip something without feet that can't fall? No_slip covers these cases
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fairly certain No_slip is also triggered when you have galoshes on, which shouldn't be an exception
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No slip is a species tag, galoshes are a separate exception IIRC
|
||
/obj/proc/trip_dir_check(mob/user as mob) | ||
if(user.get_skill_value(SKILL_HAULING) >= SKILL_ADEPT) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why have a hard cutoff instead of the chance based on skill level?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mechanical preference
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the preference based on? Why is it the better option?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pereference is based on ensuring I won't slip on something if I dedicate skill points into athletics instead of reducing the chance. Better because It's more of an incentive to allocate said points.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
correct helper for this is skill_check
. But yes, I agree with @PurpleMartinJCK. Note that the percent fail proc has an optional argument which gives a skill level past which no further fails occur.
code/game/objects/objs.dm
Outdated
if(user.get_skill_value(SKILL_HAULING) >= SKILL_ADEPT) | ||
return 0 | ||
else if(obj_flags & OBJ_FLAG_TRIPPABLE) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For performance reasons this flag check should come before everything else in /Crossed()
except the ..()
call.
code/game/objects/objs.dm
Outdated
return ..() && w_class <= round(amt/20) | ||
|
||
/obj/proc/trip_dir_check(mob/user as mob) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The base proc doesn't even do anything with dirs. Could just be /TripCheck()
code/game/objects/objs.dm
Outdated
else if(obj_flags & OBJ_FLAG_TRIPPABLE) | ||
return 1 | ||
return 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have TRUE and FALSE
code/game/objects/objs.dm
Outdated
for(var/obj/structure/catwalk/C in get_turf(src)) | ||
return | ||
if(!ishuman(M) || !has_gravity(src) || M.resting || M.can_overcome_gravity() || M.move_intent.flags & MOVE_INTENT_DELIBERATE) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why aren't these part of the trip check?
code/game/objects/objs.dm
Outdated
M.slip(src, 6) | ||
M.visible_message(\ | ||
"<span class='warning'>[M.name] trips over \the [src]!</span>",\ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
\The [M]
var/turf/T = src.loc | ||
if(!T.is_plating()) | ||
return 0 | ||
if(initialize_directions & user.dir) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not check the current direction?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
current direction isn't a combination of all the directions the pipe leads to/comes from, where as initialize_directions covers all of them
Ngl I'd rather this versus railings. Would there be any way to have it be a "chance to trip if you're running in the dark" sorta thing? |
No one is truly in the dark now that PDAs constantly shed light |
I do not believe tripping is the way. Tripping, along with hand blending, should be a quirk of the clumsiness gene or moderate brain damage. I would suggest a slowdown on atmospheric pipes / cable tiles mitigated by the athletics skill ranks (down to no slowdown) or wearing work boots. This will be similar to how wet tiles work as galoshes negate slipping, but not as detrimental as a permanently slippery area. |
Please note the engine room is just pipes on bare plating @themicrowave1 Now that we have catwalks, this becomes an intereasting mechanic, but I'd rather not have all the engie crew forced to run around in non uniform boots. |
@FreePrivateer Well, the work boot/ duty boot family of boots, boots with hard soles and steel toes to prevent broken feet when you slam your foot into a pipe or drop a hammer on it. |
Will be changed to reflect this |
@@ -1433,6 +1435,14 @@ | |||
..() | |||
update_icon() | |||
|
|||
/obj/machinery/atmospherics/pipe/trip_check(mob/user as mob) | |||
var/turf/T = src.loc | |||
if(!T.is_plating()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm mostly curious as to why pipes that are displayed above plating are less slippy than pipes under plating.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because otherwise the engine room, atmospherics, and any lab with piping would be a bitch to traverse
Giving @Baystation12/developers 48 hours from this comment to speak up in favour of this |
馃啈 Cakey
tweak: Running over piping and cabling over plating can now trip you if your athletics skill is below trained.
/馃啈
An attempt to hopefully bring more of an incentive to install overplating/stick to catwalks within maintenance V2.
Only affects you if the piping/wiring is over plating, so shouldn't affect engineering rooms.