]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Slightly better letter loot table (#35748)
authorScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Sun, 9 Mar 2025 20:54:10 +0000 (21:54 +0100)
committerGitHub <noreply@github.com>
Sun, 9 Mar 2025 20:54:10 +0000 (21:54 +0100)
* init

* review

---------

Co-authored-by: Milon <milonpl.git@proton.me>
Resources/Prototypes/Catalog/Fills/Books/bookshelf.yml
Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/drinks_soda.yml
Resources/Prototypes/Entities/Markers/Spawners/Random/Food_Drinks/food_snacks.yml
Resources/Prototypes/Entities/Objects/Deliveries/deliveries_tables.yml
Resources/Prototypes/Entities/Objects/Deliveries/letter_loot_tables.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml

index 7d96d6f540a4ead71d6e0b76a39c94835b1c55bc..b998b61be559eac223cd0a4d7adfaa1bd71edbcb 100644 (file)
@@ -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
       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
index 6d36fa802b0a06b300e3843f7b41ae9758f2454e..f92f6759104fbe28247679db071efbd159a9fb65 100644 (file)
       - 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
index 9f4b3e59835ca205770cd499c1bc482f72a794da..1c42cfd2984498648df84669e0cff7764b9da7cb 100644 (file)
       - 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
index f0a7fc4b4239654c1209085af69e8399cf40f3a8..67419335d74ed1674fb4ae388ff1ec9ed494ef23 100644 (file)
     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!
   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 (file)
index 0000000..1bfa4e1
--- /dev/null
@@ -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
index a69d2a15872151eec801898e303b39a9aa244fbd..cf0b5ee0c26209d182396538b3e2ff383f31b02d 100644 (file)
         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