Skip to content
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

Closed
wants to merge 1 commit into from

Conversation

CakeQ
Copy link
Contributor

@CakeQ CakeQ commented Oct 3, 2018

馃啈 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.

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)
Copy link
Contributor

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.

Copy link
Member

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?

Copy link
Contributor

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

Copy link
Contributor Author

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

Copy link
Contributor

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

Copy link
Contributor Author

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

Copy link
Contributor

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)
Copy link
Contributor

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?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mechanical preference

Copy link
Contributor

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?

Copy link
Contributor Author

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.

Copy link
Contributor

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.

if(user.get_skill_value(SKILL_HAULING) >= SKILL_ADEPT)
return 0
else if(obj_flags & OBJ_FLAG_TRIPPABLE)
Copy link
Member

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.

return ..() && w_class <= round(amt/20)

/obj/proc/trip_dir_check(mob/user as mob)
Copy link
Member

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()

else if(obj_flags & OBJ_FLAG_TRIPPABLE)
return 1
return 0
Copy link
Member

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

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)
Copy link
Member

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?

M.slip(src, 6)
M.visible_message(\
"<span class='warning'>[M.name] trips over \the [src]!</span>",\
Copy link
Member

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)
Copy link
Member

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?

Copy link
Contributor Author

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

@ghost
Copy link

ghost commented Oct 3, 2018

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?

@PurpleMartinJCK
Copy link
Contributor

No one is truly in the dark now that PDAs constantly shed light

@themicrowave1
Copy link

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.

@FreePrivateer
Copy link

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.

@themicrowave1
Copy link

@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.

@CakeQ
Copy link
Contributor Author

CakeQ commented Oct 3, 2018

Please note the engine room is just pipes on bare plating

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())
Copy link
Member

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.

Copy link
Contributor Author

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

@babydoll
Copy link
Contributor

babydoll commented Oct 4, 2018

Giving @Baystation12/developers 48 hours from this comment to speak up in favour of this

@comma comma closed this Oct 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants