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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bouncer bug fixes, improvements and refinements #796

Open
wants to merge 22 commits into
base: master
Choose a base branch
from

Conversation

hex37
Copy link
Contributor

@hex37 hex37 commented Feb 17, 2025

About The Pull Request

Fixes some bugs for bouncers:

  • Masked people are able to enter if they show their faces. If they are NOT allowed, they cannot enter.
  • Bouncers and security guards no longer aggro onto ugly masquerade violators.
  • Since Strippers are assumed to be slightly in-the-know about vampires, they do not panic and trigger masquerade violations when looking at ugly people.
  • Ghosts can no longer rizz guards
  • Bouncers reset to the direction set in their map placement
  • Gives player a hint on how to interact with a guard when blocked.
  • Blocks players from bypassing the barrier by climbing down a hole

Why It's Good For The Game

Allows masked people to enter, if they show their face first, and allows masked people to persuade for access.

Also- makes the map more conducive to interacting with vip barriers.

Testing Photographs and Procedure

x
x

x
x

x
xx
x
x

2025-02-19.13-40-00.mp4

Changelog

🆑
add: Blocks entry for masked people until they show their face or talk their way through
refactor: Allows masked people to persuade their way inside
fix: ghosts cannot rizz bouncers
balance: Bouncers and security guards no longer aggro onto people violating masquerade with their ugly.
balance: Strippers no longer panic & trigger masquerade violations on people violating masquerade with their ugly
refactor: Checkeyewitness now checks for the type of infraction caused before triggering aggro, also more early returns
add: player hints on how to interact with bouncers
add: bouncers have more natural standing directions instead of always facing south.
refactor: when a bouncer's direction resets, they adopt the direction set within the map file.
fix: runtime when interacting with bouncers
fix: Blocks players from bypassing the barrier by climbing down through open space
/:cl:

@hex37 hex37 changed the title bouncer bug fixes bouncer bug fixes, improvements and refinements Feb 18, 2025
@hex37 hex37 changed the title bouncer bug fixes, improvements and refinements Bouncer bug fixes, improvements and refinements Feb 18, 2025
@XanderDox XanderDox added Feature Exposes new bugs in interesting ways Fix Rewrites a bug so it appears in different circumstances Map Edit Thank you for your tile-placing service. It's always appreciated. Refactor Makes the code harder to read labels Feb 18, 2025
@Miraviel
Copy link
Contributor

Miraviel commented Feb 18, 2025

we seem to have this runtime happening as well about 8 times at every roundstart

please check all the bouncer subtypes

[2025-02-17 16:43:48.276] runtime error: Cannot read /datum/socialrole/bouncer/giov... (/datum/socialrole/bouncer/giovanni).bouncer_weapon_type
 - proc name: AssignSocialRole (/mob/living/carbon/human/npc/bouncer/AssignSocialRole)
 -   source file: bouncer_mob.dm,92
 -   usr: null
 -   src: Marla Goodman (/mob/living/carbon/human/npc/bouncer/giovanni)
 -   src.loc: the grass (29,35,3) (/turf/open/floor/plating/vampgrass)
 -   call stack:
 - Marla Goodman (/mob/living/carbon/human/npc/bouncer/giovanni): AssignSocialRole(/datum/socialrole/bouncer/giov... (/datum/socialrole/bouncer/giovanni), 0)
 - Marla Goodman (/mob/living/carbon/human/npc/bouncer/giovanni): Initialize(1)
 - Atoms (/datum/controller/subsystem/atoms): InitAtom(Marla Goodman (/mob/living/carbon/human/npc/bouncer/giovanni), /list (/list))
 - Atoms (/datum/controller/subsystem/atoms): InitializeAtoms(null, null)
 - Atoms (/datum/controller/subsystem/atoms): Initialize(602280)
 - Master (/datum/controller/master): Initialize(10, 0, 1)

@hex37
Copy link
Contributor Author

hex37 commented Feb 18, 2025

@Miraviel ty for the heads up, I'll dig into it

@hex37
Copy link
Contributor Author

hex37 commented Feb 18, 2025

@Miraviel Pushed a fix:
x

Copy link
Contributor

@Miraviel Miraviel left a comment

Choose a reason for hiding this comment

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

I walked up to the bouncers as a Nosferatu. They asked me to show my face. I took off my mask. They started to shoot at me. This is something that'd happen to players often if they were prompted an NPC to take off their mask

Went to another bouncer, shift-clicked them, clicked the mask icon. They let me thru with this extra runtime in tow:

verb name: Examine (/mob/verb/examinate)
usr: Miraviel/(Kane Nosferatu)
usr.loc: (Millennium Tower F1 (122,120,3))
src: Unknown (/mob/living/carbon/human)
src.loc: the shuttle floor (122,120,3) (/turf/open/floor/mineral/plastitanium)
call stack:
Unknown (/mob/living/carbon/human): Examine(Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium))
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): ShiftClick(Unknown (/mob/living/carbon/human))
Unknown (/mob/living/carbon/human): ShiftClickOn(Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium))
Unknown (/mob/living/carbon/human): ClickOn(Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium), "icon-x=18;icon-y=13;left=1;shi...")
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): Click(the plating (123,121,3) (/turf/open/floor/plating/vampplating), "mapwindow.map", "icon-x=18;icon-y=13;left=1;shi...")
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): Click(the plating (123,121,3) (/turf/open/floor/plating/vampplating), "mapwindow.map", "icon-x=18;icon-y=13;left=1;shi...")
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): Click(the plating (123,121,3) (/turf/open/floor/plating/vampplating), "mapwindow.map", "icon-x=18;icon-y=13;left=1;shi...")
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): Click(the plating (123,121,3) (/turf/open/floor/plating/vampplating), "mapwindow.map", "icon-x=18;icon-y=13;left=1;shi...")
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): Click(the plating (123,121,3) (/turf/open/floor/plating/vampplating), "mapwindow.map", "icon-x=18;icon-y=13;left=1;shi...")

@hex37
Copy link
Contributor Author

hex37 commented Feb 19, 2025

I walked up to the bouncers as a Nosferatu. They asked me to show my face. I took off my mask. They started to shoot at me. This is something that'd happen to players often if they were prompted an NPC to take off their mask

Went to another bouncer, shift-clicked them, clicked the mask icon. They let me thru with this extra runtime in tow:

verb name: Examine (/mob/verb/examinate)
usr: Miraviel/(Kane Nosferatu)
usr.loc: (Millennium Tower F1 (122,120,3))
src: Unknown (/mob/living/carbon/human)
src.loc: the shuttle floor (122,120,3) (/turf/open/floor/mineral/plastitanium)
call stack:
Unknown (/mob/living/carbon/human): Examine(Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium))
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): ShiftClick(Unknown (/mob/living/carbon/human))
Unknown (/mob/living/carbon/human): ShiftClickOn(Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium))
Unknown (/mob/living/carbon/human): ClickOn(Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium), "icon-x=18;icon-y=13;left=1;shi...")
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): Click(the plating (123,121,3) (/turf/open/floor/plating/vampplating), "mapwindow.map", "icon-x=18;icon-y=13;left=1;shi...")
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): Click(the plating (123,121,3) (/turf/open/floor/plating/vampplating), "mapwindow.map", "icon-x=18;icon-y=13;left=1;shi...")
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): Click(the plating (123,121,3) (/turf/open/floor/plating/vampplating), "mapwindow.map", "icon-x=18;icon-y=13;left=1;shi...")
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): Click(the plating (123,121,3) (/turf/open/floor/plating/vampplating), "mapwindow.map", "icon-x=18;icon-y=13;left=1;shi...")
Marla Jowers (/mob/living/carbon/human/npc/bouncer/elysium): Click(the plating (123,121,3) (/turf/open/floor/plating/vampplating), "mapwindow.map", "icon-x=18;icon-y=13;left=1;shi...")

I can look into the runtime, though I might run into trouble if I can't replicate.

Do you have any idea about a more clear way for the Bouncer to tell the player to shift click them?

@hex37 hex37 requested a review from Miraviel February 19, 2025 19:51
@hex37
Copy link
Contributor Author

hex37 commented Feb 19, 2025

changed code so bouncers, guards and strippers no longer panic over ugly people

@hex37
Copy link
Contributor Author

hex37 commented Feb 22, 2025

removed the mapping components of the PR
I'll do them in a different PR later

@XanderDox XanderDox removed the Map Edit Thank you for your tile-placing service. It's always appreciated. label Feb 22, 2025
@hex37
Copy link
Contributor Author

hex37 commented Feb 22, 2025

update: Blocks players from bypassing the barrier by climbing down a hole

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Exposes new bugs in interesting ways Fix Rewrites a bug so it appears in different circumstances Refactor Makes the code harder to read
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants