diff --git a/code/datums/trading/ai.dm b/code/datums/trading/ai.dm index 3b180774764..00eb8e15922 100644 --- a/code/datums/trading/ai.dm +++ b/code/datums/trading/ai.dm @@ -27,24 +27,66 @@ They sell generic supplies and ask for generic supplies. ) possible_wanted_items = list( /obj/item/device/ = TRADER_SUBTYPES_ONLY, + /obj/item/device/kit = TRADER_BLACKLIST_ALL, // They're impossible to make or get outside of mining, just annoys traders. /obj/item/device/assembly = TRADER_BLACKLIST_ALL, /obj/item/device/assembly_holder = TRADER_BLACKLIST_ALL, - /obj/item/device/encryptionkey/syndicate = TRADER_BLACKLIST, + /obj/item/device/encryptionkey = TRADER_BLACKLIST_SUB, //Why should ai want NT encryption keys? /obj/item/device/radio = TRADER_BLACKLIST_ALL, /obj/item/device/pda = TRADER_BLACKLIST_SUB, - /obj/item/device/uplink = TRADER_BLACKLIST + /obj/item/device/chameleon = TRADER_BLACKLIST, // Why should it want a chameleon projector + /obj/item/device/dociler = TRADER_BLACKLIST, //Item unobtaineable + /obj/item/device/flashlight/drone = TRADER_BLACKLIST, // No drone stuff + /obj/item/device/camera_bug = TRADER_BLACKLIST, // Traitor stuff + /obj/item/device/multitool = TRADER_BLACKLIST_SUB, // Hacktool, uplink and robo tool ban + /obj/item/device/modkit = TRADER_BLACKLIST_ALL, // No to modkits + /obj/item/device/pin_extractor = TRADER_BLACKLIST, // RD's tech + /obj/item/device/powersink = TRADER_BLACKLIST, // Traitor stuff + /obj/item/device/slime_scanner = TRADER_BLACKLIST, //If it was doing slime stuff, it already had this + /obj/item/device/spy_bug = TRADER_BLACKLIST, // Traitor stuff + /obj/item/device/spy_monitor = TRADER_BLACKLIST, // Traitor stuff + /obj/item/device/suit_cooling_unit/improved = TRADER_BLACKLIST, // Not on Aurora + /obj/item/device/taperecorder/cciaa = TRADER_BLACKLIST, // Admin item + /obj/item/device/batterer = TRADER_BLACKLIST, // Item too rare + /obj/item/device/contract_uplink = TRADER_BLACKLIST, // Traitor stuff + /obj/item/device/uplink = TRADER_BLACKLIST_ALL, // Traitor stuff + /obj/item/device/announcer = TRADER_BLACKLIST, // Rev item + /obj/item/device/ninja_uplink = TRADER_BLACKLIST, // Ninja item + /obj/item/device/onetankbomb = TRADER_BLACKLIST, // Not weapons trader + /obj/item/device/kinetic_analyzer = TRADER_BLACKLIST, // Not KA trader + /obj/item/device/camera = TRADER_BLACKLIST_SUB, // a lot of ai/drone/cyborg/fluff items + /obj/item/device/uv_light = TRADER_BLACKLIST, // CSI item + /obj/item/device/eftpos = TRADER_BLACKLIST, + /obj/item/device/nanoquikpay = TRADER_BLACKLIST, + /obj/item/device/electronic_assembly = TRADER_BLACKLIST_ALL, // Not a circuit trader + /obj/item/device/integrated_circuit_printer = TRADER_BLACKLIST_ALL, //Not a circuit trader + /obj/item/device/integrated_electronics = TRADER_BLACKLIST_ALL, // Not a circuit trader + /obj/item/device/mine_bot_ugprade = TRADER_BLACKLIST_ALL, // Not a mining vendor + drone stuff + /obj/item/device/mmi = TRADER_BLACKLIST_SUB, // removes MMI Subtypes to prevent trading confusion + /obj/item/device/soulstone = TRADER_BLACKLIST, // Wiz item + /obj/item/device/firing_pin = TRADER_BLACKLIST_ALL, // Not a weapons trader + /obj/item/device/laser_assembly = TRADER_BLACKLIST_ALL, // Not a weapons trader + /obj/item/device/ano_scanner = TRADER_BLACKLIST, // Xenoarch + /obj/item/device/core_sampler = TRADER_BLACKLIST, // Xenoarch + /obj/item/device/depth_scanner = TRADER_BLACKLIST, // Xenoarch + /obj/item/device/beacon_locator = TRADER_BLACKLIST, // Telescience + /obj/item/device/telepad_beacon = TRADER_BLACKLIST, // Telescience + /obj/item/device/udp_debugger = TRADER_BLACKLIST, // Circuits + /obj/item/device/antibody_scanner = TRADER_BLACKLIST // Virology ) possible_trading_items = list( /obj/item/weapon/storage/bag = TRADER_SUBTYPES_ONLY, - /obj/item/weapon/storage/bag/cash = TRADER_BLACKLIST, + /obj/item/weapon/storage/bag/ore/drone = TRADER_BLACKLIST, // don't want drone bags + /obj/item/weapon/storage/bag/sheetsnatcher/borg = TRADER_BLACKLIST, // don't want borg bags + /obj/item/weapon/storage/bag/circuits = TRADER_BLACKLIST_ALL, //can spawn glitchy circuit boxes, circuitry should belong to science + /obj/item/weapon/storage/bag/cash = TRADER_BLACKLIST, // spawns with money /obj/item/weapon/storage/backpack = TRADER_ALL, - /obj/item/weapon/storage/backpack/cultpack = TRADER_BLACKLIST, - /obj/item/weapon/storage/backpack/holding = TRADER_BLACKLIST_ALL, - /obj/item/weapon/storage/backpack/satchel/withwallet = TRADER_BLACKLIST, - /obj/item/weapon/storage/backpack/chameleon = TRADER_BLACKLIST, - /obj/item/weapon/storage/backpack/chameleon = TRADER_BLACKLIST, - /obj/item/weapon/storage/backpack/typec = TRADER_BLACKLIST_ALL, + /obj/item/weapon/storage/backpack/cultpack = TRADER_BLACKLIST, // cult stuff + /obj/item/weapon/storage/backpack/holding = TRADER_BLACKLIST_ALL, // research stuff + /obj/item/weapon/storage/backpack/satchel/withwallet = TRADER_BLACKLIST, // money inside + /obj/item/weapon/storage/backpack/chameleon = TRADER_BLACKLIST, // traitor stuff + /obj/item/weapon/storage/backpack/typec = TRADER_BLACKLIST_ALL, // Vaurca-exclusive stuff + /obj/item/weapon/storage/backpack/fluff = TRADER_BLACKLIST_ALL, // Custom items, let's not /obj/item/weapon/storage/belt/champion = TRADER_THIS_TYPE, /obj/item/weapon/storage/briefcase = TRADER_THIS_TYPE, /obj/item/weapon/storage/fancy = TRADER_SUBTYPES_ONLY, @@ -53,16 +95,33 @@ They sell generic supplies and ask for generic supplies. /obj/item/weapon/storage/bag/plants = TRADER_THIS_TYPE, /obj/item/weapon/storage/bag/ore = TRADER_THIS_TYPE, /obj/item/weapon/storage/toolbox = TRADER_ALL, + /obj/item/weapon/storage/toolbox/fluff = TRADER_BLACKLIST_ALL, // Custom items /obj/item/weapon/storage/wallet = TRADER_THIS_TYPE, + /obj/item/weapon/storage/wallet/fluff = TRADER_BLACKLIST_ALL, // Custom items /obj/item/weapon/storage/photo_album = TRADER_THIS_TYPE, /obj/item/clothing/glasses = TRADER_SUBTYPES_ONLY, - /obj/item/clothing/glasses/hud = TRADER_BLACKLIST_ALL, - /obj/item/clothing/glasses/sunglasses/blindfold/tape = TRADER_BLACKLIST, - /obj/item/clothing/glasses/chameleon = TRADER_BLACKLIST, - /obj/item/clothing/glasses/sunglasses/bst = TRADER_BLACKLIST, - /obj/item/clothing/glasses/fluff = TRADER_BLACKLIST_ALL, - /obj/item/clothing/glasses/welding/fluff = TRADER_BLACKLIST_ALL, - /obj/item/clothing/glasses/regular/fluff = TRADER_BLACKLIST_ALL + /obj/item/clothing/glasses/threedglasses/fluff = TRADER_BLACKLIST_ALL, // Custom items + /obj/item/clothing/glasses/hud = TRADER_BLACKLIST_ALL, //don't want mech/advanced stuff + /obj/item/clothing/glasses/sunglasses/blindfold/tape = TRADER_BLACKLIST, // Literally just tape over someone's eyes + /obj/item/clothing/glasses/chameleon = TRADER_BLACKLIST, // traitor stuff + /obj/item/clothing/glasses/sunglasses/bst = TRADER_BLACKLIST, // BlueSpaceTech glasses + /obj/item/clothing/glasses/fluff = TRADER_BLACKLIST_ALL, // Custom items + /obj/item/clothing/glasses/welding/fluff = TRADER_BLACKLIST_ALL, // Custom items + /obj/item/clothing/glasses/regular/fluff = TRADER_BLACKLIST_ALL, // Custom items + /obj/item/weapon/storage/box = TRADER_SUBTYPES_ONLY, // Adding a bunch of 'bulk supply' items + /obj/item/weapon/storage/box/disks = TRADER_BLACKLIST, // OLD Dna/cloning disks inside + /obj/item/weapon/storage/box/syringegun = TRADER_BLACKLIST, // Ammo for syringe gun, not weapons trader + /obj/item/weapon/storage/box/injectors = TRADER_BLACKLIST, // Human-to-monkey injectors + /obj/item/weapon/storage/box/ids = TRADER_BLACKLIST, // Box of NT id's + /obj/item/weapon/storage/box/disks = TRADER_BLACKLIST, // stuff inside doesn't work + /obj/item/weapon/storage/box/syndicate = TRADER_BLACKLIST, // traitor stuff + /obj/item/weapon/storage/box/syndie_kit = TRADER_BLACKLIST_ALL, // traitor stuff + /obj/item/weapon/storage/box/fluff = TRADER_BLACKLIST_ALL, // custom items + /obj/item/weapon/storage/box/trackimp = TRADER_BLACKLIST, // NT Tracking Implant + /obj/item/weapon/storage/box/tranquilizer = TRADER_BLACKLIST, // HoS tranq rifle ammo + /obj/item/weapon/storage/box/botanydisk = TRADER_BLACKLIST, // Not appropriate, too specialized + /obj/item/weapon/storage/box/bloodpacks = TRADER_BLACKLIST, // Machine cannot fabricate blood + /obj/item/weapon/storage/box/firingpinsRD = TRADER_BLACKLIST // RD's stuff ) insult_drop = 0 @@ -112,7 +171,6 @@ They sell generic supplies and ask for generic supplies. /obj/item/target = TRADER_ALL, /obj/structure/dispenser = TRADER_SUBTYPES_ONLY, /obj/structure/filingcabinet = TRADER_THIS_TYPE, - /obj/item/toy/plushie/ = TRADER_SUBTYPES_ONLY, /obj/mecha/working/hoverpod = TRADER_THIS_TYPE, /obj/vehicle/bike = TRADER_THIS_TYPE ) diff --git a/code/datums/trading/food.dm b/code/datums/trading/food.dm index de33214e163..6c0f66de20f 100644 --- a/code/datums/trading/food.dm +++ b/code/datums/trading/food.dm @@ -2,15 +2,24 @@ name = "Pizza Shop Employee" name_language = TRADER_DEFAULT_NAME origin = "Pizzeria" - possible_origins = list("Papa Joe's", "Pizza Ship", "Dominator Pizza", "Little Kaezars", "Pizza Planet", "Cheese Louise") - trade_flags = TRADER_MONEY - possible_wanted_items = list() //They are a pizza shop, not a bargainer. - possible_trading_items = list(/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza = TRADER_SUBTYPES_ONLY) + possible_origins = list("Papa Joe's", "Mamma Mia", "Dominator Pizza", "Little Kaezars", "Pizza Planet", "Cheese Louise") + trade_flags = TRADER_GOODS|TRADER_MONEY|TRADER_WANTED_ONLY + + possible_wanted_items = list( + /obj/item/weapon/material/kitchen/utensil = TRADER_SUBTYPES_ONLY, // Customers keep stealing their cutlery + /obj/item/weapon/material/kitchen/utensil/fork/fluff = TRADER_BLACKLIST_ALL, // No custom items + /obj/item/weapon/material/kitchen/utensil/knife/boot = TRADER_BLACKLIST // No boot knifes + ) + + possible_trading_items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza = TRADER_SUBTYPES_ONLY + ) speech = list( "hail_generic" = "Hello! Welcome to ORIGIN, may I take your order?", "hail_deny" = "Beeeep... I'm sorry, your connection has been severed.", "trade_complete" = "Thank you for choosing ORIGIN!", + "what_want" = "Customers keep stealing these! We need new", "trade_no_goods" = "I'm sorry but we only take cash.", "trade_blacklisted" = "Sir that's... highly illegal.", "trade_not_enough" = "Uhh... that's not enough money for pizza.", @@ -31,17 +40,22 @@ box.pizza = M box.boxtag = "A special order from [origin]" -/datum/trader/ship/chinese +/datum/trader/chinese name = "Chinese Restaurant" name_language = TRADER_DEFAULT_NAME origin = "Captain Panda Bistro" - trade_flags = TRADER_MONEY - possible_wanted_items = list() + trade_flags = TRADER_GOODS|TRADER_MONEY|TRADER_WANTED_ONLY + + possible_wanted_items = list( + /obj/item/weapon/material/kitchen/utensil = TRADER_SUBTYPES_ONLY, // Customers keep stealing their cutlery + /obj/item/weapon/material/kitchen/utensil/fork/fluff = TRADER_BLACKLIST_ALL, // No custom items + /obj/item/weapon/material/kitchen/utensil/knife/boot = TRADER_BLACKLIST // No boot knifes + ) + possible_trading_items = list( /obj/item/weapon/reagent_containers/food/snacks/monkeykabob = TRADER_THIS_TYPE, /obj/item/weapon/reagent_containers/food/snacks/monkeysdelight = TRADER_THIS_TYPE, /obj/item/weapon/reagent_containers/food/snacks/ricepudding = TRADER_THIS_TYPE, - /obj/item/weapon/reagent_containers/food/snacks/xenomeatbreadslice/filled = TRADER_THIS_TYPE, /obj/item/weapon/reagent_containers/food/snacks/soydope = TRADER_THIS_TYPE, /obj/item/weapon/reagent_containers/food/snacks/stewedsoymeat = TRADER_THIS_TYPE, /obj/item/weapon/reagent_containers/food/snacks/wingfangchu = TRADER_THIS_TYPE, @@ -72,6 +86,7 @@ "hail_deny" = "We do not take orders from rude customers.", "trade_complete" = "Thank you, sir, for your patronage.", "trade_blacklist" = "No, that is very odd. Why would you trade that away?", + "what_want" = "It's very odd, but I need", "trade_no_goods" = "I only accept money transfers.", "trade_not_enough" = "No, I am sorry, that is not possible. I need to make a living.", "how_much" = "I give you ITEM, for VALUE credits. No more, no less.", @@ -83,7 +98,7 @@ "bribe_accept" = "Oh yes! I think I'll stay a few more minutes, then." ) -/datum/trader/ship/chinese/trade(var/list/offers, var/num, var/turf/location) +/datum/trader/chinese/trade(var/list/offers, var/num, var/turf/location) . = ..() if(.) var/obj/item/weapon/reagent_containers/food/snacks/fortunecookie/cookie = new(location) @@ -132,12 +147,14 @@ name_language = TRADER_DEFAULT_NAME origin = "Bakery" possible_origins = list("Cakes By Design", "Corner Bakery Local", "My Favorite Cake & Pastry Cafe", "Mama Joes Bakery", "Sprinkles and Fun") + trade_flags = TRADER_GOODS|TRADER_MONEY|TRADER_WANTED_ONLY speech = list( "hail_generic" = "Hello, welcome to ORIGIN! We serve baked goods, including pies, cakes and anything sweet!", "hail_deny" = "Our food is a privilege, not a right. Goodbye.", "trade_complete" = "Thank you for your purchase! Come again if you're hungry for more!", "trade_blacklist" = "We only accept money. Not... that.", + "what_want" = "Do you happen to have any", "trade_no_goods" = "Cash for cakes! That's our business!", "trade_not_enough" = "Our dishes are much more expensive than that, sir.", "how_much" = "That lovely dish will cost you VALUE credits.", @@ -147,6 +164,11 @@ "insult_bad" = "Well, aren't you a sour apple?", "bribe_refusal" = "Oh ho ho! I'd never think of taking ORIGIN on the road!" ) + possible_wanted_items = list( + /obj/item/weapon/material/kitchen/utensil = TRADER_SUBTYPES_ONLY, // Customers keep stealing their cutlery + /obj/item/weapon/material/kitchen/utensil/fork/fluff = TRADER_BLACKLIST_ALL, // No custom items + /obj/item/weapon/material/kitchen/utensil/knife/boot = TRADER_BLACKLIST // No boot knifes + ) possible_trading_items = list( /obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday/filled = TRADER_THIS_TYPE, @@ -161,7 +183,6 @@ /obj/item/weapon/reagent_containers/food/snacks/bananabreadslice/filled = TRADER_THIS_TYPE, /obj/item/weapon/reagent_containers/food/snacks/sliceable = TRADER_SUBTYPES_ONLY, /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza = TRADER_BLACKLIST_ALL, - /obj/item/weapon/reagent_containers/food/snacks/sliceable/xenomeatbread = TRADER_BLACKLIST, /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough = TRADER_BLACKLIST, /obj/item/weapon/reagent_containers/food/snacks/sliceable/cake/brain = TRADER_BLACKLIST, /obj/item/weapon/reagent_containers/food/snacks/pie = TRADER_THIS_TYPE, diff --git a/code/datums/trading/goods.dm b/code/datums/trading/goods.dm index 6d2dfa171c8..c13ad946ecd 100644 --- a/code/datums/trading/goods.dm +++ b/code/datums/trading/goods.dm @@ -1,4 +1,4 @@ -/datum/trader/ship/toyshop +/datum/trader/toyshop name = "Toy Shop Employee" name_language = TRADER_DEFAULT_NAME origin = "Toy Shop" @@ -46,7 +46,7 @@ /obj/item/weapon/spirit_board = TRADER_ALL ) -/datum/trader/ship/electronics +/datum/trader/electronics name = "Electronic Shop Employee" name_language = TRADER_DEFAULT_NAME origin = "Electronic Shop" @@ -57,7 +57,7 @@ "hail_deny" = "Your call has been disconnected.", "trade_complete" = "Thank you for shopping at ORIGIN, would you like to get the extended warranty as well?", "trade_blacklist" = "Sir, this is a /electronics/ store.", - "trade_no_goods" = "As much as I'd love to buy that from you, I'm can't.", + "trade_no_goods" = "As much as I'd love to buy that from you, I can't.", "trade_not_enough" = "Your offer isn't adequate, sir.", "how_much" = "Your total comes out to VALUE credits.", "compliment_deny" = "Hahaha! Yeah... funny...", @@ -90,8 +90,6 @@ /obj/item/stack/cable_coil/cut = TRADER_BLACKLIST, /obj/item/weapon/airalarm_electronics = TRADER_THIS_TYPE, /obj/item/weapon/airlock_electronics = TRADER_ALL, - /obj/item/weapon/cell = TRADER_THIS_TYPE, - /obj/item/weapon/cell/crap = TRADER_THIS_TYPE, /obj/item/weapon/cell/high = TRADER_THIS_TYPE, /obj/item/weapon/cell/super = TRADER_THIS_TYPE, /obj/item/weapon/cell/hyper = TRADER_THIS_TYPE, @@ -102,7 +100,7 @@ /* Clothing stores: each a different type. A hat/glove store, a shoe store, and a jumpsuit store. */ -/datum/trader/ship/clothingshop +/datum/trader/clothingshop name = "Clothing Store Employee" name_language = TRADER_DEFAULT_NAME origin = "Clothing Store" @@ -157,7 +155,7 @@ /obj/item/clothing/suit/storage/toggle/flannel = TRADER_ALL ) -/datum/trader/ship/clothingshop/shoes +/datum/trader/clothingshop/shoes possible_origins = list("Foot Safe", "Paysmall", "Popular Footwear", "Grimbly's Shoes", "Right Steps") possible_trading_items = list( /obj/item/clothing/shoes = TRADER_SUBTYPES_ONLY, @@ -174,7 +172,7 @@ /obj/item/clothing/shoes/black/bst = TRADER_BLACKLIST ) -/datum/trader/ship/clothingshop/hatglovesaccessories +/datum/trader/clothingshop/hatglovesaccessories possible_origins = list("Baldie's Hats and Accessories", "The Right Fit", "Like a Glove", "Space Fashion") possible_trading_items = list( /obj/item/clothing/accessory = TRADER_ALL, @@ -219,9 +217,9 @@ Sells devices, odds and ends, and medical stuff */ /datum/trader/devices - name = "Drugstore Employee" + name = "Devices Store Employee" name_language = TRADER_DEFAULT_NAME - origin = "Drugstore" + origin = "Wally's SmartMart" possible_origins = list("Buy 'n Save", "Drug Carnival", "C&B", "Fentles", "Dr. Goods", "Beevees") possible_trading_items = list( /obj/item/device/flashlight = TRADER_ALL, @@ -287,13 +285,6 @@ Sells devices, odds and ends, and medical stuff origin = "Robot Store" possible_origins = list("AI for the Straight Guy", "Mechanical Buddies", "Bot Chop Shop", "Omni Consumer Projects") possible_trading_items = list( - /obj/item/weapon/secbot_assembly/ed209_assembly = TRADER_THIS_TYPE, - /obj/item/weapon/toolbox_tiles = TRADER_THIS_TYPE, - /obj/item/weapon/toolbox_tiles_sensor = TRADER_THIS_TYPE, - /obj/item/weapon/secbot_assembly = TRADER_ALL, - /obj/item/weapon/farmbot_arm_assembly = TRADER_THIS_TYPE, - /obj/item/weapon/firstaid_arm_assembly = TRADER_THIS_TYPE, - /obj/item/weapon/bucket_sensor = TRADER_THIS_TYPE, /obj/item/device/paicard = TRADER_THIS_TYPE, /obj/item/weapon/aicard = TRADER_THIS_TYPE, /mob/living/bot = TRADER_SUBTYPES_ONLY @@ -322,6 +313,7 @@ Sells devices, odds and ends, and medical stuff name_language = TRADER_DEFAULT_NAME origin = "Mining Supply Store" possible_origins = list("Astrodia", "Slag. Co.", "Explosive Drills S.A.", "The Shaft Shop") + trade_flags = TRADER_GOODS|TRADER_MONEY|TRADER_WANTED_ONLY possible_wanted_items = list( /obj/item/weapon/ore = TRADER_SUBTYPES_ONLY, @@ -380,6 +372,7 @@ Sells devices, odds and ends, and medical stuff "hail_deny" = "ORIGIN no longer wants to speak to you.", "trade_complete" = "Good mining and avoid the holes!", "trade_blacklist" = "I don't want this thing.", + "what_want" = "You got any leftover materials? Specifically", "trade_no_goods" = "Only cash here!", "trade_not_enough" = "I need more than that, son.", "how_much" = "This damn good tool will be VALUE!", diff --git a/code/datums/trading/misc.dm b/code/datums/trading/misc.dm index 0b830ea8a9a..4f29f8e103f 100644 --- a/code/datums/trading/misc.dm +++ b/code/datums/trading/misc.dm @@ -1,4 +1,4 @@ -/datum/trader/ship/pet_shop +/datum/trader/pet_shop name = "Pet Shop Owner" name_language = LANGUAGE_SKRELLIAN origin = "Pet Shop" @@ -59,7 +59,7 @@ /obj/item/device/dociler = TRADER_THIS_TYPE ) -/datum/trader/ship/prank_shop +/datum/trader/prank_shop name = "Prank Shop Owner" name_language = LANGUAGE_ROOTSONG origin = "Prank Shop" diff --git a/code/datums/trading/trade.dm b/code/datums/trading/trade.dm index 873b5fb84ee..1223c282f31 100644 --- a/code/datums/trading/trade.dm +++ b/code/datums/trading/trade.dm @@ -51,7 +51,7 @@ if(possible_origins && possible_origins.len) origin = pick(possible_origins) - for(var/i in 3 to 6) + for(var/i in 5 to 8) add_to_pool(trading_items, possible_trading_items, force = 1) add_to_pool(wanted_items, possible_wanted_items, force = 1) @@ -122,7 +122,7 @@ if(!trading_items[trading_items[trading_num]]) var/type = trading_items[trading_num] var/value = get_value(type) - value = round(rand(90,110)/100 * value) //For some reason rand doesn't like decimals. + value = round(rand(80,100)/100 * value) //For some reason rand doesn't like decimals. trading_items[type] = value return trading_items[trading_items[trading_num]] diff --git a/code/datums/trading/unique.dm b/code/datums/trading/unique.dm index b1567f47114..5db81ead855 100644 --- a/code/datums/trading/unique.dm +++ b/code/datums/trading/unique.dm @@ -25,6 +25,63 @@ /datum/trader/ship/unique/what_do_you_want() return get_response("what_want", "I don't want anything!") +/datum/trader/ship/unique/syndicate + name = "Cyndie Kate" + origin = "Cloaked ship" + + possible_wanted_items = list ( + /obj/item/weapon/gun/energy/captain = TRADER_THIS_TYPE, + /obj/item/weapon/hand_tele = TRADER_THIS_TYPE, + /obj/item/blueprints = TRADER_THIS_TYPE, + /obj/item/weapon/disk/nuclear = TRADER_THIS_TYPE, + /obj/item/weapon/reagent_containers/hypospray = TRADER_ALL, + /obj/item/weapon/card/id/captains_spare = TRADER_THIS_TYPE, + /obj/item/weapon/gun/projectile/heavysniper/tranq = TRADER_THIS_TYPE, + /obj/item/stack/telecrystal = TRADER_THIS_TYPE, + /obj/item/bluespace_crystal = TRADER_ALL, + /obj/random/telecrystals = TRADER_THIS_TYPE, + /obj/item/device/pin_extractor = TRADER_THIS_TYPE, + /obj/item/weapon/circuitboard/aicore = TRADER_THIS_TYPE, + /obj/item/weapon/aiModule = TRADER_SUBTYPES_ONLY + ) + + possible_trading_items = list ( + /obj/item/weapon/antag_spawner/borg_tele = TRADER_THIS_TYPE, + /obj/item/weapon/storage/box/syndie_kit = TRADER_SUBTYPES_ONLY, + /obj/item/weapon/syndie/c4explosive = TRADER_ALL, + /obj/item/weapon/melee/energy/sword = TRADER_ALL, + /obj/item/weapon/melee/energy/sword/color = TRADER_BLACKLIST, + /obj/item/weapon/melee/energy/axe = TRADER_THIS_TYPE, + /obj/item/weapon/shield/energy = TRADER_ALL, + /obj/item/clothing/gloves/force/syndicate = TRADER_THIS_TYPE, + /obj/item/weapon/card/id/syndicate = TRADER_THIS_TYPE, + /obj/item/weapon/rig/merc = TRADER_THIS_TYPE, + /obj/item/weapon/rig/light/stealth = TRADER_THIS_TYPE, + /obj/item/weapon/rig/light/hacker = TRADER_THIS_TYPE, + /obj/item/weapon/gun/launcher/grenade = TRADER_THIS_TYPE, + /obj/item/weapon/gun/energy/sniperrifle = TRADER_THIS_TYPE, + /obj/item/weapon/gun/projectile/automatic = TRADER_SUBTYPES_ONLY, + /obj/mecha/combat/marauder/mauler = TRADER_THIS_TYPE, + /obj/mecha/working/ripley/deathripley = TRADER_THIS_TYPE + ) + + speech = list( + "hail_generic" = "Look, you can't afford the stuff I sell. You'll go get me valuable items from that station nearby, and I'll trade you my stuff. And you better do it fast, I think I might be tracked.", + "hail_deny" = "This is not worth my time.", + "trade_complete" = "Oooh, the commander will LOVE this!", + "trade_no_money" = "Don't waste my time!", + "trade_not_enough" = "Get me the good stuff I need or I'm gone!", + "trade_found_unwanted" = "I need high value items, not this garbage!", + "how_much" = "I need VALUABLE items, and I need it FAST.", + "what_want" = "There's a station near you, go there, get some high value and classified items. Or crystals.", + "compliment_deny" = "Shove your compliments, I'm busy!", + "compliment_accept" = "I might just recommend you to my employers...", + "insult_good" = "Heh, you got style.", + "insult_bad" = "I'm marking you for a hit..." + ) + + mob_transfer_message = "You are transported to ORIGIN, and with a sickening thud, you fall unconscious, never to wake again." + /datum/trader/ship/unique/severance name = "Unknown" origin = "SGS Severance" @@ -72,8 +129,9 @@ /obj/item/weapon/ore = TRADER_ALL ) possible_trading_items = list( - /obj/machinery/power/supermatter = TRADER_ALL, - /obj/item/weapon/aiModule = TRADER_SUBTYPES_ONLY + /obj/machinery/power/supermatter = TRADER_ALL, + /obj/item/custom_ka_upgrade/barrels/supermatter = TRADER_THIS_TYPE, + /obj/item/weapon/aiModule = TRADER_SUBTYPES_ONLY ) speech = list( @@ -92,65 +150,6 @@ "insult_bad" = "Blub feels bad now." ) - -/datum/trader/ship/unique/wizard - name = "The Grand Master" - origin = "Interdimensional Prison Cell" - - possible_wanted_items = list( - /mob/living/simple_animal/construct = TRADER_SUBTYPES_ONLY, - /obj/item/weapon/melee/cultblade = TRADER_THIS_TYPE, - /obj/item/clothing/head/culthood = TRADER_ALL, - /obj/item/clothing/suit/space/cult = TRADER_ALL, - /obj/item/clothing/suit/cultrobes = TRADER_ALL, - /obj/item/clothing/head/helmet/space/cult = TRADER_ALL, - /obj/structure/cult = TRADER_SUBTYPES_ONLY, - /obj/structure/constructshell = TRADER_ALL, - /mob/living/simple_animal/familiar = TRADER_SUBTYPES_ONLY, - /mob/living/simple_animal/familiar/pet = TRADER_BLACKLIST, - /mob/living/simple_animal/hostile/mimic = TRADER_ALL, - /obj/item/clothing/head/helmet/space/void/wizard = TRADER_THIS_TYPE, - /obj/item/clothing/head/wizard = TRADER_ALL, - /obj/item/clothing/suit/space/void/wizard = TRADER_THIS_TYPE, - /obj/item/weapon/scrying = TRADER_THIS_TYPE, - /obj/item/weapon/melee/energy/wizard = TRADER_THIS_TYPE, - /obj/item/phylactery = TRADER_THIS_TYPE, - /obj/item/weapon/gun/energy/staff = TRADER_ALL, - /obj/item/weapon/gun/energy/wand = TRADER_ALL, - /obj/item/weapon/gun/energy/wand/toy = TRADER_BLACKLIST, - /obj/item/device/soulstone = TRADER_THIS_TYPE - ) - - possible_trading_items = list( - /obj/item/weapon/contract/wizard/tk = TRADER_THIS_TYPE, - /obj/item/weapon/contract/boon/wizard/smoke = TRADER_THIS_TYPE, - /obj/item/weapon/contract/boon/wizard/horsemask = TRADER_THIS_TYPE, - /obj/item/weapon/contract/boon/wizard/gestalt = TRADER_THIS_TYPE, - /obj/item/weapon/contract/boon/wizard/fireball = TRADER_THIS_TYPE, - /obj/item/weapon/contract/boon/wizard/forcewall = TRADER_THIS_TYPE, - /obj/item/weapon/contract/boon/wizard/charge = TRADER_THIS_TYPE, - /obj/item/toy/figure/wizard = TRADER_THIS_TYPE, - /obj/item/weapon/staff = TRADER_ALL, - /obj/machinery/from_beyond = TRADER_ALL - ) - - speech = list( - "hail_generic" = "Hello! Are you here on pleasure or business?", - "hail_Golem" = "Interesting... how incredibly interesting... come! Let us do business!", - "hail_deny" = "I'm sorry, but I REALLY don't want to speak to you.", - "trade_complete" = "Pleasure doing business with you! Just don't feed it after midnight!", - "trade_no_money" = "Cash? Ha! What's cash to a man like me?", - "trade_not_enough" = "Hm, well I do enjoy what you're offering, I prefer a fair trade.", - "trade_found_unwanted" = "What? I want oddities! Don't you understand?", - "how_much" = "I want dark things, brooding things... things that go bump in the night. Things that bleed wrong, live wrong, are wrong.", - "what_want" = "Have anything from a broodish cult?", - "compliment_deny" = "Like I haven't heard that one before!", - "compliment_accept" = "Haha! Aren't you nice.", - "insult_good" = "Naughty naughty.", - "insult_bad" = "Now where do you get off talking to me like that?" - ) - - /datum/trader/ship/unique/vaurca origin = "The Hive Shop" name_language = LANGUAGE_VAURCA diff --git a/code/datums/trading/vox.dm b/code/datums/trading/vox.dm index b396dc146e8..6334afa13d8 100644 --- a/code/datums/trading/vox.dm +++ b/code/datums/trading/vox.dm @@ -52,7 +52,6 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg = TRADER_SUBTYPES_ONLY, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot = TRADER_SUBTYPES_ONLY, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack = TRADER_BLACKLIST, - /obj/item/trash = TRADER_SUBTYPES_ONLY, /obj/item/clothing/accessory = TRADER_ALL, /obj/item/clothing/accessory/fluff = TRADER_BLACKLIST_ALL, /obj/item/clothing/accessory/armband/fluff = TRADER_BLACKLIST_ALL, @@ -62,7 +61,6 @@ /obj/item/robot_parts/robot_component = TRADER_BLACKLIST, /obj/item/weapon/storage/pill_bottle/happy = TRADER_THIS_TYPE, /obj/item/weapon/storage/pill_bottle/zoom = TRADER_THIS_TYPE, - /obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin = TRADER_THIS_TYPE ) mob_transfer_message = "You are transported to the ORIGIN. When the transportation dizziness wears off, you find you are surrounded by cackling Vox..." diff --git a/html/changelogs/Naelynn-PR-6791.yml b/html/changelogs/Naelynn-PR-6791.yml new file mode 100644 index 00000000000..d65355958b3 --- /dev/null +++ b/html/changelogs/Naelynn-PR-6791.yml @@ -0,0 +1,48 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Naelynn + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - balance: "Adjusted merchant economy. Traders also start with larger inventory" + - tweak: "Less list bloat - multiple traders reclassified as stations - should make getting high-demand stuff easier." + - tweak: "Adjusted inventory of multiple traders (Food, robot, ai, electronics, vox, mining, blob)" + - rscadd: "Added options to sell certain items to food and mining merchants. " + - rscdel: "Deleted machine ai beacons selling plushies for no reason. Deleted Wizard merchant." + - rscadd: "Added bulk-buy [boxes] to ai traders" + - spellcheck: "Fixed a few grammatical errors and inconsistensies" + - rscadd: "Added a completely new trader - Cyndie Kate is willing to trade you highly illegal and dangerous items" \ No newline at end of file