Initial Commit

This commit is contained in:
Tobba
2016-03-06 20:52:14 +01:00
commit b181d0b552
4325 changed files with 579453 additions and 0 deletions
+188
View File
@@ -0,0 +1,188 @@
/datum/trader/buford
// Stoner frog.
// Buys and sells drugs, gardening stuff, etc. Is sometimes REALLY fucking high.
name = "Buford Tenin"
picture = "gethighfrog.png"
crate_tag = "BUFO420"
hiketolerance = 30
base_patience = list(10,15)
chance_leave = 66
chance_arrive = 100
max_goods_buy = 4
max_goods_sell = 6
base_goods_buy = list(/datum/commodity/trader/buford/vennecure,
/datum/commodity/trader/buford/megaweed,
/datum/commodity/trader/buford/whiteweed,
/datum/commodity/trader/buford/omegaweed,
/datum/commodity/trader/buford/psilocybin,
/datum/commodity/trader/buford/pizza)// 6
base_goods_sell = list(/datum/commodity/trader/buford/alienseeds,
/datum/commodity/trader/buford/weedseeds,
/datum/commodity/trader/buford/powerplant,
/datum/commodity/trader/buford/mutriant,
/datum/commodity/trader/buford/groboost,
/datum/commodity/trader/buford/fruitful,
/datum/commodity/trader/buford/topcrop,
/datum/commodity/trader/buford/weedkiller)// 8
dialogue_greet = list("Hey man. Got the good shit for sale, yeah.",
"Sup brother, what's goin' on. Got the damn fresh shit for you here.",
"Hey, how's it goin? Got the best shit right here, you know it.")
dialogue_leave = list("GET OUT.")
dialogue_purchase = list("Aw yeah. I know you're gonna enjoy this shit, man.",
"Thanks man. You always come through. Enjoy the shit, ha ha.",
"Good buys, man, good buys. Got more deals if you're interested?")
dialogue_haggle_accept = list("Ehh... alright. Don't see why not.",
"Sure, not like I can't just grow more of this shit, ha ha.",
"I'm down with that.",
"Yeah okay, cool.",
"Aight man, but you're really pushing it. Let's make the trade now, yeah?")
dialogue_haggle_reject = list("Woah man. Bit much there.",
"I'm not THAT high, dude.",
"No way man, I gotta make some profit here.",
"Nooooo way.",
"Look brother, you're kinda getting on my nerves. How about we just make the trade now?")
dialogue_wrong_haggle_accept = list("Sure man, I appreciate it.")
dialogue_wrong_haggle_reject = list("Ha, are you more blazed than I am or what?")
dialogue_cant_afford_that = list("Sorry brother, you ain't got the ducats for that.",
"Hey, as much as I like you, I can't just give this stuff away. Get some cash first.",
"Aw man, how'd you run outta cash already? Bummer.")
dialogue_out_of_stock = list("Whoops, ha ha, guess I already smo.. er, sold all of that.",
"Sorry man, none of that left.")
New()
..()
if(prob(10))
// sometimes he is really, REALLY fucking high and can barely function as a trader
src.hiketolerance = 95
src.base_patience = list(50,200)
src.patience = rand(src.base_patience[1],src.base_patience[2])
src.dialogue_greet = list("Hey m... uh.. good shit.. i think? Yeah...",
"Hey man, what if like... oh.. wait, it's you.. wait, where the fuck am I again? Ha ha.",
"Man I.. ha ha. Got any like.. pizza? Or any shit like that? ...wait, who are you again?")
src.dialogue_leave = list("GET OUT.")
src.dialogue_purchase = list("Buy... what now? Uh... sure... I think..?",
"Thanks man... ha ha. Man what if.. you could buy like... the moon? Ha ha.",
"Like.. oh shit, wait? Was I supposed to send you some shit?")
src.dialogue_haggle_accept = list("Ahahaha, fuckin' hilarious man.",
"Woah that's like.. cosmic, yeah?",
"Uhh.. fuck I dunno what you even just said? Sure I guess...?",
"I uh.. yeah okay? I dunno. Is that a good idea?",
"Uh.. shit.. sure! I think? ..fuck. I'm getting a headache.")
src.dialogue_haggle_reject = list("Nah man. That's like.. it's like.. if a snake was just like.. a head with a tail, you know?",
"Fuck... uh.. no. I'm not THAT high.. I.. think? Ha ha...",
"Fuck that shit. I wanna.. talk about... lighthouses. You don't like lighthouses.. you suck.",
"Never mind that shit, what if like... fuck. I forgot...",
"Man no. You're harshing my mellow. Ugh. Think i'm getting a headache.")
src.dialogue_wrong_haggle_accept = list("Like.. more than I asked for..? Woah, sure... ha ha. I'ma buy pizza.")
src.dialogue_wrong_haggle_reject = list("What? Sorry, wasn't listening. Ha ha.")
src.dialogue_cant_afford_that = list("FUCK A DRAGON.. oh wait shit, never mind. Ha ha. Uh.. some shit about not enough cash is on my screen. Dunno.",
"Uhh.. well my computer says no.. yeah i'ma go with that. I don't give a fuck right now. Ha ha.")
src.dialogue_out_of_stock = list("Oh I ain't got any of that? Where is it? Where'd it go? Huh.")
// Buford is selling these things
/datum/commodity/trader/buford/alienseeds
comname = "Strange Seeds"
comtype = /obj/item/seed/alien
amount = 5
price_boundary = list(200,400)
possible_names = list("Got these weirdo alien plant seeds. Dunno what they'll grow.",
"I got some strange seeds, maybe they'll grow some good shit. It's some alien shit.",
"Some real strange alien plant seeds for sale here. I dunno what they grow into.")
/datum/commodity/trader/buford/weedseeds
comname = "Cannabis Seeds"
comtype = /obj/item/seed/cannabis
price_boundary = list(3,5)
possible_names = list("Got some good weed seeds here for sale.",
"If you can't get your hands on some weed seeds, i'll sell you some.")
/datum/commodity/trader/buford/powerplant
comname = "Saltpetre Plant Formula"
comtype = /obj/item/reagent_containers/glass/bottle/powerplant
amount = 20
price_boundary = list(50,100)
possible_names = list("Got some good nutrients to make your plants more potent.",
"I'm selling some Powerplant formula. It's great for making your herbs more potent.")
/datum/commodity/trader/buford/mutriant
comname = "Mutagenic Plant Formula"
comtype = /obj/item/reagent_containers/glass/bottle/mutriant
amount = 20
price_boundary = list(50,100)
possible_names = list("Got some weird plant nutrients. It makes your plants mutate more often.",
"Mutriant formula for sale. Makes your plants go all fucked up and weird. In a good way. I hope.")
/datum/commodity/trader/buford/topcrop
comname = "Potash Plant Formula"
comtype = /obj/item/reagent_containers/glass/bottle/topcrop
amount = 20
price_boundary = list(50,100)
possible_names = list("Got some plant nutrients that'll encourage huge yields.",
"Got some good old Top Crop formula. I'm buying most of the good shit you grow, by the way.")
/datum/commodity/trader/buford/groboost
comname = "Ammonia Plant Formula"
comtype = /obj/item/reagent_containers/glass/bottle/groboost
amount = 20
price_boundary = list(50,100)
possible_names = list("Selling some great nutrients for making plants grow fast.",
"Gro-Boost for sale, great nutrients that make your plants grow really quickly.")
/datum/commodity/trader/buford/fruitful
comname = "Mutadone Plant Formula"
comtype = /obj/item/reagent_containers/glass/bottle/fruitful
amount = 20
price_boundary = list(50,100)
possible_names = list("Got some nutrients that'll fix any bad shit on your plants.",
"Got some good Fruitful Farming formula here. Got any ill plants, this'll fix em.")
/datum/commodity/trader/buford/weedkiller
comname = "Weedkiller"
comtype = /obj/item/reagent_containers/glass/bottle/weedkiller
amount = 20
price_boundary = list(20,60)
possible_names = list("Selling some good ol' weedkiller. Got any shitty plants, douse em with this.",
"Weedkiller for sale. Like, for shitty weeds, not good weed. Ha ha.")
// Buford wants these things
/datum/commodity/trader/buford/vennecure
comname = "Curative Venne"
comtype = /obj/item/plant/herb/venne/curative
price_boundary = list(40,250)
possible_names = list("I hear there's a mutation of Venne that's a cool sunset color. Hit me up with some of that, brother.")
/datum/commodity/trader/buford/megaweed
comname = "Rainbow Weed"
comtype = /obj/item/plant/herb/cannabis/mega
price_boundary = list(50,500)
possible_names = list("I'd like to buy any rainbow weed you got. Good stuff.")
/datum/commodity/trader/buford/whiteweed
comname = "White Weed"
comtype = /obj/item/plant/herb/cannabis/white
price_boundary = list(50,400)
possible_names = list("You got any of that white cannabis?")
/datum/commodity/trader/buford/omegaweed
comname = "Omega Weed"
comtype = /obj/item/plant/herb/cannabis/omega
price_boundary = list(500,1500)
possible_names = list("I hear there's a super-potent mutant strain of Cannabis. Got any of that?")
/datum/commodity/trader/buford/psilocybin
comname = "Psilocybin Mushrooms"
comtype = /obj/item/reagent_containers/food/snacks/mushroom/psilocybin
price_boundary = list(100,650)
possible_names = list("You got any magic mushrooms? The Psilocybin kind.")
/datum/commodity/trader/buford/pizza
comname = "Pizza"
comtype = /obj/item/reagent_containers/food/snacks/pizza
price_boundary = list(50,250)
possible_names = list("You got any pizza?")
+172
View File
@@ -0,0 +1,172 @@
/datum/trader/generic
// completely randomised generic trader
hiketolerance = 20
base_patience = list(4,20)
chance_leave = 33
chance_arrive = 33
max_goods_buy = 5
max_goods_sell = 3
base_goods_buy = list(/datum/commodity/trader/generic/anyore,
/datum/commodity/trader/generic/herbs,
/datum/commodity/trader/generic/electronics,
/datum/commodity/trader/generic/anyfood,
/datum/commodity/trader/generic/shipcomponents,
/datum/commodity/trader/generic/jumpsuits)
base_goods_sell = list(/datum/commodity/trader/generic/sheetmetal,
/datum/commodity/trader/generic/rcd_ammo,
/datum/commodity/trader/generic/fabric,
/datum/commodity/trader/generic/telecrystal,
/datum/commodity/trader/generic/glowstick)
/*
/datum/commodity/trader/synthmodule/bacteria,
/datum/commodity/trader/synthmodule/virii,
/datum/commodity/trader/synthmodule/parasite,
/datum/commodity/trader/synthmodule/fungi,
/datum/commodity/trader/synthmodule/gmcell,
/datum/commodity/trader/synthmodule/upgrader)
*/
New()
..()
var/pickfirstname = pick("Honest","Fair","Merchant","Trader","Kosher","Real Deal","Dealer","Sketchy","100%","Sassy","Zesty")
var/picklastname = pick(last_names)
src.name = "[pickfirstname] [picklastname]"
src.hiketolerance = rand(2,4)
src.hiketolerance *= 10
crate_tag = "TDR[rand(100,999)]"
// Traders are selling these things
/datum/commodity/trader/generic/sheetmetal
comname = "Sheet Metal"
comtype = /obj/item/sheet/steel
amount = 200
price_boundary = list(5,9)
possible_names = list("I'm selling sheets of construction-grade steel.",
"I'm selling sheets of steel. Below market price, guaranteed!")
/datum/commodity/trader/generic/rcd_ammo
comname = "RCD Charges"
comtype = /obj/item/rcd_ammo
amount = 15
price_boundary = list(200,700)
possible_names = list("We have RCD ammunition for sale.",
"We have charges for RCD devices available for a good price!")
/datum/commodity/trader/generic/fabric
comname = "Cloth Fabric"
comtype = /obj/item/raw_material/fabric
price_boundary = list(5,7)
possible_names = list("We have lots of cloth for sale. Good for making clothes with.",
"We have a great deal of cloth we need to shift soon, so please buy it!")
/datum/commodity/trader/generic/telecrystal
comname = "Telecrystal"
comtype = /obj/item/raw_material/telecrystal
amount = 20
price_boundary = list(750,1200)
possible_names = list("We have a limited amount of telecrystal available for purchase.",
"We have raw telecrystal stones and no facilities to make use of them, so we're selling them instead.")
/datum/commodity/trader/generic/glowstick
comname = "Glowstick"
comtype = /obj/item/device/glowstick
amount = 20
price_boundary = list(8,20)
possible_names = list("We have a number of glowsticks available for purchase.",
"We have come across some glowstick lighting supplies and have no use for them. Please buy them!")
/datum/commodity/trader/synthmodule
comname = "Synth-O-Matic module"
comtype = /obj/item/synthmodule
desc = "A synth-o-matic module."
price_boundary = list(7000, 11000)
possible_names = list("We have some Synth-O-Matic upgrades for sale.",
"We recently salvaged a couple of Synth-O-Matic machines, and we cannot make use of these spare parts.")
/datum/commodity/trader/synthmodule/vaccine
comname = "Synth-O-Matic vaccine module"
comtype = /obj/item/synthmodule/vaccine
/datum/commodity/trader/synthmodule/upgrader
comname = "Synth-O-Matic efficiency module"
comtype = /obj/item/synthmodule/upgrader
/datum/commodity/trader/synthmodule/assistant
comname = "Synth-O-Matic assistant module"
comtype = /obj/item/synthmodule/assistant
/datum/commodity/trader/synthmodule/synthesizer
comname = "Synth-O-Matic synthesizer module"
comtype = /obj/item/synthmodule/synthesizer
/datum/commodity/trader/synthmodule/virii
comname = "Synth-O-Matic virus module"
comtype = /obj/item/synthmodule/virii
/datum/commodity/trader/synthmodule/bacteria
comname = "Synth-O-Matic bacterium module"
comtype = /obj/item/synthmodule/bacteria
/datum/commodity/trader/synthmodule/fungi
comname = "Synth-O-Matic fungus module"
comtype = /obj/item/synthmodule/fungi
/datum/commodity/trader/synthmodule/parasite
comname = "Synth-O-Matic parasite module"
comtype = /obj/item/synthmodule/parasite
/datum/commodity/trader/synthmodule/gmcell
comname = "Synth-O-Matic great mutatis cell module"
comtype = /obj/item/synthmodule/gmcell
/datum/commodity/trader/synthmodule/radiation
comname = "Synth-O-Matic irradiation module"
comtype = /obj/item/synthmodule/radiation
// Traders want these things
/datum/commodity/trader/generic/anyore
comname = "Ore"
comtype = /obj/item/raw_material/
price_boundary = list(20,120)
possible_names = list("I'm looking to buy any kind of ore you might have.",
"Our ore supplies are critically low - i'll buy any kind of ore for this price.")
/datum/commodity/trader/generic/anyfood
comname = "Food"
comtype = /obj/item/reagent_containers/food/snacks
price_boundary = list(10,100)
possible_names = list("We're ferrying food to the outer colonies, so sell us any extra you have.",
"An accident has lost us most of our food supplies, so we're willing to buy any you may have.")
/datum/commodity/trader/generic/herbs
comname = "Medical Herbs"
comtype = /obj/item/plant/herb/
price_boundary = list(20,150)
possible_names = list("I'll buy any medical herbs you may have.",
"I need to restock on medical herbs. I'm willing to buy them from you for a good price.")
/datum/commodity/trader/generic/electronics
comname = "Electrical Components"
comtype = /obj/item/electronics/
price_boundary = list(10,85)
possible_names = list("I need to buy electrical components for a project.",
"We're rather short on electrical components needed for repairs. We're willing to pay well.")
/datum/commodity/trader/generic/shipcomponents
comname = "Ship/Pod Components"
comtype = /obj/item/shipcomponent/
price_boundary = list(500,2500)
possible_names = list("Our shipyards are low on ship-building components. Could you sell us some?",
"We're trying a new experimental pod construction technique and need all the ship components we can get.")
/datum/commodity/trader/generic/jumpsuits
comname = "Jumpsuits"
comtype = /obj/item/clothing/under/
price_boundary = list(20,100)
possible_names = list("We're drafting in some new staff soon, and need new jumpsuits.",
"We need any jumpsuits you can spare. Don't ask.")
+161
View File
@@ -0,0 +1,161 @@
/datum/trader/gragg
// Rockworm guy.
// Always buys mineral items from the station. Very honest and straightforward.
name = "Gragg"
picture = "gragg.png"
crate_tag = "GRAGG"
hiketolerance = 15
base_patience = list(4,8)
chance_leave = 10
chance_arrive = 33
max_goods_buy = 3
max_goods_sell = 3
base_goods_buy = list(/datum/commodity/trader/gragg/rock,
/datum/commodity/trader/gragg/mauxite,
/datum/commodity/trader/gragg/bohrum,
/datum/commodity/trader/gragg/cobryl,
/datum/commodity/trader/gragg/syreline)
base_goods_sell = list(/datum/commodity/trader/gragg/char,
/datum/commodity/trader/gragg/erebite,
/datum/commodity/trader/gragg/cerenkite,
/datum/commodity/trader/gragg/plasmastone,
/datum/commodity/trader/gragg/uqill,
/datum/commodity/trader/gragg/artifact)
dialogue_greet = list("HELLO. WANT BUY TASTY ROCKS. TRADE?",
"HUNGRY. WANT ORE FOR EAT. TRADE?",
"WANT DELICIOUS ORE. SELL YOU NOT SO DELICIOUS ORE. TRADE?")
dialogue_leave = list("UGH. FUCK THIS.",
"YOU TOO STUPID. GOING ELSEWHERE NOW.",
"SQUISHY BRAIN TOO DUMB. STONE BRAIN BETTER. LEAVING NOW.")
dialogue_purchase = list("ENJOY. GOT TASTY ROCKS TO TRADE?",
"NOT KNOW WHY WANT THAT. BUT YOURS NOW ANYWAY.",
"DEAL. NOW, GOT ORE FOR ME?")
dialogue_haggle_accept = list("UGH. FINE.",
"OKAY. BUT LESS TALK. MORE SELL ORE.",
"FUCK SAKE. FINE.",
"FINE. WHATEVER. CAN HAVE ORE YET?",
"FINE. BUT ENOUGH TALK. TRADE NOW OR FORGET IT.")
dialogue_haggle_reject = list("NO.",
"NOT *THAT* HUNGRY. CHRIST.",
"NOT GOOD DEAL. YOU STUPID?",
"NO. NO. NO.",
"NO. NO MORE TALK. TRADE NOW OR FORGET IT.")
dialogue_wrong_haggle_accept = list("OK. NOT GOING COMPLAIN.")
dialogue_wrong_haggle_reject = list("WHAT? NOT MAKE SENSE. YOU STUPID?")
dialogue_cant_afford_that = list("NOT ENOUGH CREDITS. MAYBE SELL ORE TO ME FIRST.",
"NO. TOO EXPENSIVE FOR YOU.",
"HUMAN BANK ACCOUNT NOT HAVE ENOUGH DELICIOUS GOLD.")
dialogue_out_of_stock = list("SORRY. NO MORE OF THAT.",
"RAN OUT OF THAT.")
set_up_goods()
..()
var/datum/commodity/COM = new /datum/commodity/trader/gragg/starstone(src)
src.goods_buy += COM
// Gragg is selling these things
/datum/commodity/trader/gragg/char
comname = "Char"
comtype = /obj/item/raw_material/char
price_boundary = list(20,40)
possible_names = list("SELLING CHAR. NOT EVEN FOOD.",
"SELLING CHAR ORE. TRIED TO COOK. BURNT IT.",
"SELLING CHAR. FLAKY. GROSS.")
/datum/commodity/trader/gragg/erebite
comname = "Strange Red Rock"
comtype = /obj/item/raw_material/erebite
amount = 5
price_boundary = list(300,500)
possible_names = list("SELLING GROSS SPICY ROCK. NOT GOOD EAT.",
"SELLING WEIRD RED ROCK. GIVES GAS.",
"SELLING TERRIBLE TO EAT RED ROCK.")
/datum/commodity/trader/gragg/cerenkite
comname = "Toxic Blue Rock"
comtype = /obj/item/raw_material/cerenkite
amount = 5
price_boundary = list(200,400)
possible_names = list("SELLING BAD TASTING ROCK. NOT GOOD EAT.",
"SELLING GLOWY BLUE ROCK. MAKES SICK.",
"SELLING TERRIBLE TO EAT BLUE ROCK.")
/datum/commodity/trader/gragg/plasmastone
comname = "Volatile Purple Rock"
comtype = /obj/item/raw_material/plasmastone
amount = 5
price_boundary = list(400,700)
possible_names = list("SELLING AWFUL PURPLE ROCK. TASTE TERRIBLE.",
"SELLING NASTY PURPLE ROCK. EXPLODE KIND OF EASY.",
"SELLING TERRIBLE TO EAT PURPLE ROCK.")
/datum/commodity/trader/gragg/uqill
comname = "Rock Worm Poop"
comtype = /obj/item/raw_material/uqill
amount = 5
price_boundary = list(500,600)
possible_alt_types = list(/obj/item/raw_material/gemstone)
alt_type_chance = 10
possible_names = list("SELLING ROCK WORM POOP. NOT KNOW WHY YOU WANT THAT. BUT THERE IT IS.",
"SELLING ROCK WORM POOP. NOT EATING THAT.",
"SELLING SHIT. LITERAL SHIT. NEED MONEY OKAY. NO JUDGING.")
/datum/commodity/trader/gragg/artifact
comname = "Unknown Item"
comtype = /obj/item/artifact
amount = 1
price_boundary = list(1000,50000)
possible_alt_types = list(/obj/item/artifact/activator_key,/obj/item/artifact/forcewall_wand,
/obj/item/artifact/melee_weapon,/obj/item/artifact/teleport_wand,
/obj/item/cell/artifact,/obj/item/gun/energy/artifact,/obj/item/raw_material/miracle,/obj/item/mining_tool)
alt_type_chance = 90
possible_names = list("SELLING WEIRD THING I DUG UP. DONT KNOW WHAT IS.",
"ODD LITTLE THING. DUG IT UP. NO IDEA. CAN BUY IF WANT.")
// Gragg wants these things
/datum/commodity/trader/gragg/rock
comname = "Rock"
comtype = /obj/item/raw_material/rock
price_boundary = list(30,60)
possible_names = list("BUYING PLAIN ROCK. NOT ORE, JUST ROCK. STOCKING UP ON FOOD.",
"BUYING PLAIN ROCK. NOT METAL OR CRYSTAL, JUST STONE.")
/datum/commodity/trader/gragg/mauxite
comname = "Mauxite"
comtype = /obj/item/raw_material/mauxite
price_boundary = list(60,120)
possible_names = list("BUYING MAUXITE. CRUNCHY AND DELICIOUS.",
"BUYING MAUXITE. GOOD MEAL FOR LITHOVORE. HELPS GROW STRONG CARAPACE.")
/datum/commodity/trader/gragg/bohrum
comname = "Bohrum"
comtype = /obj/item/raw_material/bohrum
price_boundary = list(250,400)
possible_names = list("BUYING BOHRUM. GOES GOOD IN STONE SOUP.",
"BUYING BOHRUM. VERY DENSE. GOOD AND FILLING.")
/datum/commodity/trader/gragg/cobryl
comname = "Cobryl"
comtype = /obj/item/raw_material/cobryl
price_boundary = list(200,600)
possible_names = list("BUYING COBRYL. MAKE GOOD SNACK.",
"BUYING COBRYL. TASTY.")
/datum/commodity/trader/gragg/syreline
comname = "Syreline"
comtype = /obj/item/raw_material/syreline
price_boundary = list(800,5000)
possible_names = list("BUYING SYRELINE. NICE SWEET TREAT NOW AND THEN.",
"BUYING SYRELINE. NOT TOO MANY THOUGH. DON'T WANT FAT.")
/datum/commodity/trader/gragg/starstone
comname = "Rare star-shaped jewel"
comtype = /obj/item/raw_material/starstone
price_boundary = list(3000000,3000000)
possible_names = list("WANT BUY PALE BLUE STAR-SHAPED GEMSTONE. EXTREMELY RARE. SELL TO ME IF FIND.")
+183
View File
@@ -0,0 +1,183 @@
/datum/trader/pianzi_hundan
// Lizardman dude in chinese finery.
// A total asshole who'll rip you off most of the time.
name = "Pianzi Hundan"
picture = "lizardman.png"
crate_tag = "PIANZI"
hiketolerance = 33
base_patience = list(12,20)
chance_leave = 25
chance_arrive = 25
asshole = 1
max_goods_buy = 2
max_goods_sell = 5
base_goods_buy = list(/datum/commodity/trader/pianzi/herbs,
/datum/commodity/trader/pianzi/crystalglass,
/datum/commodity/trader/pianzi/telecrystal,
/datum/commodity/trader/pianzi/artifact,
/datum/commodity/trader/pianzi/cigarettes)
base_goods_sell = list(/datum/commodity/trader/pianzi/metal,
/datum/commodity/trader/pianzi/bees,
/datum/commodity/trader/pianzi/cameraviewers,
/datum/commodity/trader/pianzi/scanners,
/datum/commodity/trader/pianzi/concgloves,
/datum/commodity/trader/pianzi/medicine,
/datum/commodity/trader/pianzi/wine,
/datum/commodity/trader/pianzi/recdrugs,
/datum/commodity/trader/pianzi/seeds)
dialogue_greet = list("Why hello there, my good friend! Plenty of wares today, as usual! Care to take a browse?",
"Ahh, my good friend, a pleasure to see you as always! Come to browse Pianzi's menagerie of delightful goods?",
"Welcome, welcome my good friend! How nice to see you! Do take advantage of my deals, hee hee! It's why I make them!")
dialogue_leave = list("My goodness, DO look at the time! I must be off, deals to make! Ta-ta for now, my good friend!",
"Ah.. I er.. have a business meeting to attend to. I forgot all about it! Ciao for now, my good friend!",
"Ugh... *cough* Um, I do apologize my good friend, but I must depart. Important business to attend to! Arrivederci!")
dialogue_purchase = list("Another fine transaction, my good friend! I knew I could count on your raw business acumen!",
"Another deal for Pianzi. And you, too! Don't you love the fruits of mutual business deals? Hee hee!",
"Excellent choice, my good friend. Capital! You and I make quite the team when it comes to profits!")
dialogue_haggle_accept = list("Ah! My good friend, you wound me. I can concede this much, though...",
"Well, perhaps if we meet halfway... is this an acceptable price?",
"Oh my. You'll make poor Pianzi go broke at this rate!",
"Good grief. I thought we were friends? Nevertheless, I can forgive you if we agree on this much...",
"Well, my good friend. This is my final offer, I'd have to be insane to cut you a better bargain than this!")
dialogue_haggle_reject = list("Now now, my good friend. Let's not get TOO eager.",
"Well now! That's just rude! Fortunatley I can forgive you, since we're such good friends.",
"I don't think I heard you correctly there, my good friend.",
"Oh come now, I know you don't really mean that.",
"I can see you're not having the best of days, my good friend. I suggest we make a trade now and stop all this silly haggling, hmm?")
dialogue_wrong_haggle_accept = list("Why, that's just capital! A wonderful proposition! Don't mind if I do!")
dialogue_wrong_haggle_reject = list("Ah my good friend, tha- wait, what? Hee hee! I think you typed the wrong number!")
dialogue_cant_afford_that = list("Oh dear, oh dear. It looks like your reserves of capital are running a little too dry for Pianzi's taste, my good friend!",
"Ahh, such a pity. You haven't enough credits! You really aught to stop making deals with those other traders. They're just ripping you off, you know!",
"Oh my. Not enough credits! That's a shame, such a shame. I thought you had more business sense than this, my good friend!")
dialogue_out_of_stock = list("Hmm. That item appears to be out of stock! No suprise, with such quality! Hee hee!",
"Oh dear. My reserves of that item have ran out! Too bad, my good friend!")
// Pianzi is selling these things
/datum/commodity/trader/pianzi/metal
comname = "Sheets of Construction Supplies"
comtype = /obj/item/sheet/steel
price_boundary = list(5,9)
possible_alt_types = list(/obj/item/paper)
alt_type_chance = 50
possible_names = list("I am selling sheets of a lightweight and flexible building material! Very useful!",
"Now for sale, I have these material sheets - very light, very flexible. Could be used for anything, theoretically!")
/datum/commodity/trader/pianzi/bees
comname = "Live Insects"
comtype = /obj/critter/domestic_bee
amount = 10
price_boundary = list(75,120)
possible_alt_types = list(/obj/critter/roach)
alt_type_chance = 50
possible_names = list("I have a number of very friendly live insects for sale! Very cute too!",
"I'm now selling some very adorable bugs! They could be very useful for hydroponics work!")
/datum/commodity/trader/pianzi/cameraviewers
comname = "Camera Viewing Devices"
comtype = /obj/item/device/camera_viewer
amount = 3
price_boundary = list(300,500)
possible_alt_types = list(/obj/item/device/flashlight)
alt_type_chance = 55
possible_names = list("Now for sale; a handful of devices that can be used for viewing cameras far more easily!",
"I happen to have a few devices that will make camera viewing much easier! It's a bargain for this price!")
/datum/commodity/trader/pianzi/scanners
comname = "Scanning Devices"
comtype = /obj/item/emeter
amount = 10
price_boundary = list(100,500)
possible_alt_types = list(/obj/item/oreprospector,/obj/item/plantanalyzer,/obj/item/device/healthanalyzer)
alt_type_chance = 40
possible_names = list("I have some spare scanning devices for sale! Think of all the data you could scan, my good friend!",
"I seem to have quite a lot of spare left over scanners. I could sell them to you, for a price!")
/datum/commodity/trader/pianzi/concgloves
comname = "Mining Gloves"
comtype = /obj/item/clothing/gloves/concussive
amount = 2
price_boundary = list(1000,2500)
possible_alt_types = list(/obj/item/clothing/gloves/black)
alt_type_chance = 50
possible_names = list("I've got some gloves your miners may find very useful! Very black and substantial!",
"Now for sale, some gloves i've been informed your mining crew will love!")
/datum/commodity/trader/pianzi/medicine
comname = "Medicine"
comtype = /obj/item/reagent_containers/glass/beaker/large/brute
amount = 5
price_boundary = list(250,1000)
possible_alt_types = list(/obj/item/reagent_containers/glass/beaker/large/epinephrine,/obj/item/storage/firstaid/old)
alt_type_chance = 25
possible_names = list("Everyone needs medicine at some point. Luckily, Pianzi has some for sale!",
"Heal what ails you with this medicine I have for sale!")
/datum/commodity/trader/pianzi/wine
comname = "Vintage Drink"
comtype = /obj/item/reagent_containers/food/drinks/bottle/wine
amount = 8
price_boundary = list(25,75)
possible_alt_types = list(/obj/item/reagent_containers/food/drinks/bottle/vintage)
alt_type_chance = 50
possible_names = list("Cause to celebrate? This deal certainly is! Vintage drink of the best quality!",
"I've come across some very prized vintage drink! Excellent for parties!")
/datum/commodity/trader/pianzi/recdrugs
comname = "Addiction Aid Patches"
comtype = /obj/item/reagent_containers/patch/nicotine
amount = 50
price_boundary = list(15,150)
possible_alt_types = list(/obj/item/reagent_containers/patch/LSD)
alt_type_chance = 33
possible_names = list("Having trouble with addictive drugs? No worries! Just slap on one of these patches and your worries will go away!",
"Now for sale, some light drug patches. Addiction won't be a problem if you use these!")
/datum/commodity/trader/pianzi/seeds
comname = "Unusual Plant Seeds"
comtype = /obj/item/seed/alien
price_boundary = list(90,150)
possible_alt_types = list(/obj/item/seed/creeper)
alt_type_chance = 75
possible_names = list("Love growing unusual plants? Then these seeds are for you, my good friend!",
"Your botanists will love the opportunity to grow these very strange and unusual plant seeds!")
// Pianzi wants these things
/datum/commodity/trader/pianzi/herbs
comname = "Medical Herbs"
comtype = /obj/item/plant/herb/
price_boundary = list(30,250)
possible_names = list("My good friend, I am rather low on medical herbs right now. Perhaps you could sell me some, hmm?",
"Everyone's in need of medical herbs, and Pianzi is no exception! I'll pay top premium, as always!")
/datum/commodity/trader/pianzi/crystalglass
comname = "Crystal Glass"
comtype = /obj/item/sheet/glass/crystal/
price_boundary = list(400,600)
possible_names = list("I have need of some glass made from crystallised plasma, my good friend! I'll pay a very good price!",
"I'm currently paying a very good price for crystallised plasma glass! It's all the rage, I'm sure you know!")
/datum/commodity/trader/pianzi/telecrystal
comname = "Telecrystal"
comtype = /obj/item/raw_material/telecrystal
price_boundary = list(500,2500)
possible_names = list("Right now I'm in need of raw Telecrystals. Buying for top price as always!",
"Telecrystals, weird little things aren't they? What's even more weird is that i'm also buying them for such a great price!")
/datum/commodity/trader/pianzi/artifact
comname = "Useless Handheld Artifacts"
comtype = /obj/item/artifact/
price_boundary = list(1000,4000)
possible_names = list("I'm collecting handheld artifacts! I only want inert ones, though!",
"Right now i'd like to get my hands on some inert handheld artifacts! Keep the dangerous ones for yourself though.")
/datum/commodity/trader/pianzi/cigarettes
comname = "Cigarettes"
comtype = /obj/item/clothing/mask/cigarette/
price_boundary = list(60,500)
possible_names = list("Cigarettes are always a good trade. Right now, I'd like to buy any you have!",
"Did you know cigarettes are currency on some colonies? That's why I'd like to buy any you can spare!")
+165
View File
@@ -0,0 +1,165 @@
/datum/trader
var/name = "trader" // The name of the trader (duh)
var/picture = "generic.png" // What they look like on comms
var/crate_tag = "trader" // What to label a crate if selling to them
var/list/base_patience = list(0,0) // min and max patience for this trader
var/patience = 0 // how many times you can haggle the price before they get pissed off and leave, randomise it
var/hiketolerance = 20// if the haggled price hike is this % or greater of the current price, reject it
var/hidden = 0 // Makes the trader not show up on the QM console
var/chance_leave = 20 // Chance for a trader to go hidden during a market shift
var/chance_arrive = 33 // Chance for a trader to stop hiding during a market shift
var/asshole = 0 // will accept wrong-direction haggles
// lists of commodity datums that the trader will buy or sell, and the cart
// these are the base lists of commodities this trader will have
var/list/base_goods_buy = list()
var/list/base_goods_sell = list()
// these are the max amount of entries the trader will have on each list
var/max_goods_buy = 1
var/max_goods_sell = 1
// and these three are the active ones used for gameplay
var/list/goods_buy = list()
var/list/goods_sell = list()
var/list/shopping_cart = list()
var/current_message = "what"// draws from dialogue to display a message
// dialogue banks
var/list/dialogue_greet = list("Hello there. Care to take a look at my wares?")
var/list/dialogue_leave = list("This is going nowhere. I'm outta here.")
var/list/dialogue_purchase = list("Thank you for your purchase! Your goods should arrive shortly.")
var/list/dialogue_haggle_accept = list("Alright, how's this sound?",
"You drive a hard bargain. How's this price?",
"You're busting my balls here. How's this?",
"I'm being more than generous here, I think you'll agree.",
"This is my final offer. Can't do better than this.")
var/list/dialogue_haggle_reject = list("No way. That's too much of a stretch.",
"You're kidding, right?",
"That's just not reasonable.",
"I can't go for that.",
"I'm afraid that's unacceptable.")
var/list/dialogue_wrong_haggle_accept = list("...huh. If you say so!")
var/list/dialogue_wrong_haggle_reject = list("Are you sure about that?")
var/list/dialogue_cant_afford_that = list("I'm sorry, but you can't afford that.")
var/list/dialogue_out_of_stock = list("Sorry, that item is out of stock.")
var/currently_selling = 0 //Are we currently processing an order?
New()
src.current_message = pick(src.dialogue_greet)
src.patience = rand(src.base_patience[1],src.base_patience[2])
if (src.max_goods_buy > src.base_goods_buy.len)
src.max_goods_buy = src.base_goods_buy.len
if (src.max_goods_sell > src.base_goods_sell.len)
src.max_goods_sell = src.base_goods_sell.len
src.set_up_goods()
proc/set_up_goods()
// This is called in New and also when the trader comes back from being away for a while
// It basically clears out and rejumbles their commodity lists to keep things fresh
src.goods_buy = new/list()
src.goods_sell = new/list()
src.wipe_cart()
var/list/goods_buy_temp = list()
goods_buy_temp |= base_goods_buy
var/list/goods_sell_temp = list()
goods_sell_temp |= base_goods_sell
var/howmanybuy = rand(1,src.max_goods_buy)
while(howmanybuy > 0)
howmanybuy--
var/the_commodity = pick(goods_buy_temp)
var/datum/commodity/COM = new the_commodity(src)
src.goods_buy += COM
goods_buy_temp -= the_commodity
var/howmanysell = rand(1,src.max_goods_sell)
while(howmanysell > 0)
howmanysell--
var/the_commodity = pick(goods_sell_temp)
var/datum/commodity/COM = new the_commodity(src)
if(COM.type == /datum/commodity) logTheThing("debug", src, null, "<B>SpyGuy/Traders:</B> [src] got a /datum/commodity when trying to set up stock with [the_commodity]")
src.goods_sell += COM
goods_sell_temp -= the_commodity
proc/haggle(var/datum/commodity/goods,var/askingprice,var/buying = 0)
// if something's gone wrong and there's no input, reject the haggle
// also reject if there's no change in the price at all
if (!askingprice || !goods) return
if (askingprice == goods.price) return
// if the player is being dumb and haggling in the wrong direction, tell them
// unless the trader is a dick in which case accept the terrible haggle outright
if ((buying && askingprice > goods.price) || (!buying && askingprice < goods.price))
if (src.asshole)
src.current_message = pick(src.dialogue_wrong_haggle_accept)
goods.price = askingprice
return
else
src.current_message = pick(src.dialogue_wrong_haggle_reject)
return
// check if the price increase % of the haggle is more than this trader will tolerate
var/adjustedTolerance = src.hiketolerance
if(istype(usr, /mob/living/carbon/human))
var/mob/living/carbon/human/H = usr
if(H.traitHolder && H.traitHolder.hasTrait("smoothtalker"))
adjustedTolerance = round(adjustedTolerance * 1.5)
var/hikeperc = askingprice - goods.price
hikeperc = (hikeperc / goods.price) * 100
var/negatol = 0 - adjustedTolerance
if ((buying && hikeperc <= negatol) || (!buying && hikeperc >= adjustedTolerance))
// you are being a rude nerd and pushing it too far!
src.current_message = pick(src.dialogue_haggle_reject)
src.patience--
if (src.patience == 0)
src.current_message = src.dialogue_haggle_reject[src.dialogue_haggle_reject.len]
return
// now, the actual haggling part! find the middle ground between the two prices
var/middleground = (goods.price + askingprice) / 2
// now slide it in the trader's favor slightly (hey, they're haggling too)
var/negotiate = abs(goods.price-middleground)-1
if (buying)
goods.price = round(middleground + rand(0,negotiate))
else
if(middleground-goods.price <= 0.5)
goods.price = round(middleground + 1)
else
goods.price = round(middleground - rand(0,negotiate))
src.current_message = pick(src.dialogue_haggle_accept)
src.patience--
// warn the player if the trader isn't going to take any more haggling
if (src.patience == 0)
src.current_message = src.dialogue_haggle_accept[src.dialogue_haggle_accept.len]
proc/wipe_cart(var/sold_stuff)
for (var/datum/commodity/trader/incart/COM in src.shopping_cart)
if (COM.reference && istype(COM.reference,/datum/commodity/))
if (COM.reference.amount > -1 && !sold_stuff) //If we sold shit then don't increase the amount. Fuck.
COM.reference.amount += COM.amount
src.shopping_cart -= COM
src.shopping_cart.Cut()
/datum/commodity/trader/
var/listed_name = "a thing!!!" // What it shows up as outside the shopping cart
var/list/possible_names = list() // List of names the trader will call this commodity
var/list/possible_alt_types = list() // List of things this trade can be other than the base path
var/alt_type_chance = 0 // The chance it will be one of those alternate things
var/list/price_boundary = list(0,0) // Minimum and maximum price for this commodity
New()
..()
if(src.possible_names.len)
src.listed_name = pick(src.possible_names)
else
src.listed_name = src.comname
if(prob(src.alt_type_chance) && src.possible_alt_types.len)
src.comtype = pick(src.possible_alt_types)
src.price = rand(src.price_boundary[1],src.price_boundary[2])
/datum/commodity/trader/incart/
var/datum/commodity/reference = null
+146
View File
@@ -0,0 +1,146 @@
/datum/trader/vurdalak
// Dude in a cloak in the dark.
// A creepy guy who buys and sells really suspicious shit.
name = "Vurdalak the Shrouded"
picture = "cloakdude.png"
crate_tag = "SHROUD"
hiketolerance = 10
base_patience = list(2,12)
chance_leave = 10
chance_arrive = 10
max_goods_buy = 3
max_goods_sell = 1
base_goods_buy = list(/datum/commodity/trader/vurdalak/meat,
/datum/commodity/trader/vurdalak/brains,
/datum/commodity/trader/vurdalak/deathweed,
/datum/commodity/trader/vurdalak/toxicvenne,
/datum/commodity/trader/vurdalak/amanita,
/datum/commodity/trader/vurdalak/roburger)
base_goods_sell = list(/datum/commodity/trader/vurdalak/artifact)
dialogue_greet = list("Well met. We have several items for sale, as well as several desired articles.",
"Greetings. We believe it would be mutually profitable for the both of us to engage in commerce.",
"Hail. We have been led to believe you have several items we are interested in acquiring. Perhaps an agreement could be reached.")
dialogue_leave = list("We can delay here no longer. These negotiations have become most unproductive. Farewell.",
"Fool. You have not treated these proceedings with the due consideration they require. We are leaving.",
"This is a waste of time. We will take our leave to engage in more important pursuits.")
dialogue_purchase = list("We thank you for your custom.",
"Excellent. You will recieve your goods shortly.",
"As we suspected, this has benefited us both.")
dialogue_haggle_accept = list("If that is what it takes to facilitate this transaction, so be it.",
"Very well. You should find this compromise to be adequate.",
"We would find your proposition offensive, were we not in such need of commerce.",
"We find this compromise to be... satisfactory. Barely.",
"We will afford you no further leniency. Make the transaction now.")
dialogue_haggle_reject = list("We find your offer unacceptable. We suggest you begin taking this proposition seriously.",
"This is no time for levity, fool.",
"That offer is unacceptable.",
"We refuse your foolish and nonsensical offer.",
"Enough of your nonsense. Make a trade now, or we shall depart.")
dialogue_wrong_haggle_accept = list("Offer accepted.")
dialogue_wrong_haggle_reject = list("It makes no sense for you to spend more credits than we have requested, you fool.")
dialogue_cant_afford_that = list("You cannot afford that transaction.",
"Your budget is too diminished to fulfill these terms.",
"We do not give charity. You require more credits.")
dialogue_out_of_stock = list("Unfortunatley, we no longer possess any of that item to sell.",
"Our stocks of that item have been exhausted.")
set_up_goods()
..()
var/datum/commodity/the_commodity = null
var/pickwhich = rand(1,3)
switch(pickwhich)
if(1)
the_commodity = /datum/commodity/trader/vurdalak/obsidiancrown
if(2)
the_commodity = /datum/commodity/trader/vurdalak/ancientarmor
if(3)
the_commodity = /datum/commodity/trader/vurdalak/relic
var/datum/commodity/COM = new the_commodity(src)
src.goods_buy += COM
// Vurdalak is selling these things
/datum/commodity/trader/vurdalak/artifact
comname = "Alien Artifacts"
comtype = /obj/item/artifact
amount = 4
price_boundary = list(4000,6000)
possible_alt_types = list(/obj/item/artifact/activator_key,/obj/item/artifact/forcewall_wand,
/obj/item/artifact/melee_weapon,/obj/item/artifact/teleport_wand,
/obj/item/cell/artifact,/obj/item/gun/energy/artifact,
/obj/machinery/artifact/bio_damage_field_generator,/obj/machinery/artifact/gravity_well_generator/,
/obj/machinery/artifact/noisy_thing,/obj/machinery/artifact/plant_helper,
/obj/artifact/bomb,/obj/artifact/borgifier,/obj/artifact/forcefield_generator,
/obj/artifact/healer_bio,/obj/artifact/teleport_recaller)
alt_type_chance = 95
possible_names = list("We are selling artifacts of alien origin. We cannot verify their purpose.",
"We have a collection of alien artifacts you may be interested in.")
// Vurdalak wants these things
/datum/commodity/trader/vurdalak/meat
comname = "Raw Meat"
comtype = /obj/item/reagent_containers/food/snacks/ingredient/meat/
price_boundary = list(30,150)
possible_names = list("Our stocks of raw meat are running low. The condition is of no concern.",
"We wish to purchase raw meat of any kind. Spoilage is not an issue.")
/datum/commodity/trader/vurdalak/brains
comname = "Brains"
comtype = /obj/item/organ/brain/
price_boundary = list(1000,3500)
possible_names = list("Our stocks of brains are running low. We care not for the condition.",
"We require the excised brains of living creatures. If you have such an item, sell it to us.")
/datum/commodity/trader/vurdalak/deathweed
comname = "Deathweed Cannabis"
comtype = /obj/item/plant/herb/cannabis/black
price_boundary = list(75,400)
possible_names = list("We require black leaves from a mutated cannabis plant.",
"There is a mutation of the cannabis plant that renders the plant a deep black. We wish to purchase leaves of this strain.")
/datum/commodity/trader/vurdalak/toxicvenne
comname = "Black Venne"
comtype = /obj/item/plant/herb/venne/toxic
price_boundary = list(50,500)
possible_names = list("The venne plant has a mutation that turns its fibers black. Sell us these fibers.",
"We require black venne fibers from a mutated venne plant.")
/datum/commodity/trader/vurdalak/amanita
comname = "Amanita Mushrooms"
comtype = /obj/item/reagent_containers/food/snacks/mushroom/amanita
price_boundary = list(180,520)
possible_names = list("We wish to buy white amanita mushrooms.",
"We require white mushrooms grown from a mutated mushroom plant.")
/datum/commodity/trader/vurdalak/roburger
comname = "Roburgers"
comtype = /obj/item/reagent_containers/food/snacks/burger/roburger
price_boundary = list(125,550)
possible_names = list("There is a burger known to transmute living beings into machines. We wish to purchase these.",
"We are looking to buy the human culinary creation known as \"Roburgers\".")
// Unique things that Vurdalak wants
/datum/commodity/trader/vurdalak/obsidiancrown
comname = {"We are looking to buy a reputedly unique relic that is said to be jet-black and horned in appearance,
and hails from another dimension of space and time. We are willing to pay a considerable premium to purchase it,
should you locate the curio in question."}
comtype = /obj/item/clothing/head/void_crown
price_boundary = list(20000,100000)
/datum/commodity/trader/vurdalak/ancientarmor
comname = {"We have heard of an unusual relic that takes on the appearance of a black suit of armor adorned with bones.
If you come by such an item, we strongly advise against wearing it. Instead, sell it to us, we have a great deal of funds
allocated specifically for purchasing this item."}
comtype = /obj/item/clothing/suit/armor/ancient
price_boundary = list(20000,100000)
/datum/commodity/trader/vurdalak/relic
comname = {"We are seeking a reputed relic that takes the appearance of a small grey box adorned with a simplistic
symbol. If you have such an item, we are willing to pay a very large price for it."}
comtype = /obj/item/relic
price_boundary = list(15000,75000)