From: ScarKy0 <106310278+ScarKy0@users.noreply.github.com> Date: Sun, 9 Mar 2025 20:54:10 +0000 (+0100) Subject: Slightly better letter loot table (#35748) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=469a4196e3703a31e58390e1e4b6aa360be716cc;p=space-station-14.git Slightly better letter loot table (#35748) * init * review --------- Co-authored-by: Milon --- diff --git a/Resources/Prototypes/Catalog/Fills/Books/bookshelf.yml b/Resources/Prototypes/Catalog/Fills/Books/bookshelf.yml index 7d96d6f540..b998b61be5 100644 --- a/Resources/Prototypes/Catalog/Fills/Books/bookshelf.yml +++ b/Resources/Prototypes/Catalog/Fills/Books/bookshelf.yml @@ -1,3 +1,14 @@ +- type: entity + parent: Bookshelf + id: BookshelfFilled + suffix: random filled + components: + - type: EntityTableContainerFill + containers: + storagebase: !type:NestedSelector + tableId: BookshelfEntityTable + +# Entity tables - type: entityTable id: BookshelfEntityTable table: !type:AllSelector @@ -7,64 +18,74 @@ amount: !type:RangeNumberSelector range: 0, 4 # Guidebooks - - !type:GroupSelector - children: - - id: BookBartendersManual - - id: BookChemicalCompendium - - id: BookEngineersHandbook - - id: BookHowToCookForFortySpaceman - - id: BookHowToKeepStationClean - - id: BookHowToRockAndStone - - id: BookHowToSurvive - - id: BookLeafLoversSecret - - id: BookMedicalReferenceBook - - id: BookScientistsGuidebook - - id: BookSecurity - - id: BookSpaceEncyclopedia - - id: BookSpaceLaw - - id: BookTheBookOfControl + - !type:NestedSelector + tableId: RandomGuidebookTable # Handwritten books - - !type:GroupSelector + - !type:NestedSelector rolls: !type:RangeNumberSelector range: 0, 2 - children: - - id: BookAurora - - id: BookCafe - - id: BookEarth - - id: BookFeather - - id: BookIanAntarctica - - id: BookIanArctic - - id: BookIanCity - - id: BookIanDesert - - id: BookIanLostWolfPup - - id: BookIanMountain - - id: BookIanOcean - - id: BookIanRanch - - id: BookInspiration - - id: BookJourney - - id: BookMap - - id: BookMedicalOfficer - - id: BookMorgue - - id: BookNames - - id: BookNarsieLegend - - id: BookPossum - - id: BookRufus - - id: BookSlothClownMMD - - id: BookSlothClownPranks - - id: BookSlothClownSSS - - id: BookStruck - - id: BookSun - - id: BookTemple - - id: BookTruth - - id: BookWatched - - id: BookWorld + tableId: RandomHandwrittenBookTable -- type: entity - id: BookshelfFilled - parent: Bookshelf - suffix: random filled - components: - - type: EntityTableContainerFill - containers: - storagebase: !type:NestedSelector - tableId: BookshelfEntityTable +- type: entityTable + id: RandomHandwrittenBookTable + table: !type:GroupSelector + children: + - id: BookAurora + - id: BookCafe + - id: BookEarth + - id: BookFeather + - id: BookIanAntarctica + - id: BookIanArctic + - id: BookIanCity + - id: BookIanDesert + - id: BookIanLostWolfPup + - id: BookIanMountain + - id: BookIanOcean + - id: BookIanRanch + - id: BookInspiration + - id: BookJourney + - id: BookMap + - id: BookMedicalOfficer + - id: BookMorgue + - id: BookNames + - id: BookNarsieLegend + - id: BookPossum + - id: BookRufus + - id: BookSlothClownMMD + - id: BookSlothClownPranks + - id: BookSlothClownSSS + - id: BookStruck + - id: BookSun + - id: BookTemple + - id: BookTruth + - id: BookWatched + - id: BookWorld + +- type: entityTable + id: RandomGuidebookTable + table: !type:GroupSelector + children: + - id: BookBartendersManual + - id: BookChemicalCompendium + - id: BookEngineersHandbook + - id: BookHowToCookForFortySpaceman + - id: BookHowToKeepStationClean + - id: BookHowToRockAndStone + - id: BookHowToSurvive + - id: BookLeafLoversSecret + - id: BookMedicalReferenceBook + - id: BookScientistsGuidebook + - id: BookSecurity + - id: BookSpaceEncyclopedia + - id: BookSpaceLaw + - id: BookTheBookOfControl + +- type: entityTable + id: RandomBookTable + table: !type:GroupSelector + children: + - id: BookRandomStory + - !type:NestedSelector + tableId: RandomGuidebookTable + - !type:NestedSelector + tableId: RandomHandwrittenBookTable diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/drinks_soda.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/drinks_soda.yml index 6d36fa802b..f92f675910 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/drinks_soda.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/drinks_soda.yml @@ -10,42 +10,60 @@ - state: green - sprite: Objects/Consumable/Drinks/dr_gibb.rsi state: icon - - type: RandomSpawner - prototypes: - - DrinkColaBottleFull - - DrinkSpaceMountainWindBottleFull - - DrinkSpaceUpBottleFull - - DrinkWaterBottleFull - - DrinkColaCan - - DrinkIcedTeaCan - - DrinkLemonLimeCan - - DrinkLemonLimeCranberryCan - - DrinkGrapeCan - - DrinkRootBeerCan - - DrinkSodaWaterCan - - DrinkSpaceMountainWindCan - - DrinkSpaceUpCan - - DrinkStarkistCan - - DrinkTonicWaterCan - - DrinkFourteenLokoCan - - DrinkChangelingStingCan - - DrinkDrGibbCan - - DrinkEnergyDrinkCan - - DrinkShamblersJuiceCan - - DrinkSolDryCan - - DrinkPwrGameCan - - DrinkHotCoco - - DrinkHotCoffee - - DrinkCafeLatte - - DrinkTeacup - - DrinkGreenTea - - DrinkWaterCup - - DrinkBeerCan - - DrinkWineCan - chance: 0.8 - offset: 0.0 - #rare - rarePrototypes: - - DrinkNukieCan - - DrinkLean - rareChance: 0.01 + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: RandomAllSodaTable + prob: 0.8 + +- type: entityTable + id: RandomAllSodaTable + table: !type:GroupSelector + children: + - !type:NestedSelector + tableId: RandomCommonSodaTable + weight: 0.95 + - !type:NestedSelector + tableId: RandomRareSodaTable + weight: 0.05 + +- type: entityTable + id: RandomCommonSodaTable + table: !type:GroupSelector + children: + - id: DrinkBeerCan + - id: DrinkCafeLatte + - id: DrinkChangelingStingCan + - id: DrinkColaBottleFull + - id: DrinkColaCan + - id: DrinkDrGibbCan + - id: DrinkEnergyDrinkCan + - id: DrinkFourteenLokoCan + - id: DrinkGrapeCan + - id: DrinkGreenTea + - id: DrinkHotCoco + - id: DrinkHotCoffee + - id: DrinkIcedTeaCan + - id: DrinkLemonLimeCan + - id: DrinkLemonLimeCranberryCan + - id: DrinkPwrGameCan + - id: DrinkRootBeerCan + - id: DrinkShamblersJuiceCan + - id: DrinkSodaWaterCan + - id: DrinkSolDryCan + - id: DrinkSpaceMountainWindBottleFull + - id: DrinkSpaceMountainWindCan + - id: DrinkSpaceUpBottleFull + - id: DrinkSpaceUpCan + - id: DrinkStarkistCan + - id: DrinkTeacup + - id: DrinkTonicWaterCan + - id: DrinkWaterBottleFull + - id: DrinkWaterCup + - id: DrinkWineCan + +- type: entityTable + id: RandomRareSodaTable + table: !type:GroupSelector + children: + - id: DrinkNukieCan + - id: DrinkLean diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_snacks.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_snacks.yml index 9f4b3e5983..1c42cfd298 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_snacks.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_snacks.yml @@ -11,39 +11,43 @@ - state: red - sprite: Objects/Consumable/Food/snacks.rsi state: cheesiehonkers - - type: RandomSpawner - #small item - prototypes: - - FoodSnackBoritos - - FoodSnackCheesie - - FoodSnackChips - - FoodSnackChocolate - - FoodSnackEnergy - - FoodSnackChocolateBar - - FoodSnackPopcorn - - FoodSnackRaisins - - FoodSnackSus - - FoodSnackSyndi - - FoodSnackChowMein - - FoodSnackDanDanNoodles - - FoodSnackCookieFortune - - FoodSnackNutribrick - - FoodSnackMREBrownie - - FoodFrozenSandwich - - FoodFrozenSandwichStrawberry - - FoodFrozenFreezy - - FoodFrozenSundae - - FoodFrozenCornuto - - FoodFrozenPopsicleOrange - - FoodFrozenPopsicleBerry - - FoodFrozenPopsicleJumbo - - FoodFrozenSnowcone - - FoodFrozenSnowconeBerry - - FoodFrozenSnowconeFruit - - FoodFrozenSnowconeClown - - FoodFrozenSnowconeMime - - FoodFrozenSnowconeRainbow - - FoodSnackPistachios - - FoodSnackSemki - chance: 0.8 - offset: 0.0 + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: RandomSnackTable + prob: 0.8 + +- type: entityTable + id: RandomSnackTable + table: !type:GroupSelector + children: + - id: FoodFrozenCornuto + - id: FoodFrozenFreezy + - id: FoodFrozenPopsicleBerry + - id: FoodFrozenPopsicleJumbo + - id: FoodFrozenPopsicleOrange + - id: FoodFrozenSandwich + - id: FoodFrozenSandwichStrawberry + - id: FoodFrozenSnowcone + - id: FoodFrozenSnowconeBerry + - id: FoodFrozenSnowconeClown + - id: FoodFrozenSnowconeFruit + - id: FoodFrozenSnowconeMime + - id: FoodFrozenSnowconeRainbow + - id: FoodFrozenSundae + - id: FoodSnackBoritos + - id: FoodSnackCheesie + - id: FoodSnackChips + - id: FoodSnackChocolate + - id: FoodSnackChocolateBar + - id: FoodSnackChowMein + - id: FoodSnackCookieFortune + - id: FoodSnackDanDanNoodles + - id: FoodSnackEnergy + - id: FoodSnackMREBrownie + - id: FoodSnackNutribrick + - id: FoodSnackPistachios + - id: FoodSnackPopcorn + - id: FoodSnackRaisins + - id: FoodSnackSemki + - id: FoodSnackSus + - id: FoodSnackSyndi diff --git a/Resources/Prototypes/Entities/Objects/Deliveries/deliveries_tables.yml b/Resources/Prototypes/Entities/Objects/Deliveries/deliveries_tables.yml index f0a7fc4b42..67419335d7 100644 --- a/Resources/Prototypes/Entities/Objects/Deliveries/deliveries_tables.yml +++ b/Resources/Prototypes/Entities/Objects/Deliveries/deliveries_tables.yml @@ -64,29 +64,30 @@ children: - !type:NestedSelector # Don't you love getting mailed trash? tableId: GenericTrashItems - - !type:GroupSelector - weight: 7 - children: - - id: MailRobustToolsSpam - - id: MailNanotrasenSpam - - id: MailSyndicateSpam - - id: MailScienceSpiderClanSpam - - id: MailAllAccessSpam - - id: MailCentcommRetributionSpam - - id: MailAlternativeDimensionSpam - - id: MailNarsieCultSpam - - id: MailRageCageSpam - - id: MailVoyageAdvertisementSpam - - id: MailEvilLizardSpam - - id: MailParentsNeedMoneySpam + - !type:NestedSelector + weight: 4 + tableId: SpamMailTable + - !type:NestedSelector + weight: 2 + tableId: RandomBookTable + - !type:NestedSelector + weight: 2 + tableId: RandomSnackTable + - !type:NestedSelector + weight: 2 + tableId: RandomAllSodaTable - type: entityTable # TODO: Add more variety! id: LetterUncommonEntityTable # Some more varied things, should never be more expensive than 100 spesos table: !type:GroupSelector children: - - id: MobCockroach + - !type:NestedSelector + tableId: RandomSafePillTable + - !type:NestedSelector + tableId: RandomSafeSyringeTable + - !type:NestedSelector + tableId: UncommonLetterBundleTable - id: SpaceCash100 - - id: StrangePill - id: Joint - type: entityTable # TODO: Add more variety! @@ -94,9 +95,16 @@ table: !type:GroupSelector children: - id: ResearchDisk5000 - - id: ClothingHeadHatHairflower - - id: ClothingHeadHatFlowerWreath - id: JointRainbow + - id: StrangePill + amount: !type:RangeNumberSelector + range: 1, 3 + - !type:GroupSelector + children: + - id: Brutepack + - id: Ointment + - id: Gauze + - id: Bloodpack # Packages # TODO: Currently mostly maints loot, should be updated in the future. diff --git a/Resources/Prototypes/Entities/Objects/Deliveries/letter_loot_tables.yml b/Resources/Prototypes/Entities/Objects/Deliveries/letter_loot_tables.yml new file mode 100644 index 0000000000..1bfa4e1d31 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Deliveries/letter_loot_tables.yml @@ -0,0 +1,46 @@ +# Basically all different loot tables that the mail can choose from + +# Common +- type: entityTable + id: SpamMailTable + table: !type:GroupSelector + children: + - id: MailAllAccessSpam + - id: MailAlternativeDimensionSpam + - id: MailCentcommRetributionSpam + - id: MailEvilLizardSpam + - id: MailNanotrasenSpam + - id: MailNarsieCultSpam + - id: MailParentsNeedMoneySpam + - id: MailRageCageSpam + - id: MailRobustToolsSpam + - id: MailScienceSpiderClanSpam + - id: MailSyndicateSpam + - id: MailVoyageAdvertisementSpam + +# Letter Bundles +## Basically items that should always spawn together, specific to letters +- type: entityTable + id: UncommonLetterBundleTable + table: !type:GroupSelector + children: + - !type:NestedSelector + tableId: LetterBundleDarts + - !type:NestedSelector + tableId: LetterBundleLetter + +- type: entityTable + id: LetterBundleDarts + table: !type:AllSelector + children: + - id: Dart + - id: DartBlue + - id: DartPurple + - id: DartYellow + +- type: entityTable + id: LetterBundleLetter + table: !type:AllSelector + children: + - id: Paper + - id: Pen diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml index a69d2a1587..cf0b5ee0c2 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml @@ -1044,3 +1044,37 @@ reagents: - ReagentId: Stimulants Quantity: 15 + +# Entity Tables +- type: entityTable + id: RandomSafePillTable + table: !type:GroupSelector + children: + - id: PillBicaridine + - id: PillCharcoal + - id: PillCopper + - id: PillDermaline + - id: PillDexalin + - id: PillDylovene + - id: PillHyronalin + - id: PillIron + - id: PillKelotane + - id: PillPotassiumIodide + - id: PillTricordrazine + - id: StrangePill + +- type: entityTable + id: RandomSafeSyringeTable + table: !type:GroupSelector + children: + - id: SyringeBicaridine + - id: SyringeDermaline + - id: SyringeEphedrine + - id: SyringeEthylredoxrazine + - id: SyringeHyronalin + - id: SyringeInaprovaline + - id: SyringeIpecac + - id: SyringePhalanximine + - id: SyringeSaline + - id: SyringeSigynate + - id: SyringeTranexamicAcid