From af08dd9c0a850b863cf559ec802fc495eb5a8f8f Mon Sep 17 00:00:00 2001 From: Whatstone Date: Tue, 4 Jun 2024 16:07:34 -0400 Subject: [PATCH 01/33] Mail table, system for smoke prank --- .../Components/MailTeleporterComponent.cs | 2 +- .../_NF/Mail/DelayedItemComponent.cs | 17 + Content.Server/_NF/Mail/DelayedItemSystem.cs | 72 ++ .../Prototypes/Nyanotrasen/mailDeliveries.yml | 1 + .../_NF/Catalog/Fills/Boxes/general.yml | 117 ++ Resources/Prototypes/_NF/Mail/mail.yml | 1013 +++++++++++++++++ .../Prototypes/_NF/Mail/mailDeliveries.yml | 92 ++ .../_NF/Mail/mail_specific_items.yml | 315 +++++ 8 files changed, 1628 insertions(+), 1 deletion(-) create mode 100644 Content.Server/_NF/Mail/DelayedItemComponent.cs create mode 100644 Content.Server/_NF/Mail/DelayedItemSystem.cs create mode 100644 Resources/Prototypes/_NF/Mail/mail.yml create mode 100644 Resources/Prototypes/_NF/Mail/mailDeliveries.yml create mode 100644 Resources/Prototypes/_NF/Mail/mail_specific_items.yml diff --git a/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs index cec1f845121..37c8b70227d 100644 --- a/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs +++ b/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs @@ -28,7 +28,7 @@ public sealed partial class MailTeleporterComponent : Component /// teleporter can deliver. /// [DataField("mailPool")] - public string MailPool = "RandomMailDeliveryPool"; + public string MailPool = "RandomNFMailDeliveryPool"; // Frontier: use our own mail pool (TODO: migrate to frontier.yml instance?) /// /// How many mail candidates do we need per actual delivery sent when diff --git a/Content.Server/_NF/Mail/DelayedItemComponent.cs b/Content.Server/_NF/Mail/DelayedItemComponent.cs new file mode 100644 index 00000000000..de5184bb13a --- /dev/null +++ b/Content.Server/_NF/Mail/DelayedItemComponent.cs @@ -0,0 +1,17 @@ +namespace Content.Server.Mail +{ + /// + /// A placeholder for another entity, spawned when dropped or placed in someone's hands. + /// Useful for storing instant effect entities, e.g. smoke, in the mail. + /// + [RegisterComponent] + public sealed partial class DelayedItemComponent : Component + { + /// + /// The entity to replace this when opened or dropped. + /// + [ViewVariables(VVAccess.ReadWrite)] + [DataField("item")] + public string Item = "None"; + } +} diff --git a/Content.Server/_NF/Mail/DelayedItemSystem.cs b/Content.Server/_NF/Mail/DelayedItemSystem.cs new file mode 100644 index 00000000000..c32edfb9ee9 --- /dev/null +++ b/Content.Server/_NF/Mail/DelayedItemSystem.cs @@ -0,0 +1,72 @@ +using Content.Shared.Damage; +using Content.Shared.Hands; +using Robust.Shared.Containers; + +namespace Content.Server.Mail +{ + /// + /// A placeholder for another entity, spawned when dropped or placed in someone's hands. + /// Useful for storing instant effect entities, e.g. smoke, in the mail. + /// + public sealed class DelayedItemSystem : EntitySystem + { + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnDropAttempt); + SubscribeLocalEvent(OnHandEquipped); + SubscribeLocalEvent(OnDamageChanged); + //SubscribeLocalEvent(OnInsertedIntoContainer); + SubscribeLocalEvent(OnRemovedFromContainer); + } + + /// + /// MoveEvent handler - item has been dropped or placed on the ground, replace with delayed item. + /// + private void OnRemovedFromContainer(EntityUid uid, DelayedItemComponent component, ContainerModifiedMessage args) + { + ReplaceItemInContainer(uid, component, args.Container); + } + + /// + /// HandSelectedEvent handler - item has put into a player's hand, replace with delayed item. + /// + private void OnHandEquipped(EntityUid uid, DelayedItemComponent component, EquippedHandEvent args) + { + //ReplaceItem(uid, component); + DeleteEntity(uid); + } + + private void OnDropAttempt(EntityUid uid, DelayedItemComponent component, DropAttemptEvent args) + { + //ReplaceItem(uid, component); + DeleteEntity(uid); + } + + /// + /// HandSelectedEvent handler - item has put into a player's hand, replace with delayed item. + /// + private void OnDamageChanged(EntityUid uid, DelayedItemComponent component, DamageChangedEvent args) + { + //ReplaceItem(uid, component); + Spawn(component.Item, Transform(uid).Coordinates); + EntityManager.DeleteEntity(uid); + } + + /// + /// Replacement mechanism. Delays spawning a particular item, deletes the delaying component. + /// + private void ReplaceItemInContainer(EntityUid uid, DelayedItemComponent component, BaseContainer container) + { + //EntityManager.SpawnInContainerOrDrop(component.Item, container.Owner, container.ID, Transform(uid)); + //EntityManager.Spawn(component.Item, Transform(uid).Coordinates); + Spawn(component.Item, Transform(uid).Coordinates); + } + + private void DeleteEntity(EntityUid uid) + { + EntityManager.DeleteEntity(uid); + } + } +} diff --git a/Resources/Prototypes/Nyanotrasen/mailDeliveries.yml b/Resources/Prototypes/Nyanotrasen/mailDeliveries.yml index 9f4610aa89e..d276632c873 100644 --- a/Resources/Prototypes/Nyanotrasen/mailDeliveries.yml +++ b/Resources/Prototypes/Nyanotrasen/mailDeliveries.yml @@ -1,3 +1,4 @@ +# Frontier: no longer used, look for RandomNFMailDeliveryPool - type: mailDeliveryPool id: RandomMailDeliveryPool everyone: diff --git a/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml index ce91b344011..b4f093f6f74 100644 --- a/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml @@ -142,3 +142,120 @@ whitelist: components: - LightBulb + +- type: entity + name: advanced component variety pack + parent: BoxCardboard + id: BoxT2ComponentsAssorted + description: A box of various advanced components. + components: + - type: StorageFill + contents: + - id: AdvancedCapacitorStockPart + amount: 4 + - id: AdvancedManipulatorStockPart + amount: 2 + - id: AdvancedMatterBinStockPart + amount: 2 + # No whitelist - no tags for matter bins or manipulators, and no inventory compression to cheese + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + - type: Sprite + layers: + - state: box + +- type: entity + name: super component variety pack + parent: BoxCardboard + id: BoxT3ComponentsAssorted + description: A box of various super components. + components: + - type: StorageFill + contents: + - id: SuperCapacitorStockPart + amount: 4 + - id: SuperManipulatorStockPart + amount: 2 + - id: SuperMatterBinStockPart + amount: 2 + # No whitelist - no tags for matter bins or manipulators, and no inventory compression to cheese + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + - type: Sprite + layers: + - state: box + +- type: entity + name: bluespace component variety pack + parent: BoxCardboard + id: BoxT4ComponentsAssorted + description: A box of various bluespace components. Where'd you find this? + components: + - type: StorageFill + contents: + - id: QuadraticCapacitorStockPart + amount: 4 + - id: QuadraticManipulatorStockPart + amount: 2 + - id: QuadraticMatterBinStockPart + amount: 2 + # No whitelist - no tags for matter bins or manipulators, and no inventory compression to cheese + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + - type: Sprite + layers: + - state: box + +- type: entity + name: scented soap sampler pack + parent: BoxCardboard + id: BoxSoapsAssorted + description: A box of various scented soaps. Ooh, lavender. + components: + - type: StorageFill + contents: + - id: SoapNT + amount: 1 + - id: Soap + amount: 1 + - id: SoapHomemade + amount: 1 + - id: SoapDeluxe + amount: 1 + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + - type: Sprite + layers: + - state: box + +- type: entity + name: scented soap sampler pack + parent: BoxCardboard + id: BoxSoapsAssortedOmega + description: A box of various scented soaps. Ooh, bluespace. + components: + - type: StorageFill + contents: + - id: SoapNT + amount: 1 + - id: SoapOmega + amount: 1 + - id: SoapHomemade + amount: 1 + - id: SoapDeluxe + amount: 1 + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + - type: Sprite + layers: + - state: box diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml new file mode 100644 index 00000000000..9015a50708d --- /dev/null +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -0,0 +1,1013 @@ +# Altered Nyano mail tables +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFAlcohol + suffix: alcohol, extended + isFragile: true + components: + - type: Mail + contents: + - id: DrinkAbsintheBottleFull + orGroup: Drink + - id: DrinkBlueCuracaoBottleFull + orGroup: Drink + - id: DrinkCoffeeLiqueurBottleFull + orGroup: Drink + - id: DrinkGinBottleFull + orGroup: Drink + - id: DrinkMelonLiquorBottleFull + orGroup: Drink + - id: DrinkRumBottleFull + orGroup: Drink + - id: DrinkTequilaBottleFull + orGroup: Drink + - id: DrinkVermouthBottleFull + orGroup: Drink + - id: DrinkVodkaBottleFull + orGroup: Drink + - id: DrinkWhiskeyBottleFull + orGroup: Drink + - id: DrinkWineBottleFull + orGroup: Drink + - id: DrinkChampagneBottleFull + orGroup: Drink + prob: 0.5 + - id: DrinkGildlagerBottleFull + orGroup: Drink + prob: 0.5 + - id: DrinkPatronBottleFull + orGroup: Drink + prob: 0.5 + - id: DrinkGlass + amount: 2 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFBible + suffix: bible, random + components: + - type: Mail + contents: + - id: Bible + orGroup: Book + prob: 0.9 + - id: Weejurnum + orGroup: Book + prob: 0.1 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFBikeHorn + suffix: bike horn, random + components: + - type: Mail + contents: + - id: BikeHorn + orGroup: Horn + prob: 0.75 + - id: CluwneHorn + orGroup: Horn + prob: 0.25 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCake + suffix: cake, extended + components: + - type: Mail + isFragile: true + isPriority: true + contents: + - id: FoodCakeApple + orGroup: Cake + - id: FoodCakeBirthday + orGroup: Cake + - id: FoodCakeBlueberry + orGroup: Cake + - id: FoodCakeCarrot + orGroup: Cake + - id: FoodCakeCheese + orGroup: Cake + - id: FoodCakeChocolate + orGroup: Cake + - id: FoodCakeChristmas + orGroup: Cake + - id: FoodCakeClown + orGroup: Cake + - id: FoodCakeLemon + orGroup: Cake + - id: FoodCakeLime + orGroup: Cake + - id: FoodCakeOrange + orGroup: Cake + - id: FoodCakePumpkin + orGroup: Cake + - id: FoodCakeVanilla + orGroup: Cake + # Uncommon + - id: FoodMothMothmallow + orGroup: Cake + prob: 0.5 + - id: FoodCakeSlime + orGroup: Cake + prob: 0.5 + # Rare + - id: FoodCakeLemoon + orGroup: Cake + prob: 0.25 + - id: FoodCakeSuppermatter + orGroup: Cake + prob: 0.25 + - id: FoodCakeBrain + orGroup: Cake + prob: 0.25 + # Ultra rare + - id: FoodCakeSpaceman + orGroup: Cake + prob: 0.05 + - id: KnifePlastic + - id: ForkPlastic + amount: 2 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCallForHelp + suffix: call-for-help + components: + - type: Mail + contents: + - id: PaperMailNFCallForHelp1 + orGroup: Paper + - id: PaperMailNFCallForHelp2 + orGroup: Paper + - id: PaperMailNFCallForHelp3 + orGroup: Paper + - id: PaperMailNFCallForHelp4 + orGroup: Paper + - id: PaperMailNFCallForHelp5 + orGroup: Paper + - id: FlashlightLantern + orGroup: Gift + - id: Crowbar + orGroup: Gift + prob: 0.5 + - id: CrowbarRed + orGroup: Gift + prob: 0.5 + - id: ClothingMaskGas + orGroup: Gift + - id: WeaponFlareGun + orGroup: Gift + prob: 0.25 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCheese + suffix: cheese, extended + components: + - type: Mail + isFragile: true + isPriority: true + contents: + - id: FoodCheese + orGroup: Cheese + prob: 0.5 + - id: FoodChevre + orGroup: Cheese + prob: 0.5 + - id: KnifePlastic + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCigarettes + suffix: cigs, random + components: + - type: Mail + contents: + - id: CigPackBlack + orGroup: Cigs + - id: CigPackBlue + orGroup: Cigs + - id: CigPackGreen + orGroup: Cigs + - id: CigPackRed + orGroup: Cigs + - id: CheapLighter + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFGoldCigars + suffix: cigars, premium + components: + - type: Mail + contents: + - id: CigarGoldCase + orGroup: Cigars + - id: FlippoLighter + orGroup: Lighter + prob: 0.95 + - id: FlippoEngravedLighter + orGroup: Lighter + prob: 0.05 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCookies + suffix: cookies, random + components: + - type: Mail + # What, you want to eat stale cookies? + isPriority: true + contents: + # Cookie 1 + - id: FoodBakedCookie + orGroup: Cookie1 + - id: FoodBakedCookieOatmeal + orGroup: Cookie1 + - id: FoodBakedCookieRaisin + orGroup: Cookie1 + - id: FoodBakedCookieSugar + orGroup: Cookie1 + # Cookie 2 + - id: FoodBakedCookie + orGroup: Cookie2 + - id: FoodBakedCookieOatmeal + orGroup: Cookie2 + - id: FoodBakedCookieRaisin + orGroup: Cookie2 + - id: FoodBakedCookieSugar + orGroup: Cookie2 + # Cookie 3 + - id: FoodBakedCookie + orGroup: Cookie3 + - id: FoodBakedCookieOatmeal + orGroup: Cookie3 + - id: FoodBakedCookieRaisin + orGroup: Cookie3 + - id: FoodBakedCookieSugar + orGroup: Cookie3 + # Cookie 4 + - id: FoodBakedCookie + orGroup: Cookie4 + - id: FoodBakedCookieOatmeal + orGroup: Cookie4 + - id: FoodBakedCookieRaisin + orGroup: Cookie4 + - id: FoodBakedCookieSugar + orGroup: Cookie4 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFMoney + suffix: money, extended + components: + - type: Mail + contents: + # Expected value: 1955 spesos + - id: SpaceCash100 + orGroup: Cash + prob: 0.05 + - id: SpaceCash500 + orGroup: Cash + prob: 0.1 + - id: SpaceCash1000 + orGroup: Cash + prob: 0.4 + - id: SpaceCash2500 + orGroup: Cash + prob: 0.3 + - id: SpaceCash5000 + orGroup: Cash + prob: 0.15 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFMuffins + suffix: muffins, random + components: + - type: Mail + isPriority: true + contents: + # Muffin 1 + - id: FoodBakedMuffinBerry + orGroup: Muffin1 + - id: FoodBakedMuffinCherry + orGroup: Muffin1 + - id: FoodBakedMuffinBluecherry + orGroup: Muffin1 + - id: FoodBakedMuffin + orGroup: Muffin1 + # Muffin 2 + - id: FoodBakedMuffinBerry + orGroup: Muffin2 + - id: FoodBakedMuffinCherry + orGroup: Muffin2 + - id: FoodBakedMuffinBluecherry + orGroup: Muffin2 + - id: FoodBakedMuffin + orGroup: Muffin2 + # Muffin 3 + - id: FoodBakedMuffinBerry + orGroup: Muffin3 + - id: FoodBakedMuffinCherry + orGroup: Muffin3 + - id: FoodBakedMuffinBluecherry + orGroup: Muffin3 + - id: FoodBakedMuffin + orGroup: Muffin3 + + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFPlushie + suffix: plushie, extended + components: + - type: Mail + contents: + # These are all grouped up now to guarantee at least one item received. + # The downside is you're not going to get half a dozen plushies anymore. + - id: PlushieBee + orGroup: Plushie + - id: PlushieRGBee + prob: 0.5 + orGroup: Plushie + - id: PlushieNuke + orGroup: Plushie + - id: PlushieRouny + orGroup: Plushie + - id: PlushieLizard + orGroup: Plushie + - id: PlushieSpaceLizard + orGroup: Plushie + - id: PlushieRatvar + orGroup: Plushie + - id: PlushieNar + orGroup: Plushie + - id: PlushieCarp + orGroup: Plushie + - id: PlushieSlime + orGroup: Plushie + - id: PlushieSnake + orGroup: Plushie + - id: PlushieMoffRandom + orGroup: Plushie + - id: PlushieMoff + prob: 0.5 + orGroup: Plushie + - id: PlushieMoffsician + prob: 0.5 + orGroup: Plushie + - id: PlushieMoffbar + prob: 0.5 + orGroup: Plushie + # Rare loot, drops should be special. + - id: PlushieSlips + prob: 0.05 + orGroup: Plushie + - id: PlushieJester + prob: 0.05 + orGroup: Plushie + - id: PlushieTrystan + prob: 0.05 + orGroup: Plushie + +# Random snacks, replaces MailChocolate (lousy animal organs) +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSnacks + suffix: snacks, random + components: + - type: Mail + contents: + # Snack 1 + - id: FoodSnackChocolate + orGroup: Snack1 + - id: FoodSnackPopcorn + orGroup: Snack1 + - id: FoodSnackChips + orGroup: Snack1 + - id: FoodSnackBoritos + orGroup: Snack1 + - id: FoodSnackSus + orGroup: Snack1 + - id: FoodSnackPistachios + orGroup: Snack1 + - id: FoodSnackRaisins + orGroup: Snack1 + - id: FoodSnackCheesie + orGroup: Snack1 + - id: FoodSnackEnergy + orGroup: Snack1 + - id: FoodSnackCnDs + orGroup: Snack1 + - id: FoodSnackSemki + orGroup: Snack1 + - id: FoodSnackSyndi + orGroup: Snack1 + prob: 0.5 + # Snack 2 + - id: FoodSnackChocolate + orGroup: Snack2 + - id: FoodSnackPopcorn + orGroup: Snack2 + - id: FoodSnackChips + orGroup: Snack2 + - id: FoodSnackBoritos + orGroup: Snack2 + - id: FoodSnackSus + orGroup: Snack2 + - id: FoodSnackPistachios + orGroup: Snack2 + - id: FoodSnackRaisins + orGroup: Snack2 + - id: FoodSnackCheesie + orGroup: Snack2 + - id: FoodSnackEnergy + orGroup: Snack2 + - id: FoodSnackCnDs + orGroup: Snack2 + - id: FoodSnackSemki + orGroup: Snack2 + - id: FoodSnackSyndi + orGroup: Snack2 + prob: 0.5 + # Snack 3 + - id: FoodSnackChocolate + orGroup: Snack3 + - id: FoodSnackPopcorn + orGroup: Snack3 + - id: FoodSnackChips + orGroup: Snack3 + - id: FoodSnackBoritos + orGroup: Snack3 + - id: FoodSnackSus + orGroup: Snack3 + - id: FoodSnackPistachios + orGroup: Snack3 + - id: FoodSnackRaisins + orGroup: Snack3 + - id: FoodSnackCheesie + orGroup: Snack3 + - id: FoodSnackEnergy + orGroup: Snack3 + - id: FoodSnackCnDs + orGroup: Snack3 + - id: FoodSnackSemki + orGroup: Snack3 + - id: FoodSnackSyndi + orGroup: Snack3 + prob: 0.5 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFVagueThreat + suffix: vague-threat + components: + - type: Mail + contents: + - id: PaperMailNFVagueThreat1 + orGroup: Paper + - id: PaperMailNFVagueThreat2 + orGroup: Paper + - id: PaperMailNFVagueThreat3 + orGroup: Paper + - id: PaperMailNFVagueThreat4 + orGroup: Paper + - id: PaperMailNFVagueThreat5 + orGroup: Paper + - id: PaperMailNFVagueThreat6 + orGroup: Paper + - id: PaperMailNFVagueThreat7 + orGroup: Paper + - id: PaperMailNFVagueThreat8 + orGroup: Paper + - id: PaperMailNFVagueThreat9 + orGroup: Paper + - id: PaperMailNFVagueThreat10 + orGroup: Paper + - id: PaperMailNFVagueThreat11 + orGroup: Paper + - id: PaperMailNFVagueThreat12 + orGroup: Paper + - id: KitchenKnife + orGroup: ThreateningObject + - id: ButchCleaver + orGroup: ThreateningObject + - id: CombatKnife + orGroup: ThreateningObject + - id: SurvivalKnife + orGroup: ThreateningObject + - id: SoapHomemade + orGroup: ThreateningObject + - id: FoodMeat + orGroup: ThreateningObject + - id: OrganHumanHeart + orGroup: ThreateningObject + +# Frontier Mail (Pony Express?) +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSmoke + suffix: smoke + components: + - type: Mail + contents: + - id: DelayedSmoke + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFT2ComponentBox + suffix: T2 components + components: + - type: Mail + contents: + - id: BoxT2ComponentsAssorted + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFT3ComponentBox + suffix: T3 components + components: + - type: Mail + contents: + - id: BoxT3ComponentsAssorted + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFT4ComponentBox + suffix: T4 components + components: + - type: Mail + contents: + - id: BoxT4ComponentsAssorted + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFDonkPockets + suffix: donk pockets, random + components: + - type: Mail + contents: + - id: FoodBoxDonkpocket + orGroup: Donk + prob: 0.4 # Higher probability, useful for chefs. + - id: FoodBoxDonkpocketSpicy + orGroup: Donk + prob: 0.1 + - id: FoodBoxDonkpocketTeriyaki + orGroup: Donk + prob: 0.1 + - id: FoodBoxDonkpocketPizza + orGroup: Donk + prob: 0.1 + - id: FoodBoxDonkpocketStonk + orGroup: Donk + prob: 0.05 + - id: FoodBoxDonkpocketCarp + orGroup: Donk + prob: 0.05 + - id: FoodBoxDonkpocketBerry + orGroup: Donk + prob: 0.1 + - id: FoodBoxDonkpocketHonk + orGroup: Donk + prob: 0.05 + - id: FoodBoxDonkpocketDink + orGroup: Donk + prob: 0.05 # Bad luck. + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSodaPwrGame + suffix: Pwrgame + components: + - type: Mail + contents: + - id: DrinkPwrGameCan + amount: 3 + - id: PaperMailNFPwrGameAd + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSodaRedBool + suffix: Red Bool + components: + - type: Mail + contents: + - id: DrinkEnergyDrinkCan + amount: 3 + - id: PaperMailNFRedBoolAd + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSodaSpaceCola + suffix: Space Cola + components: + - type: Mail + contents: + - id: DrinkColaBottleFull + - id: PaperMailNFSpaceColaAd + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSodaSpaceMountainWind + suffix: Space Mountain Wind + components: + - type: Mail + contents: + - id: DrinkSpaceMountainWindBottleFull + - id: PaperMailNFSpaceMountainWindAd + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSodaSpaceUp + suffix: Space Up + components: + - type: Mail + contents: + - id: DrinkSpaceUpBottleFull + - id: PaperMailNFSpaceUpAd + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFJoints + suffix: joints + components: + - type: Mail + contents: + # Smokeable 1 + - id: Joint + orGroup: Smokeable1 + prob: 0.35 + - id: JointRainbow + orGroup: Smokeable1 + prob: 0.15 + - id: Blunt + orGroup: Smokeable1 + prob: 0.35 + - id: BluntRainbow + orGroup: Smokeable1 + prob: 0.15 + # Smokeable 2 + - id: Joint + orGroup: Smokeable2 + prob: 0.35 + - id: JointRainbow + orGroup: Smokeable2 + prob: 0.15 + - id: Blunt + orGroup: Smokeable2 + prob: 0.35 + - id: BluntRainbow + orGroup: Smokeable2 + prob: 0.15 + +# Catchall for food that can't otherwise be created outside of random spawners +# Mmm, mail food +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFUnusualFood + suffix: unusual food + components: + - type: Mail + isPriority: true + isFragile: true + contents: + - id: FoodMealNachos + orGroup: Food + - id: FoodMealNachosCheesy + orGroup: Food + - id: FoodMealNachosCuban + orGroup: Food + - id: FoodMealMint + orGroup: Food + - id: FoodMealEggplantParm + orGroup: Food + - id: FoodMealPotatoYaki + orGroup: Food + - id: FoodMealCornedbeef + orGroup: Food + - id: FoodMealBearsteak + orGroup: Food + - id: FoodMealPigblanket + orGroup: Food + - id: FoodMealEggsbenedict + orGroup: Food + - id: FoodMealOmelette + orGroup: Food + - id: FoodMealFriedegg + orGroup: Food + - id: FoodMealMilkape + orGroup: Food + - id: FoodMealMemoryleek + orGroup: Food + - id: DisgustingSweptSoup + orGroup: Food + - id: FoodBreadVolcanic + orGroup: Food + - id: FoodBakedWaffleSoylent + orGroup: Food + - id: FoodBakedWaffleRoffle + orGroup: Food + - id: FoodPieCherry + orGroup: Food + - id: FoodPieFrosty + orGroup: Food + - id: FoodPizzaSassysage + orGroup: Food + - id: FoodPizzaArnold + orGroup: Food + prob: 0.05 + - id: FoodMeatGoliathCooked + orGroup: Food + - id: FoodMeatRounyCooked + orGroup: Food + - id: FoodMeatLizardCooked + orGroup: Food + - id: FoodMeatSpiderlegCooked + orGroup: Food + - id: FoodMeatMeatballCooked + orGroup: Food + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFBakedGoods + suffix: baked goods + components: + - type: Mail + isPriority: true + isFragile: true + contents: + - id: FoodBakedBunHoney + orGroup: Food + - id: FoodBakedBunHotX + orGroup: Food + - id: FoodBakedBunMeat + orGroup: Food + - id: FoodBakedPretzel + orGroup: Food + - id: FoodBakedCannoli + orGroup: Food + - id: FoodDonutPlain + orGroup: Food + - id: FoodDonutJellyPlain + orGroup: Food + - id: FoodDonutHomer + orGroup: Food + - id: FoodDonutChaos + orGroup: Food + - id: FoodDonutMeat + orGroup: Food + - id: FoodDonutPink + orGroup: Food + - id: FoodDonutSpaceman + orGroup: Food + - id: FoodDonutApple + orGroup: Food + - id: FoodDonutCaramel + orGroup: Food + - id: FoodDonutChocolate + orGroup: Food + - id: FoodDonutBlumpkin + orGroup: Food + - id: FoodDonutBungo + orGroup: Food + - id: FoodDonut + orGroup: Food + - id: FoodDonutSweetpea + orGroup: Food + - id: FoodDonutJellyHomer + orGroup: Food + - id: FoodDonutJellyPink + orGroup: Food + - id: FoodDonutJellySpaceman + orGroup: Food + - id: FoodDonutJellyApple + orGroup: Food + - id: FoodDonutJellyCaramel + orGroup: Food + - id: FoodDonutJellyChocolate + orGroup: Food + - id: FoodDonutJellyBlumpkin + orGroup: Food + - id: FoodDonutJellyBungo + orGroup: Food + - id: FoodDonutJelly + orGroup: Food + - id: FoodDonutJellySweetpea + orGroup: Food + - id: FoodDonutJellySlugcat + orGroup: Food + - id: FoodFrozenSandwich # ah yes, baked goods + orGroup: Food + - id: FoodFrozenFreezy + orGroup: Food + - id: FoodFrozenSundae + orGroup: Food + - id: FoodFrozenCornuto + orGroup: Food + - id: FoodFrozenPopsicleOrange + orGroup: Food + - id: FoodFrozenPopsicleBerry + orGroup: Food + - id: FoodFrozenPopsicleJumbo + orGroup: Food + - id: FoodFrozenSnowcone + orGroup: Food + - id: FoodFrozenSnowconeBerry + orGroup: Food + - id: FoodFrozenSnowconeFruit + orGroup: Food + - id: FoodFrozenSnowconeClown + orGroup: Food + - id: FoodFrozenSnowconeMime + orGroup: Food + - id: FoodFrozenSnowconeRainbow + orGroup: Food + - id: FoodFrozenSnowconeMime + orGroup: Food + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFUnusualProduce + suffix: unusual produce + components: + - type: Mail + isPriority: true + isFragile: true + contents: + - id: FoodLaughinPeaPod + orGroup: Produce + amount: 3 + - id: FoodMimana + orGroup: Produce + amount: 3 + - id: FoodLemoon + orGroup: Produce + amount: 3 + - id: FoodBlueTomato + orGroup: Produce + amount: 3 + - id: FoodBloodTomato + orGroup: Produce + amount: 3 + - id: FoodLily + orGroup: Produce + amount: 3 + prob: 0.5 + - id: FoodAmbrosiaDeus + orGroup: Produce + amount: 2 + prob: 0.5 + - id: FoodSpacemansTrumpet + orGroup: Produce + prob: 0.5 + - id: FoodKoibean + orGroup: Produce + amount: 3 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSoaps + suffix: soap sampler + components: + - type: Mail + contents: + - id: BoxSoapsAssorted + - id: PaperMailNTSoapAd1 + orGroup: Ad + - id: PaperMailNTSoapAd2 + orGroup: Ad + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFSoapsOmega + suffix: soap sampler, omega + components: + - type: Mail + contents: + - id: BoxSoapsAssortedOmega + - id: PaperMailNTSoapAd1 + orGroup: Ad + - id: PaperMailNTSoapAd2 + orGroup: Ad + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSecurityNFMusket + suffix: musket + components: + - type: Mail + contents: + - id: ClothingHeadHatPwig + - id: Musket + - id: CartridgeAntiMateriel + amount: 2 + - id: PaperMailNTMusket + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFFigurineBulk + suffix: figurine, bulk + components: + - type: Mail + contents: + - id: MysteryFigureBoxBulk + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFPAI + suffix: PAI, extended + components: + - type: Mail + contents: + - id: PersonalAI + orGroup: PAI + prob: 0.99 + - id: SyndicatePersonalAI + orGroup: PAI + prob: 0.01 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFPen + suffix: fancy pen + components: + - type: Mail + contents: + - id: LuxuryPen + orGroup: Pen + prob: 0.5 + - id: PenHop + orGroup: Pen + prob: 0.22 + - id: PenCap + orGroup: Pen + prob: 0.22 + - id: CyberPen + orGroup: Pen + prob: 0.03 + - id: PenCentcom + orGroup: Pen + prob: 0.03 + - id: PaperMailNFPaperPusherAd + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFGladiator + suffix: gladiator + components: + - type: Mail + contents: + - id: SpearBone + - id: ClothingOuterArmorGladiator + - id: ClothingHeadHatGladiator + - id: ClothingUniformJumpsuitGladiator + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFConscript + suffix: conscript + components: + - type: Mail + contents: + - id: Kardashev-MosinNonlethal # Avoiding lethal on-station shootouts. + - id: ClothingHeadHatUshanka + - id: SyndicateWhistle + - id: PaperMailNTConscript diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml new file mode 100644 index 00000000000..31b6f79d1d8 --- /dev/null +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -0,0 +1,92 @@ +- type: mailDeliveryPool + id: RandomNFMailDeliveryPool + everyone: + # Food/Drink Consumables + MailNFBakedGoods: 1 + MailNFCake: 1 + MailNFCheese: 1 + MailNFCookies: 1 + MailNFDonkPockets: 1 + MailMoffins: 0.5 + MailNFMuffins: 1 + MailNFSnacks: 1 + MailNFSodaPwrGame: 0.2 # Mmm, ads + MailNFSodaRedBool: 0.2 + MailNFSodaSpaceCola: 0.2 + MailNFSodaSpaceMountainWind: 0.2 + MailNFSodaSpaceUp: 0.2 + MailNFUnusualFood: 1 + MailNFUnusualProduce: 1 + # Booze/Smoke Consumables + MailNFAlcohol: 0.5 + MailSake: 0.05 # MailNFAlcohol has ~10 bottles, should be about a tenth of MailNFAlcohol's weight. + MailNFCigarettes: 0.5 + MailCigars: 0.45 + MailNFGoldCigars: 0.05 + MailNFJoints: 0.5 + # Outfits - these should share one share of the weights + MailWinterCoat: 1.5 + MailCosplayArc: 0.5 + MailCosplayGeisha: 0.5 + MailCosplayMaid: 0.5 + MailCosplayNurse: 0.5 + MailCosplaySchoolgirl: 0.5 + MailCosplayWizard: 0.5 + MailNoir: 0.5 + # Accessories - should share one + MailFishingCap: 0.5 + MailFlowers: 1 + MailSunglasses: 1 + # Fun + MailNFBible: 1 + MailNFBikeHorn: 0.5 + MailCrayon: 1 + MailFigurine: 1 + MailNFFigurineBulk: 1 + MailNFPAI: 1 + MailNFPlushie: 1 + MailSkub: 0.5 + MailNFSoaps: 0.95 + MailNFSoapsOmega: 0.05 # Rare variant + MailBlockGameDIY: 1 + MailSpaceVillainDIY: 1 + # Useful + MailNFCallForHelp: 0.6 + MailFlashlight: 1 + MailNFMoney: 1 + MailNFT2ComponentBox: 0.3 + MailNFT3ComponentBox: 0.6 + MailNFT4ComponentBox: 0.1 + MailNFPen: 1 + # Weapons + MailHighlander: 0.12 + MailHighlanderDulled: 1 + MailKatana: 1 + MailKnife: 1 + MailNFGladiator: 0.1 + MailNFConscript: 0.1 + # Pranks + MailNFSmoke: 1 + MailRestraints: 1 + MailVagueThreat: 0.4 + + + # Department and job-specific mail can have slightly higher weights, + # since they'll be merged with the everyone pool. + departments: + Security: + MailSecurityDonuts: 3 + MailSecurityFlashlight: 2 + MailSecurityNonlethalsKit: 2 + MailSecuritySpaceLaw: 1 + MailSecurityNFMusket: 1 + + jobs: + StationRepresentative: + MailHoPBureaucracy: 2 + MailHoPSupplement: 3 + MailNFGoldCigars: 0.45 + Sheriff: + MailSecurityNonlethalsKit: 2 + MailNFGoldCigars: 0.45 + diff --git a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml new file mode 100644 index 00000000000..f81c04fa13e --- /dev/null +++ b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml @@ -0,0 +1,315 @@ +# Pranks: admin items or effects put into an envelope, released when opened or damaged. +- type: entity + id: DelayedSmoke + name: delayed smoke + suffix: "Smoke (10s, delayed)" + parent: BaseItem + components: + - type: DelayedItem + item: AdminInstantEffectSmoke10 + +# Papers (letters, ad copy) +- type: entity + id: PaperMailNFCallForHelp1 + # noSpawn: true + suffix: "call for help 1, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=1]Help![/head] + [head=1]They're coming![/head] + [head=1]Take this![/head] + +- type: entity + id: PaperMailNFCallForHelp2 + # noSpawn: true + suffix: "call for help 2, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=1]Check disposals![/head] + +- type: entity + id: PaperMailNFCallForHelp3 + # noSpawn: true + suffix: "call for help 3, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=1]GET ME OUT![/head] + +- type: entity + id: PaperMailNFCallForHelp4 + # noSpawn: true + suffix: "call for help 4, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=1]Check maintenance![/head] + +- type: entity + id: PaperMailNFCallForHelp5 + # noSpawn: true + suffix: "call for help 5, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=1]Save me, please![/head] + +- type: entity + id: PaperMailNFVagueThreat1 + # noSpawn: true + suffix: "vague mail threat 1, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=1]I know what you did.[/head] + [head=2]You don't know what I'm going to do to you.[/head] + +- type: entity + id: PaperMailNFVagueThreat2 + # noSpawn: true + suffix: "vague mail threat 2, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=1]I'm coming for you.[/head] + +- type: entity + id: PaperMailNFVagueThreat3 + # noSpawn: true + suffix: "vague mail threat 3, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=1]You're next.[/head] + +- type: entity + id: PaperMailNFVagueThreat4 + # noSpawn: true + suffix: "vague mail threat 4, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=1]We see you.[/head] + +- type: entity + id: PaperMailNFVagueThreat5 + # noSpawn: true + suffix: "vague mail threat 5, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=2]I hope your affairs are in order.[/head] + +- type: entity + id: PaperMailNFVagueThreat6 + # noSpawn: true + suffix: "vague mail threat 6, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=2]It's only a matter of time.[/head] + [head=2]Enjoy it while it lasts.[/head] + +- type: entity + id: PaperMailNFVagueThreat7 + # noSpawn: true + suffix: "vague mail threat 7, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=2]Who should we mail your pieces to?[/head] + +- type: entity + id: PaperMailNFVagueThreat8 + # noSpawn: true + suffix: "vague mail threat 8, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=2]Do you prefer to die slowly or quickly?[/head] + [head=1]Just kidding.[/head] + [head=1]We don't care what you think.[/head] + +- type: entity + id: PaperMailNFVagueThreat9 + # noSpawn: true + suffix: "vague mail threat 9, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=2]I think your head would look nice on my mantel.[/head] + +- type: entity + id: PaperMailNFVagueThreat10 + # noSpawn: true + suffix: "vague mail threat 10, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=1]You should have paid up.[/head] + [head=1]It's too late now.[/head] + +- type: entity + id: PaperMailNFVagueThreat11 + # noSpawn: true + suffix: "vague mail threat 11, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=2]Your family will miss you, but don't worry.[/head] + [head=1]We'll take care of them too.[/head] + +- type: entity + id: PaperMailNFVagueThreat12 + # noSpawn: true + suffix: "vague mail threat 12, formatted" + parent: Paper + components: + - type: Paper + content: | + [head=2]I have a bet that you're going to die today.[/head] + [head=2]I'm not afraid of cheating.[/head] + +- type: entity + id: PaperMailNFPwrGameAd + # noSpawn: true + suffix: "pwrgame ad" + parent: Paper + components: + - type: Paper + content: | + [head=1]Drink PwrGame.[/head] + [head=2]Proudly sponsoring the Frontier Block Game Championship for 15 years.[/head] + +- type: entity + id: PaperMailNFRedBoolAd + # noSpawn: true + suffix: "red bool ad" + parent: Paper + components: + - type: Paper + content: | + [head=1]Try NEW Reformulated Red Bool![/head] + [head=3]Over [bold]1.5g[/bold] of caffeine! Punch your heart into overdrive![/head] + +- type: entity + id: PaperMailNFSpaceColaAd + # noSpawn: true + suffix: "space cola ad" + parent: Paper + components: + - type: Paper + content: | + [head=1]The classic taste you love, Space Cola.[/head] + [head=2]Certified lead-free.[/head] + +- type: entity + id: PaperMailNFSpaceMountainWindAd + # noSpawn: true + suffix: "space mountain wind ad" + parent: Paper + components: + - type: Paper + content: | + [head=3]When it's time to game, there's one choice.[/head] + [head=1]Space Mountain Wind.[/head] + +- type: entity + id: PaperMailNFSpaceUpAd + # noSpawn: true + suffix: "space up ad" + parent: Paper + components: + - type: Paper + content: | + [head=3]The crisp refreshing taste of lemons and limes.[/head] + [head=1]Space Up![/head] + [head=3]Why not ask for a Sui Dream from your local bartender?[/head] + +- type: entity + id: PaperMailNTSoapAd1 + # noSpawn: true + suffix: "soap ad 1" + parent: Paper + components: + - type: Paper + content: | + [head=3]Hello,[/head] + + You have been selected to receive a complimentary sampler of scented soaps that Nanotrasen has to offer. + Why not enjoy a nice warm shower with our scented soaps? Tested and effective vs. vent crud and mold. + + We hope you enjoy. + [head=3][italic]Christopher Cleanman[/italic][/head] + Vice President, NT Habs - Toiletries Department + +- type: entity + id: PaperMailNTSoapAd2 + # noSpawn: true + suffix: "soap ad 2" + parent: Paper + components: + - type: Paper + content: | + [head=2]GREETINGS FRONTIER CITIZEN[/head] + + OUR REPORTS INDICATE THAT YOUR PREVIOUS FAILED HYGIENE INSPECTION HAS REDUCED SECTOR EFFICIENCY BY 0.02%. + ENCLOSED IS A SELECTION OF HYGIENE PRODUCTS SUITABLE FOR USE BY ORGANICS. + WE HOPE THAT THIS SITUATION IS RESOLVED PROMPTLY. + + [italic]THIS IS AN AUTOMATED MESSAGE. DO NOT REPLY.[/italic] + +- type: entity + id: PaperMailNTConscript + # noSpawn: true + suffix: "conscript" + parent: Paper + components: + - type: Paper + content: | + [head=2]NOT ONE STEP BACK.[/head] + [head=2]FOR THE FRONTIER.[/head] + +- type: entity + id: PaperMailNTMusket + # noSpawn: true + suffix: "musket" + parent: Paper + components: + - type: Paper + content: | + [head=2]Use a musket for sector defense,[/head] + [head=2]like the founding fathers intended.[/head] + +- type: entity + id: PaperMailNFPaperPusherAd + # noSpawn: true + suffix: "paper pusher" + parent: Paper + components: + - type: Paper + content: | + [head=2]A Gift[/head] + Here is a pen for any letters you write or forms you need filled. + May you write well, neatly, and with style. + + [italic]Frontier Paper Pusher's Club[/italic] + From e12821c44a12f41689a97b15726d9c7c215f7586 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Tue, 4 Jun 2024 19:34:09 -0400 Subject: [PATCH 02/33] Format mail messages --- .../_NF/Mail/mail_specific_items.yml | 216 +++++++++++------- 1 file changed, 137 insertions(+), 79 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml index f81c04fa13e..d4396f0eac6 100644 --- a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml +++ b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml @@ -9,6 +9,7 @@ item: AdminInstantEffectSmoke10 # Papers (letters, ad copy) +# TODO: look into center tag - type: entity id: PaperMailNFCallForHelp1 # noSpawn: true @@ -16,10 +17,13 @@ parent: Paper components: - type: Paper - content: | - [head=1]Help![/head] - [head=1]They're coming![/head] - [head=1]Take this![/head] + content: |2 + + [head=1]Help! They're coming![/head] + + + [head=1]Take this![/head] + - type: entity id: PaperMailNFCallForHelp2 @@ -28,8 +32,9 @@ parent: Paper components: - type: Paper - content: | - [head=1]Check disposals![/head] + content: |2 + + [head=1]Check disposals![/head] - type: entity id: PaperMailNFCallForHelp3 @@ -38,8 +43,9 @@ parent: Paper components: - type: Paper - content: | - [head=1]GET ME OUT![/head] + content: |2 + + [head=1]GET ME OUT![/head] - type: entity id: PaperMailNFCallForHelp4 @@ -48,8 +54,9 @@ parent: Paper components: - type: Paper - content: | - [head=1]Check maintenance![/head] + content: |2 + + [head=1]Check maintenance![/head] - type: entity id: PaperMailNFCallForHelp5 @@ -58,8 +65,9 @@ parent: Paper components: - type: Paper - content: | - [head=1]Save me, please![/head] + content: |2 + + [head=1]Save me, please![/head] - type: entity id: PaperMailNFVagueThreat1 @@ -68,9 +76,11 @@ parent: Paper components: - type: Paper - content: | - [head=1]I know what you did.[/head] - [head=2]You don't know what I'm going to do to you.[/head] + content: |2 + + [head=1]I know what you did.[/head] + + [head=3]You don't know what I'm going to do to you.[/head] - type: entity id: PaperMailNFVagueThreat2 @@ -79,8 +89,9 @@ parent: Paper components: - type: Paper - content: | - [head=1]I'm coming for you.[/head] + content: |2 + + [head=1]I'm coming for you.[/head] - type: entity id: PaperMailNFVagueThreat3 @@ -89,8 +100,9 @@ parent: Paper components: - type: Paper - content: | - [head=1]You're next.[/head] + content: |2 + + [head=1]You're next.[/head] - type: entity id: PaperMailNFVagueThreat4 @@ -99,8 +111,9 @@ parent: Paper components: - type: Paper - content: | - [head=1]We see you.[/head] + content: |2 + + [head=1]We see you.[/head] - type: entity id: PaperMailNFVagueThreat5 @@ -109,8 +122,9 @@ parent: Paper components: - type: Paper - content: | - [head=2]I hope your affairs are in order.[/head] + content: |2 + + [head=2]I hope your affairs are in order.[/head] - type: entity id: PaperMailNFVagueThreat6 @@ -119,9 +133,12 @@ parent: Paper components: - type: Paper - content: | - [head=2]It's only a matter of time.[/head] - [head=2]Enjoy it while it lasts.[/head] + content: |2 + + [head=1]It's only a matter of time.[/head] + + + [head=1]Enjoy it while it lasts.[/head] - type: entity id: PaperMailNFVagueThreat7 @@ -130,8 +147,9 @@ parent: Paper components: - type: Paper - content: | - [head=2]Who should we mail your pieces to?[/head] + content: |2 + + [head=2]Who should we mail your pieces to?[/head] - type: entity id: PaperMailNFVagueThreat8 @@ -140,10 +158,13 @@ parent: Paper components: - type: Paper - content: | - [head=2]Do you prefer to die slowly or quickly?[/head] - [head=1]Just kidding.[/head] - [head=1]We don't care what you think.[/head] + content: |2 + + [head=2]Would you prefer to die slowly or quickly? + [/head] + [head=1]Just kidding.[/head] + + [head=2]We don't care what you think.[/head] - type: entity id: PaperMailNFVagueThreat9 @@ -152,8 +173,9 @@ parent: Paper components: - type: Paper - content: | - [head=2]I think your head would look nice on my mantel.[/head] + content: |2 + + [head=3]I think your head would look nice on my mantel.[/head] - type: entity id: PaperMailNFVagueThreat10 @@ -162,9 +184,12 @@ parent: Paper components: - type: Paper - content: | - [head=1]You should have paid up.[/head] - [head=1]It's too late now.[/head] + content: |2 + + [head=1]You should have paid up.[/head] + + + [head=1]It's too late now.[/head] - type: entity id: PaperMailNFVagueThreat11 @@ -173,9 +198,12 @@ parent: Paper components: - type: Paper - content: | - [head=2]Your family will miss you, but don't worry.[/head] - [head=1]We'll take care of them too.[/head] + content: |2 + + [head=3]Your family will miss you, but don't worry.[/head] + + + [head=1]We'll take care of them too.[/head] - type: entity id: PaperMailNFVagueThreat12 @@ -184,9 +212,12 @@ parent: Paper components: - type: Paper - content: | - [head=2]I have a bet that you're going to die today.[/head] - [head=2]I'm not afraid of cheating.[/head] + content: |2 + + [head=3]I have a bet that you're going to die today.[/head] + + + [head=1]I'm not afraid to cheat.[/head] - type: entity id: PaperMailNFPwrGameAd @@ -195,9 +226,11 @@ parent: Paper components: - type: Paper - content: | - [head=1]Drink PwrGame.[/head] - [head=2]Proudly sponsoring the Frontier Block Game Championship for 15 years.[/head] + content: |2 + + [head=1]Drink PwrGame![/head] + + [head=3]Proud sponsor of the NT Block Game Championship.[/head] - type: entity id: PaperMailNFRedBoolAd @@ -206,9 +239,13 @@ parent: Paper components: - type: Paper - content: | - [head=1]Try NEW Reformulated Red Bool![/head] - [head=3]Over [bold]1.5g[/bold] of caffeine! Punch your heart into overdrive![/head] + content: |2 + + [head=2]Try NEW Reformulated Red Bool![/head] + + [head=2]Over [color=#dd0000]1.5g[/color] of caffeine per can![/head] + + [head=2]Punch your heart into overdrive![/head] - type: entity id: PaperMailNFSpaceColaAd @@ -217,9 +254,11 @@ parent: Paper components: - type: Paper - content: | - [head=1]The classic taste you love, Space Cola.[/head] - [head=2]Certified lead-free.[/head] + content: |2 + + [head=2]The classic taste you love, Space Cola.[/head] + + [head=2]Now certified lead-free.[/head] - type: entity id: PaperMailNFSpaceMountainWindAd @@ -228,9 +267,11 @@ parent: Paper components: - type: Paper - content: | - [head=3]When it's time to game, there's one choice.[/head] - [head=1]Space Mountain Wind.[/head] + content: |2 + + [head=3]When it's time to game, there's one choice:[/head] + + [head=1]Space Mountain Wind.[/head] - type: entity id: PaperMailNFSpaceUpAd @@ -239,10 +280,15 @@ parent: Paper components: - type: Paper - content: | - [head=3]The crisp refreshing taste of lemons and limes.[/head] - [head=1]Space Up![/head] - [head=3]Why not ask for a Sui Dream from your local bartender?[/head] + content: |2 + + [head=3]The crisp, refreshing taste of lemon and lime.[/head] + + + [head=1]Space Up![/head] + + + [head=2]Ask your barkeep for a Sui Dream today![/head] - type: entity id: PaperMailNTSoapAd1 @@ -251,15 +297,17 @@ parent: Paper components: - type: Paper - content: | - [head=3]Hello,[/head] - + content: |2 + [head=3]Hello Valued Customer,[/head] You have been selected to receive a complimentary sampler of scented soaps that Nanotrasen has to offer. + Why not enjoy a nice warm shower with our scented soaps? Tested and effective vs. vent crud and mold. We hope you enjoy. - [head=3][italic]Christopher Cleanman[/italic][/head] - Vice President, NT Habs - Toiletries Department + + Sincerely, + [head=3][italic]Christopher Cleanman[/italic][/head] + Vice President, NT Habs - Toiletries Department - type: entity id: PaperMailNTSoapAd2 @@ -268,12 +316,14 @@ parent: Paper components: - type: Paper - content: | + content: |2 [head=2]GREETINGS FRONTIER CITIZEN[/head] - OUR REPORTS INDICATE THAT YOUR PREVIOUS FAILED HYGIENE INSPECTION HAS REDUCED SECTOR EFFICIENCY BY 0.02%. - ENCLOSED IS A SELECTION OF HYGIENE PRODUCTS SUITABLE FOR USE BY ORGANICS. - WE HOPE THAT THIS SITUATION IS RESOLVED PROMPTLY. + OUR REPORTS INDICATE THAT: + 1. YOU HAVE FAILED YOUR QUARTERLY HYGIENE INSPECTION. + 2. THIS HAS REDUCED SECTOR EFFICIENCY BY [bold]0.02%[/bold]. + + ENCLOSED IS A SELECTION OF HYGIENE PRODUCTS SUITABLE FOR USE BY ORGANICS. WE HOPE THAT THIS SITUATION IS RESOLVED PROMPTLY. [italic]THIS IS AN AUTOMATED MESSAGE. DO NOT REPLY.[/italic] @@ -284,9 +334,12 @@ parent: Paper components: - type: Paper - content: | - [head=2]NOT ONE STEP BACK.[/head] - [head=2]FOR THE FRONTIER.[/head] + content: |2 + + [head=1]NOT ONE STEP BACK.[/head] + + + [head=1]FOR THE FRONTIER.[/head] - type: entity id: PaperMailNTMusket @@ -295,9 +348,10 @@ parent: Paper components: - type: Paper - content: | - [head=2]Use a musket for sector defense,[/head] - [head=2]like the founding fathers intended.[/head] + content: |2 + + [head=2]Use a musket for sector defense, + like the founding fathers intended.[/head] - type: entity id: PaperMailNFPaperPusherAd @@ -306,10 +360,14 @@ parent: Paper components: - type: Paper - content: | - [head=2]A Gift[/head] - Here is a pen for any letters you write or forms you need filled. - May you write well, neatly, and with style. + content: |2 + + [head=2]Here is a pen for any letters you write. + [/head] + [head=1]Keep it close, use it often.[/head] + + [head=2]May you write well, neatly, and with style.[/head] - [italic]Frontier Paper Pusher's Club[/italic] + [head=3]Sincerely, + [italic]The Frontier Paper Pusher's Club[/italic][/head] From 474af17862ff22377807588b8abf942deb456a68 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Wed, 5 Jun 2024 09:24:00 -0400 Subject: [PATCH 03/33] DelayedItemSystem cleanup, more mail table entries --- Content.Server/_NF/Mail/DelayedItemSystem.cs | 34 +- .../_NF/Catalog/Fills/Boxes/general.yml | 12 +- Resources/Prototypes/_NF/Mail/mail.yml | 308 +++++++++++++++++- .../Prototypes/_NF/Mail/mailDeliveries.yml | 19 +- .../_NF/Mail/mail_specific_items.yml | 4 +- 5 files changed, 330 insertions(+), 47 deletions(-) diff --git a/Content.Server/_NF/Mail/DelayedItemSystem.cs b/Content.Server/_NF/Mail/DelayedItemSystem.cs index c32edfb9ee9..a8dd5fae73a 100644 --- a/Content.Server/_NF/Mail/DelayedItemSystem.cs +++ b/Content.Server/_NF/Mail/DelayedItemSystem.cs @@ -5,7 +5,7 @@ namespace Content.Server.Mail { /// - /// A placeholder for another entity, spawned when dropped or placed in someone's hands. + /// A placeholder for another entity, spawned when taken out of a container, with the placeholder deleted shortly after. /// Useful for storing instant effect entities, e.g. smoke, in the mail. /// public sealed class DelayedItemSystem : EntitySystem @@ -17,55 +17,39 @@ public override void Initialize() SubscribeLocalEvent(OnDropAttempt); SubscribeLocalEvent(OnHandEquipped); SubscribeLocalEvent(OnDamageChanged); - //SubscribeLocalEvent(OnInsertedIntoContainer); SubscribeLocalEvent(OnRemovedFromContainer); } /// - /// MoveEvent handler - item has been dropped or placed on the ground, replace with delayed item. + /// EntGotRemovedFromContainerMessage handler - spawn the intended entity after removed from a container. /// private void OnRemovedFromContainer(EntityUid uid, DelayedItemComponent component, ContainerModifiedMessage args) { - ReplaceItemInContainer(uid, component, args.Container); + Spawn(component.Item, Transform(uid).Coordinates); } /// - /// HandSelectedEvent handler - item has put into a player's hand, replace with delayed item. + /// GotEquippedHandEvent handler - destroy the placeholder. /// private void OnHandEquipped(EntityUid uid, DelayedItemComponent component, EquippedHandEvent args) { - //ReplaceItem(uid, component); - DeleteEntity(uid); - } - - private void OnDropAttempt(EntityUid uid, DelayedItemComponent component, DropAttemptEvent args) - { - //ReplaceItem(uid, component); - DeleteEntity(uid); + EntityManager.DeleteEntity(uid); } /// - /// HandSelectedEvent handler - item has put into a player's hand, replace with delayed item. + /// OnDropAttempt handler - destroy the placeholder. /// - private void OnDamageChanged(EntityUid uid, DelayedItemComponent component, DamageChangedEvent args) + private void OnDropAttempt(EntityUid uid, DelayedItemComponent component, DropAttemptEvent args) { - //ReplaceItem(uid, component); - Spawn(component.Item, Transform(uid).Coordinates); EntityManager.DeleteEntity(uid); } /// - /// Replacement mechanism. Delays spawning a particular item, deletes the delaying component. + /// OnDamageChanged handler - item has taken damage (e.g. inside the envelope), spawn the intended entity outside of any container and delete the placeholder. /// - private void ReplaceItemInContainer(EntityUid uid, DelayedItemComponent component, BaseContainer container) + private void OnDamageChanged(EntityUid uid, DelayedItemComponent component, DamageChangedEvent args) { - //EntityManager.SpawnInContainerOrDrop(component.Item, container.Owner, container.ID, Transform(uid)); - //EntityManager.Spawn(component.Item, Transform(uid).Coordinates); Spawn(component.Item, Transform(uid).Coordinates); - } - - private void DeleteEntity(EntityUid uid) - { EntityManager.DeleteEntity(uid); } } diff --git a/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml index b4f093f6f74..168170ea861 100644 --- a/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml @@ -153,7 +153,7 @@ contents: - id: AdvancedCapacitorStockPart amount: 4 - - id: AdvancedManipulatorStockPart + - id: NanoManipulatorStockPart amount: 2 - id: AdvancedMatterBinStockPart amount: 2 @@ -176,7 +176,7 @@ contents: - id: SuperCapacitorStockPart amount: 4 - - id: SuperManipulatorStockPart + - id: PicoManipulatorStockPart amount: 2 - id: SuperMatterBinStockPart amount: 2 @@ -199,9 +199,9 @@ contents: - id: QuadraticCapacitorStockPart amount: 4 - - id: QuadraticManipulatorStockPart + - id: FemtoManipulatorStockPart amount: 2 - - id: QuadraticMatterBinStockPart + - id: BluespaceMatterBinStockPart amount: 2 # No whitelist - no tags for matter bins or manipulators, and no inventory compression to cheese - type: Storage @@ -246,9 +246,9 @@ contents: - id: SoapNT amount: 1 - - id: SoapOmega + - id: Soap amount: 1 - - id: SoapHomemade + - id: SoapOmega amount: 1 - id: SoapDeluxe amount: 1 diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 9015a50708d..dc19e409e84 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -214,6 +214,7 @@ - id: FlippoLighter orGroup: Lighter prob: 0.95 + # Rare - id: FlippoEngravedLighter orGroup: Lighter prob: 0.05 @@ -225,7 +226,6 @@ suffix: cookies, random components: - type: Mail - # What, you want to eat stale cookies? isPriority: true contents: # Cookie 1 @@ -308,6 +308,9 @@ orGroup: Muffin1 - id: FoodBakedMuffin orGroup: Muffin1 + - id: FoodMothMoffin + orGroup: Muffin1 + prob: 0.5 # Muffin 2 - id: FoodBakedMuffinBerry orGroup: Muffin2 @@ -317,6 +320,9 @@ orGroup: Muffin2 - id: FoodBakedMuffin orGroup: Muffin2 + - id: FoodMothMoffin + orGroup: Muffin2 + prob: 0.5 # Muffin 3 - id: FoodBakedMuffinBerry orGroup: Muffin3 @@ -326,6 +332,9 @@ orGroup: Muffin3 - id: FoodBakedMuffin orGroup: Muffin3 + - id: FoodMothMoffin + orGroup: Muffin3 + prob: 0.5 - type: entity @@ -766,92 +775,136 @@ isFragile: true contents: - id: FoodBakedBunHoney + amount: 2 orGroup: Food - id: FoodBakedBunHotX + amount: 2 orGroup: Food - id: FoodBakedBunMeat + amount: 2 orGroup: Food - id: FoodBakedPretzel + amount: 2 orGroup: Food - id: FoodBakedCannoli + amount: 2 orGroup: Food - id: FoodDonutPlain + amount: 2 orGroup: Food - id: FoodDonutJellyPlain + amount: 2 orGroup: Food - id: FoodDonutHomer + amount: 2 orGroup: Food - id: FoodDonutChaos + amount: 2 orGroup: Food - id: FoodDonutMeat + amount: 2 orGroup: Food - id: FoodDonutPink + amount: 2 orGroup: Food - id: FoodDonutSpaceman + amount: 2 orGroup: Food - id: FoodDonutApple + amount: 2 orGroup: Food - id: FoodDonutCaramel + amount: 2 orGroup: Food - id: FoodDonutChocolate + amount: 2 orGroup: Food - id: FoodDonutBlumpkin + amount: 2 orGroup: Food - id: FoodDonutBungo + amount: 2 orGroup: Food - id: FoodDonut + amount: 2 orGroup: Food - id: FoodDonutSweetpea + amount: 2 orGroup: Food - id: FoodDonutJellyHomer + amount: 2 orGroup: Food - id: FoodDonutJellyPink + amount: 2 orGroup: Food - id: FoodDonutJellySpaceman + amount: 2 orGroup: Food - id: FoodDonutJellyApple + amount: 2 orGroup: Food - id: FoodDonutJellyCaramel + amount: 2 orGroup: Food - id: FoodDonutJellyChocolate + amount: 2 orGroup: Food - id: FoodDonutJellyBlumpkin + amount: 2 orGroup: Food - id: FoodDonutJellyBungo + amount: 2 orGroup: Food - id: FoodDonutJelly + amount: 2 orGroup: Food - id: FoodDonutJellySweetpea + amount: 2 orGroup: Food - id: FoodDonutJellySlugcat + amount: 2 orGroup: Food - id: FoodFrozenSandwich # ah yes, baked goods + amount: 2 orGroup: Food - id: FoodFrozenFreezy + amount: 2 orGroup: Food - id: FoodFrozenSundae + amount: 2 orGroup: Food - id: FoodFrozenCornuto + amount: 2 orGroup: Food - id: FoodFrozenPopsicleOrange + amount: 2 orGroup: Food - id: FoodFrozenPopsicleBerry + amount: 2 orGroup: Food - id: FoodFrozenPopsicleJumbo + amount: 2 orGroup: Food - id: FoodFrozenSnowcone + amount: 2 orGroup: Food - id: FoodFrozenSnowconeBerry + amount: 2 orGroup: Food - id: FoodFrozenSnowconeFruit + amount: 2 orGroup: Food - id: FoodFrozenSnowconeClown + amount: 2 orGroup: Food - id: FoodFrozenSnowconeMime + amount: 2 orGroup: Food - id: FoodFrozenSnowconeRainbow + amount: 2 orGroup: Food - id: FoodFrozenSnowconeMime + amount: 2 orGroup: Food - type: entity @@ -936,6 +989,17 @@ amount: 2 - id: PaperMailNTMusket +- type: entity + noSpawn: true + parent: BaseMail + id: MailSecurityNFHudNfsdMed + suffix: musket + components: + - type: Mail + contents: + - id: ClothingEyesHudNfsdMed + +# Could add spessman battle rules here - type: entity noSpawn: true parent: BaseMail @@ -971,19 +1035,19 @@ contents: - id: LuxuryPen orGroup: Pen - prob: 0.5 + prob: 0.4 - id: PenHop orGroup: Pen - prob: 0.22 + prob: 0.2 - id: PenCap orGroup: Pen - prob: 0.22 + prob: 0.2 - id: CyberPen orGroup: Pen - prob: 0.03 + prob: 0.1 - id: PenCentcom orGroup: Pen - prob: 0.03 + prob: 0.1 - id: PaperMailNFPaperPusherAd - type: entity @@ -1007,7 +1071,237 @@ components: - type: Mail contents: - - id: Kardashev-MosinNonlethal # Avoiding lethal on-station shootouts. + - id: Kardashev-MosinNonlethal - id: ClothingHeadHatUshanka - id: SyndicateWhistle - id: PaperMailNTConscript + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFHoverbike + suffix: conscript + components: + - type: Mail + contents: + - id: HoverbikeFlatpack + - id: Multitool + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFDAW + suffix: conscript + components: + - type: Mail + contents: + - id: DawInstrumentFlatpack + - id: Multitool + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCircuitboardIndustrial + suffix: conscript + components: + - type: Mail + contents: + - id: ThermomachineFreezerCircuitboard + orGroup: Board + prob: 0.5 + - id: ThermomachineHeaterCircuitboard + orGroup: Board + prob: 0.5 + - id: HellfireFreezerCircuitboard + orGroup: Board + prob: 0.25 + - id: HellfireHeaterCircuitboard + orGroup: Board + prob: 0.25 + - id: CryoPodMachineCircuitboard # Medical as well + orGroup: Board + prob: 0.5 + - id: ChemMasterMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: ChemDispenserMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: StasisBedMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: BiomassReclaimerMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: BiofabricatorMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: TurboItemRechargerCircuitboard + orGroup: Board + prob: 0.5 + - id: AutolatheHyperConvectionMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: ProtolatheHyperConvectionMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: HotplateMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: CircuitImprinterHyperConvectionMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: SheetifierMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: RadarConsoleCircuitboard + orGroup: Board + prob: 0.25 + - id: OreProcessorIndustrialMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: GasRecyclerMachineCircuitboard + orGroup: Board + prob: 0.1 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCircuitboardService + suffix: conscript + components: + - type: Mail + contents: + - id: ComputerTelevisionCircuitboard + orGroup: Board + - id: ReagentGrinderMachineCircuitboard + orGroup: Board + - id: ReagentGrinderIndustrialMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: SurveillanceWirelessCameraMovableCircuitboard + orGroup: Board + prob: 0.5 + - id: MicrowaveMachineCircuitboard + orGroup: Board + - id: ElectricGrillMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: FatExtractorMachineCircuitboard + orGroup: Board + prob: 0.25 + - id: SeedExtractorMachineCircuitboard + orGroup: Board + prob: 0.5 + - id: BoozeDispenserMachineCircuitboard + orGroup: Board + - id: SodaDispenserMachineCircuitboard + orGroup: Board + - id: MassMediaCircuitboard + orGroup: Board + prob: 0.5 + - id: TelecomServerCircuitboard + orGroup: Board + prob: 0.25 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFUnusualClothing + suffix: unusual clothes + components: + - type: Mail + contents: + - id: ClothingUniformJumpsuitGalaxyBlue + orGroup: Clothes + - id: ClothingUniformJumpsuitGalaxyRed + orGroup: Clothes + - id: ClothingKimonoPink + orGroup: Clothes + - id: ClothingKimonoBlue + orGroup: Clothes + - id: ClothingUniformMartialGi + orGroup: Clothes + - id: ClothingUniformKendoHakama + orGroup: Clothes + - id: UniformJabroni # HMMM + orGroup: Clothes + - id: ClothingNeckBling + orGroup: Clothes + - id: ClothingShoesBling + orGroup: Clothes + - id: ClothingNeckCloakAdmin + orGroup: Clothes + - id: ClothingHeadHatFancyCrown + orGroup: Clothes + - id: ClothingHeadHatCone + orGroup: Clothes + - id: ClothingHeadHatRichard + orGroup: Clothes + - id: ClothingHeadHatAnimalHeadslime + orGroup: Clothes + - id: ClothingHeadHatDogEars + orGroup: Clothes + - id: ClothingHeadHatCatEars + orGroup: Clothes + - id: ClothingEyesGlassesOutlawGlasses + orGroup: Clothes + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFUnicycle + suffix: unicycle + components: + - type: Mail + contents: + - id: VehicleUnicycleFolded + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCritter + suffix: critter + components: + - type: Mail + isFragile: true + contents: + # Bugs (weight: 2) + - id: MobCockroach + orGroup: Critter + prob: 0.45 + - id: MobSlug + orGroup: Critter + prob: 0.45 + - id: MobArgocyteSlurva # honorary bug? + orGroup: Critter + prob: 0.45 + - id: MobBee + orGroup: Critter + prob: 0.45 + - id: MobMothroach + orGroup: Critter + prob: 0.2 # Uncommon + # Small reptiles (weight: 1) + - id: MobLizard + orGroup: Critter + prob: 0.34 + - id: MobSnake + orGroup: Critter + prob: 0.33 + - id: MobFrog + orGroup: Critter + prob: 0.33 + # Small mammals (weight: 1) + - id: MobMouse + orGroup: Critter + prob: 0.33 + - id: MobMouse1 + orGroup: Critter + prob: 0.33 + - id: MobMouse2 + orGroup: Critter + prob: 0.33 + - id: MobMouseCancer + orGroup: Critter + prob: 0.01 # Rare diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index 31b6f79d1d8..27bb66540dc 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -7,7 +7,6 @@ MailNFCheese: 1 MailNFCookies: 1 MailNFDonkPockets: 1 - MailMoffins: 0.5 MailNFMuffins: 1 MailNFSnacks: 1 MailNFSodaPwrGame: 0.2 # Mmm, ads @@ -24,8 +23,8 @@ MailCigars: 0.45 MailNFGoldCigars: 0.05 MailNFJoints: 0.5 - # Outfits - these should share one share of the weights - MailWinterCoat: 1.5 + # Outfits + MailWinterCoat: 0.5 MailCosplayArc: 0.5 MailCosplayGeisha: 0.5 MailCosplayMaid: 0.5 @@ -33,7 +32,8 @@ MailCosplaySchoolgirl: 0.5 MailCosplayWizard: 0.5 MailNoir: 0.5 - # Accessories - should share one + MailNFUnusualClothing: 0.5 + # Accessories MailFishingCap: 0.5 MailFlowers: 1 MailSunglasses: 1 @@ -41,6 +41,7 @@ MailNFBible: 1 MailNFBikeHorn: 0.5 MailCrayon: 1 + MailNFDAW: 0.1 MailFigurine: 1 MailNFFigurineBulk: 1 MailNFPAI: 1 @@ -52,12 +53,16 @@ MailSpaceVillainDIY: 1 # Useful MailNFCallForHelp: 0.6 + MailNFCircuitboardIndustrial: 0.5 + MailNFCircuitboardService: 0.5 MailFlashlight: 1 + MailNFHoverbike: 0.1 MailNFMoney: 1 + MailNFPen: 1 MailNFT2ComponentBox: 0.3 MailNFT3ComponentBox: 0.6 MailNFT4ComponentBox: 0.1 - MailNFPen: 1 + MailNFUnicycle: 0.5 # Weapons MailHighlander: 0.12 MailHighlanderDulled: 1 @@ -69,6 +74,7 @@ MailNFSmoke: 1 MailRestraints: 1 MailVagueThreat: 0.4 + MailNFCritter: 1 # Department and job-specific mail can have slightly higher weights, @@ -78,13 +84,12 @@ MailSecurityDonuts: 3 MailSecurityFlashlight: 2 MailSecurityNonlethalsKit: 2 + MailSecurityNFHudNfsdMed: 1 MailSecuritySpaceLaw: 1 MailSecurityNFMusket: 1 jobs: StationRepresentative: - MailHoPBureaucracy: 2 - MailHoPSupplement: 3 MailNFGoldCigars: 0.45 Sheriff: MailSecurityNonlethalsKit: 2 diff --git a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml index d4396f0eac6..ebac6b596b5 100644 --- a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml +++ b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml @@ -1,15 +1,15 @@ # Pranks: admin items or effects put into an envelope, released when opened or damaged. - type: entity id: DelayedSmoke + parent: BaseItem + noSpawn: true name: delayed smoke suffix: "Smoke (10s, delayed)" - parent: BaseItem components: - type: DelayedItem item: AdminInstantEffectSmoke10 # Papers (letters, ad copy) -# TODO: look into center tag - type: entity id: PaperMailNFCallForHelp1 # noSpawn: true From 88719403005d596a402ebe1c85c59a748680e029 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Wed, 5 Jun 2024 15:19:25 -0400 Subject: [PATCH 04/33] More mail table entries --- Resources/Prototypes/_NF/Mail/mail.yml | 33 +++++++++++++++++-- .../Prototypes/_NF/Mail/mailDeliveries.yml | 14 ++++---- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index dc19e409e84..8fec4ce46ab 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -153,10 +153,10 @@ orGroup: Paper - id: FlashlightLantern orGroup: Gift - - id: Crowbar + - id: JawsOfLife orGroup: Gift prob: 0.5 - - id: CrowbarRed + - id: WelderIndustrial orGroup: Gift prob: 0.5 - id: ClothingMaskGas @@ -265,6 +265,23 @@ - id: FoodBakedCookieSugar orGroup: Cookie4 +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFKnife + suffix: knife, extended + components: + - type: Mail + contents: + - id: KukriKnife + orGroup: Knife + - id: Machete + orGroup: Knife + - id: CombatKnife + orGroup: Knife + - id: SurvivalKnife + orGroup: Knife + - type: entity noSpawn: true parent: BaseMail @@ -1197,6 +1214,8 @@ orGroup: Board - id: SodaDispenserMachineCircuitboard orGroup: Board + - id: JukeboxCircuitBoard + orGroup: Board - id: MassMediaCircuitboard orGroup: Board prob: 0.5 @@ -1305,3 +1324,13 @@ - id: MobMouseCancer orGroup: Critter prob: 0.01 # Rare + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFPowerCell + suffix: power cell + components: + - type: Mail + contents: + - id: PowerCellMicroreactor diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index 27bb66540dc..3c5f3aa00fb 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -40,25 +40,24 @@ # Fun MailNFBible: 1 MailNFBikeHorn: 0.5 - MailCrayon: 1 + MailBlockGameDIY: 1 MailNFDAW: 0.1 - MailFigurine: 1 MailNFFigurineBulk: 1 + MailMusicianInstrumentSmall: 1 MailNFPAI: 1 MailNFPlushie: 1 MailSkub: 0.5 MailNFSoaps: 0.95 MailNFSoapsOmega: 0.05 # Rare variant - MailBlockGameDIY: 1 MailSpaceVillainDIY: 1 # Useful MailNFCallForHelp: 0.6 MailNFCircuitboardIndustrial: 0.5 MailNFCircuitboardService: 0.5 - MailFlashlight: 1 MailNFHoverbike: 0.1 MailNFMoney: 1 MailNFPen: 1 + MailNFPowerCell: 0.5 MailNFT2ComponentBox: 0.3 MailNFT3ComponentBox: 0.6 MailNFT4ComponentBox: 0.1 @@ -67,15 +66,14 @@ MailHighlander: 0.12 MailHighlanderDulled: 1 MailKatana: 1 - MailKnife: 1 + MailNFKnife: 1 MailNFGladiator: 0.1 MailNFConscript: 0.1 # Pranks - MailNFSmoke: 1 + MailNFCritter: 1 MailRestraints: 1 + MailNFSmoke: 1 MailVagueThreat: 0.4 - MailNFCritter: 1 - # Department and job-specific mail can have slightly higher weights, # since they'll be merged with the everyone pool. From 1ac6480234f80178e7ee965a0347db1c81eb7064 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Thu, 6 Jun 2024 10:29:32 -0400 Subject: [PATCH 05/33] Remove hoverbike from mail pool --- Resources/Prototypes/_NF/Mail/mail.yml | 11 ----------- Resources/Prototypes/_NF/Mail/mailDeliveries.yml | 1 - 2 files changed, 12 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 8fec4ce46ab..0540a9a5694 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1093,17 +1093,6 @@ - id: SyndicateWhistle - id: PaperMailNTConscript -- type: entity - noSpawn: true - parent: BaseMail - id: MailNFHoverbike - suffix: conscript - components: - - type: Mail - contents: - - id: HoverbikeFlatpack - - id: Multitool - - type: entity noSpawn: true parent: BaseMail diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index 3c5f3aa00fb..892d463e953 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -54,7 +54,6 @@ MailNFCallForHelp: 0.6 MailNFCircuitboardIndustrial: 0.5 MailNFCircuitboardService: 0.5 - MailNFHoverbike: 0.1 MailNFMoney: 1 MailNFPen: 1 MailNFPowerCell: 0.5 From 77482c3f808f1e4bf5d5d8be4257ffaebd4414c1 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Thu, 6 Jun 2024 16:54:59 -0400 Subject: [PATCH 06/33] Add large mail. FIXME: mail_large.rsi has no copyright info --- .../Mail/Components/MailComponent.cs | 6 ++ .../Components/MailTeleporterComponent.cs | 14 ++++ Content.Server/Nyanotrasen/Mail/MailSystem.cs | 14 +++- Resources/Locale/en-US/_NF/mail/mail.ftl | 4 + .../Objects/Specific/Mail/base_mail_large.yml | 77 ++++++++++++++++++ Resources/Prototypes/_NF/Mail/mail.yml | 19 +++-- .../Specific/Mail/mail_large.rsi/broken.png | Bin 0 -> 246 bytes .../Specific/Mail/mail_large.rsi/fragile.png | Bin 0 -> 135 bytes .../Specific/Mail/mail_large.rsi/icon.png | Bin 0 -> 304 bytes .../Mail/mail_large.rsi/inhand-left.png | Bin 0 -> 324 bytes .../Mail/mail_large.rsi/inhand-right.png | Bin 0 -> 324 bytes .../Specific/Mail/mail_large.rsi/locked.png | Bin 0 -> 229 bytes .../Specific/Mail/mail_large.rsi/meta.json | 40 +++++++++ .../Specific/Mail/mail_large.rsi/priority.png | Bin 0 -> 117 bytes .../Mail/mail_large.rsi/priority_inactive.png | Bin 0 -> 118 bytes .../Specific/Mail/mail_large.rsi/trash.png | Bin 0 -> 343 bytes 16 files changed, 165 insertions(+), 9 deletions(-) create mode 100644 Resources/Locale/en-US/_NF/mail/mail.ftl create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml create mode 100644 Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/broken.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/fragile.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/icon.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/inhand-left.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/inhand-right.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/locked.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/meta.json create mode 100644 Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/priority.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/priority_inactive.png create mode 100644 Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/trash.png diff --git a/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs index dba91a3e563..4b0a962f299 100644 --- a/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs +++ b/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs @@ -65,6 +65,12 @@ public sealed partial class MailComponent : SharedMailComponent [DataField("isPriority")] public bool IsPriority = false; + /// + /// Whether this parcel is large. + /// + [DataField("isLarge")] + public bool IsLarge = true; + /// /// What will be packaged when the mail is spawned. /// diff --git a/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs index 37c8b70227d..cb7e91ded4a 100644 --- a/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs +++ b/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs @@ -104,5 +104,19 @@ public sealed partial class MailTeleporterComponent : Component /// [DataField("priorityMalus")] public int PriorityMalus = -250; + + // Frontier: Large mail + /// + /// What's the bonus for delivering a large package intact? + /// + [DataField("largeBonus")] + public int LargeBonus = 5000; // Frontier 500<5000 + + /// + /// What's the malus for failing to deliver a large package? + /// + [DataField("largeMalus")] + public int LargeMalus = -250; + // End Frontier: Large mail } } diff --git a/Content.Server/Nyanotrasen/Mail/MailSystem.cs b/Content.Server/Nyanotrasen/Mail/MailSystem.cs index ffb173acdf4..3a35cad9d9b 100644 --- a/Content.Server/Nyanotrasen/Mail/MailSystem.cs +++ b/Content.Server/Nyanotrasen/Mail/MailSystem.cs @@ -247,11 +247,11 @@ private void OnExamined(EntityUid uid, MailComponent component, ExaminedEvent ar { if (!args.IsInDetailsRange) { - args.PushMarkup(Loc.GetString("mail-desc-far")); + args.PushMarkup(Loc.GetString(component.IsLarge ? "mail-large-desc-far" : "mail-desc-far")); // Frontier: large switch return; } - args.PushMarkup(Loc.GetString("mail-desc-close", ("name", component.Recipient), ("job", component.RecipientJob), ("station", component.RecipientStation))); + args.PushMarkup(Loc.GetString(component.IsLarge ? "mail-large-desc-close" : "mail-desc-close", ("name", component.Recipient), ("job", component.RecipientJob), ("station", component.RecipientStation))); if (component.IsFragile) args.PushMarkup(Loc.GetString("mail-desc-fragile")); @@ -469,6 +469,14 @@ public void SetupMail(EntityUid uid, MailTeleporterComponent component, MailReci mailComp.Recipient = recipient.Name; mailComp.RecipientStation = recipient.Ship; // Frontier + // Frontier: Large mail bonus + if (mailComp.IsLarge) + { + mailComp.Bounty += component.LargeBonus; + mailComp.Penalty += component.LargeMalus; + } + // End Frontier + if (mailComp.IsFragile) { mailComp.Bounty += component.FragileBonus; @@ -491,7 +499,7 @@ public void SetupMail(EntityUid uid, MailTeleporterComponent component, MailReci _appearanceSystem.SetData(uid, MailVisuals.JobIcon, recipient.JobIcon); - _metaDataSystem.SetEntityName(uid, Loc.GetString("mail-item-name-addressed", + _metaDataSystem.SetEntityName(uid, Loc.GetString(mailComp.IsLarge ? "mail-large-item-name-addressed" : "mail-item-name-addressed", // Frontier: IsLarge switch ("recipient", recipient.Name))); var accessReader = EnsureComp(uid); diff --git a/Resources/Locale/en-US/_NF/mail/mail.ftl b/Resources/Locale/en-US/_NF/mail/mail.ftl new file mode 100644 index 00000000000..9413ad36968 --- /dev/null +++ b/Resources/Locale/en-US/_NF/mail/mail.ftl @@ -0,0 +1,4 @@ +mail-large-item-name-unaddressed = package +mail-large-item-name-addressed = package ({$recipient}) +mail-large-desc-far = A large package. +mail-large-desc-close = A large package addressed to {CAPITALIZE($name)}, {$job}. Last known location: {$station}. diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml new file mode 100644 index 00000000000..41de647a341 --- /dev/null +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml @@ -0,0 +1,77 @@ +# Large packages. +- type: entity + parent: BaseMail + abstract: true + id: BaseMailLarge + name: mail-large-item-name-unaddressed + components: + - type: Item + size: Ginormous + - type: Sprite + scale: 0.8, 0.8 + sprite: _NF/Objects/Specific/Mail/mail_large.rsi + layers: + - state: icon + map: ["enum.MailVisualLayers.Icon"] + - state: fragile + map: ["enum.MailVisualLayers.FragileStamp"] + visible: false + - map: ["enum.MailVisualLayers.JobStamp"] + scale: 0.75, 0.75 + offset: 0.230, 0.035 + - state: locked + map: ["enum.MailVisualLayers.Lock"] + - state: priority + map: ["enum.MailVisualLayers.PriorityTape"] + visible: false + shader: unshaded + - state: broken + map: ["enum.MailVisualLayers.Breakage"] + visible: false + - type: GenericVisualizer + visuals: + enum.MailVisuals.IsTrash: + enum.MailVisualLayers.Icon: + True: + state: trash + False: + state: icon + enum.MailVisuals.IsLocked: + enum.MailVisualLayers.Lock: + True: + visible: true + False: + visible: false + enum.MailVisuals.IsFragile: + enum.MailVisualLayers.FragileStamp: + True: + visible: true + False: + visible: false + enum.MailVisuals.IsPriority: + enum.MailVisualLayers.PriorityTape: + True: + visible: true + False: + visible: false + enum.MailVisuals.IsPriorityInactive: + enum.MailVisualLayers.PriorityTape: + True: + shader: shaded + state: priority_inactive + False: + shader: unshaded + state: priority + enum.MailVisuals.IsBroken: + enum.MailVisualLayers.Breakage: + True: + visible: true + False: + visible: false + - type: MultiHandedItem + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailLargeAdminFun + suffix: adminfun diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 0540a9a5694..884499f9950 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -74,13 +74,14 @@ - type: entity noSpawn: true - parent: BaseMail + parent: BaseMailLarge id: MailNFCake suffix: cake, extended components: - type: Mail isFragile: true isPriority: true + isLarge: true contents: - id: FoodCakeApple orGroup: Cake @@ -994,11 +995,12 @@ - type: entity noSpawn: true - parent: BaseMail + parent: BaseMailLarge id: MailSecurityNFMusket suffix: musket components: - type: Mail + isLarge: true contents: - id: ClothingHeadHatPwig - id: Musket @@ -1069,11 +1071,12 @@ - type: entity noSpawn: true - parent: BaseMail + parent: BaseMailLarge id: MailNFGladiator suffix: gladiator components: - type: Mail + isLarge: true contents: - id: SpearBone - id: ClothingOuterArmorGladiator @@ -1082,11 +1085,12 @@ - type: entity noSpawn: true - parent: BaseMail + parent: BaseMailLarge id: MailNFConscript suffix: conscript components: - type: Mail + isLarge: true contents: - id: Kardashev-MosinNonlethal - id: ClothingHeadHatUshanka @@ -1095,11 +1099,13 @@ - type: entity noSpawn: true - parent: BaseMail + parent: BaseMailLarge id: MailNFDAW suffix: conscript components: - type: Mail + isLarge: true + isFragile: true contents: - id: DawInstrumentFlatpack - id: Multitool @@ -1257,11 +1263,12 @@ - type: entity noSpawn: true - parent: BaseMail + parent: BaseMailLarge id: MailNFUnicycle suffix: unicycle components: - type: Mail + isLarge: true contents: - id: VehicleUnicycleFolded diff --git a/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/broken.png b/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/broken.png new file mode 100644 index 0000000000000000000000000000000000000000..1c798c4075b0ce9759cf88d64e2def45dea7342c GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJy`CJRkaFj2;(rr(q0kZ~c z^y)qT4xd>(ZRX+xk)EbNhx&vCI$c3cp(+&@*SlnQZ2Pr;kJ^|0jhkN7GpAnsU$Rx^ zW>U&&ZJ|9YUJ0x*71_lq%e`%4sCHjdpaB;f?}6|shu}HQp5$F*HPgg&ebxsLQ07`vh+W-In literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/fragile.png b/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/fragile.png new file mode 100644 index 0000000000000000000000000000000000000000..0917000cbef3ef7f6341f1f764d978392db98bd9 GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzKTj9Okcigg1PRu~2_ijBfd*V| z2Q?s^k^>#S8>Tw`v$ylT%EQ0$l`^}*!$}@Dw=^6Kh@A|?!sq;eoTzVy4mPwO0P11p ZV|Z!Jv#PmvZWYjE22WQ%mvv4FO#mgMEY$!2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/icon.png b/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f3974ab116c90710a0a437b09a83978350e0439a GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyegQrqu0T4_R5H>|Eyi9s*+nD8 zRXx>JGtFH)!(A)eOFPF~FV9;i-$%E|-=HDdsx`sBGs(Uy#i>8td19vf%(l|mMZOEm z1DDr?ZkW|R-N-0eiPZ#XqEtzcUogXeT!203uL4k2xu=U`h(+(wix;^X6nI(_Z7;e8 zTyzuP`+xE_k;_S^TNcP4iLKFCQ9Q}KNYj3mXhJ|Xzc-TLq|*Wk||bFk8O;!1DBuXZ|q)&HC|)L3=`Y TQH{n&caX`Ru6{1-oD!Mzc-TLq|*Wk||bFk8O;!1DBuXZ|q)&HC|)L3=`Y TQH{n&caX`Ru6{1-oD!Mn3Iu0Yz-(=yUdEyi9s*+nD8 zRXx>JGtFH)!(A)eOFPF~FV9;i-$%E|-=HDdsx`sBGs(Uy#i>8td19vf%(l|mMZOEm z1DDr?ZkW|R-N?vRN2)2p#6VfpSXB&Y@;s4MWk5>4B*-tA;XhvB?m1T!s8qt!#WBR9 rH#tE11>klOa_KuA`G4kMR(2s)i8Lv`njxgN@xNA<4sdi literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/meta.json b/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/meta.json new file mode 100644 index 00000000000..933a9fe0532 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/meta.json @@ -0,0 +1,40 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "FIXME: NEED COPYRIGHT INFO HERE.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "broken" + }, + { + "name": "fragile" + }, + { + "name": "icon" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "locked" + }, + { + "name": "priority" + }, + { + "name": "priority_inactive" + }, + { + "name": "trash" + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/priority.png b/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/priority.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5a74ad10326820f316db28068a15bd0c649474 GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz8&4O$Dny@!}XRX7Ap9zKQcYZt5kn&CHlpX((tVwB4%^oFtgN$UjZ)xx}eD(d)f@&b1 Mr>mdKI;Vst0DGk+(EtDd literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/priority_inactive.png b/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/priority_inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..fc03165b576885291ea0dfaf8b8f2385af9cd7a2 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzTTd6qkcigg1PRu~47^8vX#8ES z+RHbi!1Bn2j`?aP7x^se-zodP2sGewJE#FvlOWR51m%=4Fzj+QE7arl)BzgA;OXk; Jvd$@?2>=f&Ay)tZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/trash.png b/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..2ef4ee7233883af6f8d42a12d2ca927b3ec865b6 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyQ2{<7u0T4_R5H>|Eyi9s*+nD8 zRXx>JGtFH)!(A)eOFPF~FV9;i-$%E|-=HDdsx`sBGs(Uy#i>8td19vf%(l|mMZOEm z1DDr?ZkW|R-N?vRN2)2p#6VfpSXIp9?~XvA>2f7Oe!&d?@qsTEQszLFeV#6kAr`%7 zFCFAMtiaRoa7HzMr_aKh_x_uT3%71nv8}wppQI=+w}m0fvuWlO<25JdeCH_7sE?C`q_Ti4R;WuVzNSqHmob%-U%q{=eEjl;^ODEP& zERSK3JizjSBa-n|- Date: Thu, 6 Jun 2024 17:19:30 -0400 Subject: [PATCH 07/33] Default mail isLarge to false, comment cleanup --- .../Nyanotrasen/Mail/Components/MailComponent.cs | 7 ++++++- .../Nyanotrasen/Mail/Components/MailTeleporterComponent.cs | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs index 4b0a962f299..92b23b9dd4d 100644 --- a/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs +++ b/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs @@ -65,11 +65,16 @@ public sealed partial class MailComponent : SharedMailComponent [DataField("isPriority")] public bool IsPriority = false; + // Frontier: large mail /// /// Whether this parcel is large. /// + /// + /// Ideally, this would be set automatically from the entity type. + /// [DataField("isLarge")] - public bool IsLarge = true; + public bool IsLarge = false; + // End Frontier: large mail /// /// What will be packaged when the mail is spawned. diff --git a/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs index cb7e91ded4a..0c234bfb75d 100644 --- a/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs +++ b/Content.Server/Nyanotrasen/Mail/Components/MailTeleporterComponent.cs @@ -110,7 +110,7 @@ public sealed partial class MailTeleporterComponent : Component /// What's the bonus for delivering a large package intact? /// [DataField("largeBonus")] - public int LargeBonus = 5000; // Frontier 500<5000 + public int LargeBonus = 5000; /// /// What's the malus for failing to deliver a large package? From 8e5cf5b0dffdf3cff23485f7db41205618c38f3c Mon Sep 17 00:00:00 2001 From: Whatstone Date: Thu, 6 Jun 2024 20:13:14 -0400 Subject: [PATCH 08/33] More mail types --- Content.Server/Nyanotrasen/Mail/MailSystem.cs | 4 +- .../_NF/Entities/Objects/Fun/toys.yml | 27 ++ .../Objects/Specific/Mail/base_mail_large.yml | 2 + Resources/Prototypes/_NF/Mail/mail.yml | 278 +++++++++++++++--- .../Prototypes/_NF/Mail/mailDeliveries.yml | 8 +- .../_NF/Mail/mail_specific_items.yml | 54 +--- 6 files changed, 277 insertions(+), 96 deletions(-) diff --git a/Content.Server/Nyanotrasen/Mail/MailSystem.cs b/Content.Server/Nyanotrasen/Mail/MailSystem.cs index 3a35cad9d9b..4c456b07126 100644 --- a/Content.Server/Nyanotrasen/Mail/MailSystem.cs +++ b/Content.Server/Nyanotrasen/Mail/MailSystem.cs @@ -247,11 +247,11 @@ private void OnExamined(EntityUid uid, MailComponent component, ExaminedEvent ar { if (!args.IsInDetailsRange) { - args.PushMarkup(Loc.GetString(component.IsLarge ? "mail-large-desc-far" : "mail-desc-far")); // Frontier: large switch + args.PushMarkup(Loc.GetString(component.IsLarge ? "mail-large-desc-far" : "mail-desc-far")); // Frontier: IsLarge switch return; } - args.PushMarkup(Loc.GetString(component.IsLarge ? "mail-large-desc-close" : "mail-desc-close", ("name", component.Recipient), ("job", component.RecipientJob), ("station", component.RecipientStation))); + args.PushMarkup(Loc.GetString(component.IsLarge ? "mail-large-desc-close" : "mail-desc-close", ("name", component.Recipient), ("job", component.RecipientJob), ("station", component.RecipientStation))); // Frontier: IsLarge switch if (component.IsFragile) args.PushMarkup(Loc.GetString("mail-desc-fragile")); diff --git a/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml index 0fec5bb01ae..45dd4f91e0d 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml @@ -498,3 +498,30 @@ - type: Sprite sprite: _NF/Objects/Fun/catplushie.rsi state: white + +# Rubber Throngler. +- type: entity + name: The Throngler + parent: BaseItem + id: ThronglerToy + suffix: Toy + description: Why would you make this? + components: + - type: Sprite + sprite: Objects/Weapons/Melee/Throngler2.rsi + state: icon + - type: StaminaDamageOnHit + damage: 0.8 + - type: Appearance + - type: DisarmMalus + malus: 0 + - type: MeleeWeapon + wideAnimationRotation: -135 + attackRate: 10 + damage: + types: + Blunt: 0 + soundHit: + path: /Audio/Effects/explosion_small1.ogg + soundNoDamage: + path: /Audio/Effects/explosion_small1.ogg diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml index 41de647a341..bd4dcdd2ceb 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml @@ -69,6 +69,8 @@ False: visible: false - type: MultiHandedItem + - type: Mail + isLarge: true - type: entity noSpawn: true diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 884499f9950..f249a093509 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -8,6 +8,7 @@ components: - type: Mail contents: + # 12.5 overall weight, 8% base chance - id: DrinkAbsintheBottleFull orGroup: Drink - id: DrinkBlueCuracaoBottleFull @@ -81,8 +82,8 @@ - type: Mail isFragile: true isPriority: true - isLarge: true contents: + # 14.8 total weight, ~6.8% base chance - id: FoodCakeApple orGroup: Cake - id: FoodCakeBirthday @@ -117,13 +118,13 @@ orGroup: Cake prob: 0.5 # Rare - - id: FoodCakeLemoon + - id: FoodCakeBrain orGroup: Cake prob: 0.25 - - id: FoodCakeSuppermatter + - id: FoodCakeLemoon orGroup: Cake prob: 0.25 - - id: FoodCakeBrain + - id: FoodCakeSuppermatter orGroup: Cake prob: 0.25 # Ultra rare @@ -137,34 +138,26 @@ - type: entity noSpawn: true parent: BaseMail - id: MailNFCallForHelp - suffix: call-for-help + id: MailNFPowerTool + suffix: power tool components: - type: Mail contents: - - id: PaperMailNFCallForHelp1 + - id: PaperMailNFPowerTool orGroup: Paper - - id: PaperMailNFCallForHelp2 - orGroup: Paper - - id: PaperMailNFCallForHelp3 - orGroup: Paper - - id: PaperMailNFCallForHelp4 - orGroup: Paper - - id: PaperMailNFCallForHelp5 - orGroup: Paper - - id: FlashlightLantern - orGroup: Gift - id: JawsOfLife orGroup: Gift - prob: 0.5 - - id: WelderIndustrial + prob: 0.33 + - id: PowerDrill orGroup: Gift - prob: 0.5 - - id: ClothingMaskGas + prob: 0.33 + - id: WelderIndustrial orGroup: Gift - - id: WeaponFlareGun + prob: 0.30 + # Rare + - id: WelderIndustrialAdvanced orGroup: Gift - prob: 0.25 + prob: 0.04 - type: entity noSpawn: true @@ -194,12 +187,23 @@ contents: - id: CigPackBlack orGroup: Cigs + prob: 0.19 - id: CigPackBlue orGroup: Cigs + prob: 0.19 - id: CigPackGreen orGroup: Cigs + prob: 0.19 - id: CigPackRed orGroup: Cigs + prob: 0.19 + - id: CigPackMixed + orGroup: Cigs + prob: 0.19 + # Rare + - id: CigPackSyndicate + orGroup: Cigs + prob: 0.05 - id: CheapLighter - type: entity @@ -291,22 +295,25 @@ components: - type: Mail contents: - # Expected value: 1955 spesos + # Expected value: 2965 spesos - id: SpaceCash100 orGroup: Cash - prob: 0.05 + prob: 0.025 - id: SpaceCash500 orGroup: Cash - prob: 0.1 + prob: 0.075 - id: SpaceCash1000 orGroup: Cash - prob: 0.4 + prob: 0.3 - id: SpaceCash2500 orGroup: Cash - prob: 0.3 + prob: 0.35 - id: SpaceCash5000 orGroup: Cash prob: 0.15 + - id: SpaceCash10000 + orGroup: Cash + prob: 0.1 - type: entity noSpawn: true @@ -363,6 +370,7 @@ components: - type: Mail contents: + # Total weight: 13.15, ~7.60% base chance # These are all grouped up now to guarantee at least one item received. # The downside is you're not going to get half a dozen plushies anymore. - id: PlushieBee @@ -622,6 +630,7 @@ orGroup: Donk prob: 0.05 # Bad luck. +# TODO: Probably needs a buff. - type: entity noSpawn: true parent: BaseMail @@ -634,6 +643,7 @@ amount: 3 - id: PaperMailNFPwrGameAd +# TODO: Probably needs a buff. - type: entity noSpawn: true parent: BaseMail @@ -646,6 +656,7 @@ amount: 3 - id: PaperMailNFRedBoolAd +# TODO: Probably needs a buff. - type: entity noSpawn: true parent: BaseMail @@ -657,6 +668,7 @@ - id: DrinkColaBottleFull - id: PaperMailNFSpaceColaAd +# TODO: Probably needs a buff. - type: entity noSpawn: true parent: BaseMail @@ -668,6 +680,7 @@ - id: DrinkSpaceMountainWindBottleFull - id: PaperMailNFSpaceMountainWindAd +# TODO: Probably needs a buff. - type: entity noSpawn: true parent: BaseMail @@ -713,9 +726,23 @@ - id: BluntRainbow orGroup: Smokeable2 prob: 0.15 + # Smokeable 3 + - id: Joint + orGroup: Smokeable3 + prob: 0.35 + - id: JointRainbow + orGroup: Smokeable3 + prob: 0.15 + - id: Blunt + orGroup: Smokeable3 + prob: 0.35 + - id: BluntRainbow + orGroup: Smokeable3 + prob: 0.15 # Catchall for food that can't otherwise be created outside of random spawners # Mmm, mail food +# TODO: Probably needs a buff. - type: entity noSpawn: true parent: BaseMail @@ -732,8 +759,6 @@ orGroup: Food - id: FoodMealNachosCuban orGroup: Food - - id: FoodMealMint - orGroup: Food - id: FoodMealEggplantParm orGroup: Food - id: FoodMealPotatoYaki @@ -772,16 +797,22 @@ orGroup: Food prob: 0.05 - id: FoodMeatGoliathCooked + amount: 2 orGroup: Food - id: FoodMeatRounyCooked + amount: 2 orGroup: Food - id: FoodMeatLizardCooked + amount: 2 orGroup: Food - id: FoodMeatSpiderlegCooked + amount: 2 orGroup: Food - id: FoodMeatMeatballCooked + amount: 3 orGroup: Food +# TODO: Probably needs a buff. - type: entity noSpawn: true parent: BaseMail @@ -924,7 +955,11 @@ - id: FoodFrozenSnowconeMime amount: 2 orGroup: Food + - id: FoodMealMint # unlucky + amount: 2 + orGroup: Food +# TODO: Probably needs a buff. - type: entity noSpawn: true parent: BaseMail @@ -1000,7 +1035,6 @@ suffix: musket components: - type: Mail - isLarge: true contents: - id: ClothingHeadHatPwig - id: Musket @@ -1040,6 +1074,7 @@ - id: PersonalAI orGroup: PAI prob: 0.99 + # Ultra rare - id: SyndicatePersonalAI orGroup: PAI prob: 0.01 @@ -1076,7 +1111,6 @@ suffix: gladiator components: - type: Mail - isLarge: true contents: - id: SpearBone - id: ClothingOuterArmorGladiator @@ -1090,31 +1124,184 @@ suffix: conscript components: - type: Mail - isLarge: true contents: - id: Kardashev-MosinNonlethal - id: ClothingHeadHatUshanka - id: SyndicateWhistle - id: PaperMailNTConscript +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFIFFBoard + suffix: iff board + components: + - type: Mail + contents: + - id: ComputerIFFCircuitboard + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFThrongler + suffix: throngler + components: + - type: Mail + contents: + - id: ThronglerToy + - type: entity noSpawn: true parent: BaseMailLarge id: MailNFDAW - suffix: conscript + suffix: DAW components: - type: Mail - isLarge: true isFragile: true contents: - id: DawInstrumentFlatpack - id: Multitool +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFInstrumentSmall + suffix: instrument, expanded + components: + - type: Mail + isFragile: true + contents: + - id: TrumpetInstrument + orGroup: Instrument + - id: RecorderInstrument + orGroup: Instrument + - id: ClarinetInstrument + orGroup: Instrument + - id: FluteInstrument + orGroup: Instrument + - id: HarmonicaInstrument + orGroup: Instrument + - id: OcarinaInstrument + orGroup: Instrument + - id: PanFluteInstrument + orGroup: Instrument + - id: KalimbaInstrument + orGroup: Instrument + - id: WoodblockInstrument + orGroup: Instrument + - id: BikeHornInstrument + orGroup: Instrument + - id: MusicBoxInstrument + orGroup: Instrument + - id: MicrophoneInstrument + orGroup: Instrument + - id: MusicalLungInstrument + orGroup: Instrument + # Uncommon + - id: PhoneInstrument + orGroup: Instrument + prob: 0.25 + # Rare + - id: BananaPhoneInstrument + orGroup: Instrument + prob: 0.1 + # Ultra-rare + - id: PhoneInstrumentSyndicate + orGroup: Instrument + prob: 0.05 + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFInstrumentLarge + suffix: instrument, large + components: + - type: Mail + isFragile: true + contents: + - id: TromboneInstrument + orGroup: Instrument + - id: FrenchHornInstrument + orGroup: Instrument + - id: SaxophoneInstrument + orGroup: Instrument + - id: EuphoniumInstrument + orGroup: Instrument + - id: AcousticGuitarInstrument + orGroup: Instrument + - id: ElectricGuitarInstrument + orGroup: Instrument + - id: BassGuitarInstrument + orGroup: Instrument + - id: RockGuitarInstrument + orGroup: Instrument + - id: BanjoInstrument + orGroup: Instrument + - id: ViolinInstrument + orGroup: Instrument + - id: CelloInstrument + orGroup: Instrument + - id: ViolaInstrument + orGroup: Instrument + - id: BagpipeInstrument # Fury. + orGroup: Instrument + - id: SynthesizerInstrument + orGroup: Instrument + - id: AccordionInstrument + orGroup: Instrument + - id: GlockenspielInstrument + orGroup: Instrument + - id: XylophoneInstrument + orGroup: Instrument + # Uncommon + - id: Rickenbacker4003Instrument + orGroup: Instrument + prob: 0.25 + # Rare + - id: Rickenbacker4001Instrument + orGroup: Instrument + prob: 0.1 + +- type: entity + noSpawn: True + parent: BaseMailLarge + id: MailNFInstrumentFlatpack + suffix: instrument, flatpack + components: + - type: Mail + isFragile: true + contents: + - id: TubaInstrumentFlatpack + orGroup: Instrument + - id: HarpInstrumentFlatpack + orGroup: Instrument + - id: ContrabassInstrumentFlatpack + orGroup: Instrument + - id: VibraphoneInstrumentFlatpack + orGroup: Instrument + - id: MarimbaInstrumentFlatpack + orGroup: Instrument + - id: TomDrumsInstrumentFlatpack + orGroup: Instrument + - id: TimpaniInstrumentFlatpack + orGroup: Instrument + - id: TaikoInstrumentFlatpack + orGroup: Instrument + - id: MinimoogInstrumentFlatpack + orGroup: Instrument + - id: ChurchOrganInstrumentFlatpack + orGroup: Instrument + - id: PianoInstrumentFlatpack + orGroup: Instrument + - id: UprightPianoInstrumentFlatpack + orGroup: Instrument + - id: Multitool # For the flatpack + - type: entity noSpawn: true parent: BaseMail id: MailNFCircuitboardIndustrial - suffix: conscript + suffix: industrial circuitboard components: - type: Mail contents: @@ -1180,7 +1367,7 @@ noSpawn: true parent: BaseMail id: MailNFCircuitboardService - suffix: conscript + suffix: service circuitboard components: - type: Mail contents: @@ -1222,7 +1409,7 @@ noSpawn: true parent: BaseMail id: MailNFUnusualClothing - suffix: unusual clothes + suffix: unusual clothing components: - type: Mail contents: @@ -1268,7 +1455,6 @@ suffix: unicycle components: - type: Mail - isLarge: true contents: - id: VehicleUnicycleFolded @@ -1284,19 +1470,23 @@ # Bugs (weight: 2) - id: MobCockroach orGroup: Critter - prob: 0.45 + prob: 0.36 - id: MobSlug orGroup: Critter - prob: 0.45 + prob: 0.36 - id: MobArgocyteSlurva # honorary bug? orGroup: Critter - prob: 0.45 + prob: 0.36 - id: MobBee orGroup: Critter - prob: 0.45 + prob: 0.36 + - id: MobButterFly + orGroup: Critter + prob: 0.36 + # Uncommon - id: MobMothroach orGroup: Critter - prob: 0.2 # Uncommon + prob: 0.2 # Small reptiles (weight: 1) - id: MobLizard orGroup: Critter diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index 892d463e953..a755568fbb0 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -43,17 +43,21 @@ MailBlockGameDIY: 1 MailNFDAW: 0.1 MailNFFigurineBulk: 1 - MailMusicianInstrumentSmall: 1 + MailNFInstrumentSmall: 1 + MailNFInstrumentLarge: 1 + MailNFInstrumentFlatpack: 1 MailNFPAI: 1 MailNFPlushie: 1 MailSkub: 0.5 MailNFSoaps: 0.95 MailNFSoapsOmega: 0.05 # Rare variant MailSpaceVillainDIY: 1 + MailNFThrongler: 0.1 # Useful MailNFCallForHelp: 0.6 MailNFCircuitboardIndustrial: 0.5 MailNFCircuitboardService: 0.5 + MailNFIFFBoard: 0.25 MailNFMoney: 1 MailNFPen: 1 MailNFPowerCell: 0.5 @@ -70,7 +74,7 @@ MailNFConscript: 0.1 # Pranks MailNFCritter: 1 - MailRestraints: 1 + MailRestraints: 1 # TODO: figure out what to do with this. MailNFSmoke: 1 MailVagueThreat: 0.4 diff --git a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml index ebac6b596b5..d269f355c2c 100644 --- a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml +++ b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml @@ -11,63 +11,21 @@ # Papers (letters, ad copy) - type: entity - id: PaperMailNFCallForHelp1 + id: PaperMailNFPowerTool # noSpawn: true - suffix: "call for help 1, formatted" + suffix: "power tool ad, formatted" parent: Paper components: - type: Paper + # TODO: FORMAT ME. content: |2 - [head=1]Help! They're coming![/head] + [head=1]Hazard Fraught Tools[/head] - [head=1]Take this![/head] + [head=1]Discount Tools at Quality Prices![/head] - -- type: entity - id: PaperMailNFCallForHelp2 - # noSpawn: true - suffix: "call for help 2, formatted" - parent: Paper - components: - - type: Paper - content: |2 - - [head=1]Check disposals![/head] - -- type: entity - id: PaperMailNFCallForHelp3 - # noSpawn: true - suffix: "call for help 3, formatted" - parent: Paper - components: - - type: Paper - content: |2 - - [head=1]GET ME OUT![/head] - -- type: entity - id: PaperMailNFCallForHelp4 - # noSpawn: true - suffix: "call for help 4, formatted" - parent: Paper - components: - - type: Paper - content: |2 - - [head=1]Check maintenance![/head] - -- type: entity - id: PaperMailNFCallForHelp5 - # noSpawn: true - suffix: "call for help 5, formatted" - parent: Paper - components: - - type: Paper - content: |2 - - [head=1]Save me, please![/head] + [head=2]Fax us for a catalog at- ERROR: UNEXPECTED EOF[/head] - type: entity id: PaperMailNFVagueThreat1 From d80711bdb2169b01889827f5d5bb5548d79ce6ae Mon Sep 17 00:00:00 2001 From: Whatstone Date: Thu, 6 Jun 2024 20:13:28 -0400 Subject: [PATCH 09/33] Add optional large mail flag to admin mailto cmd --- .../Nyanotrasen/Mail/MailCommands.cs | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Content.Server/Nyanotrasen/Mail/MailCommands.cs b/Content.Server/Nyanotrasen/Mail/MailCommands.cs index 5af873f9e80..5935a6bde2a 100644 --- a/Content.Server/Nyanotrasen/Mail/MailCommands.cs +++ b/Content.Server/Nyanotrasen/Mail/MailCommands.cs @@ -20,6 +20,7 @@ public sealed class MailToCommand : IConsoleCommand [Dependency] private readonly IEntitySystemManager _entitySystemManager = default!; private readonly string _blankMailPrototype = "MailAdminFun"; + private readonly string _blankLargeMailPrototype = "MailLargeAdminFun"; // Frontier: large mail private readonly string _container = "storagebase"; private readonly string _mailContainer = "contents"; @@ -56,6 +57,16 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args) return; } + // Frontier: Large Mail + bool isLarge = false; + if (args.Length >= 4 && !Boolean.TryParse(args[4], out isLarge)) + { + shell.WriteError(Loc.GetString("shell-invalid-bool")); + return; + } + var mailPrototype = isLarge ? _blankLargeMailPrototype : _blankMailPrototype; + // End Frontier + var _mailSystem = _entitySystemManager.GetEntitySystem(); var _containerSystem = _entitySystemManager.GetEntitySystem(); @@ -66,9 +77,9 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args) return; } - if (!_prototypeManager.HasIndex(_blankMailPrototype)) + if (!_prototypeManager.HasIndex(mailPrototype)) // Frontier: _blankMailPrototype(containerUid).Coordinates); + var mailUid = _entityManager.SpawnEntity(mailPrototype, _entityManager.GetComponent(containerUid).Coordinates); // Frontier: _blankMailPrototype(mailUid, _mailContainer); if (!_entityManager.TryGetComponent(mailUid, out MailComponent? mailComponent)) { - shell.WriteLine(Loc.GetString("command-mailto-bogus-mail", ("blankMail", _blankMailPrototype), ("requiredMailComponent", nameof(MailComponent)))); + shell.WriteLine(Loc.GetString("command-mailto-bogus-mail", ("blankMail", mailPrototype), ("requiredMailComponent", nameof(MailComponent)))); // Frontier: _blankMailPrototype Date: Sat, 8 Jun 2024 14:09:32 -0400 Subject: [PATCH 10/33] mail_large copyright --- .../Textures/_NF/Objects/Specific/Mail/mail_large.rsi/meta.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/meta.json b/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/meta.json index 933a9fe0532..ac5345ba1a5 100644 --- a/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/meta.json +++ b/Resources/Textures/_NF/Objects/Specific/Mail/mail_large.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "FIXME: NEED COPYRIGHT INFO HERE.", + "copyright": "Taken from tgstation (obj/storage/closet.dmi, obj/service/bureaucracy.dmi), modified by Whatstone (Discord). broken, inhand-left, inhand-right by Whatstone.", "size": { "x": 32, "y": 32 From e956cbbe88d1dd1d09ec769fe3437333b2e36584 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Sat, 8 Jun 2024 18:35:46 -0400 Subject: [PATCH 11/33] admin cmd fix, new mail types, const cleanup --- .../Nyanotrasen/Mail/MailCommands.cs | 4 +- Content.Server/Nyanotrasen/Mail/MailSystem.cs | 8 ++-- Content.Server/_NF/Mail/MailConstants.cs | 38 +++++++++++++++++++ .../_NF/Entities/Objects/Fun/toys.yml | 1 + .../Objects/Specific/Mail/base_mail_large.yml | 4 +- Resources/Prototypes/_NF/Mail/mail.yml | 13 +++++++ .../Prototypes/_NF/Mail/mailDeliveries.yml | 3 +- .../_NF/Mail/mail_specific_items.yml | 30 ++++++++++++++- 8 files changed, 92 insertions(+), 9 deletions(-) create mode 100644 Content.Server/_NF/Mail/MailConstants.cs diff --git a/Content.Server/Nyanotrasen/Mail/MailCommands.cs b/Content.Server/Nyanotrasen/Mail/MailCommands.cs index 5935a6bde2a..9ef2f3685d4 100644 --- a/Content.Server/Nyanotrasen/Mail/MailCommands.cs +++ b/Content.Server/Nyanotrasen/Mail/MailCommands.cs @@ -59,7 +59,7 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args) // Frontier: Large Mail bool isLarge = false; - if (args.Length >= 4 && !Boolean.TryParse(args[4], out isLarge)) + if (args.Length > 4 && !Boolean.TryParse(args[4], out isLarge)) { shell.WriteError(Loc.GetString("shell-invalid-bool")); return; @@ -115,7 +115,7 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args) mailComponent.IsFragile = isFragile; mailComponent.IsPriority = isPriority; - mailComponent.IsPriority = isPriority; + mailComponent.IsLarge = isLarge; _mailSystem.SetupMail(mailUid, teleporterComponent, recipient.Value); diff --git a/Content.Server/Nyanotrasen/Mail/MailSystem.cs b/Content.Server/Nyanotrasen/Mail/MailSystem.cs index e0d8e7472c6..7e76648a09b 100644 --- a/Content.Server/Nyanotrasen/Mail/MailSystem.cs +++ b/Content.Server/Nyanotrasen/Mail/MailSystem.cs @@ -245,13 +245,14 @@ private void OnAfterInteractUsing(EntityUid uid, MailComponent component, AfterI private void OnExamined(EntityUid uid, MailComponent component, ExaminedEvent args) { + MailEntityStrings mailEntityStrings = component.IsLarge ? MailConstants.MailLarge : MailConstants.Mail; //Frontier: mail types stored per type (large mail) if (!args.IsInDetailsRange) { - args.PushMarkup(Loc.GetString(component.IsLarge ? "mail-large-desc-far" : "mail-desc-far")); // Frontier: IsLarge switch + args.PushMarkup(Loc.GetString(mailEntityStrings.DescFar)); // Frontier: mail constants struct return; } - args.PushMarkup(Loc.GetString(component.IsLarge ? "mail-large-desc-close" : "mail-desc-close", ("name", component.Recipient), ("job", component.RecipientJob), ("station", component.RecipientStation))); // Frontier: IsLarge switch + args.PushMarkup(Loc.GetString(mailEntityStrings.DescClose, ("name", component.Recipient), ("job", component.RecipientJob), ("station", component.RecipientStation))); // Frontier: mail constants struct if (component.IsFragile) args.PushMarkup(Loc.GetString("mail-desc-fragile")); @@ -470,6 +471,7 @@ public void SetupMail(EntityUid uid, MailTeleporterComponent component, MailReci mailComp.RecipientStation = recipient.Ship; // Frontier // Frontier: Large mail bonus + MailEntityStrings mailEntityStrings = mailComp.IsLarge ? MailConstants.MailLarge : MailConstants.Mail; if (mailComp.IsLarge) { mailComp.Bounty += component.LargeBonus; @@ -499,7 +501,7 @@ public void SetupMail(EntityUid uid, MailTeleporterComponent component, MailReci _appearanceSystem.SetData(uid, MailVisuals.JobIcon, recipient.JobIcon); - _metaDataSystem.SetEntityName(uid, Loc.GetString(mailComp.IsLarge ? "mail-large-item-name-addressed" : "mail-item-name-addressed", // Frontier: IsLarge switch + _metaDataSystem.SetEntityName(uid, Loc.GetString(mailEntityStrings.NameAddressed, // Frontier: move constant to MailEntityString ("recipient", recipient.Name))); var accessReader = EnsureComp(uid); diff --git a/Content.Server/_NF/Mail/MailConstants.cs b/Content.Server/_NF/Mail/MailConstants.cs new file mode 100644 index 00000000000..a739a70ab89 --- /dev/null +++ b/Content.Server/_NF/Mail/MailConstants.cs @@ -0,0 +1,38 @@ +namespace Content.Server.Mail +{ + /// + /// A set of localized strings related to mail entities + /// + public struct MailEntityStrings + { + public string NameAddressed; + public string DescClose; + public string DescFar; + } + + /// + /// Constants related to mail. + /// + public sealed class MailConstants : EntitySystem + { + /// + /// Locale strings related to small parcels. + /// + public static readonly MailEntityStrings Mail = new() + { + NameAddressed = "mail-item-name-addressed", + DescClose = "mail-desc-close", + DescFar = "mail-desc-far" + }; + + /// + /// Locale strings related to large packages. + /// + public static readonly MailEntityStrings MailLarge = new() + { + NameAddressed = "mail-large-item-name-addressed", + DescClose = "mail-large-desc-close", + DescFar = "mail-large-desc-far" + }; + } +} \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml index 45dd4f91e0d..890c26faa6b 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml @@ -500,6 +500,7 @@ state: white # Rubber Throngler. +# Essentially a rubber hammer but with explosion noises and RSI - type: entity name: The Throngler parent: BaseItem diff --git a/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml b/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml index bd4dcdd2ceb..3ba4cfd64e0 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Specific/Mail/base_mail_large.yml @@ -17,8 +17,8 @@ map: ["enum.MailVisualLayers.FragileStamp"] visible: false - map: ["enum.MailVisualLayers.JobStamp"] - scale: 0.75, 0.75 - offset: 0.230, 0.035 + scale: 0.8, 0.8 + offset: 0.235, -0.01 - state: locked map: ["enum.MailVisualLayers.Lock"] - state: priority diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index f249a093509..79cdf9efa41 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1520,3 +1520,16 @@ - type: Mail contents: - id: PowerCellMicroreactor + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailStationRepNFStationPet + suffix: station pet + components: + - type: Mail + - isFragile: true + contents: + - id: MaterialWoodPlank10 + - id: PaperMailNFIkea + - id: DelayedPetCarrierNPCEmotionalSupportSafe \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index a755568fbb0..7a4a7774934 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -92,7 +92,8 @@ jobs: StationRepresentative: MailNFGoldCigars: 0.45 + MailStationRepNFStationPet: 1 Sheriff: MailSecurityNonlethalsKit: 2 MailNFGoldCigars: 0.45 - + MailStationRepNFStationPet: 1 # Don't see the harm in this with Smile and Cappy around diff --git a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml index d269f355c2c..e170772d86d 100644 --- a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml +++ b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml @@ -4,11 +4,23 @@ parent: BaseItem noSpawn: true name: delayed smoke - suffix: "Smoke (10s, delayed)" + suffix: "(10s)" components: - type: DelayedItem item: AdminInstantEffectSmoke10 +# Miscellaneous Items + +# Delay the emotional support pet so they don't suffocate. +- type: entity + id: DelayedPetCarrierNPCEmotionalSupportSafe + parent: BaseItem + noSpawn: true + name: delayed emotional support pet + components: + - type: DelayedItem + item: PetCarrierNPCEmotionalSupportSafe + # Papers (letters, ad copy) - type: entity id: PaperMailNFPowerTool @@ -329,3 +341,19 @@ [head=3]Sincerely, [italic]The Frontier Paper Pusher's Club[/italic][/head] +- type: entity + id: PaperMailNFPetBedAssemblyManual + # noSpawn: true + suffix: "pet bed assembly manual" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]HÖGANÄS[/head] + + [head=2](There is a black and white picture of a pet bed on the first page.)[/head] + + [head=3](On the next few pages, you see a list of materials and a happy stick figure assembling furniture.)[/head] + + [head=3](On the pages after that, you see a set of instructions to assemble a pet bed. You're sure you don't need them, how hard could it be?)[/head] From 9d36fdda20fa34077cce7a6e87d2570c8d3b95f2 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Tue, 11 Jun 2024 08:22:13 -0400 Subject: [PATCH 12/33] Mail: new components, weighting, a few new items --- .../Mail/Components/MailComponent.cs | 3 - Resources/Prototypes/_NF/Mail/mail.yml | 149 ++++++++++++++---- .../Prototypes/_NF/Mail/mailDeliveries.yml | 81 +++++----- .../_NF/Mail/mail_specific_items.yml | 39 +++++ 4 files changed, 202 insertions(+), 70 deletions(-) diff --git a/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs index ef55f9eda7b..d0fea1421ec 100644 --- a/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs +++ b/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs @@ -69,9 +69,6 @@ public sealed partial class MailComponent : SharedMailComponent /// /// Whether this parcel is large. /// - /// - /// Ideally, this would be set automatically from the entity type. - /// [DataField("isLarge")] public bool IsLarge = false; // End Frontier: large mail diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 79cdf9efa41..15aab99955d 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -43,20 +43,18 @@ - id: DrinkGlass amount: 2 +# TODO: turn this into a full piety kit - type: entity noSpawn: true - parent: BaseMail - id: MailNFBible - suffix: bible, random + parent: BaseMailLarge + id: MailNFWeejurnum + suffix: weejurnum components: - type: Mail contents: - - id: Bible - orGroup: Book - prob: 0.9 - id: Weejurnum - orGroup: Book - prob: 0.1 + - id: ClothingOuterRobesWeedChurch + - id: ClothingHeadWeedChurchBishop - type: entity noSpawn: true @@ -278,14 +276,28 @@ components: - type: Mail contents: + # Non-kitchen, non-contraband knives and swords, both rolled into one. - id: KukriKnife orGroup: Knife + prob: 0.2 - id: Machete orGroup: Knife + prob: 0.2 - id: CombatKnife orGroup: Knife + prob: 0.2 - id: SurvivalKnife orGroup: Knife + prob: 0.2 + - id: Katana + orGroup: Knife + prob: 0.1 + - id: Claymore + orGroup: Knife + prob: 0.1 + - id: Claymore + orGroup: Knife + prob: 0.1 - type: entity noSpawn: true @@ -505,6 +517,32 @@ - id: FoodSnackSyndi orGroup: Snack3 prob: 0.5 + # Snack 4 + - id: FoodSnackChocolate + orGroup: Snack4 + - id: FoodSnackPopcorn + orGroup: Snack4 + - id: FoodSnackChips + orGroup: Snack4 + - id: FoodSnackBoritos + orGroup: Snack4 + - id: FoodSnackSus + orGroup: Snack4 + - id: FoodSnackPistachios + orGroup: Snack4 + - id: FoodSnackRaisins + orGroup: Snack4 + - id: FoodSnackCheesie + orGroup: Snack4 + - id: FoodSnackEnergy + orGroup: Snack4 + - id: FoodSnackCnDs + orGroup: Snack4 + - id: FoodSnackSemki + orGroup: Snack4 + - id: FoodSnackSyndi + orGroup: Snack4 + prob: 0.5 - type: entity noSpawn: true @@ -791,25 +829,25 @@ orGroup: Food - id: FoodPieFrosty orGroup: Food - - id: FoodPizzaSassysage + - id: FoodPizzaSassysage # ideally, this comes in a pizza box orGroup: Food - - id: FoodPizzaArnold + - id: FoodPizzaArnold # ideally, this comes in a pizza box orGroup: Food prob: 0.05 - id: FoodMeatGoliathCooked - amount: 2 + amount: 3 orGroup: Food - id: FoodMeatRounyCooked - amount: 2 + amount: 3 orGroup: Food - id: FoodMeatLizardCooked - amount: 2 + amount: 3 orGroup: Food - id: FoodMeatSpiderlegCooked - amount: 2 + amount: 3 orGroup: Food - id: FoodMeatMeatballCooked - amount: 3 + amount: 4 orGroup: Food # TODO: Probably needs a buff. @@ -972,33 +1010,34 @@ contents: - id: FoodLaughinPeaPod orGroup: Produce - amount: 3 + amount: 5 - id: FoodMimana orGroup: Produce - amount: 3 + amount: 5 - id: FoodLemoon orGroup: Produce - amount: 3 + amount: 5 - id: FoodBlueTomato orGroup: Produce - amount: 3 + amount: 5 - id: FoodBloodTomato orGroup: Produce - amount: 3 + amount: 5 + - id: FoodKoibean + orGroup: Produce + amount: 5 - id: FoodLily orGroup: Produce - amount: 3 + amount: 5 prob: 0.5 - id: FoodAmbrosiaDeus orGroup: Produce - amount: 2 + amount: 5 prob: 0.5 - id: FoodSpacemansTrumpet orGroup: Produce - prob: 0.5 - - id: FoodKoibean - orGroup: Produce - amount: 3 + amount: 5 + prob: 0.25 - type: entity noSpawn: true @@ -1130,6 +1169,18 @@ - id: SyndicateWhistle - id: PaperMailNTConscript +- type: entity + noSpawn: True + parent: BaseMailLarge + id: MailNFBoxer + suffix: boxer + components: + - type: Mail + contents: + - id: ClothingHandsGlovesBoxingRigged + - id: ClothingBeltChampion + - id: PaperMailNTBoxer + - type: entity noSpawn: true parent: BaseMail @@ -1531,5 +1582,47 @@ - isFragile: true contents: - id: MaterialWoodPlank10 - - id: PaperMailNFIkea - - id: DelayedPetCarrierNPCEmotionalSupportSafe \ No newline at end of file + - id: PaperMailNFFurnitureManual + - id: DelayedPetCarrierNPCEmotionalSupportSafe + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFCombatMedkit + suffix: combat medkit + components: + - type: Mail + contents: + - id: MedkitCombatFilled + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCognizine + suffix: cognizine syringe + components: + - type: Mail + contents: + - id: SyringeCognizine # 15u cognizine, 3 friends should be enough. + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFNecrosol + suffix: necrosol bottle + components: + - type: Mail + contents: + - id: NecrosolChemistryBottle + - id: Syringe + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFOmnizine + suffix: omnizine bottle + components: + - type: Mail + contents: + - id: OmnizineChemistryBottle + - id: Syringe diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index 7a4a7774934..20c7c1d8250 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -2,13 +2,13 @@ id: RandomNFMailDeliveryPool everyone: # Food/Drink Consumables - MailNFBakedGoods: 1 - MailNFCake: 1 - MailNFCheese: 1 - MailNFCookies: 1 - MailNFDonkPockets: 1 - MailNFMuffins: 1 - MailNFSnacks: 1 + MailNFBakedGoods: 0.8 + MailNFCake: 0.8 + MailNFCheese: 0.8 + MailNFCookies: 0.8 + MailNFDonkPockets: 0.8 + MailNFMuffins: 0.8 + MailNFSnacks: 0.8 MailNFSodaPwrGame: 0.2 # Mmm, ads MailNFSodaRedBool: 0.2 MailNFSodaSpaceCola: 0.2 @@ -23,60 +23,62 @@ MailCigars: 0.45 MailNFGoldCigars: 0.05 MailNFJoints: 0.5 - # Outfits - MailWinterCoat: 0.5 - MailCosplayArc: 0.5 - MailCosplayGeisha: 0.5 - MailCosplayMaid: 0.5 - MailCosplayNurse: 0.5 - MailCosplaySchoolgirl: 0.5 - MailCosplayWizard: 0.5 - MailNoir: 0.5 - MailNFUnusualClothing: 0.5 - # Accessories - MailFishingCap: 0.5 - MailFlowers: 1 + # Clothing + MailWinterCoat: 0.3 + MailCosplayArc: 0.3 + MailCosplayGeisha: 0.3 + MailCosplayMaid: 0.3 + MailCosplayNurse: 0.3 + MailCosplaySchoolgirl: 0.3 + MailCosplayWizard: 0.6 + MailFishingCap: 0.3 + MailFlowers: 0.3 + MailNoir: 0.3 MailSunglasses: 1 + MailNFUnusualClothing: 3 # Many items in here # Fun - MailNFBible: 1 + # MailBible: 0.9 # Removed until we have some reliable way of getting BibleUserComponent MailNFBikeHorn: 0.5 - MailBlockGameDIY: 1 + MailBlockGameDIY: 0.6 MailNFDAW: 0.1 - MailNFFigurineBulk: 1 - MailNFInstrumentSmall: 1 - MailNFInstrumentLarge: 1 - MailNFInstrumentFlatpack: 1 + MailNFFigurineBulk: 0.6 + MailNFInstrumentSmall: 1.5 + MailNFInstrumentLarge: 1.5 + MailNFInstrumentFlatpack: 1.5 MailNFPAI: 1 MailNFPlushie: 1 - MailSkub: 0.5 - MailNFSoaps: 0.95 + MailSkub: 0.6 + MailNFSoaps: 0.75 MailNFSoapsOmega: 0.05 # Rare variant - MailSpaceVillainDIY: 1 + MailSpaceVillainDIY: 0.6 MailNFThrongler: 0.1 + MailNFUnicycle: 0.5 + MailNFWeejurnum: 0.1 # Useful MailNFCallForHelp: 0.6 - MailNFCircuitboardIndustrial: 0.5 - MailNFCircuitboardService: 0.5 + MailNFCircuitboardIndustrial: 1 + MailNFCircuitboardService: 1 + MailNFCognizine: 0.5 + MailNFCombatMedkit: 0.5 MailNFIFFBoard: 0.25 MailNFMoney: 1 + MailNFNecrosol: 0.5 + MailNFOmnizine: 0.5 MailNFPen: 1 MailNFPowerCell: 0.5 - MailNFT2ComponentBox: 0.3 - MailNFT3ComponentBox: 0.6 - MailNFT4ComponentBox: 0.1 - MailNFUnicycle: 0.5 + MailNFT2ComponentBox: 0.6 + MailNFT3ComponentBox: 1.2 + MailNFT4ComponentBox: 0.2 # Weapons - MailHighlander: 0.12 - MailHighlanderDulled: 1 - MailKatana: 1 MailNFKnife: 1 MailNFGladiator: 0.1 MailNFConscript: 0.1 + MailNFBoxer: 0.1 # Pranks MailNFCritter: 1 MailRestraints: 1 # TODO: figure out what to do with this. MailNFSmoke: 1 - MailVagueThreat: 0.4 + MailNFVagueThreat: 0.4 # Department and job-specific mail can have slightly higher weights, # since they'll be merged with the everyone pool. @@ -88,6 +90,7 @@ MailSecurityNFHudNfsdMed: 1 MailSecuritySpaceLaw: 1 MailSecurityNFMusket: 1 + MailNFCombatMedkit: 1.5 # 2 weight total jobs: StationRepresentative: diff --git a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml index e170772d86d..c7ebab2273f 100644 --- a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml +++ b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml @@ -342,14 +342,21 @@ [italic]The Frontier Paper Pusher's Club[/italic][/head] - type: entity +<<<<<<< Updated upstream id: PaperMailNFPetBedAssemblyManual # noSpawn: true suffix: "pet bed assembly manual" +======= + id: PaperMailNTBoxer + # noSpawn: true + suffix: "boxer" +>>>>>>> Stashed changes parent: Paper components: - type: Paper content: |2 +<<<<<<< Updated upstream [head=1]HÖGANÄS[/head] [head=2](There is a black and white picture of a pet bed on the first page.)[/head] @@ -357,3 +364,35 @@ [head=3](On the next few pages, you see a list of materials and a happy stick figure assembling furniture.)[/head] [head=3](On the pages after that, you see a set of instructions to assemble a pet bed. You're sure you don't need them, how hard could it be?)[/head] +======= + [head=2]You've gotta defend your belt, champ. + [/head] + [head=1]They're coming for you.[/head] + + [head=2]This should help. Knock 'em out.[/head] + +- type: entity + id: SyringeCognizine + parent: Syringe + name: cognizine syringe + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 15 + reagents: + - ReagentId: Cognizine + Quantity: 15 # Surely three friends is enough. + +- type: entity + id: NecrosolChemistryBottle + parent: BaseChemistryBottleFilled + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: Necrosol + Quantity: 30 +>>>>>>> Stashed changes From c0ac4e3faa4b5affc7bd98c43c23fdc8faa3772f Mon Sep 17 00:00:00 2001 From: Whatstone Date: Tue, 11 Jun 2024 08:34:10 -0400 Subject: [PATCH 13/33] Fix merge conflict, add placeholder pipebomb mail --- Resources/Prototypes/_NF/Mail/mail.yml | 17 +++++++-- .../Prototypes/_NF/Mail/mailDeliveries.yml | 11 +++--- .../_NF/Mail/mail_specific_items.yml | 35 ++++++++++++------- 3 files changed, 44 insertions(+), 19 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 15aab99955d..2b4ec52839b 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1575,14 +1575,14 @@ - type: entity noSpawn: true parent: BaseMailLarge - id: MailStationRepNFStationPet + id: MailCommandNFStationPet suffix: station pet components: - type: Mail - isFragile: true contents: - id: MaterialWoodPlank10 - - id: PaperMailNFFurnitureManual + - id: PaperMailNFPetBedAssemblyManual - id: DelayedPetCarrierNPCEmotionalSupportSafe - type: entity @@ -1626,3 +1626,16 @@ contents: - id: OmnizineChemistryBottle - id: Syringe + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCommandNFPipebombIntern + suffix: pipe and bomb + components: + - type: Mail + isFragile: true + contents: + - id: SmokingPipeFilledTobacco + - id: DrinkAtomicBombGlass + - id: PaperMailNFPipebombIntern diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index 20c7c1d8250..dedb973bedc 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -85,7 +85,6 @@ departments: Security: MailSecurityDonuts: 3 - MailSecurityFlashlight: 2 MailSecurityNonlethalsKit: 2 MailSecurityNFHudNfsdMed: 1 MailSecuritySpaceLaw: 1 @@ -94,9 +93,11 @@ jobs: StationRepresentative: - MailNFGoldCigars: 0.45 - MailStationRepNFStationPet: 1 + MailNFGoldCigars: 0.95 + MailCommandNFStationPet: 2 + MailCommandNFPipebombIntern: 1 Sheriff: MailSecurityNonlethalsKit: 2 - MailNFGoldCigars: 0.45 - MailStationRepNFStationPet: 1 # Don't see the harm in this with Smile and Cappy around + MailNFGoldCigars: 0.95 + MailCommandNFStationPet: 2 # Don't see the harm in this with Smile and Cappy around + MailCommandNFPipebombIntern: 1 diff --git a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml index c7ebab2273f..60af81195d2 100644 --- a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml +++ b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml @@ -22,6 +22,7 @@ item: PetCarrierNPCEmotionalSupportSafe # Papers (letters, ad copy) +# TODO: these should really be based on localization strings. - type: entity id: PaperMailNFPowerTool # noSpawn: true @@ -342,21 +343,11 @@ [italic]The Frontier Paper Pusher's Club[/italic][/head] - type: entity -<<<<<<< Updated upstream id: PaperMailNFPetBedAssemblyManual # noSpawn: true suffix: "pet bed assembly manual" -======= - id: PaperMailNTBoxer - # noSpawn: true - suffix: "boxer" ->>>>>>> Stashed changes - parent: Paper - components: - type: Paper content: |2 - -<<<<<<< Updated upstream [head=1]HÖGANÄS[/head] [head=2](There is a black and white picture of a pet bed on the first page.)[/head] @@ -364,7 +355,15 @@ [head=3](On the next few pages, you see a list of materials and a happy stick figure assembling furniture.)[/head] [head=3](On the pages after that, you see a set of instructions to assemble a pet bed. You're sure you don't need them, how hard could it be?)[/head] -======= + +- type: entity + id: PaperMailNTBoxer + # noSpawn: true + suffix: "boxer" + parent: Paper + components: + - type: Paper + content: |2 [head=2]You've gotta defend your belt, champ. [/head] [head=1]They're coming for you.[/head] @@ -395,4 +394,16 @@ reagents: - ReagentId: Necrosol Quantity: 30 ->>>>>>> Stashed changes + +# Placeholder for an arm-on-use, flashbang fakeout pipebomb +- type: entity + id: PaperMailNFPipebombIntern + # noSpawn: true + suffix: "boxer" + parent: Paper + components: + - type: Paper + content: |2 + + [head=3]hey uh, they said something about sending you a pipebomb?[/head] + [head=3]this is all i could find around here[/head] From 07f95391443409d03dfd570c6d543fd3791bbb4a Mon Sep 17 00:00:00 2001 From: Whatstone Date: Tue, 11 Jun 2024 11:48:11 -0400 Subject: [PATCH 14/33] Format mail text, separate sword mail from knives --- Resources/Prototypes/_NF/Mail/mail.yml | 122 ++++++++++++++---- .../Prototypes/_NF/Mail/mailDeliveries.yml | 50 +++---- .../_NF/Mail/mail_specific_items.yml | 94 +++++++++++--- 3 files changed, 203 insertions(+), 63 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 2b4ec52839b..cdb376a9310 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -135,7 +135,7 @@ - type: entity noSpawn: true - parent: BaseMail + parent: BaseMailLarge id: MailNFPowerTool suffix: power tool components: @@ -151,11 +151,14 @@ prob: 0.33 - id: WelderIndustrial orGroup: Gift - prob: 0.30 + prob: 0.20 # Rare - id: WelderIndustrialAdvanced orGroup: Gift - prob: 0.04 + prob: 0.10 + - id: WelderIndustrialExperimental + orGroup: Gift + prob: 0.4 - type: entity noSpawn: true @@ -279,25 +282,53 @@ # Non-kitchen, non-contraband knives and swords, both rolled into one. - id: KukriKnife orGroup: Knife - prob: 0.2 - - id: Machete + - id: Machete # A little large for an envelope but we'll live orGroup: Knife - prob: 0.2 - id: CombatKnife orGroup: Knife - prob: 0.2 - id: SurvivalKnife orGroup: Knife - prob: 0.2 + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFSword + suffix: sword + components: + - type: Mail + contents: - id: Katana - orGroup: Knife - prob: 0.1 - - id: Claymore - orGroup: Knife - prob: 0.1 + orGroup: Sword - id: Claymore - orGroup: Knife - prob: 0.1 + orGroup: Sword + - id: PlasteelArmingSword + orGroup: Sword + - id: CaneSheathFilled + orGroup: Sword + - id: Cutlass + orGroup: Sword + - id: Kanabou # ah yes, swords + orGroup: Sword + - id: CaptainSabre # Little dangerous between the reflect and the damage + orGroup: Sword + prob: 0.5 + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFKendoKit + suffix: kendo kit + components: + - type: Mail + contents: # A lot of stuff here, seems spammy. + - id: ClothingUniformKendoHakama + amount: 2 + - id: ClothingOuterArmorKendoBogu + amount: 2 + - id: ClothingOuterArmorKendoMen + amount: 2 + - id: Shinai + amount: 2 - type: entity noSpawn: true @@ -602,6 +633,17 @@ contents: - id: DelayedSmoke +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFEMP + suffix: emp + components: + - type: Mail + contents: + - id: DelayedEMP + - id: PaperMailNFEMPPreparedness + - type: entity noSpawn: true parent: BaseMail @@ -1128,19 +1170,19 @@ contents: - id: LuxuryPen orGroup: Pen - prob: 0.4 + prob: 0.3 - id: PenHop orGroup: Pen - prob: 0.2 + prob: 0.225 - id: PenCap orGroup: Pen - prob: 0.2 + prob: 0.225 - id: CyberPen orGroup: Pen - prob: 0.1 + prob: 0.125 - id: PenCentcom orGroup: Pen - prob: 0.1 + prob: 0.125 - id: PaperMailNFPaperPusherAd - type: entity @@ -1220,7 +1262,6 @@ suffix: instrument, expanded components: - type: Mail - isFragile: true contents: - id: TrumpetInstrument orGroup: Instrument @@ -1268,7 +1309,6 @@ suffix: instrument, large components: - type: Mail - isFragile: true contents: - id: TromboneInstrument orGroup: Instrument @@ -1579,11 +1619,11 @@ suffix: station pet components: - type: Mail - - isFragile: true + isFragile: true contents: - - id: MaterialWoodPlank10 - id: PaperMailNFPetBedAssemblyManual - - id: DelayedPetCarrierNPCEmotionalSupportSafe + - id: MaterialWoodPlank10 + - id: DelayedPetCarrierNPCEmotionalSupportSafe # Last item - issues with DelayedItemComponent and hand placement - type: entity noSpawn: true @@ -1612,6 +1652,7 @@ suffix: necrosol bottle components: - type: Mail + isFragile: true contents: - id: NecrosolChemistryBottle - id: Syringe @@ -1623,6 +1664,7 @@ suffix: omnizine bottle components: - type: Mail + isFragile: true contents: - id: OmnizineChemistryBottle - id: Syringe @@ -1639,3 +1681,33 @@ - id: SmokingPipeFilledTobacco - id: DrinkAtomicBombGlass - id: PaperMailNFPipebombIntern + +- type: entity + noSpawn: true + parent: BaseMail + id: MailStationRepNFNukeDisk + suffix: nuke disk + components: + - type: Mail + isFragile: true + contents: + - id: NukeDiskFake + orGroup: Disk + prob: 0.9 + - id: NukeDisk + orGroup: Disk + prob: 0.1 + - id: PaperMailNFAntivirus + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFSkub + suffix: skub, extended + components: + - type: Mail + isFragile: true + contents: + - id: Skub + - id: ClothingHeadHatSkub + - id: ClothingOuterSkub diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index dedb973bedc..88852d67541 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -2,20 +2,20 @@ id: RandomNFMailDeliveryPool everyone: # Food/Drink Consumables - MailNFBakedGoods: 0.8 - MailNFCake: 0.8 - MailNFCheese: 0.8 - MailNFCookies: 0.8 + MailNFBakedGoods: 1.2 # Lots of items in here, slightly higher chance + MailNFCake: 0.6 + MailNFCheese: 0.4 + MailNFCookies: 0.6 MailNFDonkPockets: 0.8 - MailNFMuffins: 0.8 - MailNFSnacks: 0.8 + MailNFMuffins: 0.6 + MailNFSnacks: 0.5 MailNFSodaPwrGame: 0.2 # Mmm, ads MailNFSodaRedBool: 0.2 MailNFSodaSpaceCola: 0.2 MailNFSodaSpaceMountainWind: 0.2 MailNFSodaSpaceUp: 0.2 - MailNFUnusualFood: 1 - MailNFUnusualProduce: 1 + MailNFUnusualFood: 2 + MailNFUnusualProduce: 0.8 # Booze/Smoke Consumables MailNFAlcohol: 0.5 MailSake: 0.05 # MailNFAlcohol has ~10 bottles, should be about a tenth of MailNFAlcohol's weight. @@ -35,19 +35,19 @@ MailFlowers: 0.3 MailNoir: 0.3 MailSunglasses: 1 - MailNFUnusualClothing: 3 # Many items in here + MailNFUnusualClothing: 1.5 # Many items in here # Fun # MailBible: 0.9 # Removed until we have some reliable way of getting BibleUserComponent MailNFBikeHorn: 0.5 MailBlockGameDIY: 0.6 - MailNFDAW: 0.1 + MailNFDAW: 0.15 MailNFFigurineBulk: 0.6 - MailNFInstrumentSmall: 1.5 - MailNFInstrumentLarge: 1.5 - MailNFInstrumentFlatpack: 1.5 + MailNFInstrumentSmall: 1 + MailNFInstrumentLarge: 1 + MailNFInstrumentFlatpack: 1 MailNFPAI: 1 MailNFPlushie: 1 - MailSkub: 0.6 + MailNFSkub: 0.6 MailNFSoaps: 0.75 MailNFSoapsOmega: 0.05 # Rare variant MailSpaceVillainDIY: 0.6 @@ -55,29 +55,32 @@ MailNFUnicycle: 0.5 MailNFWeejurnum: 0.1 # Useful - MailNFCallForHelp: 0.6 - MailNFCircuitboardIndustrial: 1 - MailNFCircuitboardService: 1 + MailNFPowerTool: 0.6 + MailNFCircuitboardIndustrial: 1.25 + MailNFCircuitboardService: 1.25 MailNFCognizine: 0.5 MailNFCombatMedkit: 0.5 MailNFIFFBoard: 0.25 MailNFMoney: 1 MailNFNecrosol: 0.5 MailNFOmnizine: 0.5 - MailNFPen: 1 + MailNFPen: 0.75 MailNFPowerCell: 0.5 MailNFT2ComponentBox: 0.6 MailNFT3ComponentBox: 1.2 MailNFT4ComponentBox: 0.2 # Weapons - MailNFKnife: 1 - MailNFGladiator: 0.1 - MailNFConscript: 0.1 - MailNFBoxer: 0.1 + MailNFBoxer: 0.2 + MailNFConscript: 0.2 + MailNFGladiator: 0.2 + MailNFKnife: 0.7 + MailNFSword: 0.3 + MailNFKendoKit: 0.2 # Pranks + MailNFEMP: 0.5 MailNFCritter: 1 MailRestraints: 1 # TODO: figure out what to do with this. - MailNFSmoke: 1 + MailNFSmoke: 0.5 MailNFVagueThreat: 0.4 # Department and job-specific mail can have slightly higher weights, @@ -96,6 +99,7 @@ MailNFGoldCigars: 0.95 MailCommandNFStationPet: 2 MailCommandNFPipebombIntern: 1 + MailStationRepNFNukeDisk: 1 Sheriff: MailSecurityNonlethalsKit: 2 MailNFGoldCigars: 0.95 diff --git a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml index 60af81195d2..4e5add2ee91 100644 --- a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml +++ b/Resources/Prototypes/_NF/Mail/mail_specific_items.yml @@ -9,6 +9,16 @@ - type: DelayedItem item: AdminInstantEffectSmoke10 +- type: entity + id: DelayedEMP + parent: BaseItem + noSpawn: true + name: delayed EMP + suffix: "(4m)" + components: + - type: DelayedItem + item: AdminInstantEffectEMP + # Miscellaneous Items # Delay the emotional support pet so they don't suffocate. @@ -25,20 +35,20 @@ # TODO: these should really be based on localization strings. - type: entity id: PaperMailNFPowerTool + name: Hazard Fraught advertisement # noSpawn: true suffix: "power tool ad, formatted" parent: Paper components: - type: Paper - # TODO: FORMAT ME. content: |2 [head=1]Hazard Fraught Tools[/head] + [head=2]Discount Tools at Quality Prices![/head] - [head=1]Discount Tools at Quality Prices![/head] - - [head=2]Fax us for a catalog at- ERROR: UNEXPECTED EOF[/head] + [head=2]Fax us for a catalog at- + [color=#990000]ERROR: UNEXPECTED EOF[/color][/head] - type: entity id: PaperMailNFVagueThreat1 @@ -192,19 +202,21 @@ - type: entity id: PaperMailNFPwrGameAd + name: pwr game advertisement # noSpawn: true - suffix: "pwrgame ad" + suffix: "pwr game ad" parent: Paper components: - type: Paper content: |2 - [head=1]Drink PwrGame![/head] + [head=1]Drink Pwr Game![/head] [head=3]Proud sponsor of the NT Block Game Championship.[/head] - type: entity id: PaperMailNFRedBoolAd + name: red bool advertisement # noSpawn: true suffix: "red bool ad" parent: Paper @@ -220,6 +232,7 @@ - type: entity id: PaperMailNFSpaceColaAd + name: space cola advertisement # noSpawn: true suffix: "space cola ad" parent: Paper @@ -233,6 +246,7 @@ - type: entity id: PaperMailNFSpaceMountainWindAd + name: space mountain wind advertisement # noSpawn: true suffix: "space mountain wind ad" parent: Paper @@ -246,6 +260,7 @@ - type: entity id: PaperMailNFSpaceUpAd + name: space up advertisement # noSpawn: true suffix: "space up ad" parent: Paper @@ -344,17 +359,21 @@ - type: entity id: PaperMailNFPetBedAssemblyManual + name: pet bed assembly manual # noSpawn: true suffix: "pet bed assembly manual" + parent: Paper + components: - type: Paper - content: |2 + content: |2 # TODO: FORMAT ME + [head=1]HÖGANÄS[/head] - [head=2](There is a black and white picture of a pet bed on the first page.)[/head] + [italic](There is a black and white picture of a pet bed on the first page.)[/italic] - [head=3](On the next few pages, you see a list of materials and a happy stick figure assembling furniture.)[/head] + [italic](On the next few pages, you see a list of materials and a happy stick figure assembling furniture.)[/italic] - [head=3](On the pages after that, you see a set of instructions to assemble a pet bed. You're sure you don't need them, how hard could it be?)[/head] + [italic](On the pages after that, you see a set of instructions to assemble a pet bed. You're sure you don't need them, how hard could it be?)[/italic] - type: entity id: PaperMailNTBoxer @@ -366,9 +385,9 @@ content: |2 [head=2]You've gotta defend your belt, champ. [/head] - [head=1]They're coming for you.[/head] + [head=1]They're coming for you.[/head] - [head=2]This should help. Knock 'em out.[/head] + [head=2]This should help. Knock 'em out.[/head] - type: entity id: SyringeCognizine @@ -399,11 +418,56 @@ - type: entity id: PaperMailNFPipebombIntern # noSpawn: true - suffix: "boxer" + suffix: "pipe bomb intern" + parent: Paper + components: + - type: Paper + content: |2 + [bold]hey uh, they told me to send you a pipebomb I guess? + + this is all i could find around here, hope that works + + thanks, craig[/bold] + +- type: entity + id: PaperMailNFAntivirus + name: Snortin Antivirus receipt + # noSpawn: true + suffix: "antivirus ad" parent: Paper components: - type: Paper content: |2 - [head=3]hey uh, they said something about sending you a pipebomb?[/head] - [head=3]this is all i could find around here[/head] + [head=1]Invoice[/head][head=3] + Snortin Antivirus Software[/head] + + [head=3]Order #41003 + [bold][bullet/][/bold] 1x Snortin Total-275 Antivirus Install Disk[/head] + + [head=3]Total: 947381 Spesos[/head] + + Thank you for making purchase from Snortin Antivirus Software. + We assuring you that our product is greatest. + Please sending payment at earliest convenience. + +- type: entity + id: PaperMailNFEMPPreparedness + # noSpawn: true + name: EMP preparedness response form + suffix: "emp preparedness" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]EMP Preparedness Response[/head] + + You have been selected to receive a NT EMP Preparedness kit as a test. Note that this is only a test. In a real emergency, follow the instructions of your vessel's command staff. + + As the recipient of this, please note [bold]any improvements[/bold] that could be made towards the EMP preparedness of the vessel you were aboard when opening and submit this form to your serving Captain or Station Representative. + + [bold]Date of Test:[/bold] + [bold]Number of affected items:[/bold] + [bold]Perceived severity of incident:[/bold] + [bold]Suggested improvements:[/bold] From 821589b2c144e66521d830bf8a26c51c1c0f4a8e Mon Sep 17 00:00:00 2001 From: Whatstone Date: Tue, 11 Jun 2024 11:51:14 -0400 Subject: [PATCH 15/33] Mail: fix exp. welder ID, split up Dan's cigs --- Resources/Prototypes/_NF/Mail/mail.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index cdb376a9310..c6e1c1d976f 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -156,7 +156,7 @@ - id: WelderIndustrialAdvanced orGroup: Gift prob: 0.10 - - id: WelderIndustrialExperimental + - id: WelderExperimental orGroup: Gift prob: 0.4 @@ -200,7 +200,13 @@ prob: 0.19 - id: CigPackMixed orGroup: Cigs - prob: 0.19 + prob: 0.09 # Pool shared with CigPackMixedMedical, CigPackMixedNasty + - id: CigPackMixedMedical + orGroup: Cigs + prob: 0.05 + - id: CigPackMixedNasty + orGroup: Cigs + prob: 0.05 # Rare - id: CigPackSyndicate orGroup: Cigs From 2f4d812fd0576935715daf84f0304e4d0de860d8 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Tue, 11 Jun 2024 11:55:40 -0400 Subject: [PATCH 16/33] Fourth muffin, decrease captain's sabre chance --- Resources/Prototypes/_NF/Mail/mail.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index c6e1c1d976f..c903765b203 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -317,7 +317,7 @@ orGroup: Sword - id: CaptainSabre # Little dangerous between the reflect and the damage orGroup: Sword - prob: 0.5 + prob: 0.2 - type: entity noSpawn: true @@ -409,6 +409,18 @@ - id: FoodMothMoffin orGroup: Muffin3 prob: 0.5 + # Muffin 4 + - id: FoodBakedMuffinBerry + orGroup: Muffin4 + - id: FoodBakedMuffinCherry + orGroup: Muffin4 + - id: FoodBakedMuffinBluecherry + orGroup: Muffin4 + - id: FoodBakedMuffin + orGroup: Muffin4 + - id: FoodMothMoffin + orGroup: Muffin4 + prob: 0.5 - type: entity From 2e259baaec7df706f468317b8fe8691146c1c6d5 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Tue, 11 Jun 2024 13:20:15 -0400 Subject: [PATCH 17/33] yaml fixes --- Resources/Locale/en-US/nyanotrasen/mail.ftl | 8 +++++++- Resources/Prototypes/_NF/Mail/mail.yml | 18 +++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Resources/Locale/en-US/nyanotrasen/mail.ftl b/Resources/Locale/en-US/nyanotrasen/mail.ftl index 99dc2431fdd..7c9d99946c0 100644 --- a/Resources/Locale/en-US/nyanotrasen/mail.ftl +++ b/Resources/Locale/en-US/nyanotrasen/mail.ftl @@ -17,7 +17,8 @@ mail-item-name-unaddressed = mail mail-item-name-addressed = mail ({$recipient}) command-mailto-description = Queue a parcel to be delivered to an entity. Example usage: `mailto 1234 5678 false false`. The target container's contents will be transferred to an actual mail parcel. -command-mailto-help = Usage: {$command} [is-fragile: true or false] [is-priority: true or false] +# Frontier: add is-large description +command-mailto-help = Usage: {$command} [is-fragile: true or false] [is-priority: true or false] [is-large: true or false, optional] command-mailto-no-mailreceiver = Target recipient entity does not have a {$requiredComponent}. command-mailto-no-blankmail = The {$blankMail} prototype doesn't exist. Something is very wrong. Contact a programmer. command-mailto-bogus-mail = {$blankMail} did not have {$requiredMailComponent}. Something is very wrong. Contact a programmer. @@ -29,3 +30,8 @@ command-mailto-success = Success! Mail parcel has been queued for next teleport command-mailnow = Force all mail teleporters to deliver another round of mail as soon as possible. This will not bypass the undelivered mail limit. command-mailnow-help = Usage: {$command} command-mailnow-success = Success! All mail teleporters will be delivering another round of mail soon. + +# Frontier: mailtestbulk +command-mailtestbulk = Sends one of each type of parcel to a given mail teleporter. Implicitly calls mailnow. +command-mailtestbulk-help = Usage: {$command} +command-mailtestbulk-success = Success! All mail teleporters will be delivering another round of mail soon. \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index c903765b203..5b8cbbefdf3 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -4,9 +4,9 @@ parent: BaseMail id: MailNFAlcohol suffix: alcohol, extended - isFragile: true components: - type: Mail + isFragile: true contents: # 12.5 overall weight, 8% base chance - id: DrinkAbsintheBottleFull @@ -158,7 +158,7 @@ prob: 0.10 - id: WelderExperimental orGroup: Gift - prob: 0.4 + prob: 0.04 - type: entity noSpawn: true @@ -331,7 +331,7 @@ amount: 2 - id: ClothingOuterArmorKendoBogu amount: 2 - - id: ClothingOuterArmorKendoMen + - id: ClothingHeadHelmetKendoMen amount: 2 - id: Shinai amount: 2 @@ -1414,16 +1414,16 @@ components: - type: Mail contents: - - id: ThermomachineFreezerCircuitboard + - id: ThermomachineFreezerMachineCircuitBoard orGroup: Board prob: 0.5 - - id: ThermomachineHeaterCircuitboard + - id: ThermomachineHeaterMachineCircuitBoard orGroup: Board prob: 0.5 - - id: HellfireFreezerCircuitboard + - id: HellfireFreezerMachineCircuitBoard orGroup: Board prob: 0.25 - - id: HellfireHeaterCircuitboard + - id: HellfireHeaterMachineCircuitBoard orGroup: Board prob: 0.25 - id: CryoPodMachineCircuitboard # Medical as well @@ -1507,7 +1507,7 @@ orGroup: Board - id: JukeboxCircuitBoard orGroup: Board - - id: MassMediaCircuitboard + - id: ComputerMassMediaCircuitboard orGroup: Board prob: 0.5 - id: TelecomServerCircuitboard @@ -1589,7 +1589,7 @@ - id: MobBee orGroup: Critter prob: 0.36 - - id: MobButterFly + - id: MobButterfly orGroup: Critter prob: 0.36 # Uncommon From 89cb6368e5cf8c188233f1bb4d61a58f285b1117 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Tue, 11 Jun 2024 15:14:55 -0400 Subject: [PATCH 18/33] Add ShowJobIcons component to mail hud --- Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml index 2976aa2f847..03fa6e20f8b 100644 --- a/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml +++ b/Resources/Prototypes/_NF/Entities/Clothing/Eyes/hud.yml @@ -20,6 +20,7 @@ sprite: _NF/Clothing/Eyes/Hud/mail.rsi - type: Clothing sprite: _NF/Clothing/Eyes/Hud/mail.rsi + - type: ShowJobIcons - type: entity parent: ClothingEyesBase From 6f17b4a63baa62bb6a035872a33efa607a136879 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Wed, 12 Jun 2024 07:51:09 -0400 Subject: [PATCH 19/33] Reorganize mail items, add build-a-buddy mail --- .../_NF/Catalog/Fills/Boxes/general.yml | 117 -------- Resources/Prototypes/_NF/Mail/Items/boxes.yml | 255 ++++++++++++++++++ Resources/Prototypes/_NF/Mail/Items/misc.yml | 57 ++++ .../paper.yml} | 83 ++---- Resources/Prototypes/_NF/Mail/mail.yml | 20 ++ .../Prototypes/_NF/Mail/mailDeliveries.yml | 3 +- 6 files changed, 357 insertions(+), 178 deletions(-) create mode 100644 Resources/Prototypes/_NF/Mail/Items/boxes.yml create mode 100644 Resources/Prototypes/_NF/Mail/Items/misc.yml rename Resources/Prototypes/_NF/Mail/{mail_specific_items.yml => Items/paper.yml} (89%) diff --git a/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml b/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml index 168170ea861..ce91b344011 100644 --- a/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml +++ b/Resources/Prototypes/_NF/Catalog/Fills/Boxes/general.yml @@ -142,120 +142,3 @@ whitelist: components: - LightBulb - -- type: entity - name: advanced component variety pack - parent: BoxCardboard - id: BoxT2ComponentsAssorted - description: A box of various advanced components. - components: - - type: StorageFill - contents: - - id: AdvancedCapacitorStockPart - amount: 4 - - id: NanoManipulatorStockPart - amount: 2 - - id: AdvancedMatterBinStockPart - amount: 2 - # No whitelist - no tags for matter bins or manipulators, and no inventory compression to cheese - - type: Storage - maxItemSize: Normal - grid: - - 0,0,3,1 - - type: Sprite - layers: - - state: box - -- type: entity - name: super component variety pack - parent: BoxCardboard - id: BoxT3ComponentsAssorted - description: A box of various super components. - components: - - type: StorageFill - contents: - - id: SuperCapacitorStockPart - amount: 4 - - id: PicoManipulatorStockPart - amount: 2 - - id: SuperMatterBinStockPart - amount: 2 - # No whitelist - no tags for matter bins or manipulators, and no inventory compression to cheese - - type: Storage - maxItemSize: Normal - grid: - - 0,0,3,1 - - type: Sprite - layers: - - state: box - -- type: entity - name: bluespace component variety pack - parent: BoxCardboard - id: BoxT4ComponentsAssorted - description: A box of various bluespace components. Where'd you find this? - components: - - type: StorageFill - contents: - - id: QuadraticCapacitorStockPart - amount: 4 - - id: FemtoManipulatorStockPart - amount: 2 - - id: BluespaceMatterBinStockPart - amount: 2 - # No whitelist - no tags for matter bins or manipulators, and no inventory compression to cheese - - type: Storage - maxItemSize: Normal - grid: - - 0,0,3,1 - - type: Sprite - layers: - - state: box - -- type: entity - name: scented soap sampler pack - parent: BoxCardboard - id: BoxSoapsAssorted - description: A box of various scented soaps. Ooh, lavender. - components: - - type: StorageFill - contents: - - id: SoapNT - amount: 1 - - id: Soap - amount: 1 - - id: SoapHomemade - amount: 1 - - id: SoapDeluxe - amount: 1 - - type: Storage - maxItemSize: Normal - grid: - - 0,0,3,1 - - type: Sprite - layers: - - state: box - -- type: entity - name: scented soap sampler pack - parent: BoxCardboard - id: BoxSoapsAssortedOmega - description: A box of various scented soaps. Ooh, bluespace. - components: - - type: StorageFill - contents: - - id: SoapNT - amount: 1 - - id: Soap - amount: 1 - - id: SoapOmega - amount: 1 - - id: SoapDeluxe - amount: 1 - - type: Storage - maxItemSize: Normal - grid: - - 0,0,3,1 - - type: Sprite - layers: - - state: box diff --git a/Resources/Prototypes/_NF/Mail/Items/boxes.yml b/Resources/Prototypes/_NF/Mail/Items/boxes.yml new file mode 100644 index 00000000000..0c1b19dbcd8 --- /dev/null +++ b/Resources/Prototypes/_NF/Mail/Items/boxes.yml @@ -0,0 +1,255 @@ +# Mail-only boxes. If/when something uses these outside of the mail, move the entry into Catalog/Fills. +- type: entity + name: advanced component variety pack + parent: BoxCardboard + id: BoxT2ComponentsAssorted + description: A box of various advanced components. + components: + - type: StorageFill + contents: + - id: AdvancedCapacitorStockPart + amount: 4 + - id: NanoManipulatorStockPart + amount: 2 + - id: AdvancedMatterBinStockPart + amount: 2 + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + whitelist: + components: + - MachinePart + - type: Sprite + layers: + - state: box + +- type: entity + name: super component variety pack + parent: BoxCardboard + id: BoxT3ComponentsAssorted + description: A box of various super components. + components: + - type: StorageFill + contents: + - id: SuperCapacitorStockPart + amount: 4 + - id: PicoManipulatorStockPart + amount: 2 + - id: SuperMatterBinStockPart + amount: 2 + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + whitelist: + components: + - MachinePart + - type: Sprite + layers: + - state: box + +- type: entity + name: bluespace component variety pack + parent: BoxCardboard + id: BoxT4ComponentsAssorted + description: A box of various bluespace components. Where'd you find this? + components: + - type: StorageFill + contents: + - id: QuadraticCapacitorStockPart + amount: 4 + - id: FemtoManipulatorStockPart + amount: 2 + - id: BluespaceMatterBinStockPart + amount: 2 + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + whitelist: + components: + - MachinePart + - type: Sprite + layers: + - state: box + +- type: entity + name: scented soap sampler pack + parent: BoxCardboard + id: BoxSoapsAssorted + description: A box of various scented soaps. Ooh, lavender. + components: + - type: StorageFill + contents: + - id: SoapNT + amount: 1 + - id: Soap + amount: 1 + - id: SoapHomemade + amount: 1 + - id: SoapDeluxe + amount: 1 + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + whitelist: + tags: + - Soap + - type: Sprite + layers: + - state: box + +- type: entity + name: scented soap sampler pack + parent: BoxCardboard + id: BoxSoapsAssortedOmega + description: A box of various scented soaps. Ooh, bluespace. + components: + - type: StorageFill + contents: + - id: SoapNT + amount: 1 + - id: Soap + amount: 1 + - id: SoapOmega + amount: 1 + - id: SoapDeluxe + amount: 1 + - type: Storage + maxItemSize: Normal + grid: + - 0,0,3,1 + whitelist: + tags: + - Soap + - type: Sprite + layers: + - state: box + +- type: entity + name: Build-a-Buddy kit + suffix: Human + parent: BoxHug + id: BuildABuddyHuman + description: "Harry the Human" Build-a-Buddy kit. Some assembly required. + components: + - type: StorageFill + contents: + - id: HeadHuman + amount: 1 + - id: TorsoHuman + amount: 1 + - id: LeftArmHuman + amount: 1 + - id: RightArmHuman + amount: 1 + - id: LeftHandHuman + amount: 1 + - id: RightHandHuman + amount: 1 + - id: LeftLegHuman + amount: 1 + - id: RightLegHuman + amount: 1 + - id: LeftFootHuman + amount: 1 + - id: RightFootHuman + amount: 1 + - type: Storage + grid: + - 0,0,4,3 + whitelist: + components: + - BodyPart + +- type: entity + name: Build-a-Buddy kit + suffix: Goblin + parent: BuildABuddyHuman + id: BuildABuddyGoblin + description: "Greta the Goblin" Build-a-Buddy kit. Some assembly required. + components: + - type: StorageFill + contents: + - id: HeadGoblin + amount: 1 + - id: TorsoGoblin + amount: 1 + - id: LeftArmGoblin + amount: 1 + - id: RightArmGoblin + amount: 1 + - id: LeftHandGoblin + amount: 1 + - id: RightHandGoblin + amount: 1 + - id: LeftLegGoblin + amount: 1 + - id: RightLegGoblin + amount: 1 + - id: LeftFootGoblin + amount: 1 + - id: RightFootGoblin + amount: 1 + +- type: entity + name: Build-a-Buddy kit + suffix: Moth + parent: BuildABuddyHuman + id: BuildABuddyMoth + description: "Matthew the Moth" Build-a-Buddy kit. Some assembly required. + components: + - type: StorageFill + contents: + - id: HeadMoth + amount: 1 + - id: TorsoMoth + amount: 1 + - id: LeftArmMoth + amount: 1 + - id: RightArmMoth + amount: 1 + - id: LeftHandMoth + amount: 1 + - id: RightHandMoth + amount: 1 + - id: LeftLegMoth + amount: 1 + - id: RightLegMoth + amount: 1 + - id: LeftFootMoth + amount: 1 + - id: RightFootMoth + amount: 1 + +- type: entity + name: Build-a-Buddy kit + suffix: Reptillian + parent: BuildABuddyHuman + id: BuildABuddyReptillian + description: "Rosie the Reptillian" Build-a-Buddy kit. Some assembly required. + components: + - type: StorageFill + contents: + - id: HeadReptillian + amount: 1 + - id: TorsoReptillian + amount: 1 + - id: LeftArmReptillian + amount: 1 + - id: RightArmReptillian + amount: 1 + - id: LeftHandReptillian + amount: 1 + - id: RightHandReptillian + amount: 1 + - id: LeftLegReptillian + amount: 1 + - id: RightLegReptillian + amount: 1 + - id: LeftFootReptillian + amount: 1 + - id: RightFootReptillian + amount: 1 diff --git a/Resources/Prototypes/_NF/Mail/Items/misc.yml b/Resources/Prototypes/_NF/Mail/Items/misc.yml new file mode 100644 index 00000000000..34a28d43d0e --- /dev/null +++ b/Resources/Prototypes/_NF/Mail/Items/misc.yml @@ -0,0 +1,57 @@ +# Mail-only items. If/when these get used for anything else, please move them to another folder. +# Pranks: admin items or effects put into an envelope, released when opened or damaged. +- type: entity + id: DelayedSmoke + parent: BaseItem + noSpawn: true + name: delayed smoke + suffix: "(10s)" + components: + - type: DelayedItem + item: AdminInstantEffectSmoke10 + +- type: entity + id: DelayedEMP + parent: BaseItem + noSpawn: true + name: delayed EMP + components: + - type: DelayedItem + item: AdminInstantEffectEMP + +# Miscellaneous Items + +# Delay the emotional support pet so they don't suffocate. +- type: entity + id: DelayedPetCarrierNPCEmotionalSupportSafe + parent: BaseItem + noSpawn: true + name: delayed emotional support pet + components: + - type: DelayedItem + item: PetCarrierNPCEmotionalSupportSafe + +- type: entity + id: SyringeCognizine + parent: Syringe + name: cognizine syringe + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 15 + reagents: + - ReagentId: Cognizine + Quantity: 15 # Surely three friends is enough. + +- type: entity + id: NecrosolChemistryBottle + parent: BaseChemistryBottleFilled + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 30 + reagents: + - ReagentId: Necrosol + Quantity: 30 diff --git a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml b/Resources/Prototypes/_NF/Mail/Items/paper.yml similarity index 89% rename from Resources/Prototypes/_NF/Mail/mail_specific_items.yml rename to Resources/Prototypes/_NF/Mail/Items/paper.yml index 4e5add2ee91..a1206e562b8 100644 --- a/Resources/Prototypes/_NF/Mail/mail_specific_items.yml +++ b/Resources/Prototypes/_NF/Mail/Items/paper.yml @@ -1,36 +1,3 @@ -# Pranks: admin items or effects put into an envelope, released when opened or damaged. -- type: entity - id: DelayedSmoke - parent: BaseItem - noSpawn: true - name: delayed smoke - suffix: "(10s)" - components: - - type: DelayedItem - item: AdminInstantEffectSmoke10 - -- type: entity - id: DelayedEMP - parent: BaseItem - noSpawn: true - name: delayed EMP - suffix: "(4m)" - components: - - type: DelayedItem - item: AdminInstantEffectEMP - -# Miscellaneous Items - -# Delay the emotional support pet so they don't suffocate. -- type: entity - id: DelayedPetCarrierNPCEmotionalSupportSafe - parent: BaseItem - noSpawn: true - name: delayed emotional support pet - components: - - type: DelayedItem - item: PetCarrierNPCEmotionalSupportSafe - # Papers (letters, ad copy) # TODO: these should really be based on localization strings. - type: entity @@ -365,7 +332,7 @@ parent: Paper components: - type: Paper - content: |2 # TODO: FORMAT ME + content: |2 [head=1]HÖGANÄS[/head] @@ -388,32 +355,6 @@ [head=1]They're coming for you.[/head] [head=2]This should help. Knock 'em out.[/head] - -- type: entity - id: SyringeCognizine - parent: Syringe - name: cognizine syringe - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 15 - reagents: - - ReagentId: Cognizine - Quantity: 15 # Surely three friends is enough. - -- type: entity - id: NecrosolChemistryBottle - parent: BaseChemistryBottleFilled - components: - - type: SolutionContainerManager - solutions: - drink: - maxVol: 30 - reagents: - - ReagentId: Necrosol - Quantity: 30 - # Placeholder for an arm-on-use, flashbang fakeout pipebomb - type: entity id: PaperMailNFPipebombIntern @@ -471,3 +412,25 @@ [bold]Number of affected items:[/bold] [bold]Perceived severity of incident:[/bold] [bold]Suggested improvements:[/bold] + +- type: entity + id: PaperMailNFBuildABuddy + # noSpawn: true + name: Build-a-Buddy adoption letter + suffix: "build-a-buddy" + parent: Paper + components: + - type: Paper + content: |2 + + [head=1]Note of Adoption[/head] + + Congratulations on becoming the owner of your very own Build-a-Buddy! + + We hope that your new friend can serve as a shoulder to cry on in the depths of space. + + Collect the whole set! + [bold][bullet/][/bold] Greta the Goblin + [bold][bullet/][/bold] Harry the Human + [bold][bullet/][/bold] Matthew the Goblin + [bold][bullet/][/bold] Rosie the Reptillian diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 5b8cbbefdf3..1dd73e90e3a 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1729,3 +1729,23 @@ - id: Skub - id: ClothingHeadHatSkub - id: ClothingOuterSkub + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFBuildABuddy + suffix: Build-a-Buddy + components: + - type: Mail + isFragile: true + contents: + - id: BuildABuddyGoblin + orGroup: Box + - id: BuildABuddyHuman + orGroup: Box + - id: BuildABuddyMoth + orGroup: Box + - id: BuildABuddyReptillian + orGroup: Box + - id: DrinkSpaceGlue + - id: PaperMailNFBuildABuddy diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index 88852d67541..00ccb15d975 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -77,8 +77,9 @@ MailNFSword: 0.3 MailNFKendoKit: 0.2 # Pranks - MailNFEMP: 0.5 + MailNFBuildABuddy: 0.5 MailNFCritter: 1 + MailNFEMP: 0.5 MailRestraints: 1 # TODO: figure out what to do with this. MailNFSmoke: 0.5 MailNFVagueThreat: 0.4 From 16242c0ef20754fe227a8a38d30ddf9a08ee5c0b Mon Sep 17 00:00:00 2001 From: Whatstone Date: Wed, 12 Jun 2024 08:47:10 -0400 Subject: [PATCH 20/33] Build-a-Buddy fixes, slime & vulp versions, text --- Resources/Prototypes/_NF/Mail/Items/boxes.yml | 96 ++++++++++++------- Resources/Prototypes/_NF/Mail/Items/paper.yml | 16 +++- Resources/Prototypes/_NF/Mail/mail.yml | 10 +- 3 files changed, 81 insertions(+), 41 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/Items/boxes.yml b/Resources/Prototypes/_NF/Mail/Items/boxes.yml index 0c1b19dbcd8..7d27015eea4 100644 --- a/Resources/Prototypes/_NF/Mail/Items/boxes.yml +++ b/Resources/Prototypes/_NF/Mail/Items/boxes.yml @@ -132,8 +132,8 @@ name: Build-a-Buddy kit suffix: Human parent: BoxHug - id: BuildABuddyHuman - description: "Harry the Human" Build-a-Buddy kit. Some assembly required. + id: BoxBuildABuddyHuman + description: "\"Harry the Human\" Build-a-Buddy kit. Some assembly required." components: - type: StorageFill contents: @@ -167,9 +167,9 @@ - type: entity name: Build-a-Buddy kit suffix: Goblin - parent: BuildABuddyHuman - id: BuildABuddyGoblin - description: "Greta the Goblin" Build-a-Buddy kit. Some assembly required. + parent: BoxBuildABuddyHuman + id: BoxBuildABuddyGoblin + description: "\"Greta the Goblin\" Build-a-Buddy kit. Some assembly required." components: - type: StorageFill contents: @@ -196,60 +196,90 @@ - type: entity name: Build-a-Buddy kit - suffix: Moth - parent: BuildABuddyHuman - id: BuildABuddyMoth - description: "Matthew the Moth" Build-a-Buddy kit. Some assembly required. + suffix: Reptillian + parent: BoxBuildABuddyHuman + id: BoxBuildABuddyReptillian + description: "\"Randy the Reptillian\" Build-a-Buddy kit. Some assembly required." components: - type: StorageFill contents: - - id: HeadMoth + - id: HeadReptilian amount: 1 - - id: TorsoMoth + - id: TorsoReptilian amount: 1 - - id: LeftArmMoth + - id: LeftArmReptilian amount: 1 - - id: RightArmMoth + - id: RightArmReptilian amount: 1 - - id: LeftHandMoth + - id: LeftHandReptilian amount: 1 - - id: RightHandMoth + - id: RightHandReptilian amount: 1 - - id: LeftLegMoth + - id: LeftLegReptilian amount: 1 - - id: RightLegMoth + - id: RightLegReptilian amount: 1 - - id: LeftFootMoth + - id: LeftFootReptilian amount: 1 - - id: RightFootMoth + - id: RightFootReptilian amount: 1 - type: entity name: Build-a-Buddy kit - suffix: Reptillian - parent: BuildABuddyHuman - id: BuildABuddyReptillian - description: "Rosie the Reptillian" Build-a-Buddy kit. Some assembly required. + suffix: Slime + parent: BoxBuildABuddyHuman + id: BoxBuildABuddySlime + description: "\"Steven the Slime\" Build-a-Buddy kit. Some assembly required." + components: + - type: StorageFill + contents: + - id: HeadSlime + amount: 1 + - id: TorsoSlime + amount: 1 + - id: LeftArmSlime + amount: 1 + - id: RightArmSlime + amount: 1 + - id: LeftHandSlime + amount: 1 + - id: RightHandSlime + amount: 1 + - id: LeftLegSlime + amount: 1 + - id: RightLegSlime + amount: 1 + - id: LeftFootSlime + amount: 1 + - id: RightFootSlime + amount: 1 + +- type: entity + name: Build-a-Buddy kit + suffix: Vulpkanin + parent: BoxBuildABuddyHuman + id: BoxBuildABuddyVulpkanin + description: "\"Valerie the Vulpkanin\" Build-a-Buddy kit. Some assembly required." components: - type: StorageFill contents: - - id: HeadReptillian + - id: HeadVulpkanin amount: 1 - - id: TorsoReptillian + - id: TorsoVulpkanin amount: 1 - - id: LeftArmReptillian + - id: LeftArmVulpkanin amount: 1 - - id: RightArmReptillian + - id: RightArmVulpkanin amount: 1 - - id: LeftHandReptillian + - id: LeftHandVulpkanin amount: 1 - - id: RightHandReptillian + - id: RightHandVulpkanin amount: 1 - - id: LeftLegReptillian + - id: LeftLegVulpkanin amount: 1 - - id: RightLegReptillian + - id: RightLegVulpkanin amount: 1 - - id: LeftFootReptillian + - id: LeftFootVulpkanin amount: 1 - - id: RightFootReptillian + - id: RightFootVulpkanin amount: 1 diff --git a/Resources/Prototypes/_NF/Mail/Items/paper.yml b/Resources/Prototypes/_NF/Mail/Items/paper.yml index a1206e562b8..e01ed4223da 100644 --- a/Resources/Prototypes/_NF/Mail/Items/paper.yml +++ b/Resources/Prototypes/_NF/Mail/Items/paper.yml @@ -421,16 +421,24 @@ parent: Paper components: - type: Paper + stampState: paper_stamp-generic + stampedBy: + - stampedColor: '#FF6699FF' + stampedName: Chief Friendship Officer + - stampedColor: '#333333FF' + stampedName: Cuts-With-Scalpel + stampType: Signature content: |2 [head=1]Note of Adoption[/head] - Congratulations on becoming the owner of your very own Build-a-Buddy! + You're now the proud owner of your very own Build-a-Buddy! - We hope that your new friend can serve as a shoulder to cry on in the depths of space. + We hope that your new friend can serve as a shoulder to lean on in the depths of space, and hopefully you won't be quite as lonely out there. Personally, I find putting them together to be rather therapeutic. - Collect the whole set! + [bold]Collect the whole set![/bold] [bold][bullet/][/bold] Greta the Goblin [bold][bullet/][/bold] Harry the Human - [bold][bullet/][/bold] Matthew the Goblin [bold][bullet/][/bold] Rosie the Reptillian + [bold][bullet/][/bold] Steven the Slime + [bold][bullet/][/bold] Valerie the Vulpkanin diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 1dd73e90e3a..3ab43bc7c6b 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1739,13 +1739,15 @@ - type: Mail isFragile: true contents: - - id: BuildABuddyGoblin + - id: BoxBuildABuddyGoblin orGroup: Box - - id: BuildABuddyHuman + - id: BoxBuildABuddyHuman orGroup: Box - - id: BuildABuddyMoth + - id: BoxBuildABuddyReptillian orGroup: Box - - id: BuildABuddyReptillian + - id: BoxBuildABuddySlime + orGroup: Box + - id: BoxBuildABuddyVulpkanin orGroup: Box - id: DrinkSpaceGlue - id: PaperMailNFBuildABuddy From efa1cc6a2fdc539e09928d99bfa619b16238d031 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Wed, 12 Jun 2024 08:51:10 -0400 Subject: [PATCH 21/33] Reptillian->Reptilian --- Resources/Prototypes/_NF/Mail/Items/paper.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/_NF/Mail/Items/paper.yml b/Resources/Prototypes/_NF/Mail/Items/paper.yml index e01ed4223da..f667073c458 100644 --- a/Resources/Prototypes/_NF/Mail/Items/paper.yml +++ b/Resources/Prototypes/_NF/Mail/Items/paper.yml @@ -439,6 +439,6 @@ [bold]Collect the whole set![/bold] [bold][bullet/][/bold] Greta the Goblin [bold][bullet/][/bold] Harry the Human - [bold][bullet/][/bold] Rosie the Reptillian + [bold][bullet/][/bold] Rosie the Reptilian [bold][bullet/][/bold] Steven the Slime [bold][bullet/][/bold] Valerie the Vulpkanin From 0ca452d4204b299ad87c9f4361de6344daffab15 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Wed, 12 Jun 2024 09:20:39 -0400 Subject: [PATCH 22/33] More signatures, label necrosol bottle, bigger emp --- Resources/Prototypes/_NF/Mail/Items/boxes.yml | 6 +++--- Resources/Prototypes/_NF/Mail/Items/misc.yml | 15 +++++++++++++-- Resources/Prototypes/_NF/Mail/Items/paper.yml | 17 ++++++++++++----- Resources/Prototypes/_NF/Mail/mail.yml | 2 +- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/Items/boxes.yml b/Resources/Prototypes/_NF/Mail/Items/boxes.yml index 7d27015eea4..2dff177bf1a 100644 --- a/Resources/Prototypes/_NF/Mail/Items/boxes.yml +++ b/Resources/Prototypes/_NF/Mail/Items/boxes.yml @@ -196,10 +196,10 @@ - type: entity name: Build-a-Buddy kit - suffix: Reptillian + suffix: Reptilian parent: BoxBuildABuddyHuman - id: BoxBuildABuddyReptillian - description: "\"Randy the Reptillian\" Build-a-Buddy kit. Some assembly required." + id: BoxBuildABuddyReptilian + description: "\"Randy the Reptilian\" Build-a-Buddy kit. Some assembly required." components: - type: StorageFill contents: diff --git a/Resources/Prototypes/_NF/Mail/Items/misc.yml b/Resources/Prototypes/_NF/Mail/Items/misc.yml index 34a28d43d0e..d8b9321b30c 100644 --- a/Resources/Prototypes/_NF/Mail/Items/misc.yml +++ b/Resources/Prototypes/_NF/Mail/Items/misc.yml @@ -10,14 +10,24 @@ - type: DelayedItem item: AdminInstantEffectSmoke10 +- type: entity + id: AdminInstantEffectEMP7 + noSpawn: true + suffix: EMP, 7 meters + parent: AdminInstantEffectBase + components: + - type: EmpOnTrigger + range: 7 + energyConsumption: 50000 + - type: entity id: DelayedEMP parent: BaseItem noSpawn: true - name: delayed EMP + name: delayed EMP (7 meters) components: - type: DelayedItem - item: AdminInstantEffectEMP + item: AdminInstantEffectEMP7 # Miscellaneous Items @@ -47,6 +57,7 @@ - type: entity id: NecrosolChemistryBottle parent: BaseChemistryBottleFilled + name: necrosol bottle components: - type: SolutionContainerManager solutions: diff --git a/Resources/Prototypes/_NF/Mail/Items/paper.yml b/Resources/Prototypes/_NF/Mail/Items/paper.yml index f667073c458..6372c76827f 100644 --- a/Resources/Prototypes/_NF/Mail/Items/paper.yml +++ b/Resources/Prototypes/_NF/Mail/Items/paper.yml @@ -14,7 +14,7 @@ [head=2]Discount Tools at Quality Prices![/head] - [head=2]Fax us for a catalog at- + [head=2]Fax us for a catalog at [color=#990000]ERROR: UNEXPECTED EOF[/color][/head] - type: entity @@ -250,6 +250,10 @@ parent: Paper components: - type: Paper + stampedBy: + - stampedColor: '#333333FF' + stampedName: Christopher Cleanman + stampType: Signature content: |2 [head=3]Hello Valued Customer,[/head] You have been selected to receive a complimentary sampler of scented soaps that Nanotrasen has to offer. @@ -259,8 +263,7 @@ We hope you enjoy. Sincerely, - [head=3][italic]Christopher Cleanman[/italic][/head] - Vice President, NT Habs - Toiletries Department + Christopher Cleanman, Vice President, NT Habs - Toiletries Dept. - type: entity id: PaperMailNTSoapAd2 @@ -363,12 +366,16 @@ parent: Paper components: - type: Paper + stampedBy: + - stampedColor: '#333333FF' + stampedName: craig + stampType: Signature content: |2 [bold]hey uh, they told me to send you a pipebomb I guess? this is all i could find around here, hope that works - thanks, craig[/bold] + thanks[/bold] - type: entity id: PaperMailNFAntivirus @@ -408,7 +415,7 @@ As the recipient of this, please note [bold]any improvements[/bold] that could be made towards the EMP preparedness of the vessel you were aboard when opening and submit this form to your serving Captain or Station Representative. - [bold]Date of Test:[/bold] + [bold]Date of test:[/bold] [bold]Number of affected items:[/bold] [bold]Perceived severity of incident:[/bold] [bold]Suggested improvements:[/bold] diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 3ab43bc7c6b..3717dcdc662 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1743,7 +1743,7 @@ orGroup: Box - id: BoxBuildABuddyHuman orGroup: Box - - id: BoxBuildABuddyReptillian + - id: BoxBuildABuddyReptilian orGroup: Box - id: BoxBuildABuddySlime orGroup: Box From 9453b882eb17db9dcea1126d0bad4f9fe0547f79 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Wed, 12 Jun 2024 09:23:49 -0400 Subject: [PATCH 23/33] lowercase i --- Resources/Prototypes/_NF/Mail/Items/paper.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/_NF/Mail/Items/paper.yml b/Resources/Prototypes/_NF/Mail/Items/paper.yml index 6372c76827f..e68713f57e0 100644 --- a/Resources/Prototypes/_NF/Mail/Items/paper.yml +++ b/Resources/Prototypes/_NF/Mail/Items/paper.yml @@ -371,7 +371,7 @@ stampedName: craig stampType: Signature content: |2 - [bold]hey uh, they told me to send you a pipebomb I guess? + [bold]hey uh, they told me to send you a pipebomb i guess? this is all i could find around here, hope that works From a19aff2bd0a6ffed95efbd575c5d3d855234578f Mon Sep 17 00:00:00 2001 From: Whatstone Date: Thu, 13 Jun 2024 19:09:12 -0400 Subject: [PATCH 24/33] extra premium cigars, premium liquors --- Resources/Prototypes/_NF/Mail/Items/boxes.yml | 18 +- Resources/Prototypes/_NF/Mail/Items/misc.yml | 95 +++++++- Resources/Prototypes/_NF/Mail/Items/paper.yml | 17 +- Resources/Prototypes/_NF/Mail/mail.yml | 109 +++++++++ .../Prototypes/_NF/Mail/mailDeliveries.yml | 14 +- .../cigar-platinum.rsi/burnt-icon.png | Bin 0 -> 210 bytes .../lit-equipped-MASK-vox.png | Bin 0 -> 1123 bytes .../cigar-platinum.rsi/lit-equipped-MASK.png | Bin 0 -> 434 bytes .../cigar-platinum.rsi/lit-icon.png | Bin 0 -> 276 bytes .../cigar-platinum.rsi/lit-inhand-left.png | Bin 0 -> 769 bytes .../cigar-platinum.rsi/lit-inhand-right.png | Bin 0 -> 542 bytes .../Smokeables/cigar-platinum.rsi/meta.json | 220 ++++++++++++++++++ .../unlit-equipped-MASK-vox.png | Bin 0 -> 262 bytes .../unlit-equipped-MASK.png | Bin 0 -> 243 bytes .../cigar-platinum.rsi/unlit-icon.png | Bin 0 -> 194 bytes .../cigar-platinum.rsi/unlit-inhand-left.png | Bin 0 -> 246 bytes .../cigar-platinum.rsi/unlit-inhand-right.png | Bin 0 -> 263 bytes 17 files changed, 450 insertions(+), 23 deletions(-) create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/burnt-icon.png create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-equipped-MASK-vox.png create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-equipped-MASK.png create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-icon.png create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-inhand-left.png create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-inhand-right.png create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/meta.json create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-equipped-MASK-vox.png create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-equipped-MASK.png create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-icon.png create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-inhand-left.png create mode 100644 Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-inhand-right.png diff --git a/Resources/Prototypes/_NF/Mail/Items/boxes.yml b/Resources/Prototypes/_NF/Mail/Items/boxes.yml index 2dff177bf1a..850eec7cc34 100644 --- a/Resources/Prototypes/_NF/Mail/Items/boxes.yml +++ b/Resources/Prototypes/_NF/Mail/Items/boxes.yml @@ -1,4 +1,4 @@ -# Mail-only boxes. If/when something uses these outside of the mail, move the entry into Catalog/Fills. +# Mail-only boxes. If/when something uses these outside of the mail, move the entry into Catalog/Fills. - type: entity name: advanced component variety pack parent: BoxCardboard @@ -53,7 +53,7 @@ name: bluespace component variety pack parent: BoxCardboard id: BoxT4ComponentsAssorted - description: A box of various bluespace components. Where'd you find this? + description: A box of various bluespace components. Where'd you find this? components: - type: StorageFill contents: @@ -78,7 +78,7 @@ name: scented soap sampler pack parent: BoxCardboard id: BoxSoapsAssorted - description: A box of various scented soaps. Ooh, lavender. + description: A box of various scented soaps. Ooh, lavender. components: - type: StorageFill contents: @@ -105,7 +105,7 @@ name: scented soap sampler pack parent: BoxCardboard id: BoxSoapsAssortedOmega - description: A box of various scented soaps. Ooh, bluespace. + description: A box of various scented soaps. Ooh, bluespace. components: - type: StorageFill contents: @@ -133,7 +133,7 @@ suffix: Human parent: BoxHug id: BoxBuildABuddyHuman - description: "\"Harry the Human\" Build-a-Buddy kit. Some assembly required." + description: "\"Henry the Human\" Build-a-Buddy kit. Some assembly required." components: - type: StorageFill contents: @@ -169,7 +169,7 @@ suffix: Goblin parent: BoxBuildABuddyHuman id: BoxBuildABuddyGoblin - description: "\"Greta the Goblin\" Build-a-Buddy kit. Some assembly required." + description: "\"Greta the Goblin\" Build-a-Buddy kit. Some assembly required." components: - type: StorageFill contents: @@ -199,7 +199,7 @@ suffix: Reptilian parent: BoxBuildABuddyHuman id: BoxBuildABuddyReptilian - description: "\"Randy the Reptilian\" Build-a-Buddy kit. Some assembly required." + description: "\"Randy the Reptilian\" Build-a-Buddy kit. Some assembly required." components: - type: StorageFill contents: @@ -229,7 +229,7 @@ suffix: Slime parent: BoxBuildABuddyHuman id: BoxBuildABuddySlime - description: "\"Steven the Slime\" Build-a-Buddy kit. Some assembly required." + description: "\"Steven the Slime\" Build-a-Buddy kit. Some assembly required." components: - type: StorageFill contents: @@ -259,7 +259,7 @@ suffix: Vulpkanin parent: BoxBuildABuddyHuman id: BoxBuildABuddyVulpkanin - description: "\"Valerie the Vulpkanin\" Build-a-Buddy kit. Some assembly required." + description: "\"Valerie the Vulpkanin\" Build-a-Buddy kit. Some assembly required." components: - type: StorageFill contents: diff --git a/Resources/Prototypes/_NF/Mail/Items/misc.yml b/Resources/Prototypes/_NF/Mail/Items/misc.yml index d8b9321b30c..a9207c4051f 100644 --- a/Resources/Prototypes/_NF/Mail/Items/misc.yml +++ b/Resources/Prototypes/_NF/Mail/Items/misc.yml @@ -1,4 +1,4 @@ -# Mail-only items. If/when these get used for anything else, please move them to another folder. +# Mail-only items. If/when these get used for anything else, please move them to another folder. # Pranks: admin items or effects put into an envelope, released when opened or damaged. - type: entity id: DelayedSmoke @@ -54,6 +54,19 @@ - ReagentId: Cognizine Quantity: 15 # Surely three friends is enough. +- type: entity + id: SyringeOpporozidone + parent: Syringe + name: opporozidone syringe + components: + - type: SolutionContainerManager + solutions: + drink: + maxVol: 15 + reagents: + - ReagentId: Opporozidone + Quantity: 15 + - type: entity id: NecrosolChemistryBottle parent: BaseChemistryBottleFilled @@ -66,3 +79,83 @@ reagents: - ReagentId: Necrosol Quantity: 30 + +# Premium Alcohol: wait, it's just marketing? +# TODO: different sprites would be nice. +- type: entity + id: DrinkPremiumVodkaBottleFull + parent: DrinkVodkaBottleFull + name: Moment of Clarity vodka bottle + description: When things get a bit hectic, all you need is a Moment of Clarity. + +- type: entity + id: DrinkPremiumGinBottleFull + parent: DrinkGinBottleFull + name: Harry's gin bottle + description: An interesting set of botanicals, for sure. Is that pumpkin? + +- type: entity + id: DrinkPremiumTequilaBottleFull + parent: DrinkTequilaBottleFull + name: Casa del Eorg tequila bottle + description: Save the best for last. Casa del Eorg, 100% agave. + +- type: entity + id: DrinkPremiumWhiskeyBottleFull + parent: DrinkWhiskeyBottleFull + name: Ol' Prowler 18 whiskey bottle + description: Surprisingly smooth, it has a nasty habit of sneaking up on you. + +- type: entity + id: DrinkPremiumRumBottleFull + parent: DrinkRumBottleFull + name: Redeemer's Bounty rum bottle + description: Well, you asked for it. Navy strength. + +- type: entity + id: DrinkPremiumAbsinthe + parent: DrinkAbsintheBottleFull + name: Bureaucracy's Kiss absinthe bottle + description: A refined taste that tends to linger. + +- type: entity + id: CigarPlatinumCase + parent: CigarCase + name: Generalissimo No. 3 cigar case + description: Subtly embossed, and labelled "12/40". Smells of cedar. + components: + - type: StorageFill + contents: + - id: CigarPlatinum + amount: 8 + +- type: entity + id: CigarPlatinum + parent: CigarGold + name: Generalissimo No. 3 cigar + description: You feel dignified just looking at it. Smells of cedar. + components: + - type: Sprite + scale: 1.2 + sprite: _NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi + state: unlit-icon + - type: Clothing + sprite: _NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi + slots: [ mask ] + equippedPrefix: unlit + - type: Item + size: Tiny + +- type: entity + id: CigarPlatinumSpent + parent: CigarPlatinum + suffix: spent + components: + - type: Sprite + state: burnt-icon + - type: Smokable + state: Burnt + - type: SolutionContainerManager + solutions: + smokable: + maxVol: 20 diff --git a/Resources/Prototypes/_NF/Mail/Items/paper.yml b/Resources/Prototypes/_NF/Mail/Items/paper.yml index e68713f57e0..b2300adc718 100644 --- a/Resources/Prototypes/_NF/Mail/Items/paper.yml +++ b/Resources/Prototypes/_NF/Mail/Items/paper.yml @@ -279,9 +279,9 @@ 1. YOU HAVE FAILED YOUR QUARTERLY HYGIENE INSPECTION. 2. THIS HAS REDUCED SECTOR EFFICIENCY BY [bold]0.02%[/bold]. - ENCLOSED IS A SELECTION OF HYGIENE PRODUCTS SUITABLE FOR USE BY ORGANICS. WE HOPE THAT THIS SITUATION IS RESOLVED PROMPTLY. + ENCLOSED IS A SELECTION OF HYGIENE PRODUCTS SUITABLE FOR USE BY ORGANICS. WE HOPE THAT THIS SITUATION IS RESOLVED PROMPTLY. - [italic]THIS IS AN AUTOMATED MESSAGE. DO NOT REPLY.[/italic] + [italic]THIS IS AN AUTOMATED MESSAGE. DO NOT REPLY.[/italic] - type: entity id: PaperMailNTConscript @@ -343,7 +343,7 @@ [italic](On the next few pages, you see a list of materials and a happy stick figure assembling furniture.)[/italic] - [italic](On the pages after that, you see a set of instructions to assemble a pet bed. You're sure you don't need them, how hard could it be?)[/italic] + [italic](On the pages after that, you see a set of instructions to assemble a pet bed. You're sure you don't need them, how hard could it be?)[/italic] - type: entity id: PaperMailNTBoxer @@ -357,7 +357,8 @@ [/head] [head=1]They're coming for you.[/head] - [head=2]This should help. Knock 'em out.[/head] + [head=2]This should help. Knock 'em out.[/head] + # Placeholder for an arm-on-use, flashbang fakeout pipebomb - type: entity id: PaperMailNFPipebombIntern @@ -379,7 +380,7 @@ - type: entity id: PaperMailNFAntivirus - name: Snortin Antivirus receipt + name: Snortin Antivirus invoice # noSpawn: true suffix: "antivirus ad" parent: Paper @@ -411,7 +412,7 @@ [head=1]EMP Preparedness Response[/head] - You have been selected to receive a NT EMP Preparedness kit as a test. Note that this is only a test. In a real emergency, follow the instructions of your vessel's command staff. + You have been selected to receive a NT EMP Preparedness kit as a test. Note that this is only a test. In a real emergency, follow the instructions of your vessel's command staff. As the recipient of this, please note [bold]any improvements[/bold] that could be made towards the EMP preparedness of the vessel you were aboard when opening and submit this form to your serving Captain or Station Representative. @@ -441,11 +442,11 @@ You're now the proud owner of your very own Build-a-Buddy! - We hope that your new friend can serve as a shoulder to lean on in the depths of space, and hopefully you won't be quite as lonely out there. Personally, I find putting them together to be rather therapeutic. + We hope that your new friend can serve as a shoulder to lean on in the depths of space, and hopefully you won't be quite as lonely out there. Personally, I find putting them together to be rather therapeutic. [bold]Collect the whole set![/bold] [bold][bullet/][/bold] Greta the Goblin - [bold][bullet/][/bold] Harry the Human + [bold][bullet/][/bold] Henry the Human [bold][bullet/][/bold] Rosie the Reptilian [bold][bullet/][/bold] Steven the Slime [bold][bullet/][/bold] Valerie the Vulpkanin diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 3717dcdc662..cf89416792d 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1751,3 +1751,112 @@ orGroup: Box - id: DrinkSpaceGlue - id: PaperMailNFBuildABuddy + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCosplayWizard + suffix: cosplay-wizard, extended + components: + - type: Mail + contents: + - id: ClothingOuterWizard + - id: ClothingHeadHatWizard + - id: ClothingShoesWizard + - id: WizardStaffMeleeBase + orGroup: Staff + prob: 0.9 + - id: RGBStaff + orGroup: Staff + prob: 0.1 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCosplayMaid + suffix: cosplay-maid, extended + components: + - type: Mail + contents: + - id: UniformMaid + orGroup: Uniform + - id: ClothingUniformJumpskirtJanimaid + orGroup: Uniform + - id: ClothingUniformJumpskirtJanimaidmini + orGroup: Uniform + - id: MegaSprayBottle + - id: ClothingHandsGlovesColorWhite + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFTacticalMaid + suffix: tactical maid + components: + - type: Mail + contents: + - id: ClothingUniformJumpskirtTacticalMaid + - id: ClothingHeadHatTacticalMaidHeadband + - id: MegaSprayBottle + - id: ClothingHandsTacticalMaidGloves + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCosplayNurse + suffix: cosplay-nurse, extended + components: + - type: Mail + contents: + - id: ClothingUniformJumpskirtNurse + - id: ClothingHeadNurseHat + - id: SyringeOpporozidone + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCommandNFPremiumAlcohol + suffix: premium alcohol + components: + - type: Mail + isFragile: true + contents: + - id: DrinkPremiumVodkaBottleFull + orGroup: Bottle + - id: DrinkPremiumGinBottleFull + orGroup: Bottle + - id: DrinkPremiumTequilaBottleFull + orGroup: Bottle + - id: DrinkPremiumWhiskeyBottleFull + orGroup: Bottle + - id: DrinkPremiumRumBottleFull + orGroup: Bottle + - id: DrinkPremiumAbsintheBottleFull + orGroup: Bottle + - id: DrinkGlassCoupeShaped + amount: 2 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCommandNFPlatinumCigars + suffix: cigars, ultra-premium + components: + - type: Mail + isFragile: true + contents: + - id: DrinkPremiumVodkaBottleFull + orGroup: Bottle + - id: DrinkPremiumGinBottleFull + orGroup: Bottle + - id: DrinkPremiumTequilaBottleFull + orGroup: Bottle + - id: DrinkPremiumWhiskeyBottleFull + orGroup: Bottle + - id: DrinkPremiumRumBottleFull + orGroup: Bottle + - id: DrinkPremiumAbsintheBottleFull + orGroup: Bottle + - id: DrinkGlassCoupeShaped + amount: 2 + diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index 00ccb15d975..d64ffc408e4 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -27,11 +27,11 @@ MailWinterCoat: 0.3 MailCosplayArc: 0.3 MailCosplayGeisha: 0.3 - MailCosplayMaid: 0.3 + MailNFCosplayMaid: 0.25 + MailNFTacticalMaid: 0.5 MailCosplayNurse: 0.3 MailCosplaySchoolgirl: 0.3 - MailCosplayWizard: 0.6 - MailFishingCap: 0.3 + MailNFCosplayWizard: 0.6 MailFlowers: 0.3 MailNoir: 0.3 MailSunglasses: 1 @@ -97,12 +97,16 @@ jobs: StationRepresentative: - MailNFGoldCigars: 0.95 + MailCommandNFGoldCigars: 0.15 + MailCommandNFPlatinumCigars: 0.1 + MailCommandNFPremiumAlcohol: 0.25 MailCommandNFStationPet: 2 MailCommandNFPipebombIntern: 1 MailStationRepNFNukeDisk: 1 Sheriff: MailSecurityNonlethalsKit: 2 - MailNFGoldCigars: 0.95 + MailNFGoldCigars: 0.15 + MailCommandNFPlatinumCigars: 0.1 + MailCommandNFPremiumAlcohol: 0.25 MailCommandNFStationPet: 2 # Don't see the harm in this with Smile and Cappy around MailCommandNFPipebombIntern: 1 diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/burnt-icon.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/burnt-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..7bd35387da89d5ef6ac89c83fa40898f455e0df0 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy>H$6>t_Kbru+x z_*gQ-uWbP>2{yC+7`nQ;ii?YsnP+L*f`fK$~x&Zw9UKs zQDx?Vmd-~_mEU{Me-G_xDLMYh_Q%Xe|M%Z^n8Dy7%#g{X;L8xR`S#myKopm{j^W4g zr$T;b=SBSUW{Oz3IyI)qaM`qiNeusvA5roqmS;xD?ZbTLl`D=TUbuNTpq$8 zHX*q5i}Hor?6dz~_Mcy0_cw8KhDg4=?6dvSbN>G^_6rn)nDGY%)@%X+_bjm+0^9c+z(pTB>vo1{zk%=vBufDo#VbG(~mZt2X~dBW?TQO zYk2wjWBYsd2PU%h_6J;l*D?4_c2^+T<^xW8{=LNo*M8{;9gw>B=jHu}Mc?w&o3=*2 z5l-0N#CnJ4cGSPCktz)NHrY?DApsBcP|N>adt4ZFlGbj2&e7ny=4(9@>w&dDU$&q9 z_v-xqy8Soj?2Z4{@;><)cSH2&r?PzO!>!^OhzbXA%wnpPFsaNuaW2=iUg*Gt)til$ zNBrB*kOFnj;fV&L{T+1u}sFQ4V=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+ z(=$pSoZ^zil2jm5DLFGeu?VPMS3!x3GbOXA7$|7S#hF%=n44M*)tHi+lUNB7*P#e< zDJ!`8xqw{>0N27PqQu21V*mgEz)3_wRCt{2+sh4tKokW~5I2(~7@lO1b9Ohx3AlQ9V48-e9gPVt=_|J9`d3VU>ioZPX}kXRk@q1VLOzCknz#-C zz`A8myxHremxlZnvMO=@kNp4uU}feGcg4@7f8;Gh(Dm2R3;@74vKvXE z^6|51P%72Jy8aRJ5b|^4di?!8>(&4Oc#9RG{txkgAk>6})?nkm5RV_k?Dzoy0Bncj c2LM3*UgEwC7hi#zNB{r;07*qoM6N<$g27L~9smFU literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-icon.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f6ed8dd69643bf6a30c0b984719ab66d0f24bec4 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy1_3@Ht_KbrXi2cK)0LUJYDb`z zN|dAKYEk}QPBu&TocVPvv8$`g&CM-7KK@uT!~Z&l1(B);gIU;sdId^?{DK+&qk;ng z-OfO{W=|K#5R2Zo{f1(P4LF<&lV*z~e*d>!_sQNohiiOSAGrS7r0`4odZEpawbMIa z%dF)(Q#W_&`JB$K=i=v!?x(E#V;6OTTQIL~3cHp3FE;IYKc{}wQ@yomj`+!nyV9Av zMH5~t*}I!^bZmTGtIiy~ub<0NP}G6p)UlawZ~sYepB&-$zs2rMAG1XOe~%*2ISihz KelF{r5}E)RqjeVm literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-inhand-left.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..353efa3f395a6167f2bcc1f68b75b1b6b2f5c950 GIT binary patch literal 769 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE4M+yv$zf+;U^?OH;uumf=j~m?ERjTshKKbk zOP5B>yeDDJpYUo+*(~OY#s`8b5mjt!x9~>1W7KJ8zo2}he~Dq2q~e;{y_NIZQxns= z^8ekfOkDjJXdDW-6LQ(=yJ`Q=OP|~Mm(3TycSkn)|LHx~=B&25^EdV1V#9Cte}Dg6 zeKqUjt&r=UHAWE_tWP!%8WX5+p^8)?w=eA=$_uAZe_v^m@ z=Z~w;o{x|Ee|hir&krZ}OV8i`r2lLE?q7el=2ggj{waNjhui=2m+8mv_$!bbD_8?z t?RNVEyEE literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-inhand-right.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..cdeedb4c24b6843544fa4ca348296f2536b90cd6 GIT binary patch literal 542 zcmeAS@N?(olHy`uVBq!ia0vp^2SAvE4M+yv$zf+;V0`N7;uumf=j~lXFJ?!Hwuh1% zw`>vSSJ1R|*e1MY?H+f5euX&aH#tWy$tYDZSZ~}Szp+!{rpClx&ikKBcAwq9`80R* zSrMRd#DJo!`=)NcwkZD0n-$wm{=WY8ulMWP@a8l2D|0`Y{Q2{;WY>p(|D3O@nIAs? z-gx)g+@g=We{Nm(FM}!J^@Bh5s8{~HWb?vtIpQq=3{xAHTdBasZ{vR)P=oGv2 VvzR7}3vsJKlAf-9F6*2UngAYTyTJee literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/meta.json b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/meta.json new file mode 100644 index 00000000000..cba3aea6107 --- /dev/null +++ b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/meta.json @@ -0,0 +1,220 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bfc9c6ba8126ee8c41564d68c4bfb9ce37faa8f8, unlit-icon, lit-icon, burnt-icon modified by Whatstone (Discord). lit-equipped-MASK-vox & unlit-equipped-MASK-vox states taken from /vg/station at commit https://github.com/vgstation-coders/vgstation13/commit/4638130fab5ff0e9faa220688811349d3297a33e", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "unlit-equipped-MASK", + "directions": 4 + }, + { + "name": "lit-equipped-MASK", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "unlit-equipped-MASK-vox", + "directions": 4 + }, + { + "name": "lit-equipped-MASK-vox", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "burnt-icon" + }, + { + "name": "unlit-icon" + }, + { + "name": "lit-icon" + }, + { + "name": "unlit-inhand-left", + "directions": 4 + }, + { + "name": "unlit-inhand-right", + "directions": 4 + }, + { + "name": "lit-inhand-left", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "lit-inhand-right", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-equipped-MASK-vox.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-equipped-MASK-vox.png new file mode 100644 index 0000000000000000000000000000000000000000..3cbf873967a8ff8f7b575b46b540ffaff73a583c GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fAP;iH* zi(^Q|oVPa@@-jJ!FkDnTc#(-U;Dn@2>LbH&4%Qg%3=S2Q2k(w3&Zx|~npQq({Xemt zObX!)Pq-Rl7$;~m6m>JrX?s|=yKnvH)TG1m5h4$4`szQv^zUUTVs%)@a6*&;RXM8Q zhG$QY+kXFESuT;5Ki&TN2mkDKkHUFBeEpD_vMzqzLup31HK_U;?l8+5O0-*vbG!ul Ofx*+&&t;ucLK6UZkXn=g literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-equipped-MASK.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-equipped-MASK.png new file mode 100644 index 0000000000000000000000000000000000000000..e46afbfc8948a26438bb480c578595fbe336df49 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0L3?#3!&-4XSoB=)|t_Kbr2yt=olwq*4T%-aN zWGo5t3ubV5b|VeQ$*l^BC~-+GPAM56C74hRQml(aKXo~Pqe&swa%S6 zAG{&d;G*$^M>^+yG*2=V_4MwrFb*=lZ0w~l=h37ilR^}NH7$*8H)`1H`gV33t8QK) zv82D-c&&z^x#$tICqZEaUyB)M^DxZVD(!C|?N|u3Sl-jcF~p)bIYHuxLh=Gx11>i6 lgeWGZrBZA+B$Xu?7-CWxSMthPF9#}R@O1TaS?83{1OPC_PGbN7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-icon.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..14046a22a4c3734c830225ab4e0d486fc1614a37 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyasfUet_KbrXi2cK)0LUJYDb`z zN|dAKYEk}QPBu&TocVPvQRXb;bD&DDk|4iehW{{7*C`SP6!r9UaSXBOeLK;R?|=aZ zb0dS_zyA-n@xMrYbD_d^eoD*DlhsOQcZ8*jrvxu7=6iJMu0p(b@9!w3c~9Sn%l-Iq j!v34?jqQKC>*sM>#W8a7zht=!G?c;9)z4*}Q$iB}>5WXc literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-inhand-left.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3943fbf26ecf93db9b406f4955db7941abaa35 GIT binary patch literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=dp%toLn`LHy}41a$w9>RV!v}r z3ga{e+ZngE+B$HGIi&1TGw4gR`d6EOqgu)6-M+>QW}q$*h`N+I=WA8pCR=+y=R40d zpW4pfCEs^>`PMakr{{d>`fm|&J#@mS%xTx<1AZFZmtX!w1&&=LGiJ#v sysp~Qb=qLs_SfI5&!y@E?JrYTnzyNvH{Q*6Z!5?>p00i_>zopr01r%D7ytkO literal 0 HcmV?d00001 diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-inhand-right.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..0f4ab68d1569e959c7cd17c2ad9f83e6a37ff345 GIT binary patch literal 263 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC==R92;Ln`LHy}6P1kO6~BpmgBU zqzP{t*c17)yngi@P)K9vpVVb$!l~(}6m{z_xSiX1U{qlFvR> zYR=2w*=ce;I4W+xe7oTt@0Ih4!*>_XT(*O)D|(^N-g5rpzaM5ZRt2t|Tr9o*w|c@709Ovok K=d#Wzp$Pz&BwsrK literal 0 HcmV?d00001 From 87ff4d20850c15ed33d0a461b743fe2f853e2947 Mon Sep 17 00:00:00 2001 From: Dvir Date: Fri, 14 Jun 2024 13:02:53 +0300 Subject: [PATCH 25/33] Cleanup --- .../Mail/Components/MailComponent.cs | 32 ++++++++----------- .../_NF/Mail/DelayedItemComponent.cs | 3 +- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs b/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs index d0fea1421ec..6b8e1ee0b66 100644 --- a/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs +++ b/Content.Server/Nyanotrasen/Mail/Components/MailComponent.cs @@ -8,24 +8,20 @@ namespace Content.Server.Mail.Components [RegisterComponent] public sealed partial class MailComponent : SharedMailComponent { - [ViewVariables(VVAccess.ReadWrite)] - [DataField("recipient")] + [DataField, ViewVariables(VVAccess.ReadWrite)] public string Recipient = "None"; - [ViewVariables(VVAccess.ReadWrite)] - [DataField("recipientJob")] + [DataField, ViewVariables(VVAccess.ReadWrite)] public string RecipientJob = "None"; - [ViewVariables(VVAccess.ReadWrite)] - [DataField("recipientStation")] + [DataField, ViewVariables(VVAccess.ReadWrite)] public string RecipientStation = "None"; // Why do we not use LockComponent? // Because this can't be locked again, // and we have special conditions for unlocking, // and we don't want to add a verb. - [ViewVariables(VVAccess.ReadWrite)] - [DataField("isLocked")] + [DataField, ViewVariables(VVAccess.ReadWrite)] public bool IsLocked = true; /// @@ -36,7 +32,7 @@ public sealed partial class MailComponent : SharedMailComponent /// This is useful for broken fragile packages and packages that were /// not delivered in time. /// - [DataField("isProfitable")] + [DataField] public bool IsProfitable = true; /// @@ -46,7 +42,7 @@ public sealed partial class MailComponent : SharedMailComponent /// This can be set to true in the YAML files for a mail delivery to /// always be Fragile, despite its contents. /// - [DataField("isFragile")] + [DataField] public bool IsFragile = false; /// @@ -62,51 +58,51 @@ public sealed partial class MailComponent : SharedMailComponent /// This can be set to true in the YAML files for a mail delivery to /// always be Priority. /// - [DataField("isPriority")] + [DataField] public bool IsPriority = false; // Frontier: large mail /// /// Whether this parcel is large. /// - [DataField("isLarge")] + [DataField] public bool IsLarge = false; // End Frontier: large mail /// /// What will be packaged when the mail is spawned. /// - [DataField("contents")] + [DataField] public List Contents = new(); /// /// The amount that cargo will be awarded for delivering this mail. /// - [DataField("bounty")] + [DataField] public int Bounty = 7500; // Frontier 750<7500 /// /// Penalty if the mail is destroyed. /// - [DataField("penalty")] + [DataField] public int Penalty = -250; /// /// The sound that's played when the mail's lock is broken. /// - [DataField("penaltySound")] + [DataField] public SoundSpecifier PenaltySound = new SoundPathSpecifier("/Audio/Machines/Nuke/angry_beep.ogg"); /// /// The sound that's played when the mail's opened. /// - [DataField("openSound")] + [DataField] public SoundSpecifier OpenSound = new SoundPathSpecifier("/Audio/Effects/packetrip.ogg"); /// /// The sound that's played when the mail's lock has been emagged. /// - [DataField("emagSound")] + [DataField] public SoundSpecifier EmagSound = new SoundCollectionSpecifier("sparks"); /// diff --git a/Content.Server/_NF/Mail/DelayedItemComponent.cs b/Content.Server/_NF/Mail/DelayedItemComponent.cs index de5184bb13a..d2f9f4412be 100644 --- a/Content.Server/_NF/Mail/DelayedItemComponent.cs +++ b/Content.Server/_NF/Mail/DelayedItemComponent.cs @@ -10,8 +10,7 @@ public sealed partial class DelayedItemComponent : Component /// /// The entity to replace this when opened or dropped. /// - [ViewVariables(VVAccess.ReadWrite)] - [DataField("item")] + [DataField, ViewVariables(VVAccess.ReadWrite)] public string Item = "None"; } } From cad1b3c2053893dc85f0b3746074c42409848735 Mon Sep 17 00:00:00 2001 From: Dvir Date: Fri, 14 Jun 2024 14:44:21 +0300 Subject: [PATCH 26/33] Fixups And Edits --- .../_NF/Entities/Objects/Fun/toys.yml | 10 ++- Resources/Prototypes/_NF/Mail/Items/paper.yml | 2 +- Resources/Prototypes/_NF/Mail/mail.yml | 86 ++++++++++--------- .../Prototypes/_NF/Mail/mailDeliveries.yml | 4 +- 4 files changed, 56 insertions(+), 46 deletions(-) diff --git a/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml index efabfb0634c..c2c937492aa 100644 --- a/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/_NF/Entities/Objects/Fun/toys.yml @@ -503,7 +503,7 @@ # Essentially a rubber hammer but with explosion noises and RSI - type: entity name: The Throngler - parent: BaseItem + parent: ToyHammer id: ThronglerToy suffix: Toy description: Why would you make this? @@ -513,9 +513,6 @@ state: icon - type: StaminaDamageOnHit damage: 0.8 - - type: Appearance - - type: DisarmMalus - malus: 0 - type: MeleeWeapon wideAnimationRotation: -135 attackRate: 10 @@ -526,3 +523,8 @@ path: /Audio/Effects/explosion_small1.ogg soundNoDamage: path: /Audio/Effects/explosion_small1.ogg + - type: Item + size: Ginormous + sprite: Objects/Weapons/Melee/Throngler-in-hand.rsi + - type: DisarmMalus + malus: 0 \ No newline at end of file diff --git a/Resources/Prototypes/_NF/Mail/Items/paper.yml b/Resources/Prototypes/_NF/Mail/Items/paper.yml index e68713f57e0..b06065adf41 100644 --- a/Resources/Prototypes/_NF/Mail/Items/paper.yml +++ b/Resources/Prototypes/_NF/Mail/Items/paper.yml @@ -446,6 +446,6 @@ [bold]Collect the whole set![/bold] [bold][bullet/][/bold] Greta the Goblin [bold][bullet/][/bold] Harry the Human - [bold][bullet/][/bold] Rosie the Reptilian + [bold][bullet/][/bold] Randy the Reptilian [bold][bullet/][/bold] Steven the Slime [bold][bullet/][/bold] Valerie the Vulpkanin diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 3717dcdc662..98a91506dcd 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -66,10 +66,10 @@ contents: - id: BikeHorn orGroup: Horn - prob: 0.75 + prob: 0.95 - id: CluwneHorn orGroup: Horn - prob: 0.25 + prob: 0.05 - type: entity noSpawn: true @@ -288,7 +288,7 @@ # Non-kitchen, non-contraband knives and swords, both rolled into one. - id: KukriKnife orGroup: Knife - - id: Machete # A little large for an envelope but we'll live + - id: Machete # A little large for an envelope but "we'll live" orGroup: Knife - id: CombatKnife orGroup: Knife @@ -315,9 +315,11 @@ orGroup: Sword - id: Kanabou # ah yes, swords orGroup: Sword - - id: CaptainSabre # Little dangerous between the reflect and the damage + - id: PlasteelArmingSword + orGroup: Sword + - id: ClothingBeltSheathFilled # Little dangerous between the reflect and the damage orGroup: Sword - prob: 0.2 + prob: 0.1 - type: entity noSpawn: true @@ -345,12 +347,6 @@ - type: Mail contents: # Expected value: 2965 spesos - - id: SpaceCash100 - orGroup: Cash - prob: 0.025 - - id: SpaceCash500 - orGroup: Cash - prob: 0.075 - id: SpaceCash1000 orGroup: Cash prob: 0.3 @@ -363,6 +359,12 @@ - id: SpaceCash10000 orGroup: Cash prob: 0.1 + - id: SpaceCash20000 + orGroup: Cash + prob: 0.075 + - id: SpaceCash30000 + orGroup: Cash + prob: 0.025 - type: entity noSpawn: true @@ -475,9 +477,6 @@ - id: PlushieJester prob: 0.05 orGroup: Plushie - - id: PlushieTrystan - prob: 0.05 - orGroup: Plushie # Random snacks, replaces MailChocolate (lousy animal organs) - type: entity @@ -1145,7 +1144,7 @@ noSpawn: true parent: BaseMail id: MailSecurityNFHudNfsdMed - suffix: musket + suffix: nfsd med hud components: - type: Mail contents: @@ -1188,19 +1187,19 @@ contents: - id: LuxuryPen orGroup: Pen - prob: 0.3 + prob: 0.55 - id: PenHop orGroup: Pen prob: 0.225 - id: PenCap orGroup: Pen prob: 0.225 - - id: CyberPen - orGroup: Pen - prob: 0.125 - - id: PenCentcom - orGroup: Pen - prob: 0.125 +# - id: CyberPen # Have to remove this consider you can fuck with notes using them too easy. +# orGroup: Pen +# prob: 0.125 +# - id: PenCentcom +# orGroup: Pen +# prob: 0.125 - id: PaperMailNFPaperPusherAd - type: entity @@ -1245,7 +1244,7 @@ noSpawn: true parent: BaseMail id: MailNFIFFBoard - suffix: iff board + suffix: IFF board components: - type: Mail contents: @@ -1310,15 +1309,15 @@ # Uncommon - id: PhoneInstrument orGroup: Instrument - prob: 0.25 + prob: 0.1 # Rare - id: BananaPhoneInstrument orGroup: Instrument - prob: 0.1 + prob: 0.05 # Ultra-rare - id: PhoneInstrumentSyndicate orGroup: Instrument - prob: 0.05 + prob: 0.01 - type: entity noSpawn: true @@ -1507,12 +1506,12 @@ orGroup: Board - id: JukeboxCircuitBoard orGroup: Board - - id: ComputerMassMediaCircuitboard - orGroup: Board - prob: 0.5 - id: TelecomServerCircuitboard orGroup: Board prob: 0.25 + - id: ComputerMassMediaCircuitboard + orGroup: Board + prob: 0.1 - type: entity noSpawn: true @@ -1534,8 +1533,8 @@ orGroup: Clothes - id: ClothingUniformKendoHakama orGroup: Clothes - - id: UniformJabroni # HMMM - orGroup: Clothes +# - id: UniformJabroni # ERP Update real +# orGroup: Clothes - id: ClothingNeckBling orGroup: Clothes - id: ClothingShoesBling @@ -1629,6 +1628,15 @@ - type: Mail contents: - id: PowerCellMicroreactor + orGroup: PowerCell + prob: 0.60 + - id: PowerCellAntiqueProto + orGroup: PowerCell + prob: 0.20 + - id: PowerCellHyper + orGroup: PowerCell + prob: 0.20 + amount: 2 - type: entity noSpawn: true @@ -1646,12 +1654,17 @@ - type: entity noSpawn: true parent: BaseMailLarge - id: MailNFCombatMedkit - suffix: combat medkit + id: MailNFMedkit + suffix: medkit components: - type: Mail contents: + - id: MedkitAdvancedFilled + orGroup: Medkit + prob: 0.75 - id: MedkitCombatFilled + orGroup: Medkit + prob: 0.25 - type: entity noSpawn: true @@ -1666,7 +1679,7 @@ - type: entity noSpawn: true parent: BaseMail - id: MailNFNecrosol + id: MailNFNecrosol # Not sure about keeping this, but its probably fine suffix: necrosol bottle components: - type: Mail @@ -1710,11 +1723,6 @@ isFragile: true contents: - id: NukeDiskFake - orGroup: Disk - prob: 0.9 - - id: NukeDisk - orGroup: Disk - prob: 0.1 - id: PaperMailNFAntivirus - type: entity diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index 00ccb15d975..f0f4cf46729 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -59,7 +59,7 @@ MailNFCircuitboardIndustrial: 1.25 MailNFCircuitboardService: 1.25 MailNFCognizine: 0.5 - MailNFCombatMedkit: 0.5 + MailNFMedkit: 0.5 MailNFIFFBoard: 0.25 MailNFMoney: 1 MailNFNecrosol: 0.5 @@ -93,7 +93,7 @@ MailSecurityNFHudNfsdMed: 1 MailSecuritySpaceLaw: 1 MailSecurityNFMusket: 1 - MailNFCombatMedkit: 1.5 # 2 weight total + MailNFMedkit: 1.5 # 2 weight total jobs: StationRepresentative: From c881627cd0acc2c71c8b5ea713dc2b8c745c89e5 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Fri, 14 Jun 2024 08:47:46 -0400 Subject: [PATCH 27/33] Remove kendo hakama, jabroni comment, fix cigars --- Resources/Prototypes/_NF/Mail/mail.yml | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index cec749c7608..51a028c7aad 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1531,10 +1531,6 @@ orGroup: Clothes - id: ClothingUniformMartialGi orGroup: Clothes - - id: ClothingUniformKendoHakama - orGroup: Clothes -# - id: UniformJabroni # ERP Update real -# orGroup: Clothes - id: ClothingNeckBling orGroup: Clothes - id: ClothingShoesBling @@ -1853,18 +1849,5 @@ - type: Mail isFragile: true contents: - - id: DrinkPremiumVodkaBottleFull - orGroup: Bottle - - id: DrinkPremiumGinBottleFull - orGroup: Bottle - - id: DrinkPremiumTequilaBottleFull - orGroup: Bottle - - id: DrinkPremiumWhiskeyBottleFull - orGroup: Bottle - - id: DrinkPremiumRumBottleFull - orGroup: Bottle - - id: DrinkPremiumAbsintheBottleFull - orGroup: Bottle - - id: DrinkGlassCoupeShaped - amount: 2 - + - id: CigarPlatinumCase + - id: FlippoEngravedLighter From 1e8193fd01af0777a752d998ae62af0f75518e4d Mon Sep 17 00:00:00 2001 From: Whatstone Date: Fri, 14 Jun 2024 09:27:51 -0400 Subject: [PATCH 28/33] Platinum cigars, fix sprites --- Resources/Prototypes/_NF/Mail/Items/misc.yml | 2 +- Resources/Prototypes/_NF/Mail/mail.yml | 21 +++++++++++------- .../cigar-platinum.rsi/burnt-icon.png | Bin .../lit-equipped-MASK-vox.png | Bin .../cigar-platinum.rsi/lit-equipped-MASK.png | Bin .../cigar-platinum.rsi/lit-icon.png | Bin .../cigar-platinum.rsi/lit-inhand-left.png | Bin .../cigar-platinum.rsi/lit-inhand-right.png | Bin .../{ => Cigars}/cigar-platinum.rsi/meta.json | 0 .../unlit-equipped-MASK-vox.png | Bin .../unlit-equipped-MASK.png | Bin .../cigar-platinum.rsi/unlit-icon.png | Bin .../cigar-platinum.rsi/unlit-inhand-left.png | Bin .../cigar-platinum.rsi/unlit-inhand-right.png | Bin 14 files changed, 14 insertions(+), 9 deletions(-) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/burnt-icon.png (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/lit-equipped-MASK-vox.png (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/lit-equipped-MASK.png (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/lit-icon.png (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/lit-inhand-left.png (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/lit-inhand-right.png (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/meta.json (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/unlit-equipped-MASK-vox.png (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/unlit-equipped-MASK.png (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/unlit-icon.png (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/unlit-inhand-left.png (100%) rename Resources/Textures/_NF/Objects/Consumable/Smokeables/{ => Cigars}/cigar-platinum.rsi/unlit-inhand-right.png (100%) diff --git a/Resources/Prototypes/_NF/Mail/Items/misc.yml b/Resources/Prototypes/_NF/Mail/Items/misc.yml index a9207c4051f..e3ab47e0eac 100644 --- a/Resources/Prototypes/_NF/Mail/Items/misc.yml +++ b/Resources/Prototypes/_NF/Mail/Items/misc.yml @@ -136,7 +136,7 @@ description: You feel dignified just looking at it. Smells of cedar. components: - type: Sprite - scale: 1.2 + scale: 1.2, 1.2 sprite: _NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi state: unlit-icon - type: Clothing diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 51a028c7aad..42dd3bdcbe3 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1187,19 +1187,21 @@ contents: - id: LuxuryPen orGroup: Pen - prob: 0.55 + prob: 0.54 - id: PenHop orGroup: Pen prob: 0.225 - id: PenCap orGroup: Pen prob: 0.225 -# - id: CyberPen # Have to remove this consider you can fuck with notes using them too easy. -# orGroup: Pen -# prob: 0.125 -# - id: PenCentcom -# orGroup: Pen -# prob: 0.125 + # Ultra-rare + # Give the less-adventurous players a chance to rewrite documents. + - id: CyberPen + orGroup: Pen + prob: 0.005 + - id: PenCentcom + orGroup: Pen + prob: 0.005 - id: PaperMailNFPaperPusherAd - type: entity @@ -1769,7 +1771,10 @@ - id: ClothingShoesWizard - id: WizardStaffMeleeBase orGroup: Staff - prob: 0.9 + prob: 0.6 + - id: PonderingOrb + orGroup: Staff + prob: 0.3 - id: RGBStaff orGroup: Staff prob: 0.1 diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/burnt-icon.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/burnt-icon.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/burnt-icon.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/burnt-icon.png diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-equipped-MASK-vox.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/lit-equipped-MASK-vox.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-equipped-MASK-vox.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/lit-equipped-MASK-vox.png diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-equipped-MASK.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/lit-equipped-MASK.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-equipped-MASK.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/lit-equipped-MASK.png diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-icon.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/lit-icon.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-icon.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/lit-icon.png diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-inhand-left.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/lit-inhand-left.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-inhand-left.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/lit-inhand-left.png diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-inhand-right.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/lit-inhand-right.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/lit-inhand-right.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/lit-inhand-right.png diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/meta.json b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/meta.json similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/meta.json rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/meta.json diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-equipped-MASK-vox.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/unlit-equipped-MASK-vox.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-equipped-MASK-vox.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/unlit-equipped-MASK-vox.png diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-equipped-MASK.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/unlit-equipped-MASK.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-equipped-MASK.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/unlit-equipped-MASK.png diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-icon.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/unlit-icon.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-icon.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/unlit-icon.png diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-inhand-left.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/unlit-inhand-left.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-inhand-left.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/unlit-inhand-left.png diff --git a/Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-inhand-right.png b/Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/unlit-inhand-right.png similarity index 100% rename from Resources/Textures/_NF/Objects/Consumable/Smokeables/cigar-platinum.rsi/unlit-inhand-right.png rename to Resources/Textures/_NF/Objects/Consumable/Smokeables/Cigars/cigar-platinum.rsi/unlit-inhand-right.png From eaeb7cf9c455b309b9b77d2f292a0dd02d99becc Mon Sep 17 00:00:00 2001 From: Whatstone Date: Fri, 14 Jun 2024 09:50:52 -0400 Subject: [PATCH 29/33] fix premium absinthe ID --- Resources/Prototypes/_NF/Mail/Items/misc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/_NF/Mail/Items/misc.yml b/Resources/Prototypes/_NF/Mail/Items/misc.yml index e3ab47e0eac..85f430366d2 100644 --- a/Resources/Prototypes/_NF/Mail/Items/misc.yml +++ b/Resources/Prototypes/_NF/Mail/Items/misc.yml @@ -113,7 +113,7 @@ description: Well, you asked for it. Navy strength. - type: entity - id: DrinkPremiumAbsinthe + id: DrinkPremiumAbsintheBottleFull parent: DrinkAbsintheBottleFull name: Bureaucracy's Kiss absinthe bottle description: A refined taste that tends to linger. From 02eafa24df5a4d9e8551fd455967c5d6ab90514c Mon Sep 17 00:00:00 2001 From: Whatstone Date: Fri, 14 Jun 2024 13:16:17 -0400 Subject: [PATCH 30/33] Remove cyberpen, add BibleUserImplanter, ATV mail Also adjusts weights for TacticalMaid (missing a zero), Restraints (cut in half) --- Resources/Prototypes/_NF/Mail/mail.yml | 66 ++++++++++++------- .../Prototypes/_NF/Mail/mailDeliveries.yml | 13 ++-- 2 files changed, 51 insertions(+), 28 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 42dd3bdcbe3..2c9297f80be 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -43,7 +43,19 @@ - id: DrinkGlass amount: 2 -# TODO: turn this into a full piety kit +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFBible + suffix: bible, extended + components: + - type: Mail + contents: + - id: Bible + - id: ClothingHeadHatBishopMitre + - id: ClothingOuterCoatBishop + - id: BibleUserImplanter + - type: entity noSpawn: true parent: BaseMailLarge @@ -55,6 +67,7 @@ - id: Weejurnum - id: ClothingOuterRobesWeedChurch - id: ClothingHeadWeedChurchBishop + - id: BibleUserImplanter - type: entity noSpawn: true @@ -285,7 +298,6 @@ components: - type: Mail contents: - # Non-kitchen, non-contraband knives and swords, both rolled into one. - id: KukriKnife orGroup: Knife - id: Machete # A little large for an envelope but "we'll live" @@ -346,7 +358,7 @@ components: - type: Mail contents: - # Expected value: 2965 spesos + # Expected value: 5175 spesos - id: SpaceCash1000 orGroup: Cash prob: 0.3 @@ -727,7 +739,7 @@ orGroup: Donk prob: 0.05 # Bad luck. -# TODO: Probably needs a buff. +# Needs a buff? - type: entity noSpawn: true parent: BaseMail @@ -740,7 +752,7 @@ amount: 3 - id: PaperMailNFPwrGameAd -# TODO: Probably needs a buff. +# Needs a buff? - type: entity noSpawn: true parent: BaseMail @@ -753,7 +765,7 @@ amount: 3 - id: PaperMailNFRedBoolAd -# TODO: Probably needs a buff. +# Needs a buff? - type: entity noSpawn: true parent: BaseMail @@ -765,7 +777,7 @@ - id: DrinkColaBottleFull - id: PaperMailNFSpaceColaAd -# TODO: Probably needs a buff. +# Needs a buff? - type: entity noSpawn: true parent: BaseMail @@ -777,7 +789,7 @@ - id: DrinkSpaceMountainWindBottleFull - id: PaperMailNFSpaceMountainWindAd -# TODO: Probably needs a buff. +# Needs a buff? - type: entity noSpawn: true parent: BaseMail @@ -837,9 +849,9 @@ orGroup: Smokeable3 prob: 0.15 -# Catchall for food that can't otherwise be created outside of random spawners +# Catchalls for food that only exist in random spawners # Mmm, mail food -# TODO: Probably needs a buff. +# Needs a buff? - type: entity noSpawn: true parent: BaseMail @@ -909,7 +921,7 @@ amount: 4 orGroup: Food -# TODO: Probably needs a buff. +# Needs a buff? - type: entity noSpawn: true parent: BaseMail @@ -1056,7 +1068,7 @@ amount: 2 orGroup: Food -# TODO: Probably needs a buff. +# Needs a buff? - type: entity noSpawn: true parent: BaseMail @@ -1187,21 +1199,21 @@ contents: - id: LuxuryPen orGroup: Pen - prob: 0.54 + prob: 0.50 - id: PenHop orGroup: Pen - prob: 0.225 + prob: 0.25 - id: PenCap orGroup: Pen - prob: 0.225 + prob: 0.25 + # TODO: come up with a slightly less powerful version of these # Ultra-rare - # Give the less-adventurous players a chance to rewrite documents. - - id: CyberPen - orGroup: Pen - prob: 0.005 - - id: PenCentcom - orGroup: Pen - prob: 0.005 + # - id: CyberPen + # orGroup: Pen + # prob: 0.005 + # - id: PenCentcom + # orGroup: Pen + # prob: 0.005 - id: PaperMailNFPaperPusherAd - type: entity @@ -1856,3 +1868,13 @@ contents: - id: CigarPlatinumCase - id: FlippoEngravedLighter + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFATV + suffix: ATV + components: + - type: Mail + contents: + - id: VehicleATVNF diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index c0d458d5ac8..92f4fe164b9 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -28,8 +28,8 @@ MailCosplayArc: 0.3 MailCosplayGeisha: 0.3 MailNFCosplayMaid: 0.25 - MailNFTacticalMaid: 0.5 - MailCosplayNurse: 0.3 + MailNFTacticalMaid: 0.05 # Shares a pool with NFCosplayMaid as a rare variant + MailNFCosplayNurse: 0.3 MailCosplaySchoolgirl: 0.3 MailNFCosplayWizard: 0.6 MailFlowers: 0.3 @@ -37,7 +37,8 @@ MailSunglasses: 1 MailNFUnusualClothing: 1.5 # Many items in here # Fun - # MailBible: 0.9 # Removed until we have some reliable way of getting BibleUserComponent + MailNFBible: 0.4 + MailNFWeejurnum: 0.1 # Shares a pool with NFBible as a rare variant MailNFBikeHorn: 0.5 MailBlockGameDIY: 0.6 MailNFDAW: 0.15 @@ -53,9 +54,8 @@ MailSpaceVillainDIY: 0.6 MailNFThrongler: 0.1 MailNFUnicycle: 0.5 - MailNFWeejurnum: 0.1 # Useful - MailNFPowerTool: 0.6 + MailNFATV: 1 MailNFCircuitboardIndustrial: 1.25 MailNFCircuitboardService: 1.25 MailNFCognizine: 0.5 @@ -66,6 +66,7 @@ MailNFOmnizine: 0.5 MailNFPen: 0.75 MailNFPowerCell: 0.5 + MailNFPowerTool: 0.6 MailNFT2ComponentBox: 0.6 MailNFT3ComponentBox: 1.2 MailNFT4ComponentBox: 0.2 @@ -80,7 +81,7 @@ MailNFBuildABuddy: 0.5 MailNFCritter: 1 MailNFEMP: 0.5 - MailRestraints: 1 # TODO: figure out what to do with this. + MailRestraints: 0.5 # TODO: figure out what to do with this. MailNFSmoke: 0.5 MailNFVagueThreat: 0.4 From 177c606c7f285005451d657b0fa47f8582a50b54 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Fri, 14 Jun 2024 13:34:01 -0400 Subject: [PATCH 31/33] kendo mail order, more mail comments --- Resources/Prototypes/_NF/Mail/mail.yml | 1 + Resources/Prototypes/_NF/Mail/mailDeliveries.yml | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 2c9297f80be..b51a2c193d1 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1833,6 +1833,7 @@ - id: ClothingHeadNurseHat - id: SyringeOpporozidone +# These could use separate sprites. That would be a nice touch. - type: entity noSpawn: true parent: BaseMail diff --git a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml index 92f4fe164b9..582d317a880 100644 --- a/Resources/Prototypes/_NF/Mail/mailDeliveries.yml +++ b/Resources/Prototypes/_NF/Mail/mailDeliveries.yml @@ -74,9 +74,9 @@ MailNFBoxer: 0.2 MailNFConscript: 0.2 MailNFGladiator: 0.2 + MailNFKendoKit: 0.2 MailNFKnife: 0.7 MailNFSword: 0.3 - MailNFKendoKit: 0.2 # Pranks MailNFBuildABuddy: 0.5 MailNFCritter: 1 @@ -98,16 +98,16 @@ jobs: StationRepresentative: - MailCommandNFGoldCigars: 0.15 + MailCommandNFGoldCigars: 0.15 # 0.2 weight total MailCommandNFPlatinumCigars: 0.1 MailCommandNFPremiumAlcohol: 0.25 MailCommandNFStationPet: 2 - MailCommandNFPipebombIntern: 1 + MailCommandNFPipebombIntern: 1 # TODO: make the "real" pipebomb MailStationRepNFNukeDisk: 1 Sheriff: MailSecurityNonlethalsKit: 2 - MailNFGoldCigars: 0.15 + MailNFGoldCigars: 0.15 # 0.2 weight total MailCommandNFPlatinumCigars: 0.1 MailCommandNFPremiumAlcohol: 0.25 MailCommandNFStationPet: 2 # Don't see the harm in this with Smile and Cappy around - MailCommandNFPipebombIntern: 1 + MailCommandNFPipebombIntern: 1 # TODO: make the "real" pipebomb From ae1ead499493467564ce96a55188d194d18e21c9 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Fri, 14 Jun 2024 17:06:21 -0400 Subject: [PATCH 32/33] Remove Nyano mail lists & parcels, move into _NF/ --- .../Entities/Objects/Specific/Mail/mail.yml | 739 ------------------ .../Objects/Specific/Mail/mail_civilian.yml | 195 ----- .../Objects/Specific/Mail/mail_command.yml | 9 - .../Specific/Mail/mail_engineering.yml | 45 -- .../Objects/Specific/Mail/mail_medical.yml | 81 -- .../Objects/Specific/Mail/mail_security.yml | 55 -- .../Specific/Mail/mail_specific_items.yml | 169 ---- .../Prototypes/Nyanotrasen/mailDeliveries.yml | 108 --- Resources/Prototypes/_NF/Mail/Items/paper.yml | 32 + Resources/Prototypes/_NF/Mail/mail.yml | 362 ++++++--- 10 files changed, 297 insertions(+), 1498 deletions(-) delete mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail.yml delete mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_civilian.yml delete mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_command.yml delete mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_engineering.yml delete mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_medical.yml delete mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_security.yml delete mode 100644 Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_specific_items.yml delete mode 100644 Resources/Prototypes/Nyanotrasen/mailDeliveries.yml diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail.yml deleted file mode 100644 index 1698561c892..00000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail.yml +++ /dev/null @@ -1,739 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailAlcohol - suffix: alcohol - components: - - type: Mail - contents: - - id: DrinkAbsintheBottleFull - orGroup: Drink - - id: DrinkBlueCuracaoBottleFull - orGroup: Drink - - id: DrinkGinBottleFull - orGroup: Drink - - id: DrinkMelonLiquorBottleFull - orGroup: Drink - - id: DrinkRumBottleFull - orGroup: Drink - - id: DrinkTequilaBottleFull - orGroup: Drink - - id: DrinkVermouthBottleFull - orGroup: Drink - - id: DrinkVodkaBottleFull - orGroup: Drink - - id: DrinkWineBottleFull - orGroup: Drink - - id: DrinkGlass - amount: 2 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSake - suffix: osake - components: - - type: Mail - contents: - - id: DrinkSakeCup - amount: 2 - - id: DrinkTokkuri - -- type: entity - noSpawn: true - parent: BaseMail - id: MailAMEGuide - suffix: ameguide - components: - - type: Mail - contents: - - id: PaperWrittenAMEScribbles - - id: Pen - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBible - suffix: bible - components: - - type: Mail - contents: - - id: Bible - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBikeHorn - suffix: bike horn - components: - - type: Mail - contents: - - id: BikeHorn - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBlockGameDIY - suffix: blockgamediy - components: - - type: Mail - contents: - - id: BlockGameArcadeComputerCircuitboard - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBooks - suffix: books - components: - - type: Mail - contents: - # # Don't use BookDemonomiconRandom. - # # It uses a RandomSpawner which just spawns the book outside of the mail. - # - id: BookDemonomicon1 - # orGroup: Demonomicon - # - id: BookDemonomicon2 - # orGroup: Demonomicon - # - id: BookDemonomicon3 - # orGroup: Demonomicon - # # There's no way to signal "spawn nothing" with an orGroup, - # # so have this blank book instead. Write your own demon summoning tome! - # - id: BookRandom - # prob: 3 - # orGroup: Demonomicon - # - id: BookChemistryInsane - # prob: 0.10 - # - id: BookBotanicalTextbook - # prob: 0.5 - # - id: BookFishing - # prob: 0.10 - # - id: BookDetective - # prob: 0.10 - # - id: BookGnominomicon - # prob: 0.2 - - id: BookRandomStory - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCake - suffix: cake - components: - - type: Mail - isFragile: true - isPriority: true - contents: - - id: FoodCakeBlueberry - orGroup: Cake - - id: FoodCakeCarrot - orGroup: Cake - - id: FoodCakeCheese - orGroup: Cake - - id: FoodCakeChocolate - orGroup: Cake - - id: FoodCakeChristmas - orGroup: Cake - - id: FoodCakeClown - orGroup: Cake - - id: FoodCakeLemon - orGroup: Cake - - id: FoodCakeLime - orGroup: Cake - - id: FoodCakeOrange - orGroup: Cake - - id: FoodCakePumpkin - orGroup: Cake - - id: FoodCakeVanilla - orGroup: Cake - - id: FoodMothMothmallow - orGroup: Cake - prob: 0.5 - - id: KnifePlastic - - id: ForkPlastic - amount: 2 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCallForHelp - suffix: call-for-help - components: - - type: Mail - contents: - - id: PaperMailCallForHelp1 - orGroup: Paper - - id: PaperMailCallForHelp2 - orGroup: Paper - - id: PaperMailCallForHelp3 - orGroup: Paper - - id: PaperMailCallForHelp4 - orGroup: Paper - - id: PaperMailCallForHelp5 - orGroup: Paper - - id: FlashlightLantern - orGroup: Gift - - id: Crowbar - orGroup: Gift - prob: 0.5 - - id: CrowbarRed - orGroup: Gift - prob: 0.5 - - id: ClothingMaskGas - orGroup: Gift - - id: WeaponFlareGun - orGroup: Gift - prob: 0.25 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCheese - suffix: cheese - components: - - type: Mail - isFragile: true - isPriority: true - contents: - - id: FoodCheese - - id: KnifePlastic - -- type: entity - noSpawn: true - parent: BaseMail - id: MailChocolate - suffix: chocolate - components: - - type: Mail - contents: - # TODO make some actual chocolate candy items. - - id: FoodSnackChocolate - amount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCigarettes - suffix: cigs - components: - - type: Mail - contents: - - id: CigPackRed - - id: CheapLighter - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCigars - suffix: Cigars - components: - - type: Mail - contents: - - id: CigarCase - - id: Lighter - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCookies - suffix: cookies - components: - - type: Mail - # What, you want to eat stale cookies? - isPriority: true - contents: - - id: FoodBakedCookie - - id: FoodBakedCookieOatmeal - - id: FoodBakedCookieRaisin - - id: FoodBakedCookieSugar - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplayArc - suffix: cosplay-arc - components: - - type: Mail - openSound: /Audio/Nyanotrasen/Voice/Felinid/cat_wilhelm.ogg - contents: - - id: ClothingCostumeArcDress - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplayGeisha - suffix: cosplay-geisha - components: - - type: Mail - contents: - - id: UniformGeisha - - id: DrinkTeapot - - id: DrinkTeacup - amount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplayMaid - suffix: cosplay-maid - components: - - type: Mail - contents: - - id: UniformMaid - - id: SprayBottleSpaceCleaner - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplayNurse - suffix: cosplay-nurse - components: - - type: Mail - contents: - - id: ClothingUniformJumpskirtNurse - - id: Syringe - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplaySchoolgirl - suffix: cosplay-schoolgirl - components: - - type: Mail - contents: - - id: UniformSchoolgirlBlack - orGroup: Color - - id: UniformSchoolgirlBlue - orGroup: Color - - id: UniformSchoolgirlCyan - orGroup: Color - - id: UniformSchoolgirlGreen - orGroup: Color - - id: UniformSchoolgirlOrange - orGroup: Color - - id: UniformSchoolgirlPink - orGroup: Color - - id: UniformSchoolgirlPurple - orGroup: Color - - id: UniformSchoolgirlRed - orGroup: Color - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCosplayWizard - suffix: cosplay-wizard - components: - - type: Mail - contents: - - id: ClothingOuterWizard - - id: ClothingHeadHatWizard - - id: ClothingShoesWizard - -- type: entity - noSpawn: true - parent: BaseMail - id: MailCrayon - suffix: Crayon - components: - - type: Mail - contents: - - id: CrayonBox - -- type: entity - noSpawn: true - parent: BaseMail - id: MailFigurine - suffix: figurine - components: - - type: Mail - isFragile: true - contents: - - id: ToyAi - orGroup: Toy - - id: ToyNuke - orGroup: Toy - - id: ToyGriffin - orGroup: Toy - - id: ToyHonk - orGroup: Toy - - id: ToyIan - orGroup: Toy - - id: ToyMarauder - orGroup: Toy - - id: ToyMauler - orGroup: Toy - - id: ToyGygax - orGroup: Toy - - id: ToyOdysseus - orGroup: Toy - - id: ToyOwlman - orGroup: Toy - - id: ToyDeathRipley - orGroup: Toy - - id: ToyPhazon - orGroup: Toy - - id: ToyFireRipley - orGroup: Toy - - id: ToyReticence - orGroup: Toy - - id: ToyRipley - orGroup: Toy - - id: ToySeraph - orGroup: Toy - - id: ToyDurand - orGroup: Toy - -- type: entity - noSpawn: true - parent: BaseMail - id: MailFishingCap - suffix: fishingcap - components: - - type: Mail - contents: - - id: ClothingHeadFishCap - -- type: entity - noSpawn: true - parent: BaseMail - id: MailFlashlight - suffix: Flashlight - components: - - type: Mail - contents: - - id: FlashlightLantern - -- type: entity - noSpawn: true - parent: BaseMail - id: MailFlowers - suffix: flowers - components: - - type: Mail - contents: - # TODO actual flowers - - id: ClothingHeadHatFlowerWreath - -- type: entity - noSpawn: true - parent: BaseMail - id: MailHighlander - suffix: highlander - components: - - type: Mail - contents: - - id: ClothingUniformJumpskirtColorRed - - id: ClothingHeadHatBeret - - id: DrinkRedMeadGlass - - id: Claymore - -- type: entity - noSpawn: true - parent: BaseMail - id: MailHighlanderDulled - suffix: highlander, dulled - components: - - type: Mail - contents: - - id: ClothingUniformJumpskirtColorRed - - id: ClothingHeadHatBeret - - id: DrinkGlass - - id: ClaymoreDulled - -- type: entity - noSpawn: true - parent: BaseMail - id: MailHoneyBuns - suffix: honeybuns - components: - - type: Mail - contents: - - id: FoodBakedBunHoney - amount: 2 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailJunkFood - suffix: junk food - components: - - type: Mail - contents: - - id: FoodBoxDonkpocket - - id: FoodSnackChips - -- type: entity - noSpawn: true - parent: BaseMail - id: MailKatana - suffix: Katana - components: - - type: Mail - contents: - - id: Katana - prob: 0.1 - orGroup: Katana - - id: KatanaDulled - prob: 0.9 - orGroup: Katana - -- type: entity - noSpawn: true - parent: BaseMail - id: MailKnife - suffix: Knife - components: - - type: Mail - contents: - - id: CombatKnife - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMoney - suffix: money - components: - - type: Mail - contents: - - id: SpaceCash100 - orGroup: Cash - prob: 0.3 - - id: SpaceCash500 - orGroup: Cash - prob: 0.6 - - id: SpaceCash1000 - orGroup: Cash - prob: 0.3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMuffins - suffix: muffins - components: - - type: Mail - isPriority: true - contents: - - id: FoodBakedMuffinBerry - - id: FoodBakedMuffinCherry - - id: FoodBakedMuffinBluecherry - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMoffins - suffix: moffins - components: - - type: Mail - isPriority: true - contents: - - id: FoodMothMoffin - amount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailNoir - suffix: noir - components: - - type: Mail - contents: - - id: ClothingUniformJumpsuitDetectiveGrey - - id: ClothingUniformJumpskirtDetectiveGrey - - id: ClothingHeadHatBowlerHat - - id: ClothingOuterCoatGentle - -- type: entity - noSpawn: true - parent: BaseMail - id: MailPAI - suffix: PAI - components: - - type: Mail - contents: - - id: PersonalAI - -- type: entity - noSpawn: true - parent: BaseMail - id: MailPlushie - suffix: plushie - components: - - type: Mail - contents: - # These are all grouped up now to guarantee at least one item received. - # The downside is you're not going to get half a dozen plushies anymore. - - id: PlushieBee - orGroup: Plushie - - id: PlushieRGBee - prob: 0.5 - orGroup: Plushie - - id: PlushieNuke - orGroup: Plushie - - id: PlushieRouny - orGroup: Plushie - - id: PlushieLizard - orGroup: Plushie - - id: PlushieSpaceLizard - orGroup: Plushie - - id: PlushieRatvar - orGroup: Plushie - - id: PlushieNar - orGroup: Plushie - - id: PlushieCarp - orGroup: Plushie - - id: PlushieSlime - orGroup: Plushie - - id: PlushieSnake - orGroup: Plushie - - id: PlushieMoffRandom - orGroup: Plushie - - id: PlushieMoff - prob: 0.5 - orGroup: Plushie - - id: PlushieMoffsician - prob: 0.5 - orGroup: Plushie - - id: PlushieMoffbar - prob: 0.5 - orGroup: Plushie - -- type: entity - noSpawn: true - parent: BaseMail - id: MailRestraints - suffix: restraints - components: - - type: Mail - contents: - - id: Handcuffs - - id: ClothingMaskMuzzle - - id: ClothingEyesBlindfold - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSignallerKit - suffix: signallerkit - components: - - type: Mail - contents: - - id: Multitool - - id: RemoteSignaller - -# - type: entity -# noSpawn: true -# parent: BaseMail -# id: MailSixPack -# suffix: sixpack -# components: -# - type: Mail -# contents: -# - id: DrinkCanPack - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSkub - suffix: skub - components: - - type: Mail - contents: - - id: Skub - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSoda - suffix: soda - components: - - type: Mail - contents: - - id: DrinkColaBottleFull - orGroup: Soda - - id: DrinkSpaceMountainWindBottleFull - orGroup: Soda - - id: DrinkSpaceUpBottleFull - orGroup: Soda - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSpaceVillainDIY - suffix: spacevilliandiy - components: - - type: Mail - contents: - - id: SpaceVillainArcadeComputerCircuitboard - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSunglasses - suffix: Sunglasses - components: - - type: Mail - contents: - - id: ClothingEyesGlassesSunglasses - -- type: entity - noSpawn: true - parent: BaseMail - id: MailVagueThreat - suffix: vague-threat - components: - - type: Mail - contents: - - id: PaperMailVagueThreat1 - orGroup: Paper - - id: PaperMailVagueThreat2 - orGroup: Paper - - id: PaperMailVagueThreat3 - orGroup: Paper - - id: PaperMailVagueThreat4 - orGroup: Paper - - id: PaperMailVagueThreat5 - orGroup: Paper - - id: PaperMailVagueThreat6 - orGroup: Paper - - id: PaperMailVagueThreat7 - orGroup: Paper - - id: PaperMailVagueThreat8 - orGroup: Paper - - id: PaperMailVagueThreat9 - orGroup: Paper - - id: PaperMailVagueThreat10 - orGroup: Paper - - id: PaperMailVagueThreat11 - orGroup: Paper - - id: PaperMailVagueThreat12 - orGroup: Paper - - id: KitchenKnife - orGroup: ThreateningObject - - id: ButchCleaver - orGroup: ThreateningObject - - id: CombatKnife - orGroup: ThreateningObject - - id: SurvivalKnife - orGroup: ThreateningObject - - id: SoapHomemade - orGroup: ThreateningObject - - id: FoodMeat - orGroup: ThreateningObject - - id: OrganHumanHeart - orGroup: ThreateningObject - -- type: entity - noSpawn: true - parent: BaseMail - id: MailWinterCoat - suffix: wintercoat - components: - - type: Mail - contents: - - id: ClothingOuterWinterCoat - orGroup: Coat - - id: ClothingOuterWinterCoatLong - orGroup: Coat - - id: ClothingOuterWinterCoatPlaid - orGroup: Coat diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_civilian.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_civilian.yml deleted file mode 100644 index a41fac14ffa..00000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_civilian.yml +++ /dev/null @@ -1,195 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailBotanistChemicalBottles - suffix: botanistchemicals - components: - - type: Mail - contents: - - id: RobustHarvestChemistryBottle - orGroup: Chemical - prob: 0.6 - - id: WeedSpray - orGroup: Chemical - prob: 0.4 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBotanistMutagen - suffix: mutagen - components: - - type: Mail - isFragile: true - isPriority: true - contents: - - id: UnstableMutagenChemistryBottle - -- type: entity - noSpawn: true - parent: BaseMail - id: MailBotanistSeeds - suffix: seeds - components: - - type: Mail - contents: - - id: AloeSeeds - orGroup: Seeds - - id: AmbrosiaVulgarisSeeds - orGroup: Seeds - - id: AppleSeeds - orGroup: Seeds - - id: BananaSeeds - orGroup: Seeds - - id: CarrotSeeds - orGroup: Seeds - - id: ChanterelleSeeds - orGroup: Seeds - - id: ChiliSeeds - orGroup: Seeds - - id: CornSeeds - orGroup: Seeds - - id: EggplantSeeds - orGroup: Seeds - - id: GalaxythistleSeeds - orGroup: Seeds - - id: LemonSeeds - orGroup: Seeds - - id: LingzhiSeeds - orGroup: Seeds - - id: OatSeeds - orGroup: Seeds - - id: OnionSeeds - orGroup: Seeds - - id: PoppySeeds - orGroup: Seeds - - id: PotatoSeeds - orGroup: Seeds - - id: SugarcaneSeeds - orGroup: Seeds - - id: TomatoSeeds - orGroup: Seeds - - id: TowercapSeeds - orGroup: Seeds - - id: WheatSeeds - orGroup: Seeds - -- type: entity - noSpawn: true - parent: BaseMail - id: MailClownGildedBikeHorn - suffix: honk - components: - - type: Mail - isFragile: true - contents: - - id: BikeHornInstrument - -- type: entity - noSpawn: true - parent: BaseMail - id: MailClownHonkSupplement - suffix: honk - components: - - type: Mail - isFragile: true - contents: - - id: BikeHorn - - id: FoodPieBananaCream - - id: FoodBanana - -- type: entity - noSpawn: true - parent: BaseMail - id: MailHoPBureaucracy - suffix: hoppaper - components: - - type: Mail - contents: - - id: Paper - maxAmount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailHoPSupplement - suffix: hopsupplement - components: - - type: Mail - contents: - - id: ClearPDA - - id: ClothingHeadsetGrey - - id: Paper - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMimeArtsCrafts - suffix: artscrafts - components: - - type: Mail - contents: - - id: CrayonBox - - id: Paper - maxAmount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMimeBlankBook - suffix: blankbook - components: - - type: Mail - contents: - - id: BookRandom - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMimeBottleOfNothing - suffix: bottleofnothing - components: - - type: Mail - contents: - - id: DrinkBottleOfNothingFull - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMusicianInstrumentSmall - suffix: instrument-small - components: - - type: Mail - isFragile: true - contents: - - id: FluteInstrument - orGroup: Instrument - - id: HarmonicaInstrument - orGroup: Instrument - - id: OcarinaInstrument - orGroup: Instrument - - id: PanFluteInstrument - orGroup: Instrument - - id: RecorderInstrument - orGroup: Instrument - -- type: entity - noSpawn: true - parent: BaseMail - id: MailPassengerMoney - suffix: passengermoney - components: - - type: Mail - contents: - - id: SpaceCash100 - orGroup: Cash - prob: 0.1 - maxAmount: 10 - - id: SpaceCash500 - orGroup: Cash - prob: 0.3 - maxAmount: 5 - - id: SpaceCash1000 - orGroup: Cash - prob: 0.6 - maxAmount: 3 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_command.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_command.yml deleted file mode 100644 index 7e2a935f908..00000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_command.yml +++ /dev/null @@ -1,9 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailCommandPinpointerNuclear - suffix: pinpointernuclear - components: - - type: Mail - contents: - - id: PinpointerNuclear diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_engineering.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_engineering.yml deleted file mode 100644 index 461d9bf1365..00000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_engineering.yml +++ /dev/null @@ -1,45 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailEngineeringCables - suffix: cables - components: - - type: Mail - contents: - - id: CableHVStack - orGroup: Cables - - id: CableMVStack - orGroup: Cables - - id: CableApcStack - orGroup: Cables - -- type: entity - noSpawn: true - parent: BaseMail - id: MailEngineeringKudzuDeterrent - suffix: antikudzu - components: - - type: Mail - contents: - - id: PlantBGoneSpray - -- type: entity - noSpawn: true - parent: BaseMail - id: MailEngineeringSheetGlass - suffix: sheetglass - components: - - type: Mail - contents: - - id: SheetGlass - -- type: entity - noSpawn: true - parent: BaseMail - id: MailEngineeringWelderReplacement - suffix: welder - components: - - type: Mail - contents: - - id: Welder - diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_medical.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_medical.yml deleted file mode 100644 index 7685ede495d..00000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_medical.yml +++ /dev/null @@ -1,81 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailMedicalBasicSupplies - suffix: basicmedical - components: - - type: Mail - contents: - - id: Brutepack - maxAmount: 2 - - id: Ointment - maxAmount: 2 - - id: Gauze - maxAmount: 2 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMedicalChemistrySupplement - suffix: chemsupp - components: - - type: Mail - contents: - - id: LargeBeaker - orGroup: Beaker - - id: Beaker - maxAmount: 3 - orGroup: Beaker - - id: Syringe - maxAmount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMedicalEmergencyPens - suffix: medipens - components: - - type: Mail - contents: - - id: EmergencyMedipen - maxAmount: 3 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMedicalMedicinePills - suffix: medicinepills - components: - - type: Mail - contents: - - id: PillTricordrazine - maxAmount: 2 - - id: PillDylovene - maxAmount: 2 - - id: PillKelotane - maxAmount: 2 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMedicalSheetPlasma - suffix: sheetplasma - components: - - type: Mail - contents: - - id: SheetPlasma1 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailMedicalStabilizers - suffix: stabilizers - components: - - type: Mail - contents: - - id: PillDexalin - maxAmount: 2 - - id: SyringeInaprovaline - maxAmount: 2 - - id: SyringeTranexamicAcid - maxAmount: 2 diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_security.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_security.yml deleted file mode 100644 index 2d8e0b4d64d..00000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_security.yml +++ /dev/null @@ -1,55 +0,0 @@ -- type: entity - noSpawn: true - parent: BaseMail - id: MailSecurityDonuts - suffix: donuts - components: - - type: Mail - contents: - - id: FoodBoxDonut - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSecurityFlashlight - suffix: seclite - components: - - type: Mail - contents: - - id: FlashlightSeclite - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSecurityNonlethalsKit - suffix: nonlethalskit - components: - - type: Mail - contents: - - id: Flash - maxAmount: 2 - - id: GrenadeFlashBang - maxAmount: 2 - - id: Handcuffs - maxAmount: 2 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailSecuritySpaceLaw - suffix: spacelaw - components: - - type: Mail - contents: - - id: BookRandomStory - -- type: entity - noSpawn: true - parent: BaseMail - id: MailWardenCrowdControl - suffix: crowdcontrol - components: - - type: Mail - contents: - - id: BoxBeanbag - diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_specific_items.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_specific_items.yml deleted file mode 100644 index b4d2b547798..00000000000 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Specific/Mail/mail_specific_items.yml +++ /dev/null @@ -1,169 +0,0 @@ -- type: entity - id: PaperMailCallForHelp1 - noSpawn: true - suffix: "call for help 1" - parent: Paper - components: - - type: Paper - content: | - Help! They're coming! Take this! - -- type: entity - id: PaperMailCallForHelp2 - noSpawn: true - suffix: "call for help 2" - parent: Paper - components: - - type: Paper - content: | - Check disposals! - -- type: entity - id: PaperMailCallForHelp3 - noSpawn: true - suffix: "call for help 3" - parent: Paper - components: - - type: Paper - content: | - GET ME OUT! - -- type: entity - id: PaperMailCallForHelp4 - noSpawn: true - suffix: "call for help 4" - parent: Paper - components: - - type: Paper - content: | - Check maintenance! - -- type: entity - id: PaperMailCallForHelp5 - noSpawn: true - suffix: "call for help 5" - parent: Paper - components: - - type: Paper - content: | - Save me, please! - -- type: entity - id: PaperMailVagueThreat1 - noSpawn: true - suffix: "vague mail threat 1" - parent: Paper - components: - - type: Paper - content: | - I know what you did. You don't know what I'm going to do to you. - -- type: entity - id: PaperMailVagueThreat2 - noSpawn: true - suffix: "vague mail threat 2" - parent: Paper - components: - - type: Paper - content: | - I'm coming for you. - -- type: entity - id: PaperMailVagueThreat3 - noSpawn: true - suffix: "vague mail threat 3" - parent: Paper - components: - - type: Paper - content: | - You're next. - -- type: entity - id: PaperMailVagueThreat4 - noSpawn: true - suffix: "vague mail threat 4" - parent: Paper - components: - - type: Paper - content: | - We see you. - -- type: entity - id: PaperMailVagueThreat5 - noSpawn: true - suffix: "vague mail threat 5" - parent: Paper - components: - - type: Paper - content: | - I hope your affairs are in order. - -- type: entity - id: PaperMailVagueThreat6 - noSpawn: true - suffix: "vague mail threat 6" - parent: Paper - components: - - type: Paper - content: | - It's only a matter of time. Enjoy it while it lasts. - -- type: entity - id: PaperMailVagueThreat7 - noSpawn: true - suffix: "vague mail threat 7" - parent: Paper - components: - - type: Paper - content: | - Who should we mail your pieces to? - -- type: entity - id: PaperMailVagueThreat8 - noSpawn: true - suffix: "vague mail threat 8" - parent: Paper - components: - - type: Paper - content: | - Do you prefer to die slowly or quickly? Just kidding. We don't care what you think. - -- type: entity - id: PaperMailVagueThreat9 - noSpawn: true - suffix: "vague mail threat 9" - parent: Paper - components: - - type: Paper - content: | - I think your head would look nice on my mantel. - -- type: entity - id: PaperMailVagueThreat10 - noSpawn: true - suffix: "vague mail threat 10" - parent: Paper - components: - - type: Paper - content: | - You should have paid up. It's too late now. - -- type: entity - id: PaperMailVagueThreat11 - noSpawn: true - suffix: "vague mail threat 11" - parent: Paper - components: - - type: Paper - content: | - Your family will miss you, but don't worry. We'll take care of them too. - -- type: entity - id: PaperMailVagueThreat12 - noSpawn: true - suffix: "vague mail threat 12" - parent: Paper - components: - - type: Paper - content: | - I have a bet that you're going to die today. I'm not afraid of cheating. diff --git a/Resources/Prototypes/Nyanotrasen/mailDeliveries.yml b/Resources/Prototypes/Nyanotrasen/mailDeliveries.yml deleted file mode 100644 index d276632c873..00000000000 --- a/Resources/Prototypes/Nyanotrasen/mailDeliveries.yml +++ /dev/null @@ -1,108 +0,0 @@ -# Frontier: no longer used, look for RandomNFMailDeliveryPool -- type: mailDeliveryPool - id: RandomMailDeliveryPool - everyone: - MailAlcohol: 0.5 - MailSake: 0.5 - MailBible: 1 - MailBikeHorn: 0.5 - MailBlockGameDIY: 1 - MailCake: 1 - MailCallForHelp: 0.6 - MailCheese: 1 - MailChocolate: 1 - MailCigarettes: 0.5 - MailCigars: 0.5 - MailCookies: 1.1 - MailCosplayArc: 0.5 - MailCosplayGeisha: 0.5 - MailCosplayMaid: 0.5 - MailCosplayNurse: 0.5 - MailCosplaySchoolgirl: 0.5 - MailCosplayWizard: 0.5 - MailCrayon: 1 - MailFigurine: 1 - MailFishingCap: 0.5 - MailFlashlight: 1 - MailFlowers: 1 - MailHighlander: 0.12 - MailHighlanderDulled: 1 - MailHoneyBuns: 1 - MailJunkFood: 1 - MailKatana: 1 - MailKnife: 1 - MailMoney: 1 - MailMuffins: 1.1 - MailMoffins: 0.5 - MailNoir: 0.5 - MailPAI: 1 - MailPlushie: 1 - MailRestraints: 1 - # MailSixPack: 0.5 - MailSkub: 0.5 - MailSoda: 1 - MailSpaceVillainDIY: 1 - MailSunglasses: 1 - MailVagueThreat: 0.4 - # This is mainly for Glacier. - MailWinterCoat: 1.5 - - # Department and job-specific mail can have slightly higher weights, - # since they'll be merged with the everyone pool. - departments: - Medical: - MailMedicalBasicSupplies: 2 - MailMedicalChemistrySupplement: 2 - MailMedicalEmergencyPens: 3 - MailMedicalMedicinePills: 2 - MailMedicalSheetPlasma: 1 - MailMedicalSpaceacillin: 1 - MailMedicalStabilizers: 2 - Engineering: - MailAMEGuide: 1 - MailEngineeringCables: 2 - MailEngineeringKudzuDeterrent: 2 - MailEngineeringSheetGlass: 2 - MailEngineeringWelderReplacement: 2 - Security: - MailSecurityDonuts: 3 - MailSecurityFlashlight: 2 - MailSecurityNonlethalsKit: 2 - MailSecuritySpaceLaw: 1 - # All heads of staff are in Command and not their departments, technically. - # So any items from the departments above that should also be sent to the - # respective department heads should be duplicated below. - Command: - MailCommandPinpointerNuclear: 0.5 - - jobs: - Botanist: - MailBotanistChemicalBottles: 2 - MailBotanistMutagen: 1.5 - MailBotanistSeeds: 1 - ChiefEngineer: - MailEngineeringKudzuDeterrent: 2 - ChiefMedicalOfficer: - MailMedicalEmergencyPens: 2 - MailMedicalMedicinePills: 3 - MailMedicalSheetPlasma: 2 - Clown: - MailClownGildedBikeHorn: 0.5 - MailClownHonkSupplement: 3 - HeadOfPersonnel: - MailHoPBureaucracy: 2 - MailHoPSupplement: 3 - HeadOfSecurity: - MailSecurityNonlethalsKit: 2 - Lawyer: - MailSecuritySpaceLaw: 2 - Mime: - MailMimeArtsCrafts: 3 - MailMimeBlankBook: 2 - MailMimeBottleOfNothing: 1 - Musician: - MailMusicianInstrumentSmall: 1 - Passenger: - MailPassengerMoney: 3 - Warden: - MailWardenCrowdControl: 2 diff --git a/Resources/Prototypes/_NF/Mail/Items/paper.yml b/Resources/Prototypes/_NF/Mail/Items/paper.yml index c5d9c3be6c8..e301d48d19f 100644 --- a/Resources/Prototypes/_NF/Mail/Items/paper.yml +++ b/Resources/Prototypes/_NF/Mail/Items/paper.yml @@ -450,3 +450,35 @@ [bold][bullet/][/bold] Randy the Reptilian [bold][bullet/][/bold] Steven the Slime [bold][bullet/][/bold] Valerie the Vulpkanin + +- type: entity + id: PaperMailNFSpaceLaw + # noSpawn: true + suffix: "space-law" + parent: Paper + components: + - type: Paper + stampState: paper_stamp-centcom + stampedBy: + - stampedColor: '#006600FF' + stampedName: Central Admiralty of Frontier + content: |2 + + [head=1]Space Law is your shield.[/head] + + [head=2]With it, you guard the Frontier.[/head][head=3] + [/head] + [head=1]Memorize it. Grasp it firmly.[/head] + + [head=2]The SOP is your sword, don't get rusty.[/head] + + + + + + + + + + + [head=3][italic]Internal Bureau of Propaganda[/italic][/head] diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index b51a2c193d1..10b6328db5d 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -146,10 +146,60 @@ - id: ForkPlastic amount: 2 +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCosplayWizard + suffix: cosplay-wizard, extended + components: + - type: Mail + contents: + - id: ClothingOuterWizard + - id: ClothingHeadHatWizard + - id: ClothingShoesWizard + - id: WizardStaffMeleeBase + orGroup: Staff + prob: 0.6 + - id: PonderingOrb + orGroup: Staff + prob: 0.3 + - id: RGBStaff + orGroup: Staff + prob: 0.1 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCosplayMaid + suffix: cosplay-maid, extended + components: + - type: Mail + contents: + - id: UniformMaid + orGroup: Uniform + - id: ClothingUniformJumpskirtJanimaid + orGroup: Uniform + - id: ClothingUniformJumpskirtJanimaidmini + orGroup: Uniform + - id: MegaSprayBottle + - id: ClothingHandsGlovesColorWhite + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFCosplayNurse + suffix: cosplay-nurse, extended + components: + - type: Mail + contents: + - id: ClothingUniformJumpskirtNurse + - id: ClothingHeadNurseHat + - id: SyringeOpporozidone + - type: entity noSpawn: true parent: BaseMailLarge - id: MailNFPowerTool + id: MailNFPowerTool suffix: power tool components: - type: Mail @@ -333,23 +383,6 @@ orGroup: Sword prob: 0.1 -- type: entity - noSpawn: true - parent: BaseMailLarge - id: MailNFKendoKit - suffix: kendo kit - components: - - type: Mail - contents: # A lot of stuff here, seems spammy. - - id: ClothingUniformKendoHakama - amount: 2 - - id: ClothingOuterArmorKendoBogu - amount: 2 - - id: ClothingHeadHelmetKendoMen - amount: 2 - - id: Shinai - amount: 2 - - type: entity noSpawn: true parent: BaseMail @@ -436,6 +469,21 @@ orGroup: Muffin4 prob: 0.5 +- type: entity + noSpawn: true + parent: BaseMail + id: MailNFPAI + suffix: PAI, extended + components: + - type: Mail + contents: + - id: PersonalAI + orGroup: PAI + prob: 0.99 + # Ultra rare + - id: SyndicatePersonalAI + orGroup: PAI + prob: 0.01 - type: entity noSpawn: true @@ -651,6 +699,18 @@ - id: OrganHumanHeart orGroup: ThreateningObject +- type: entity + noSpawn: true + parent: BaseMail + id: MailSecurityNFSpaceLaw + suffix: spacelaw, extended + components: + - type: Mail + contents: + - id: HyperlinkBookSpaceLaw + - id: HyperlinkBookNfsdSop + - id: PaperMailNFSpaceLaw + # Frontier Mail (Pony Express?) - type: entity noSpawn: true @@ -1173,22 +1233,6 @@ contents: - id: MysteryFigureBoxBulk -- type: entity - noSpawn: true - parent: BaseMail - id: MailNFPAI - suffix: PAI, extended - components: - - type: Mail - contents: - - id: PersonalAI - orGroup: PAI - prob: 0.99 - # Ultra rare - - id: SyndicatePersonalAI - orGroup: PAI - prob: 0.01 - - type: entity noSpawn: true parent: BaseMail @@ -1735,19 +1779,6 @@ - id: NukeDiskFake - id: PaperMailNFAntivirus -- type: entity - noSpawn: true - parent: BaseMailLarge - id: MailNFSkub - suffix: skub, extended - components: - - type: Mail - isFragile: true - contents: - - id: Skub - - id: ClothingHeadHatSkub - - id: ClothingOuterSkub - - type: entity noSpawn: true parent: BaseMailLarge @@ -1770,44 +1801,6 @@ - id: DrinkSpaceGlue - id: PaperMailNFBuildABuddy -- type: entity - noSpawn: true - parent: BaseMail - id: MailNFCosplayWizard - suffix: cosplay-wizard, extended - components: - - type: Mail - contents: - - id: ClothingOuterWizard - - id: ClothingHeadHatWizard - - id: ClothingShoesWizard - - id: WizardStaffMeleeBase - orGroup: Staff - prob: 0.6 - - id: PonderingOrb - orGroup: Staff - prob: 0.3 - - id: RGBStaff - orGroup: Staff - prob: 0.1 - -- type: entity - noSpawn: true - parent: BaseMail - id: MailNFCosplayMaid - suffix: cosplay-maid, extended - components: - - type: Mail - contents: - - id: UniformMaid - orGroup: Uniform - - id: ClothingUniformJumpskirtJanimaid - orGroup: Uniform - - id: ClothingUniformJumpskirtJanimaidmini - orGroup: Uniform - - id: MegaSprayBottle - - id: ClothingHandsGlovesColorWhite - - type: entity noSpawn: true parent: BaseMail @@ -1821,18 +1814,6 @@ - id: MegaSprayBottle - id: ClothingHandsTacticalMaidGloves -- type: entity - noSpawn: true - parent: BaseMail - id: MailNFCosplayNurse - suffix: cosplay-nurse, extended - components: - - type: Mail - contents: - - id: ClothingUniformJumpskirtNurse - - id: ClothingHeadNurseHat - - id: SyringeOpporozidone - # These could use separate sprites. That would be a nice touch. - type: entity noSpawn: true @@ -1879,3 +1860,190 @@ - type: Mail contents: - id: VehicleATVNF + +- type: entity + noSpawn: true + parent: BaseMailLarge + id: MailNFKendoKit + suffix: kendo kit + components: + - type: Mail + contents: # A lot of stuff here, seems spammy. + - id: ClothingUniformKendoHakama + amount: 2 + - id: ClothingOuterArmorKendoBogu + amount: 2 + - id: ClothingHeadHelmetKendoMen + amount: 2 + - id: Shinai + amount: 2 + +# Base Nyano mail + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSake + suffix: osake + components: + - type: Mail + contents: + - id: DrinkSakeCup + amount: 2 + - id: DrinkTokkuri + +- type: entity + noSpawn: true + parent: BaseMail + id: MailBlockGameDIY + suffix: blockgamediy + components: + - type: Mail + contents: + - id: BlockGameArcadeComputerCircuitboard + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCigars + suffix: Cigars + components: + - type: Mail + contents: + - id: CigarCase + - id: Lighter + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCosplayArc + suffix: cosplay-arc + components: + - type: Mail + openSound: /Audio/Nyanotrasen/Voice/Felinid/cat_wilhelm.ogg + contents: + - id: ClothingCostumeArcDress + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCosplayGeisha + suffix: cosplay-geisha + components: + - type: Mail + contents: + - id: UniformGeisha + - id: DrinkTeapot + - id: DrinkTeacup + amount: 3 + +- type: entity + noSpawn: true + parent: BaseMail + id: MailCosplaySchoolgirl + suffix: cosplay-schoolgirl + components: + - type: Mail + contents: + - id: UniformSchoolgirlBlack + orGroup: Color + - id: UniformSchoolgirlBlue + orGroup: Color + - id: UniformSchoolgirlCyan + orGroup: Color + - id: UniformSchoolgirlGreen + orGroup: Color + - id: UniformSchoolgirlOrange + orGroup: Color + - id: UniformSchoolgirlPink + orGroup: Color + - id: UniformSchoolgirlPurple + orGroup: Color + - id: UniformSchoolgirlRed + orGroup: Color + +- type: entity + noSpawn: true + parent: BaseMail + id: MailFlowers + suffix: flowers + components: + - type: Mail + contents: + # TODO actual flowers + - id: ClothingHeadHatFlowerWreath + +- type: entity + noSpawn: true + parent: BaseMail + id: MailNoir + suffix: noir + components: + - type: Mail + contents: + - id: ClothingUniformJumpsuitDetectiveGrey + - id: ClothingUniformJumpskirtDetectiveGrey + - id: ClothingHeadHatBowlerHat + - id: ClothingOuterCoatGentle + +- type: entity + noSpawn: true + parent: BaseMail + id: MailRestraints + suffix: restraints + components: + - type: Mail + contents: + - id: Handcuffs + - id: ClothingMaskMuzzle + - id: ClothingEyesBlindfold + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSpaceVillainDIY + suffix: spacevilliandiy + components: + - type: Mail + contents: + - id: SpaceVillainArcadeComputerCircuitboard + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSunglasses + suffix: Sunglasses + components: + - type: Mail + contents: + - id: ClothingEyesGlassesSunglasses + +- type: entity + noSpawn: true + parent: BaseMail + id: MailWinterCoat + suffix: wintercoat + components: + - type: Mail + contents: + - id: ClothingOuterWinterCoat + orGroup: Coat + - id: ClothingOuterWinterCoatLong + orGroup: Coat + - id: ClothingOuterWinterCoatPlaid + orGroup: Coat + +- type: entity + noSpawn: true + parent: BaseMail + id: MailSecurityNonlethalsKit + suffix: nonlethalskit + components: + - type: Mail + contents: + - id: Flash + maxAmount: 2 + - id: GrenadeFlashBang + maxAmount: 2 + - id: Handcuffs + maxAmount: 2 From 4bb2cddd33f56248715c6d0e29f7083f52238157 Mon Sep 17 00:00:00 2001 From: Whatstone Date: Fri, 14 Jun 2024 17:30:33 -0400 Subject: [PATCH 33/33] True to true, cigars aren't fragile --- Resources/Prototypes/_NF/Mail/mail.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Resources/Prototypes/_NF/Mail/mail.yml b/Resources/Prototypes/_NF/Mail/mail.yml index 10b6328db5d..7611e3d9095 100644 --- a/Resources/Prototypes/_NF/Mail/mail.yml +++ b/Resources/Prototypes/_NF/Mail/mail.yml @@ -1287,7 +1287,7 @@ - id: PaperMailNTConscript - type: entity - noSpawn: True + noSpawn: true parent: BaseMailLarge id: MailNFBoxer suffix: boxer @@ -1429,7 +1429,7 @@ prob: 0.1 - type: entity - noSpawn: True + noSpawn: true parent: BaseMailLarge id: MailNFInstrumentFlatpack suffix: instrument, flatpack @@ -1846,7 +1846,6 @@ suffix: cigars, ultra-premium components: - type: Mail - isFragile: true contents: - id: CigarPlatinumCase - id: FlippoEngravedLighter