Commit Graph

284 Commits

Author SHA1 Message Date
keronshb
68de58eb66 THE WIZARD (#35406)
* Adds Survivor Antag

* Adds Survivor Role

* Adds Survivor Rule ECS, adds a survivor role event, adds make antagonist to  random global spawn spell

* Moves Survivor Ensurecomp to event handler. Makes Add Survivor Role a broadcast. Adds Survivor Component. Removes redundant briefing.

* Adds Survivor Antagonist role type for admins to keep track of this easier, adds it to Survivor.

* Adds access to survivor game rule system

* Adds Survivor Rule

* Adds end of round survivor text

* Adds end of round reporting logic. Adds logic to start the survivor rule.

* Changes desc from centcomm to shuttle

* survivor (S)

* Checks if they're alive on the shuttle instead of centcomm.

* ftl text selection based on number of survivors.

* Removed Survivor Antagonist, replaced it with Free Agent.

* Adds InvalidForGlobalSpawnSpell tag, checks for it on spawnspell, and adds it to a zombified person.

* Changes logic so we launch the game rule if it hasnt launched yet. Moves rule logic starting to server. Moved survivor rule logic out of event and into Start method.

* Fixes invalid entity issue

* Descs for Survivor Rule and Survivor comps

* Moves Survivor Rule to its own yml

* Checks for dead survivors, changes survivor checks for mind. Adds survivor comp to mind to fix any mindswap issues. Same for invalid survivor tag

* Changes shuttle xform call to just mapid

* Protoid fix

* THE WIZARD

* Wizard spawner

* adds the correct state

* Wizard preset and weight

* Fixes wizard rule

* Weight back to 100%

* Adds Random Metadata

* Wizard locs

* Puts requirements in the right place

* Adds wiz ghost spawner and mob

* wizard spawnpoint fix + shuttle mapping

* wizard loadout + fix wizard spawning + wizard random name

* comment

* Adds Wizard testing

* FIXES SHUTTLE ISSUE BASED REI

* THE WIZARD LOBBY SONG. Special thanks to song creator Chris Remo for allowing us to use this.

* Free Objective ECS + Base Free Objective

* Space Wizard Federation for Wiz Obj issuer.

* Wizard Objectives

* Moves wizard shuttle to base wizard rule. Gives Wizard their objectives. Removes WizardRule

* Renames midround to subgamemodes. Adds wizard sub game mode.

* Adds SubWizard to SubGameModesRule. Adds a SubGameMode with no wizard. Adds No SubGamemodeRule for Wizard preset

* Wizard midround event

* Fixes wizard midround

* Wizard Guidebook

* Removes todo

* Fixes text

* Removes wizard rule ECS, not needed

* Wizard jetpack

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
2025-02-25 22:34:07 -07:00
keronshb
3192914fc5 Fix/Addition - Wizard Survivor Antag Status (#35226) 2025-02-23 12:24:36 -05:00
ElectroJr
6242567aff Refactor map loading & saving 2024-12-23 02:42:17 +13:00
lzk
115b3e0519 Increase war ops evac time (#33628) 2024-12-12 21:10:20 -06:00
Winkarst
4beb1016cc Make unknown shuttle events trigger an announcement (#33450)
* Make unknown shuttle events trigger an announcement

* Call base at the end

---------

Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.co>
2024-12-06 22:39:35 +01:00
DrSmugleaf
f5d0e955e3 Fix imports 2024-11-19 21:16:49 -08:00
Jezithyr
84338686a3 Stable Merge (#33218) 2024-11-08 03:46:22 -08:00
Errant
da19abdc76 Don't show Reinforcement codewords on round end (#33181)
Don't show unused codeword sets
2024-11-05 19:18:28 +01:00
Errant
23e4f81b30 Traitor activation fix for missing PDA (#30359)
* Implant the uplink if no PDA is found

* comments

* tidy up loose ends

* Whoops usually I start with the namespace, how did I forget it, shame shame

* Consistent data type for starting TC balance, misc changes

* Implant briefing, guidebook

* Update AutoTraitor, add uplink, codeword and briefing parameters to TraitorRuleComponent,  no pda for reinforcements

* engine 5c0ce43

* pass pda to AddUplink

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* nicer string handling

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* case typo 1

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* case typo 2

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* case typo 3

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* minor layout changes

* removed redundant implant check

* minor cleanup

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2024-10-18 14:55:43 +02:00
Leon Friedrich
4e0018697f Add role prototype validation tests (#32801)
* Add role prototype validation test

* Rejig GetPrototypesWithComponent

* More tests n stuff
2024-10-14 14:05:25 +11:00
Errant
93c7bdc134 Mind Role Entities (#31318)
* Mind Role Entities wip

* headrev count fix

* silicon stuff, cleanup

* exclusive antag config, cleanup

* jobroleadd overwerite

* logging stuff

* MindHasRole cleanup, admin log stuff

* last second cleanup

* ocd

* minor cleanup

* remove createdTime datafield

* now actually using the event replacement I made for role time tracking

* weh
2024-10-10 10:48:56 +02:00
SlamBamActionman
ddaa0e83c6 Add admin log for codewords (#32531)
* initial commit

* Delta review
2024-10-09 13:55:48 +02:00
qwerltaz
7c99b5c10b fix dragon spawn location and round end summary (#31890)
* spawn dragon rule at station edge

* 2

* stuff

* fix round end summary not showing

* no invalid euid
2024-09-09 13:22:41 -06:00
Fildrance
a58252f45e feat: #26107 uplink discounts for traitors (no nukies for now) (#26297)
* feat: #26107 uplink discounts for traitors and nukies

* refactor: #26107 extracted discount label from price of StoreListingControl

* refactor: minor renaming

* refactor: parametrized adding discounts to uplink store

* fix: #26107 prevent exception on empty discountOptions

* feat: uplink now have 'Discounted' category which contains all discounted items on this session.

* after merge fixups

* rename discount categories according to common sense

* refactor: DiscountOptions is now optional (nullable) on ListingData

* add nullability check ignore for already checked listingData.DiscountOptions

* fix after merge store menu ui

* remove unused using

* final fix after merge conflicts

* [refactor]: #26107 fix variables naming in UplinkSystem

* fix: #26107 fix after merge

* refactor: #26107 now supports discountDownUntil on ListingItem, instead of % of discount

* feat: #26107 support multiple currency discount in store on side of discount message label

* refactor: #26107 extracted discounts initialization to separate system. StoreDiscountData are spread as array and not list now

* refactor: #26107 move more code from storesystem to StoreDiscountComponent

* refactor: #26107 separated StoreSystem and StoreDiscountSystem using events

* fix: #26107 placed not-nullable variable initialization in ListingData for tests

* refactor: #26107 minor renaming, xml-docs

* fix: #26107 changed most of discounts to be down to half price for balance purposes

* ids used in with discounts are now ProtoIds, dicountCategories are now prototypes, code with weights simplified

* decoupled storesystem and store discount system

* xml-docs

* refactor:  #26107 xml-doc for StoreDiscountSystem

* is now a thing (tmp)

* fix: compilation errors + StoreDiscountData.DiscountCategoryId

* refactor: rename ListingDataWithCostModifiers, fix all cost related code, enpittyfy performance, uglify uplink_catalog

* refactor: removed unused code, more StoreDiscountSystem docs, simplify code

* refactor: moved discount category logic to respective system, now creating ListingData c-tor clones all mutable fields as expected

* refactor: rename back (its not prototype)

* refactor: move ListingItemsInitializingEvent to file with handling logic

* refactor: comments for StoreBuyFinishedEvent handling, more logging

* refactor: moved StoreInitializedEvent, xml-doc

* refactor: simplify StoreDiscountSystem code  (reduce nesting) + xml-doc

* refactor: restore old listing data cost field name

* refactor: fix linter in uplink_catalog.yml

* refactor: xml-doc for ListingDataWithCostModifiers

* refactor: limit usage of ListingData in favour of ListingDataWithCostModifiers

* refactor: purged linq, removed custom datafield names, minor cleanup

* refactor: removed double-allocation on getting available listings

* refactor: StoreSystem.OnBuyRequest now uses component.FullListingsCatalog as reference point (as it was in original code)

* fix: minor discount categories on uplink items changes following design overview

* refactor: StoreBuyListingMessage now uses protoId and not whole object

* refactor: store refund and discount integration test, RefreshAllListings now translates previous cost modifiers to refreshed list, if state previous to refresh had any listing items

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2024-09-05 22:12:39 +10:00
themias
bea72106b7 Fix nuke disk erroneously being marked 'left behind' (#31602)
Fix erroneous 'disk left behind' objective
2024-08-28 14:05:04 -06:00
SlamBamActionman
61a1e89339 Add codeword highlighting (#30092)
* Added codeword highlighting

* Updated to support more codeword roles, color is set serverside

* Review feedback

* Change to a Component-based system using SessionSpecific

* Tidied up CanGetState, set Access restrictions on component

* Clean-up

* Makes the injection ignore brackets, restore some codewords, remove "Taste/Touch" from adjectives
2024-08-23 11:14:38 +02:00
Brandon Hu
0a9535e67c remove(NukeopsRuleComponent): Remove a trap from the component file (#31029)
ah
2024-08-16 00:52:36 -04:00
deltanedas
489efeb717 remove GenericAntag completely (#28218)
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-08-08 18:16:02 +10:00
SlamBamActionman
bf06d0e869 Change Thief Syndie & Chameleon kit contents, add Syndie codeword paper (#30446)
* Initial commit

* more like bYE

* Fix exception during test
2024-08-05 11:03:24 +03:00
Errant
6264a557a6 Restore the longer traitor briefing message (#30404)
* Restore the long traitor briefing

* highlights
2024-08-05 00:41:34 -04:00
IProduceWidgets
c7ff647cb3 Nukie Outpost is no longer a station map (#30090)
* I dunno, break shit I guess.

* Actually fix some shit for once.

* test flakey or me flakey?

* Test were not flakey, they just didnt make any sense anymore.

* more stationy tests

* undo abuncha shit I can set in yml instead

* forgor an assert

* unneeded usings

* 1984

* I made github angy

* yoink

* the end is never the end is never the end is never the end is never the end is never the end is never the

* Im going to commit sudoku
2024-07-21 01:26:30 -06:00
Cojoke
b57174007c Remove all Assigned Values that are Never Used (#30110)
Remove all Assigned Values that are never used
2024-07-18 20:22:23 -04:00
deltanedas
02636386b5 item toggling giga rework + full ninja refactor (#28039)
* item toggle refactoring and some new systems

* add ToggleClothing component/system

* unhardcode magboots gravity logic

* make magboots and speedboots use ItemToggle and stuff

* remove now useless clothing components

* update client/server magboots systems

* add note to use ItemToggledEvent in ToggleActionEvent doc

* refactor PowerCellDraw to use ItemToggle for ui open/close control

* add TryUseCharges, refactor charges system

* update magboot trigger code

* make borg use ItemToggle, network SelectedModule instead of now removed Activated

* add AccessToggle for borg

* the giga ninja refactor

* update ninja yml

* update ItemToggle usage for some stuff

* fix activatableui requires power

* random fixing

* yaml fixing

* nuke ItemToggleDisarmMalus

* make defib use ItemToggle

* make things that use power not turn on if missing use charge

* pro

* fix sound prediction

* bruh

* proximity detector use ItemToggle

* oop

* big idiot syndrome

* fix ninja spawn rule and make it generic

* fix ninja spawn rule yml

* move loading profiles into AntagLoadProfileRule

* more ninja refactor

* ninja yml fixes

* the dreaded copy paste ops

* remove useless NinjaRuleComponent and ue AntagSelection for greeting

* fix invisibility

* move IsCompleted to SharedObjectivesSystem

* ability fixes

* oop fix powercell instantly draining itself

* sentient speedboots gaming

* make reflect use ItemToggle

* fix other test

* loadprofilerule moved into its own pr

* remove conflict with dragon refactor

* remove all GenericAntag code from ninja

* )

* probably

* remove old enabled

* great language bravo vince

* GREAT LANGUAGE

* who made this language

* because it stinks

* reparent blood-red magboots to magboots probbbly works

* most of the review stuff

* hasGrav doesnt mean what i thought it did

* make health analyzer use itemtoggle, not fail test

* fix mag/speed boots being wacky

* UNTROLL

* add ItemToggle to the random health analyzers

* a

* remove unused obsolete borg func

* untrolling

* :trollface:

* fix test

* fix

* g

* untroll

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-07-11 15:55:56 +10:00
Jezithyr
8adcb37964 Re-enabling nukie species(except vox), added antag species blacklisting
* Revert "Make all Nukies humans (#29693)"

This reverts commit 3e3e050aaf.

* Implemented species blacklist

* Re-enabled all species as Nukies except for Vox because loadouts don't support breathing alternative gases yet.
2024-07-05 00:59:16 -07:00
Nemanja
3e3e050aaf Make all nukies humans (#29693) 2024-07-04 12:29:26 +10:00
Tayrtahn
340332cf5b Fix nukeops ending early if an operative dies at base (#29642)
Fix nukeops ending early if an operative died at base
2024-07-01 18:23:36 -04:00
slarticodefast
d62dddcfcb fix initial infected icons and add a briefing to the character menu (#29259) 2024-06-21 15:42:17 +10:00
Nemanja
5e50bd83d6 Missing meteor presets (#29044)
* add meteors into missing game presets

* changes for real

* implement code

* this too
2024-06-16 21:37:43 +02:00
deltanedas
a3a1538d32 move gamerule components to shared (#28572)
* move MinMax to shared

* cleanup MinMax

* move other ticking components to shared just because

* remove unused prototype file

* update everything to use shared components

* test

* test 2

* test 3

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-04 21:53:24 +10:00
deltanedas
16b3fb1204 LoadMapRule grid storage rework (#28210)
*
2024-06-03 20:04:19 -04:00
Plykiya
c5ff647ca6 Replace obsolete EntityWhitelist IsValid usages part 2 (#28506) 2024-06-03 17:40:03 -04:00
AJCM-git
509e3aedf7 RespawnRuleSystem tweaks. (#28528) 2024-06-02 23:28:38 -04:00
Leon Friedrich
6235fa1ac6 Content changes for entity categories PR (#27232)
* Content changes for entity categories PR

* Poke tests

* Why are tests suddenly working?
2024-06-02 14:08:15 +10:00
Nemanja
be6f55a090 Clean up store system (#28463) 2024-06-01 11:29:17 -04:00
Repo
90d3699c1d Fix gamerule display issues (#28178)
* A comprehensive rule list for joining admins and mid round command to get rule list added

* Fix up for when a rule is added vs started and some logging

* fix command help localization, fix admin flags and spam anouncement.

* Send admin message only to the joining player not all admins.

* Bit better formatting in chat box
2024-05-25 16:18:05 -04:00
deltanedas
739c81c230 move nukie profile loading into its own rule (#28208)
* move profile loading out of nukeops rule

* make BaseNukeopsRule and use AntagLoadProfileRule

* untroll

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-25 16:15:56 -04:00
deltanedas
a06ea58249 antag objective issuing refactor (#28216)
* add AntagObjectives from GenericAntag

* add AntagRandomObjectives that traitor and thief can use

* make ObjectivesSystem use initial character name which AntagSelection passes

* make thief and traitor use AntagRandomObjectives

* remove now unused locale

* make sleeper agents rule use baseTraitorRule

* restore dragon rule oop

* bandaid for genericantag

* real

* typo

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-25 16:14:48 -04:00
Kara
855234aa30 Resolve 'TransformComponent.MapPosition' is obsolete in content (#27939)
* Resolve `'TransformComponent.MapPosition' is obsolete: 'Use TransformSystem.GetMapCoordinates'` in content

* build?
2024-05-12 10:31:54 -04:00
Ed
e522bbf90d New event: Approaching unknown shuttle (#24490)
* setup codebase

* Add first shuttle

* tak

* sync striker

* sync 2

* pipipi

* Preloaded roundstart shuttles!

* Make it abstract "PreloaderGrid" not "PreloaderShuttle"

* to do

* added china cuisin shuttle

* fixes

* add disaster evacpod

* remove enemy

* final shuttles

* weight 5 -> 10

* move data to component

* remove autotrailer touching

* doc, respath

* fix frozen positioning

* fixes + cvar

* finally

* fix evacpod

* remove blacklistrules

* remove `UnknownShuttleSpawnRule`, refactor `LoadMapRule` to support preloaded grids

* use tryload

* cleanup

* fixes

* use preloadedgrid for loneops

* weight unknown shuttles differently (preliminal)

* leftover

* cleanup and raffling

* partial review

* singleton gridpreloader no station coupling

* fix grid atmoses

* `roleLoadout` support for `LoadoutComponent`, fix missing gear

* weighting changes

* init logic fix

---------

Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-05-10 04:35:59 -07:00
username
42571b12e9 Traitor objective issuers (#27855)
* the thing

* another one

---------

Co-authored-by: whateverusername0 <whateveremail>
2024-05-09 19:01:02 -07:00
Mr. 27
fe5f4162ac Prevent non-inital infected from getting the succumb to zombie action (#27820)
* b

* Update ZombieRuleSystem.cs

* hi
2024-05-09 17:45:23 -04:00
Killerqu00
7d918c95d0 Revolutionaries can now cuff command instead of killing/exiling them (#27627)
* command can now be restrained for revs victory

* headrevs still must be killed
2024-05-08 23:48:32 -07:00
Kara
aaabd5e914 Fix TryFindRandomTile grid weighting (#27724) 2024-05-06 04:25:11 -07:00
Mr. 27
96a3967c3f Change return to continue in gamerulesystem (#27656)
Update GameRuleSystem.cs
2024-05-04 13:03:56 +10:00
Mr. 27
6ecbf0a04c Fix some gamerules' round summary not working (#27654)
Update GameRuleSystem.cs
2024-05-03 20:03:52 -04:00
Leon Friedrich
8f1a44fe05 Prevent SecretRule from picking invalid presets (#27456)
* Prevent SecretRule from picking invalid presets

* remove lonely semicolon

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2024-04-29 00:00:41 -04:00
Nemanja
a0b3a6b679 fix antag bugs (#27319)
* fix antag bugs

* Update NukeopsRuleComponent.cs
2024-04-25 17:25:57 -07:00
Nemanja
161fd6c83c Mega Antag Refactor (#25786)
* Mega Antag Refactor

* last minute delta save

* more workshopping

* more shit

* ok tested this for once

* okkkkk sure

* generic delays for starting rules

* well darn

* nukies partially

* ouagh

* ballin' faded and smonkin wed

* obliterated the diff

* Spread my arms and soak up congratulations

* I've got plenty of love, but nothing to show for it

* but there’s too much sunlight
Shining on my laptop monitor, so I
Can’t see anything with any amount of clarity

* ok this junk

* OOK!

* fubar

* most of sloth's review

* oh boy

* eek

* hell yea!

* ASDFJASDJFvsakcvjkzjnhhhyh
2024-04-25 11:31:45 +10:00
Leon Friedrich
91aa16f08a Add NukeOps Test (#27207)
* Add NukeOps Test

* Update EvacShuttleTest to also check mapinit

* Update RuleMaxTimeRestartTest

* Fix cvar cleanup

* A

* Revert some changes

* comments

* Add MappingTests

* Finally fix the test

* A
2024-04-24 15:38:43 +10:00
ElectroJr
3a8249e5fd Un-revert #26994 2024-04-20 17:01:15 -04:00