Cherrypicks 4 (#393)

* Immovable Rod changes (#26757)

* Adds non randomized rod velocity (#27123)

* adds non randomized rod velocity

* Adds despawn suffix to despawn rod

* make fire spreading scale with mass (#27202)

* make fire spreading scale with mass

* realer

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

* lower max firestacks to 10, refactor flammable (#27159)

* lower max firestacks to 10, refactor flammable

* fix

* uncap fire stack damage, lower fire stack damage

* fix fire spread round removal (#27986)

* fix a resolve debug assert

* rewrite fire spread

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

* fire troll fix (#28034)

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Hide doafters if you're in a container (#29487)

* Hide doafters if you're in a container

* Out of the loop

---------

Co-authored-by: plykiya <plykiya@protonmail.com>

* Add ghost role raffles (#26629)

* Add ghost role raffles

* GRR: Fix dialogue sizing, fix merge

* GRR: Add raffle deciders (winner picker)

* GRR: Make settings prototype based with option to override

* GRR: Use Raffles folder and namespace

* GRR: DataFieldify and TimeSpanify

* GRR: Don't actually DataFieldify HashSet<ICommonSession>s

* GRR: add GetGhostRoleCount() + docs

* update engine on branch

* Ghost role raffles: docs, fix window size, cleanup, etc

* GRR: Admin UI

* GRR: Admin UI: Display initial/max/ext of selected raffle settings proto

* GRR: Make a ton of roles raffled

* Make ERT use short raffle timer (#27830)

Co-authored-by: plykiya <plykiya@protonmail.com>

* gives loneops a proper ghost role raffle (#27841)

* shorten short raffle (#28685)

* - fix: Conflicts.

* - fix.

---------

Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: plykiya <plykiya@protonmail.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: HS <81934438+HolySSSS@users.noreply.github.com>
This commit is contained in:
Aviu00
2024-06-29 20:02:26 +00:00
committed by GitHub
parent 21197b4d40
commit 8922181b84
56 changed files with 1317 additions and 140 deletions

View File

@@ -22,6 +22,17 @@ ghost-target-window-current-button = Warp: {$name}
ghost-target-window-warp-to-most-followed = Warp to Most Followed
ghost-roles-window-title = Ghost Roles
ghost-roles-window-join-raffle-button = Join raffle
ghost-roles-window-raffle-in-progress-button =
Join raffle ({$time} left, { $players ->
[one] {$players} player
*[other] {$players} players
})
ghost-roles-window-leave-raffle-button =
Leave raffle ({$time} left, { $players ->
[one] {$players} player
*[other] {$players} players
})
ghost-roles-window-request-role-button = Request
ghost-roles-window-request-role-button-timer = Request ({$time}s)
ghost-roles-window-follow-role-button = Follow

View File

@@ -8,6 +8,8 @@
name: ghost-role-information-rat-king-name
description: ghost-role-information-rat-king-description
rules: ghost-role-information-rat-king-rules
raffle:
settings: default
- type: GhostRoleMobSpawner
prototype: MobRatKing
- type: Sprite
@@ -27,6 +29,8 @@
name: ghost-role-information-remilia-name
description: ghost-role-information-remilia-description
rules: ghost-role-information-remilia-rules
raffle:
settings: short
- type: GhostRoleMobSpawner
prototype: MobBatRemilia
- type: Sprite
@@ -46,6 +50,8 @@
name: ghost-role-information-cerberus-name
description: ghost-role-information-cerberus-description
rules: ghost-role-information-cerberus-rules
raffle:
settings: short
- type: GhostRoleMobSpawner
prototype: MobCorgiCerberus
- type: Sprite
@@ -64,6 +70,8 @@
components:
- type: GhostRole
rules: ghost-role-information-nukeop-rules
raffle:
settings: default
- type: GhostRoleMobSpawner
prototype: MobHumanNukeOp
- type: Sprite
@@ -84,6 +92,8 @@
name: ghost-role-information-loneop-name
description: ghost-role-information-loneop-description
rules: ghost-role-information-loneop-rules
raffle:
settings: default
- type: GhostRoleMobSpawner
prototype: MobHumanLoneNuclearOperative
- type: Sprite
@@ -104,6 +114,8 @@
name: ghost-role-information-space-dragon-name
description: ghost-role-information-space-dragon-description
rules: ghost-role-component-default-rules
raffle:
settings: default
- type: GhostRoleMobSpawner
prototype: MobDragon
- type: Sprite
@@ -122,6 +134,8 @@
name: ghost-role-information-space-ninja-name
description: ghost-role-information-space-ninja-description
rules: ghost-role-information-space-ninja-rules
raffle:
settings: default
- type: GhostRoleMobSpawner
prototype: MobHumanSpaceNinja
- type: Sprite

View File

@@ -1318,6 +1318,8 @@
makeSentient: true
name: ghost-role-information-monkey-name
description: ghost-role-information-monkey-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [SyndicateOperativeGearMonkey]
@@ -2224,6 +2226,8 @@
makeSentient: true
name: ghost-role-information-giant-spider-name
description: ghost-role-information-giant-spider-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: GlobalAntagonist
antagonistPrototype: globalAntagonistSpider
@@ -2762,6 +2766,8 @@
allowMovement: true
description: ghost-role-information-SyndiCat-description
rules: ghost-role-information-SyndiCat-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: AutoImplant
implants:

View File

@@ -10,6 +10,8 @@
makeSentient: true
name: ghost-role-information-behonker-name
description: ghost-role-information-behonker-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: HTN
rootTask:

View File

@@ -183,6 +183,8 @@
makeSentient: true
name: ghost-role-information-sentient-carp-name
description: ghost-role-information-sentient-carp-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: HTN
rootTask:

View File

@@ -232,6 +232,8 @@
components:
- type: GhostRole
description: ghost-role-information-angry-slimes-description
raffle:
settings: short
- type: NpcFactionMember
factions:
- SimpleHostile

View File

@@ -12,6 +12,8 @@
makeSentient: true
name: ghost-role-information-hellspawn-name
description: ghost-role-information-hellspawn-description
raffle:
settings: default
- type: RotationVisuals
defaultRotation: 90
horizontalRotation: 90

View File

@@ -90,6 +90,8 @@
name: ghost-role-information-rat-king-name
description: ghost-role-information-rat-king-description
rules: ghost-role-information-rat-king-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Tag
tags:

View File

@@ -56,6 +56,8 @@
name: ghost-role-information-revenant-name
description: ghost-role-information-revenant-description
rules: ghost-role-information-revenant-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Revenant
malfunctionWhitelist:

View File

@@ -151,6 +151,8 @@
makeSentient: true
name: ghost-role-information-honkbot-name
description: ghost-role-information-honkbot-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: InteractionPopup
interactSuccessString: petting-success-honkbot
@@ -176,6 +178,8 @@
makeSentient: true
name: ghost-role-information-jonkbot-name
description: ghost-role-information-jonkbot-description
raffle:
settings: default
- type: InteractionPopup
interactSuccessSound:
path: /Audio/Items/brokenbikehorn.ogg
@@ -312,6 +316,8 @@
makeSentient: true
name: ghost-role-information-mimebot-name
description: ghost-role-information-mimebot-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: InteractionPopup
interactSuccessString: petting-success-mimebot

View File

@@ -119,6 +119,8 @@
makeSentient: true
name: ghost-role-information-slimes-name
description: ghost-role-information-slimes-description
raffle:
settings: short
- type: Speech
speechVerb: Slime
speechSounds: Slime
@@ -148,6 +150,8 @@
- SimpleHostile
- type: GhostRole
description: ghost-role-information-angry-slimes-description
raffle:
settings: short
- type: GlobalAntagonist
antagonistPrototype: globalAntagonistSlime
@@ -185,6 +189,8 @@
- SimpleHostile
- type: GhostRole
description: ghost-role-information-angry-slimes-description
raffle:
settings: short
- type: GlobalAntagonist
antagonistPrototype: globalAntagonistSlime
@@ -222,5 +228,7 @@
- SimpleHostile
- type: GhostRole
description: ghost-role-information-angry-slimes-description
raffle:
settings: short
- type: GlobalAntagonist
antagonistPrototype: globalAntagonistSlime

View File

@@ -104,6 +104,8 @@
name: ghost-role-information-xeno-name
description: ghost-role-information-xeno-description
rules: ghost-role-information-xeno-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: TypingIndicator
proto: alien

View File

@@ -14,9 +14,11 @@
makeSentient: true
name: ghost-role-information-space-dragon-name
description: ghost-role-information-space-dragon-description
raffle:
settings: default
- type: SlowOnDamage
speedModifierThresholds:
270: 0.7
400: 0.7
- type: GhostTakeoverAvailable
- type: HTN
rootTask:
@@ -164,6 +166,8 @@
components:
- type: GhostRole
description: ghost-role-information-space-dragon-dungeon-description
raffle:
settings: short
- type: MobThresholds
thresholds:
0: Alive

View File

@@ -44,6 +44,8 @@
name: ghost-role-information-cerberus-name
description: ghost-role-information-cerberus-description
rules: ghost-role-information-cerberus-rules
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: MeleeWeapon
altDisarm: false

View File

@@ -13,6 +13,8 @@
makeSentient: true
name: ghost-role-information-guardian-name
description: ghost-role-information-guardian-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Input
context: "human"
@@ -119,6 +121,8 @@
makeSentient: true
name: ghost-role-information-holoparasite-name
description: ghost-role-information-holoparasite-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: NameIdentifier
group: Holoparasite
@@ -149,6 +153,8 @@
makeSentient: true
name: ghost-role-information-ifrit-name
description: ghost-role-information-ifrit-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: RandomSprite
available:
@@ -175,6 +181,8 @@
makeSentient: true
name: ghost-role-information-holoclown-name
description: ghost-role-information-holoclown-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: NameIdentifier
group: Holoparasite

View File

@@ -41,6 +41,8 @@
- type: GhostRole
name: ghost-role-information-Death-Squad-name
description: ghost-role-information-Death-Squad-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ DeathSquadGear ]
@@ -78,6 +80,8 @@
- type: GhostRole
name: ghost-role-information-ert-leader-name
description: ghost-role-information-ert-leader-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ERTLeaderGear ]
@@ -108,6 +112,8 @@
- type: GhostRole
name: ghost-role-information-ert-leader-name
description: ghost-role-information-ert-leader-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ERTLeaderGearEVA ]
@@ -130,6 +136,8 @@
- type: GhostRole
name: ghost-role-information-ert-leader-name
description: ghost-role-information-ert-leader-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ERTLeaderGearEVALecter ]
@@ -161,6 +169,8 @@
- type: GhostRole
name: ghost-role-information-ert-chaplain-name
description: ghost-role-information-ert-chaplain-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: RandomMetadata
nameSegments:
@@ -190,6 +200,8 @@
- type: GhostRole
name: ghost-role-information-ert-chaplain-name
description: ghost-role-information-ert-chaplain-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ERTChaplainGearEVA ]
@@ -221,6 +233,8 @@
- type: GhostRole
name: ghost-role-information-ert-janitor-name
description: ghost-role-information-ert-janitor-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: RandomMetadata
nameSegments:
@@ -250,6 +264,8 @@
- type: GhostRole
name: ghost-role-information-ert-janitor-name
description: ghost-role-information-ert-janitor-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ERTJanitorGearEVA ]
@@ -281,6 +297,8 @@
- type: GhostRole
name: ghost-role-information-ert-engineer-name
description: ghost-role-information-ert-engineer-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: RandomMetadata
nameSegments:
@@ -310,6 +328,8 @@
- type: GhostRole
name: ghost-role-information-ert-engineer-name
description: ghost-role-information-ert-engineer-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ERTEngineerGearEVA ]
@@ -341,6 +361,8 @@
- type: GhostRole
name: ghost-role-information-ert-security-name
description: ghost-role-information-ert-security-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: RandomMetadata
nameSegments:
@@ -370,6 +392,8 @@
- type: GhostRole
name: ghost-role-information-ert-security-name
description: ghost-role-information-ert-security-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ERTSecurityGearEVA ]
@@ -391,6 +415,8 @@
- type: GhostRole
name: ghost-role-information-ert-security-name
description: ghost-role-information-ert-security-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ERTSecurityGearEVALecter ]
@@ -422,6 +448,8 @@
- type: GhostRole
name: ghost-role-information-ert-medical-name
description: ghost-role-information-ert-medical-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: RandomMetadata
nameSegments:
@@ -451,6 +479,8 @@
- type: GhostRole
name: ghost-role-information-ert-medical-name
description: ghost-role-information-ert-medical-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ ERTMedicalGearEVA ]
@@ -480,6 +510,8 @@
- type: GhostRole
name: ghost-role-information-cburn-agent-name
description: ghost-role-information-cburn-agent-description
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: RandomMetadata
nameSegments:
@@ -507,6 +539,8 @@
- type: GhostRole
name: ghost-role-information-centcom-official-name
description: ghost-role-information-centcom-official-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [ CentcomGear ]
@@ -569,5 +603,7 @@
- type: GhostRole
name: ghost-role-information-cluwne-name
description: ghost-role-information-cluwne-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Cluwne

View File

@@ -17,6 +17,8 @@
- type: GhostRole
name: ghost-role-information-skeleton-pirate-name
description: ghost-role-information-skeleton-pirate-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [PirateGear]
@@ -31,6 +33,8 @@
- type: GhostRole
name: ghost-role-information-skeleton-biker-name
description: ghost-role-information-skeleton-biker-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [SkeletonBiker]
@@ -44,6 +48,8 @@
- type: GhostRole
name: ghost-role-information-closet-skeleton-name
description: ghost-role-information-closet-skeleton-description
raffle:
settings: default
- type: GhostTakeoverAvailable
- type: Loadout
prototypes: [LimitedPassengerGear]

View File

@@ -192,7 +192,7 @@
canResistFire: true
damage: #per second, scales with number of fire 'stacks'
types:
Heat: 3
Heat: 1.5
- type: FireVisuals
sprite: Mobs/Effects/onfire.rsi
normalState: Generic_mob_burning

View File

@@ -810,6 +810,8 @@
allowMovement: true
description: ghost-role-information-BreadDog-description
rules: ghost-role-information-BreadDog-rules
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: BarkAccent
- type: Speech
@@ -834,4 +836,4 @@
hidden: true
damage:
groups:
Brute: 1
Brute: 1

View File

@@ -672,6 +672,8 @@
allowMovement: true
description: ghost-role-information-Cak-description
rules: ghost-role-information-Cak-rules
raffle:
settings: short
- type: GhostTakeoverAvailable
- type: OwOAccent
- type: Speech

View File

@@ -12,6 +12,8 @@
name: ghost-role-information-syndicate-reinforcement-name
description: ghost-role-information-syndicate-reinforcement-description
rules: ghost-role-information-syndicate-reinforcement-rules
raffle:
settings: default
- type: GhostRoleMobSpawner
prototype: MobHumanSyndicateAgent
- type: EmitSoundOnUse
@@ -37,6 +39,8 @@
name: ghost-role-information-syndicate-monkey-reinforcement-name
description: ghost-role-information-syndicate-monkey-reinforcement-description
rules: ghost-role-information-syndicate-monkey-reinforcement-rules
raffle:
settings: default
- type: GhostRoleMobSpawner
prototype: MobMonkeySyndicateAgent
@@ -59,5 +63,7 @@
name: Syndicate Assault Cyborg
description: Nuclear operatives needs reinforcements. You, a cold silicon killing machine, will help them.
rules: Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them.
raffle:
settings: default
- type: GhostRoleMobSpawner
prototype: PlayerBorgSyndicateAssaultBattery

View File

@@ -11,8 +11,6 @@
state: icon
noRot: false
- type: ImmovableRod
- type: TimedDespawn
lifetime: 30.0
- type: Physics
bodyType: Dynamic
linearDamping: 0
@@ -36,8 +34,16 @@
location: immovable rod
- type: entity
id: ImmovableRodDespawn
suffix: Despawn
parent: ImmovableRod
components:
- type: TimedDespawn
lifetime: 30.0
- type: entity
id: ImmovableRodSlow
parent: ImmovableRodDespawn
suffix: Slow
components:
- type: ImmovableRod
@@ -45,7 +51,7 @@
maxSpeed: 5
- type: entity
parent: ImmovableRod
parent: ImmovableRodDespawn
id: ImmovableRodKeepTiles
suffix: Keep Tiles
components:
@@ -53,6 +59,33 @@
destroyTiles: false
hitSoundProbability: 1.0
# For Wizard Polymorph
- type: entity
parent: ImmovableRod
id: ImmovableRodWizard
suffix: Wizard
components:
- type: ImmovableRod
minSpeed: 35
destroyTiles: false
randomizeVelocity: false
shouldGib: false
damage:
types:
Blunt: 200
- type: MovementIgnoreGravity
gravityState: true
- type: InputMover
- type: MovementSpeedModifier
weightlessAcceleration: 5
weightlessModifier: 2
weightlessFriction: 0
friction: 0
frictionNoInput: 0
- type: CanMoveInAir
- type: MovementAlwaysTouching
- type: NoSlip
- type: entity
parent: ImmovableRodKeepTiles
id: ImmovableRodKeepTilesStill

View File

@@ -0,0 +1,3 @@
- type: ghostRoleRaffleDecider
id: default
decider: !type:RngGhostRoleRaffleDecider {}

View File

@@ -0,0 +1,15 @@
# for important antag roles (nukie reinforcements, ninja, etc.)
- type: ghostRoleRaffleSettings
id: default
settings:
initialDuration: 30
joinExtendsDurationBy: 10
maxDuration: 90
# for roles that don't matter too much or are available plentifully (e.g. space carp)
- type: ghostRoleRaffleSettings
id: short
settings:
initialDuration: 10
joinExtendsDurationBy: 2
maxDuration: 15

View File

@@ -26,6 +26,8 @@
name: wizard spawn point (ghost role)
components:
- type: GhostRole
raffle:
settings: default
- type: GhostRoleMobSpawner
prototype: MobHumanSpaceWiz
- type: Sprite