Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds special offers to overmap traders #2573

Merged
merged 2 commits into from
Dec 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 61 additions & 8 deletions nsv13/code/modules/overmap/traders.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
var/shortname = "DM" //Used in Brazil.
var/list/stonks = list() //The trader's inventory.
var/list/sold_items = list()
var/list/special_offers = list() //Items locked behind points
var/faction_type = null //What faction does the dude belong to.
var/system_type = "unaligned" //In what systems do they spawn?
//Fluff / voice stuff
Expand Down Expand Up @@ -48,11 +49,20 @@
yellow_pages_dat += "<font size = \"2\">"
for(var/itemPath in sold_items)
var/datum/trader_item/TI = new itemPath()
TI.price = rand(TI.price/2, TI.price*4)
TI.stock = rand(TI.stock/2, TI.stock*2) //How much we got in stock boys
TI.price = round(rand(TI.price/2, TI.price*4))
TI.stock = round(rand(TI.stock/2, TI.stock*2)) //How much we got in stock boys
stonks += TI
TI.owner = src
yellow_pages_dat += "[TI.stock]x [TI.name] ([TI.price] ea.) - <i>[TI.desc]</i><br /><br />"
for(var/itemPath in special_offers)
var/datum/trader_item/TI = new itemPath()
if(system_type == SSstar_system.find_main_overmap().faction && F.tickets >= TI.special_requirement) //Right now we use faction tickets to unlock better items
TI.name = "SPECIAL OFFER! " + TI.name //Advertising is very important
TI.price = round(rand((2*TI.price)/3, TI.price*2)) //These will be more expensive by default already and have less chaotic prices
TI.stock = round(rand(TI.stock/2, TI.stock*2))
stonks += TI
TI.owner = src
yellow_pages_dat += "SPECIAL OFFER! [TI.stock]x [TI.name] ([TI.price] ea.) - <i>[TI.desc]</i><br /><br />"
yellow_pages_dat += "</font>"

/datum/trader_item
Expand All @@ -62,6 +72,7 @@
var/unlock_path = null
var/stock = 1 //How many of these items are usually stocked, this is randomized
var/owner = null
var/special_requirement //How many tickets do we need to unlock this item in the store?

/datum/trader_item/proc/on_purchase(obj/structure/overmap/OM)
return OM.send_supplypod(unlock_path)
Expand Down Expand Up @@ -138,7 +149,15 @@
faction_type = FACTION_ID_NT
system_type = "nanotrasen"
image = "https://cdn.discordapp.com/attachments/701841640897380434/764557336684527637/unknown.png"
sold_items = list(/datum/trader_item/torpedo, /datum/trader_item/missile, /datum/trader_item/c45, /datum/trader_item/pdc, /datum/trader_item/deck_gun_autorepair, /datum/trader_item/yellow_pages)
sold_items = list(/datum/trader_item/torpedo, \
/datum/trader_item/missile, \
/datum/trader_item/c45, \
/datum/trader_item/pdc, \
/datum/trader_item/pdc_circuit, \
/datum/trader_item/deck_gun_autorepair, \
/datum/trader_item/yellow_pages)
special_offers = list(/datum/trader_item/firing_electronics, \
/datum/trader_item/vls_circuit)

/datum/trader/armsdealer/syndicate
name = "DonkCo Warcrime Emporium"
Expand All @@ -147,8 +166,20 @@
faction_type = FACTION_ID_SYNDICATE
system_type = "syndicate"
//Top tier trader with the best items available.
sold_items = list(/datum/trader_item/hellfire,/datum/trader_item/torpedo, /datum/trader_item/missile, /datum/trader_item/c20r, /datum/trader_item/c45, /datum/trader_item/stechkin, \
/datum/trader_item/pdc, /datum/trader_item/fighter/syndicate, /datum/trader_item/overmap_shields, /datum/trader_item/deck_gun_autoelevator, /datum/trader_item/yellow_pages)
sold_items = list(/datum/trader_item/hellfire, \
/datum/trader_item/torpedo, \
/datum/trader_item/missile, \
/datum/trader_item/c20r, \
/datum/trader_item/c45, \
/datum/trader_item/stechkin, \
/datum/trader_item/pdc, \
/datum/trader_item/pdc_circuit, \
/datum/trader_item/fighter/syndicate, \
/datum/trader_item/overmap_shields, \
/datum/trader_item/deck_gun_autoelevator, \
/datum/trader_item/yellow_pages)
special_offers = list(/datum/trader_item/firing_electronics, \
/datum/trader_item/vls_circuit)
station_type = /obj/structure/overmap/trader/syndicate
image = "https://cdn.discordapp.com/attachments/728055734159540244/764570187357093928/unknown.png"
greetings = list("You've made it pretty far in, huh? We won't tell if you're buying...", "Freedom isn't free, buy a gun to secure yours.", "Excercise your right to bear arms now!")
Expand Down Expand Up @@ -180,7 +211,13 @@
"CzanekCorp here. We got a new shipment in, you down for talking turkey?",\
"CzanekCorp, we got repairs and goods on a budget, you in?")
on_purchase = list("Yes, we know the tazers aren't the safest, but if you don't like 'em, stop buying 'em, eh?", "Good doing business with you. Good luck out there, killer.", "About time we got somebody who knows what they're doing. Here, free shipping!", "No refunds, no returns!")
sold_items = list(/datum/trader_item/ship_repair,/datum/trader_item/fighter/light,/datum/trader_item/fighter/heavy,/datum/trader_item/fighter/utility, /datum/trader_item/taser, /datum/trader_item/taser_ammo, /datum/trader_item/yellow_pages)
sold_items = list(/datum/trader_item/ship_repair, \
/datum/trader_item/fighter/light, \
/datum/trader_item/fighter/heavy, \
/datum/trader_item/fighter/utility, \
/datum/trader_item/taser, \
/datum/trader_item/taser_ammo, \
/datum/trader_item/yellow_pages)
station_type = /obj/structure/overmap/trader/shipyard
image = "https://cdn.discordapp.com/attachments/701841640897380434/764540586732421120/unknown.png"

Expand All @@ -193,7 +230,14 @@
"Have you come to dig or pay?",\
"We got minerals for you, so long as you've got a deposit for us.")
on_purchase = list("Maybe next time, dig it up yourself lazy gits!", "Credits have been withdrawn, Supplies inbound.", "Czanek would approve of this.", "If you're too afraid to get these yourself, I'm almost scared to give them to you. But money is money.")
sold_items = list(/datum/trader_item/mining_point_card, /datum/trader_item/gold, /datum/trader_item/diamond, /datum/trader_item/uranium, /datum/trader_item/silver, /datum/trader_item/bluespace_crystal, /datum/trader_item/titanium, /datum/trader_item/yellow_pages)
sold_items = list(/datum/trader_item/mining_point_card, \
/datum/trader_item/gold, \
/datum/trader_item/diamond, \
/datum/trader_item/uranium, \
/datum/trader_item/silver, \
/datum/trader_item/bluespace_crystal, \
/datum/trader_item/titanium, \
/datum/trader_item/yellow_pages)
station_type = /obj/structure/overmap/trader
image = "https://cdn.discordapp.com/attachments/612668662977134592/859132739147792444/unknown.png" //I don't wanna do this but I'm also not going to break the mold as to make it hopefully easier in future to fix.

Expand All @@ -210,7 +254,16 @@
desc = "Corporate approved aftermarket shipyard."
shortname = "MHE"
faction_type = FACTION_ID_NT
sold_items = list(/datum/trader_item/ship_repair/tier2, /datum/trader_item/flak,/datum/trader_item/fighter/light,/datum/trader_item/fighter/heavy,/datum/trader_item/fighter/utility, /datum/trader_item/fighter/judgement, /datum/trader_item/fighter/prototype, /datum/trader_item/railgun_disk, /datum/trader_item/yellow_pages)
sold_items = list(/datum/trader_item/ship_repair/tier2, \
/datum/trader_item/flak, \
/datum/trader_item/fighter/light, \
/datum/trader_item/fighter/heavy, \
/datum/trader_item/fighter/utility, \
/datum/trader_item/fighter/judgement, \
/datum/trader_item/fighter/prototype, \
/datum/trader_item/railgun_disk, \
/datum/trader_item/yellow_pages)
special_offers = list(/datum/trader_item/ship_repair/tier3)
station_type = /obj/structure/overmap/trader/shipyard

// HIM
Expand Down
42 changes: 37 additions & 5 deletions nsv13/code/modules/overmap/traders_items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,15 @@
repair_amount = 50
stock = 2

/datum/trader_item/ship_repair/tier3
name = "Deluxe ship repair"
desc = "A complete repair job of all of your ship's hull and armour, because you've earned it!"
price = 2000
failure_chance = 0
repair_amount = 100
stock = 1
special_requirement = 400 //Prove those scars are worth the cost

/datum/trader_item/ship_repair/on_purchase(obj/structure/overmap/OM)
OM.repair_all_quadrants(repair_amount, failure_chance)

Expand Down Expand Up @@ -166,17 +175,40 @@
/obj/item/ship_weapon/parts/loading_tray,\
)

/datum/trader_item/vls_circuit
name = "VLS tube circuit board"
desc = "The critical component for expanding your missile complement!"
price = 5000
stock = 10
unlock_path = /obj/item/circuitboard/machine/vls
special_requirement = 100 //At least put some effort into it

/datum/trader_item/firing_electronics
name = "Firing Electronics"
desc = "Essential electronics for building most modern naval weapons."
price = 20000
stock = 2
unlock_path = /obj/item/ship_weapon/parts/firing_electronics
special_requirement = 500 //Kick their ass!!!

/datum/trader_item/pdc_circuit
name = "PDC mount circuit board"
desc = "Not enough point defense? Just build more!"
price = 2500
stock = 4
unlock_path = /obj/item/circuitboard/machine/pdc_mount

/datum/trader_item/torpedo
name = "Standard Torpedo"
desc = "A standard torpedo for ship to ship combat."
price = 1000
stock = 10
price = 900 //Price is 1000 per in cargo
stock = 15
unlock_path = /obj/item/ship_weapon/ammunition/torpedo

/datum/trader_item/missile
name = "Standard Missile"
desc = "A standard missile for ship to ship combat."
price = 500
price = 500 //Price in cargo is 833 per, this is a real steal
stock = 20
unlock_path = /obj/item/ship_weapon/ammunition/missile

Expand Down Expand Up @@ -211,8 +243,8 @@
/datum/trader_item/pdc
name = "PDC Ammo Box"
desc = "PDC rounds for use in ship to ship guns."
price = 800
stock = 10
price = 175 //cost of buying in cargo is 200 per box
stock = 20
unlock_path = /obj/item/ammo_box/magazine/nsv/pdc

/datum/trader_item/anti_air
Expand Down
Loading