-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
sleeper agent fake announcement #28321
Conversation
thank u |
switch (i) | ||
{ | ||
case 1: | ||
break; | ||
case 2: | ||
{ | ||
_adminLogger.Add(LogType.EventStarted, LogImpact.High, $"Event fake started: {ToPrettyString(ruleEntity)}"); | ||
EndGameRule(ruleEntity, ruleData); | ||
return false; | ||
} | ||
} |
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 the fuck is this?
Is this not already a thing? I thought the sleeper agent could roll on 0 people... (if it can't... there's an idea) |
Content.Server/StationEvents/Components/StationEventComponent.cs
Outdated
Show resolved
Hide resolved
Content.Server/StationEvents/Components/StationEventComponent.cs
Outdated
Show resolved
Hide resolved
maxOccurrences: 1 # can only happen once per round | ||
startAnnouncement: station-event-communication-interception | ||
startAudio: | ||
path: /Audio/Announcements/intercept.ogg | ||
- type: AlertLevelInterceptionRule | ||
- type: MassHallucinationsRule # essentially (I hope) does nothing because of duration 0. it's just so that the event can complete, since removing "AlertLevelInterceptionRule" caused a problem with it |
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
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
as has already been written, this is the solution to the problem.
If you remove it, this happens
- type: entity
noSpawn: true
parent: BaseTraitorRule
id: SleeperAgentsRule
components:
- type: GameRule
canFalseActivate: true
- type: StationEvent
earliestStart: 30
weight: 8
minimumPlayers: 15
alertLevel: blue
maxOccurrences: 1 # can only happen once per round
startAnnouncement: station-event-communication-interception
startAudio:
path: /Audio/Announcements/intercept.ogg
- type: AntagSelection
definitions:
- prefRoles: [ Traitor ]
min: 1
max: 2
playerRatio: 10
mindComponents:
- type: TraitorRole
prototype: Traitor
- type: entity
noSpawn: true
parent: BaseTraitorRule
id: SleeperAgentsRule
components:
- type: GameRule
canFalseActivate: true
- type: StationEvent
earliestStart: 30
weight: 8
minimumPlayers: 15
alertLevel: blue
maxOccurrences: 1 # can only happen once per round
startAnnouncement: station-event-communication-interception
startAudio:
path: /Audio/Announcements/intercept.ogg
- type: MassHallucinationsRule # essentially (I hope) does nothing because of duration 0. it's just so that the event can complete, since removing "AlertLevelInterceptionRule" caused a problem with it
minTimeBetweenIncidents: 0.1
maxTimeBetweenIncidents: 300
maxSoundDistance: 7
sounds:
collection: Paracusia
- type: AntagSelection
definitions:
- prefRoles: [ Traitor ]
min: 1
max: 2
playerRatio: 10
mindComponents:
- type: TraitorRole
prototype: Traitor
I don't think adding null rule to solve my problem is a good idea.
MassHallucinationsRule
was used since this rule will not work for the player due to the fact that the duration of SleeperAgentsRule
= 0
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
I finished this. |
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 pull request has conflicts, please resolve those before we can evaluate the pull request. |
"fuck you" |
If you are coming back to this, leave a comment and I will re-open the PR. |
About the PR
this PR adds a
CanFalseActivate
field to theGameRuleComponent
, nuke the evilAlertLevelInterceptionRule
by moving it to a nicer place and addsCanFalseActivate = true
to the sleeping agents eventWhy / Balance
fixes part of #28016
I'm tired of two agents in every round🤏.
Technical details
I tried to implement
CanFalseActivate
at theStationEvent
level, but failed.CanFalseActivate
== a simple skip of executing game rules.Seeing the
AlertLevelInterceptionRule
made me want to cry at the amount of code for 2 separate files and hardcore “green”... and it interfered with the implementation ofCanFalseActivate
, alas.The
AlertLevelInterceptionRule
was nicely shoved intoStationEvent
the sleeping agents event collapsed due to the lack of at least 1 rule there and I gave it
MassHallucinationsRule
, which basically shouldn't work because ofduration: 0
, but in any case, aggravating paracusia due to enemy communications sounds logical to meat this moment, the event, if
CanFalseActivate = true
, throws the switch function, which with a 50% probability writes in the logs that the event triggered falsely, enrolling occurrences and skipping everything exceptStationEvent comp
.Media
Changelog
🆑