Baystation12 merchant port (#3155)

Port of the merchant mechanics from baystation12.
All of the trader, prices and most essential system are done, as well the job datum and the like. Mapping the shuttle, the base and a new dock will be done in a later pr.
Also adds phazon construction and several other items used in this pr.
The chance of the merchant slow being open at round start can be changed via the config, it is 20% by default.
This commit is contained in:
Alberyk
2017-08-04 15:36:04 -03:00
committed by Erki
parent 0f072e15e9
commit b4fa4a8b3a
82 changed files with 4539 additions and 146 deletions
+11 -3
View File
@@ -25,6 +25,7 @@ var/list/spawntypes = list()
/datum/spawnpoint/arrivals
display_name = "Arrivals Shuttle"
msg = "is inbound from the NTCC Odin"
disallow_job = list("Merchant")
/datum/spawnpoint/arrivals/New()
@@ -34,7 +35,7 @@ var/list/spawntypes = list()
/datum/spawnpoint/cryo
display_name = "Cryogenic Storage"
msg = "has completed cryogenic revival"
disallow_job = list("Cyborg")
disallow_job = list("Cyborg", "Merchant")
/datum/spawnpoint/cryo/New()
..()
@@ -43,8 +44,15 @@ var/list/spawntypes = list()
/datum/spawnpoint/cyborg
display_name = "Cyborg Storage"
msg = "has been activated from storage"
restrict_job = list("Cyborg")
restrict_job = list("Cyborg", "Merchant")
/datum/spawnpoint/cyborg/New()
..()
turfs = latejoin_cyborg
turfs = latejoin_cyborg
/datum/spawnpoint/merchant
display_name = "Merchant Station"
restrict_job = list("Merchant")
/datum/spawnpoint/merchant/New()
turfs = latejoin_merchant
@@ -0,0 +1,2 @@
/atom/proc/Value(var/base)
return base
@@ -0,0 +1,4 @@
/mob/living/carbon/human/Value(var/base)
. = ..()
if(species)
. *= species.rarity_value
@@ -0,0 +1,4 @@
/obj/Value()
. = ..()
for(var/a in contents)
. += get_value(a)
@@ -0,0 +1,35 @@
/obj/item/slime_extract/Value(var/base)
return base * Uses
/obj/item/ammo_casing/Value()
if(!BB)
return 1
return ..()
/obj/item/weapon/reagent_containers/Value()
. = ..()
if(reagents)
for(var/a in reagents.reagent_list)
var/datum/reagent/reg = a
. += reg.value * reg.volume
. = round(.)
/obj/item/stack/Value(var/base)
return base * amount
/obj/item/stack/material/Value()
if(!material)
return ..()
return material.value * amount
/obj/item/weapon/ore/Value()
var/material/mat = get_material_by_name(material)
if(mat)
return mat.value
return 0
/obj/item/weapon/material/Value()
return material.value * worth_multiplier
/obj/item/weapon/spacecash/Value()
return worth
@@ -0,0 +1,5 @@
/obj/machinery/Value()
. = ..()
if(stat & BROKEN)
. *= 0.5
. = round(.)
@@ -0,0 +1,5 @@
/obj/structure/barricade/Value()
return material.value
/obj/structure/bed/Value()
return ..() * material.value
+3
View File
@@ -0,0 +1,3 @@
//Workaround by Ginja due to the fact initial(parent_type) does not work.
#define PARENT(x) text2path(replacetext("[x]", regex("/\[^/\]+$"), ""))
+13
View File
@@ -0,0 +1,13 @@
/proc/get_value(atom/A) // A can be either type *or* instance; ie get_value(/obj) is valid, as is get_value(new /obj)
var/atom/t = ispath(A) ? A : A.type
while(!(t in worths)) // Find the first parent that is in the list
t = PARENT(t)
if(!t)
return 0
var/value = worths[t]
if(value >= 0) // Value zero or greater than zero, all instances have same value
return value
else // Negative. If it's a path, use -x, otherwise call Value() on the instance
if(ispath(A))
return -value
return A.Value(-value)
@@ -0,0 +1,35 @@
/obj/item/weapon/material
var/worth_multiplier = 1
//Rule of thumb is: worth more than the parts put in
//Finished good is worth more than its individual parts
/obj/item/weapon/material/kitchen
worth_multiplier = 1.1
/obj/item/weapon/material/butterfly
worth_multiplier = 8
/obj/item/weapon/material/harpoon
worth_multiplier = 15
/obj/item/weapon/material/hatchet
worth_multiplier = 6
/obj/item/weapon/material/minihoe
worth_multiplier = 6
/obj/item/weapon/material/scythe
worth_multiplier = 20
/obj/item/weapon/material/sword
worth_multiplier = 30
/obj/item/weapon/material/twohanded/fireaxe
worth_multiplier = 31
/obj/item/weapon/material/twohanded/spear
worth_multiplier = 7 //blade + stuff
/obj/item/weapon/material/star
worth_multiplier = 25
+89
View File
@@ -0,0 +1,89 @@
/material
var/value = 1
/material/uranium
value = 100
/material/diamond
value = 170
/material/gold
value = 40
/material/silver
value = 35
/material/phoron
value = 150
/material/stone/marble
value = 4
/material/steel
value = 4
/material/diona
value = 5
/material/steel/holographic
value = 0
/material/plasteel
value = 12
/material/plasteel/titanium
value = 10
/material/glass/reinforced
value = 2
/material/glass/phoron
value = 30
/material/glass/phoron/reinforced
value = 40
/material/osmium
value = 30
/material/tritium
value = 300
/material/mhydrogen
value = 100
/material/platinum
value = 200
/material/iron
value = 5
/material/voxalloy
value = 100
/material/wood
value = 3
/material/wood/holographic
value = 0
/material/cardboard
value = 0
/material/leather
value = 3
/material/hide
value = 5
/material/hide/xeno
value = 35
/material/hide/human
value = 35
/material/bone
value = 5
/material/bone/necromancer
value = 50
+603
View File
@@ -0,0 +1,603 @@
//These value assume that each unit is roughly a gram
/datum/reagent
var/value = 1 //per unit
/datum/reagent/blood
value = 2
/datum/reagent/antibodies
value = 6
/datum/reagent/water
value = 0
/datum/reagent/fuel
value = 6.8
/datum/reagent/acetone
value = 0.27
/datum/reagent/aluminum
value = 0.02
/datum/reagent/ammonia
value = 0.01
/datum/reagent/carbon
value = 0.2
/datum/reagent/copper
value = 0.02
/datum/reagent/ethanol
value = 0.01
/datum/reagent/butanol
value = 0.02
/datum/reagent/hydrazine
value = 0.017
/datum/reagent/iron
value = 0.01
/datum/reagent/lithium
value = 6
/datum/reagent/mercury
value = 0.02
/datum/reagent/phosphorus
value = 0.4
/datum/reagent/potassium
value = 1
/datum/reagent/radium
value = 50 //Radium is crazy expensive, like 100k+ per gram. So probably a bit less expensive in the future.
/datum/reagent/acid
value = 0.2
/datum/reagent/sodium
value = 0.1
/datum/reagent/sugar
value = 0.1
/datum/reagent/sulfur
value = 2
/datum/reagent/kois
value = 0.5
/datum/reagent/nutriment
value = 0.1
/datum/reagent/nutriment/virus_food
value = 0.15
/datum/reagent/nutriment/sprinkles
value = 0.05
/datum/reagent/nutriment/mint
value = 0.14
/datum/reagent/lipozine
value = 0.11
/datum/reagent/sodiumchloride
value = 0.11
/datum/reagent/blackpepper
value = 0.1
/datum/reagent/enzyme
value = 0.2
/datum/reagent/frostoil
value = 0.2
/datum/reagent/capsaicin
value = 0.2
/datum/reagent/capsaicin/condensed
value = 0.5
/datum/reagent/drink
value = 0.1
/datum/reagent/drink/milk/chocolate
value = 0.11
/datum/reagent/drink/milk/cream
value = 0.12
/datum/reagent/drink/coffee
value = 0.12
/datum/reagent/drink/coffee/soy_latte
value = 0.13
/datum/reagent/drink/hot_coco
value = 0.11
/datum/reagent/drink/milkshake
value = 0.12
/datum/reagent/drink/rewriter
value = 0.11
/datum/reagent/drink/nuka_cola
value = 0.13
/datum/reagent/drink/doctor_delight
value = 0.3
/datum/reagent/drink/ice
value = 0
/datum/reagent/drink/nothing
value = 0
/datum/reagent/ethanol/absinthe
value = 0.13
/datum/reagent/ethanol/ale
value = 0.13
/datum/reagent/ethanol/beer
value = 0.12
/datum/reagent/ethanol/bluecuracao
value = 0.16
/datum/reagent/ethanol/deadrum
value = 0.15
/datum/reagent/ethanol/gin
value = 0.1
/datum/reagent/ethanol/coffee/kahlua
value = 0.14
/datum/reagent/ethanol/melonliquor
value = 0.13
/datum/reagent/ethanol/rum
value = 0.1
/datum/reagent/ethanol/sake
value = 0.11
/datum/reagent/ethanol/tequilla
value = 0.1
/datum/reagent/ethanol/thirteenloko
value = 0.15
/datum/reagent/ethanol/vermouth
value = 0.1
/datum/reagent/ethanol/vodka
value = 0.1
/datum/reagent/ethanol/whiskey
value = 0.1
/datum/reagent/ethanol/wine
value = 0.1
/datum/reagent/ethanol/acid_spit
value = 0.15
/datum/reagent/ethanol/alliescocktail
value = 0.16
/datum/reagent/ethanol/aloe
value = 0.17
/datum/reagent/ethanol/amasec
value = 0.16
/datum/reagent/ethanol/andalusia
value = 0.15
/datum/reagent/ethanol/antifreeze
value = 0.16
/datum/reagent/ethanol/atomicbomb
value = 0.21
/datum/reagent/ethanol/coffee/b52
value = 0.17
/datum/reagent/ethanol/bahama_mama
value = 0.15
/datum/reagent/ethanol/bananahonk
value = 0.15
/datum/reagent/ethanol/barefoot
value = 0.14
/datum/reagent/ethanol/beepsky_smash
value = 0.2
/datum/reagent/ethanol/bilk
value = 0.12
/datum/reagent/ethanol/black_russian
value = 0.14
/datum/reagent/ethanol/bloody_mary
value = 0.14
/datum/reagent/ethanol/booger
value = 0.13
/datum/reagent/ethanol/coffee/brave_bull
value = 0.16
/datum/reagent/ethanol/changelingsting
value = 0.19
/datum/reagent/ethanol/martini
value = 0.16
/datum/reagent/ethanol/cuba_libre
value = 0.15
/datum/reagent/ethanol/demonsblood
value = 0.15
/datum/reagent/ethanol/devilskiss
value = 0.14
/datum/reagent/ethanol/driestmartini
value = 0.16
/datum/reagent/ethanol/ginfizz
value = 0.13
/datum/reagent/ethanol/grog
value = 0.11
/datum/reagent/ethanol/erikasurprise
value = 0.16
/datum/reagent/ethanol/gargle_blaster
value = 0.21
/datum/reagent/ethanol/gintonic
value = 0.15
/datum/reagent/ethanol/goldschlager
value = 0.2
/datum/reagent/ethanol/hippies_delight
value = 0.12
/datum/reagent/ethanol/hooch
value = 0.11
/datum/reagent/ethanol/iced_beer
value = 0.13
/datum/reagent/ethanol/irishcarbomb
value = 0.14
/datum/reagent/ethanol/coffee/irishcoffee
value = 0.12
/datum/reagent/ethanol/irish_cream
value = 0.13
/datum/reagent/ethanol/longislandicedtea
value = 0.13
/datum/reagent/ethanol/manhattan
value = 0.14
/datum/reagent/ethanol/manhattan_proj
value = 0.2
/datum/reagent/ethanol/manly_dorf
value = 0.13
/datum/reagent/ethanol/margarita
value = 0.15
/datum/reagent/ethanol/mead
value = 0.13
/datum/reagent/ethanol/moonshine
value = 0.11
/datum/reagent/ethanol/neurotoxin
value = 0.2
/datum/reagent/ethanol/patron
value = 0.16
/datum/reagent/ethanol/pwine
value = 0.19
/datum/reagent/ethanol/red_mead
value = 0.14
/datum/reagent/ethanol/sbiten
value = 0.13
/datum/reagent/ethanol/screwdrivercocktail
value = 0.13
/datum/reagent/ethanol/silencer
value = 0.135
/datum/reagent/ethanol/singulo
value = 0.2
/datum/reagent/ethanol/snowwhite
value = 0.125
/datum/reagent/ethanol/suidream
value = 0.12
/datum/reagent/ethanol/syndicatebomb
value = 0.21
/datum/reagent/ethanol/tequilla_sunrise
value = 0.13
/datum/reagent/ethanol/threemileisland
value = 0.2
/datum/reagent/ethanol/toxins_special
value = 0.2
/datum/reagent/ethanol/vodkamartini
value = 0.135
/datum/reagent/ethanol/vodkatonic
value = 0.145
/datum/reagent/ethanol/white_russian
value = 0.125
/datum/reagent/ethanol/whiskey_cola
value = 0.15
/datum/reagent/ethanol/whiskeysoda
value = 0.15
/datum/reagent/ethanol/specialwhiskey
value = 0.3
/datum/reagent/inaprovaline
value = 3.5
/datum/reagent/bicaridine
value = 4.9
/datum/reagent/kelotane
value = 2.9
/datum/reagent/dermaline
value = 3.9
/datum/reagent/dylovene
value = 2.1
/datum/reagent/dexalin
value = 2.4
/datum/reagent/dexalinp
value = 3.6
/datum/reagent/tricordrazine
value = 6
/datum/reagent/cryoxadone
value = 3.9
/datum/reagent/clonexadone
value = 5.5
/datum/reagent/paracetamol
value = 3.3
/datum/reagent/tramadol
value = 3.1
/datum/reagent/oxycodone
value = 3.3
/datum/reagent/synaptizine
value = 4.6
/datum/reagent/alkysine
value = 5.9
/datum/reagent/imidazoline
value = 4.2
/datum/reagent/peridaxon
value = 6
/datum/reagent/ryetalyn
value = 3.6
/datum/reagent/hyperzine
value = 3.9
/datum/reagent/ethylredoxrazine
value = 3.1
/datum/reagent/hyronalin
value = 2.3
/datum/reagent/arithrazine
value = 2.7
/datum/reagent/spaceacillin
value = 2.5
/datum/reagent/sterilizine
value = 2.2
/datum/reagent/leporazine
value = 2
/datum/reagent/methylphenidate
value = 6
/datum/reagent/citalopram
value = 6
/datum/reagent/paroxetine
value = 3.5
/datum/reagent/nicotine
value = 2
/datum/reagent/rezadone
value = 5
/datum/reagent/ipecac
value = 2
/datum/reagent/crayon_dust
value = 0.001
/datum/reagent/adminordrazine
value = 1000
/datum/reagent/gold
value = 7
/datum/reagent/silver
value = 4
/datum/reagent/uranium
value = 9
/datum/reagent/adrenaline
value = 2
/datum/reagent/diethylamine
value = 0.9
/datum/reagent/surfactant
value = 0.05
/datum/reagent/thermite
value = 6
/datum/reagent/space_cleaner
value = 0.7
/datum/reagent/lube
value = 0.6
/datum/reagent/glycerol
value = 8
/datum/reagent/nitroglycerin
value = 9
/datum/reagent/coolant
value = 0.8
/datum/reagent/woodpulp
value = 0.6
/datum/reagent/luminol
value = 1.4
/datum/reagent/toxin
value = 2
/datum/reagent/toxin/plasticide
value = 2.1
/datum/reagent/toxin/amatoxin
value = 2.3
/datum/reagent/toxin/carpotoxin
value = 3
/datum/reagent/toxin/phoron
value = 10
/datum/reagent/toxin/cyanide
value = 3.3
/datum/reagent/toxin/potassium_chloride
value = 4.4
/datum/reagent/toxin/potassium_chlorophoride
value = 4.5
/datum/reagent/toxin/zombiepowder
value = 2.9
/datum/reagent/toxin/fertilizer
value = 1.2
/datum/reagent/toxin/plantbgone
value = 1.1
/datum/reagent/acid/polyacid
value = 2
/datum/reagent/lexorin
value = 2.4
/datum/reagent/mutagen
value = 3.1
/datum/reagent/slimejelly
value = 1.2
/datum/reagent/soporific
value = 2.5
/datum/reagent/chloralhydrate
value = 2.6
/datum/reagent/chloralhydrate/beer2
value = 2.2
/datum/reagent/space_drugs
value = 2.8
/datum/reagent/serotrotium
value = 2.5
/datum/reagent/cryptobiolin
value = 2
/datum/reagent/impedrezene
value = 1.8
/datum/reagent/mindbreaker
value = 0.6
/datum/reagent/psilocybin
value = 0.7
/datum/reagent/slimetoxin
value = 2
/datum/reagent/aslimetoxin
value = 3
/datum/reagent/nanites
value = 9
/datum/reagent/xenomicrobes
value = 5
+892
View File
@@ -0,0 +1,892 @@
//Negative values indicate that instances of these types should use the Value proc
//Mainly used so that stuff inside them can also add to their value, and other things like material,
//stuff like that.
var/list/worths = list(
//ROBOT ASSEMBLIES,
/obj/item/weapon/secbot_assembly = 180,
/obj/item/weapon/secbot_assembly/ed209_assembly = 280,
/obj/item/weapon/farmbot_arm_assembly = 130,
/obj/item/weapon/toolbox_tiles = 80,
/obj/item/weapon/toolbox_tiles_sensor = 180,
/obj/item/weapon/firstaid_arm_assembly = 150,
/obj/item/weapon/bucket_sensor = 40,
//REAGENT CONTAINERS,
/obj/item/weapon/reagent_containers/hypospray/combat = -200,
/obj/item/weapon/reagent_containers/hypospray = -90,
/obj/item/weapon/reagent_containers/spray = -23,
/obj/item/weapon/reagent_containers/food/snacks/monkeycube = -35,
/obj/item/weapon/reagent_containers/food/snacks/human = -300,
/obj/item/weapon/reagent_containers/food/snacks/sliceable = -25,
/obj/item/weapon/reagent_containers/food/snacks/monkeycube = -15,
/obj/item/weapon/reagent_containers/food/snacks = -10,
/obj/item/weapon/reagent_containers/food/drinks/bottle = -11,
/obj/item/weapon/reagent_containers/food/drinks = -8,
/obj/item/weapon/reagent_containers/glass/rag = -5,
/obj/item/weapon/reagent_containers/glass = -60,
/obj/item/weapon/reagent_containers = -1,
//ENERGY GUNS,
/obj/item/weapon/gun/energy/rifle/pulse/destroyer = 9000,
/obj/item/weapon/gun/energy/rifle/pulse = 7000,
/obj/item/weapon/gun/energy/rifle/laser/heavy = 6500,
/obj/item/weapon/gun/energy/rifle/laser/xray = 4500,
/obj/item/weapon/gun/energy/rifle = 1500,
/obj/item/weapon/gun/energy/gun/nuclear = 2800,
/obj/item/weapon/gun/energy/gun = 700,
/obj/item/weapon/gun/energy/pistol = 550,
/obj/item/weapon/gun/energy/laser/shotgun = 4800,
/obj/item/weapon/gun/energy/laser/practice = 500,
/obj/item/weapon/gun/energy/laser = 1000,
/obj/item/weapon/gun/energy/retro = 1400,
/obj/item/weapon/gun/energy/captain = 8500,
/obj/item/weapon/gun/energy/xray = 3500,
/obj/item/weapon/gun/energy/sniperrifle = 6400,
/obj/item/weapon/gun/energy/lasertag = 10,
/obj/item/weapon/gun/energy/pulse/pistol = 4500,
/obj/item/weapon/gun/energy/pulse = 5000,
/obj/item/weapon/gun/energy/ionrifle = 2000,
/obj/item/weapon/gun/energy/decloner = 6500,
/obj/item/weapon/gun/energy/floragun = 1500,
/obj/item/weapon/gun/energy/mindflayer = 4500,
/obj/item/weapon/gun/energy/toxgun = 3500,
/obj/item/weapon/gun/energy/beegun = 4500,
/obj/item/weapon/gun/energy/mousegun = 2000,
/obj/item/weapon/gun/energy/net = 3500,
/obj/item/weapon/gun/energy/vaurca = 3000,
/obj/item/weapon/gun/energy/taser = 500,
/obj/item/weapon/gun/energy/crossbow/largecrossbow = 1600,
/obj/item/weapon/gun/energy/crossbow = 750,
/obj/item/weapon/gun/energy/temperature = 3000,
/obj/item/weapon/gun/energy/lawgiver = 7000,
/obj/item/weapon/gun/energy/kinetic_accelerator = 2500,
/obj/item/weapon/gun/energy/plasmacutter = 4000,
/obj/item/weapon/gun/energy = 2100,
//LAUNCHERS,
/obj/item/weapon/gun/launcher/spikethrower = 3500,
/obj/item/weapon/gun/launcher/crossbow = 120,
/obj/item/weapon/gun/launcher/pneumatic = 200,
/obj/item/weapon/gun/launcher/syringe = 150,
/obj/item/weapon/gun/launcher = 300,
//AUTOMATICS,
/obj/item/weapon/gun/projectile/automatic/rifle/sts35 = 3800,
/obj/item/weapon/gun/projectile/automatic/rifle/z8 = 3100,
/obj/item/weapon/gun/projectile/automatic/rifle/l6_saw = 13400,
/obj/item/weapon/gun/projectile/automatic/rifle/shotgun = 8500,
/obj/item/weapon/gun/projectile/automatic/rifle/w556 = 7500,
/obj/item/weapon/gun/projectile/automatic/c20r = 3250,
/obj/item/weapon/gun/projectile/automatic/wt550 = 2200,
/obj/item/weapon/gun/projectile/automatic/tommygun = 4000,
/obj/item/weapon/gun/projectile/automatic/mini_uzi = 2000,
/obj/item/weapon/gun/projectile/automatic/railgun = 8000,
/obj/item/weapon/gun/projectile/automatic/x9 = 2500,
/obj/item/weapon/gun/projectile/automatic/terminator = 15000,
/obj/item/weapon/gun/projectile/automatic = 2000,
//PROJECTILE,
/obj/item/weapon/gun/projectile/shotgun/pump/combat = 5500,
/obj/item/weapon/gun/projectile/shotgun/pump = 3500,
/obj/item/weapon/gun/projectile/shotgun/doublebarrel = 2500,
/obj/item/weapon/gun/projectile/shotgun/improvised = 1000,
/obj/item/weapon/gun/projectile/improvised_handgun = 650,
/obj/item/weapon/gun/projectile/revolver/derringer = 2100,
/obj/item/weapon/gun/projectile/revolver/detective = 1500,
/obj/item/weapon/gun/projectile/revolver = 3500,
/obj/item/weapon/gun/projectile/colt = 1700,
/obj/item/weapon/gun/projectile/sec = 1650,
/obj/item/weapon/gun/projectile/tanto = 2500,
/obj/item/weapon/gun/projectile/deagle = 5600,
/obj/item/weapon/gun/projectile/gyropistol = 7500,
/obj/item/weapon/gun/projectile/heavysniper/tranq = 6000,
/obj/item/weapon/gun/projectile/heavysniper = 12000,
/obj/item/weapon/gun/projectile/silenced = 1700,
/obj/item/weapon/gun/projectile/boltaction = 1200,
/obj/item/weapon/gun/projectile/dragunov = 4500,
/obj/item/weapon/gun/projectile = 1500,
//GUN,
/obj/item/weapon/gun = 500,
//MATERIAL STACKS,
/obj/item/stack/material/marble = -20,
/obj/item/stack/material/diamond = -60,
/obj/item/stack/material/uranium = -120,
/obj/item/stack/material/plastic = -15,
/obj/item/stack/material/gold = -55,
/obj/item/stack/material/silver = -45,
/obj/item/stack/material/platinum = -95,
/obj/item/stack/material/mhydrogen = -110,
/obj/item/stack/material/tritium = -100,
/obj/item/stack/material/osmium = -100,
/obj/item/stack/material/plasteel = -100,
/obj/item/stack/material/phoron = -70,
/obj/item/stack/material/wood = -2,
/obj/item/stack/material/cloth = -3,
/obj/item/stack/material/cardboard = -1,
/obj/item/stack/material/glass/reinforced = -12,
/obj/item/stack/material/glass/phoronglass = -35,
/obj/item/stack/material/glass/phoronrglass = -65,
/obj/item/stack/material = -5,
//STACKS,
/obj/item/stack/medical/advanced/bruise_pack = -30,
/obj/item/stack/medical/advanced/ointment = -40,
/obj/item/stack/medical/splint = -25,
/obj/item/stack/medical = -15,
/obj/item/stack/nanopaste = -30,
/obj/item/stack/rods = -5,
/obj/item/stack/telecrystal = -1000,
/obj/item/stack/wax = -5,
/obj/item/stack = -5,
//STORAGE,
/obj/item/weapon/storage/briefcase/crimekit = -50,
/obj/item/weapon/storage/belt/wands = 800,
/obj/item/weapon/storage/belt/military = 700,
/obj/item/weapon/storage/belt/security/tactical = 500,
/obj/item/weapon/storage/belt/soulstone = 800,
/obj/item/weapon/storage/belt = -50,
/obj/item/weapon/storage/backpack/holding = -3000,
/obj/item/weapon/storage = -30,
//WEAPONS,
/obj/item/weapon/spacecash = -1,
/obj/item/weapon/ore = 10,
/obj/item/weapon/mining_scanner = 130,
/obj/item/weapon/bee_smoker = 50,
/obj/item/weapon/anomaly_core = 20000,
/obj/item/weapon/spellbook = 25000,
/obj/item/weapon/am_containment = 5000,
//MINING GEAR,
/obj/item/weapon/pickaxe/silver = 300,
/obj/item/weapon/pickaxe/drill = 100,
/obj/item/weapon/pickaxe/jackhammer = 90,
/obj/item/weapon/pickaxe/gold = 400,
/obj/item/weapon/pickaxe/diamond = 600,
/obj/item/weapon/pickaxe/diamonddrill = 700,
/obj/item/weapon/pickaxe = 30,
/obj/item/weapon/shovel/spade = 20,
/obj/item/weapon/rrf = 200,
/obj/item/weapon/rrf_ammo = 50,
/obj/item/weapon/ore_radar = 30,
/obj/item/device/wormhole_jaunter = 500,
/obj/item/weapon/lazarus_injector = 800,
/obj/item/weapon/extraction_pack = 600,
/obj/item/weapon/resonator/upgraded = 650,
/obj/item/weapon/resonator = 450,
/obj/item/weapon/oremagnet = 250,
/obj/item/weapon/autochisel = 500,
/obj/item/weapon/slimepotion = 200,
/obj/item/weapon/slimepotion2 = 300,
/obj/item/weapon/slimesteroid = 150,
/obj/item/weapon/slimesteroid2 = 250,
/obj/item/weapon/portable_destructive_analyzer = 780,
/obj/item/weapon/inflatable_dispenser = 300,
/obj/item/weapon/matter_decompiler = 400,
//COMPUTER HARDWARE,
/obj/item/weapon/computer_hardware/battery_module/advanced = 110,
/obj/item/weapon/computer_hardware/battery_module/super = 150,
/obj/item/weapon/computer_hardware/battery_module/ultra = 190,
/obj/item/weapon/computer_hardware/battery_module/micro = 80,
/obj/item/weapon/computer_hardware/battery_module/nano = 60,
/obj/item/weapon/computer_hardware/battery_module/lambda = 100000,
/obj/item/weapon/computer_hardware/hard_drive/advanced = 160,
/obj/item/weapon/computer_hardware/hard_drive/super = 250,
/obj/item/weapon/computer_hardware/hard_drive/cluster = 500,
/obj/item/weapon/computer_hardware/hard_drive/small = 100,
/obj/item/weapon/computer_hardware/hard_drive/micro = 60,
/obj/item/weapon/computer_hardware/hard_drive/portable = 30,
/obj/item/weapon/computer_hardware/hard_drive/portable/advanced = 60,
/obj/item/weapon/computer_hardware/hard_drive/portable/super = 125,
/obj/item/weapon/computer_hardware/network_card/advanced = 90,
/obj/item/weapon/computer_hardware/network_card/wired = 40,
/obj/item/weapon/computer_hardware/processor_unit/small = 80,
/obj/item/weapon/computer_hardware/processor_unit/photonic = 400,
/obj/item/weapon/computer_hardware/processor_unit/photonic/small = 120,
/obj/item/weapon/computer_hardware/processor_unit = 200,
/obj/item/weapon/computer_hardware/tesla_link = 350,
/obj/item/weapon/computer_hardware = 80,
/obj/item/weapon/computer_hardware/hard_drive = 125,
/obj/item/weapon/clipboard = 15,
//POWER CELLS,
/obj/item/weapon/cell/device = 100,
/obj/item/weapon/cell/crap = 30,
/obj/item/weapon/cell/apc = 130,
/obj/item/weapon/cell/high = 160,
/obj/item/weapon/cell/mecha = 220,
/obj/item/weapon/cell/super = 280,
/obj/item/weapon/cell/hyper = 310,
/obj/item/weapon/cell/infinite = 50000,
/obj/item/weapon/cell/potato = 1,
/obj/item/weapon/cell/slime = 160,
/obj/item/weapon/cell = 60,
//SMES COILS,
/obj/item/weapon/smes_coil/weak = 1000,
/obj/item/weapon/smes_coil/super_capacity = 5000,
/obj/item/weapon/smes_coil/super_io = 4500,
/obj/item/weapon/smes_coil = 2000,
/obj/item/weapon/tracker_electronics = 150,
/obj/item/weapon/am_containment = 5000,
/obj/item/weapon/syringe_cartridge = 20,
/obj/item/weapon/silencer = 60,
/obj/item/weapon/fossil = 100,
/obj/item/weapon/vampiric = 666,
/obj/item/weapon/anobattery = 1800,
/obj/item/weapon/anodevice = 3300,
/obj/item/weapon/scrying = 20000,
/obj/item/weapon/virusdish = 65,
/obj/item/weapon/diseasedisk = 100,
/obj/item/weapon/soap/deluxe = 15,
/obj/item/weapon/cane/concealed = 250,
/obj/item/weapon/cane = 40,
/obj/item/weapon/disk/nuclear = 10000,
/obj/item/weapon/disk = 90,
/obj/item/weapon/caution = 15,
/obj/item/weapon/module = 100,
//STOCK PARTS,
/obj/item/weapon/stock_parts/capacitor/adv = 160,
/obj/item/weapon/stock_parts/scanning_module/adv = 160,
/obj/item/weapon/stock_parts/manipulator/nano = 160,
/obj/item/weapon/stock_parts/micro_laser/high = 160,
/obj/item/weapon/stock_parts/matter_bin/adv = 160,
/obj/item/weapon/stock_parts/capacitor/super = 300,
/obj/item/weapon/stock_parts/scanning_module/phasic = 300,
/obj/item/weapon/stock_parts/manipulator/pico = 250,
/obj/item/weapon/stock_parts/micro_laser/ultra = 290,
/obj/item/weapon/stock_parts/matter_bin/super = 310,
/obj/item/weapon/stock_parts/subspace/ansible = 500,
/obj/item/weapon/stock_parts/subspace/filter = 560,
/obj/item/weapon/stock_parts/subspace/amplifier = 540,
/obj/item/weapon/stock_parts/subspace/treatment = 570,
/obj/item/weapon/stock_parts/subspace/analyzer = 630,
/obj/item/weapon/stock_parts/subspace/crystal = 530,
/obj/item/weapon/stock_parts/subspace/transmitter = 620,
/obj/item/weapon/stock_parts = 80,
/obj/item/weapon/ectoplasm = 700,
/obj/item/weapon/toy/xmas_cracker = 20,
/obj/item/weapon/pinpointer/advpinpointer = 330,
/obj/item/weapon/pinpointer = 180,
/obj/item/weapon/airalarm_electronics = 90,
/obj/item/weapon/firealarm_electronics = 80,
/obj/item/weapon/camera_assembly = 35,
/obj/item/weapon/orion_ship = 100,
/obj/item/weapon/airlock_electronics/secure = 600,
/obj/item/weapon/airlock_electronics = 300,
/obj/item/weapon/cartridge = 50,
/obj/item/weapon/aiModule = 3000,
/obj/item/weapon/autopsy_scanner = 180,
//CARDS,
/obj/item/weapon/card/data/clown = 6000,
/obj/item/weapon/card/data = 300,
/obj/item/weapon/card/emag = 600,
/obj/item/weapon/card/id/silver = 200,
/obj/item/weapon/card/id/gold = 5000,
/obj/item/weapon/card/id/captains_spare = 5000,
/obj/item/weapon/card/id/syndicate_command = 7000,
/obj/item/weapon/card/id/centcom = 7000,
/obj/item/weapon/card/id/all_access = 10000,
/obj/item/weapon/card/id = 30,
/obj/item/weapon/flame/match = 1,
/obj/item/weapon/flame/lighter/zippo = 10,
/obj/item/weapon/plastique = 200,
/obj/item/weapon/extinguisher/mini = 20,
/obj/item/weapon/extinguisher = 40,
/obj/item/weapon/flamethrower = 60,
/obj/item/weapon/handcuffs/cable = 5,
/obj/item/weapon/handcuffs = 35,
/obj/item/weapon/rcd = 1000,
/obj/item/weapon/rcd_ammo = 50,
/obj/item/weapon/rsf = 300,
/obj/item/weapon/teleportation_scroll = 7000,
/obj/item/weapon/shield/riot/tact = 500,
/obj/item/weapon/shield/riot = 150,
/obj/item/weapon/shield/buckler = 200,
/obj/item/weapon/shield/energy = 1200,
//SURGERY,
/obj/item/weapon/retractor = 80,
/obj/item/weapon/hemostat = 90,
/obj/item/weapon/cautery = 110,
/obj/item/weapon/surgicaldrill = 130,
/obj/item/weapon/scalpel/laser1 = 300,
/obj/item/weapon/scalpel/laser2 = 600,
/obj/item/weapon/scalpel/laser3 = 900,
/obj/item/weapon/scalpel/manager = 1200,
/obj/item/weapon/scalpel = 60,
/obj/item/weapon/circular_saw = 140,
/obj/item/weapon/bonegel = 300,
/obj/item/weapon/FixOVein = 500,
/obj/item/weapon/bonesetter = 150,
/obj/item/weapon/locator = 100,
/obj/item/weapon/wrench = 30,
/obj/item/weapon/screwdriver = 15,
/obj/item/weapon/wirecutters = 25,
//WELDINGTOOLS,
/obj/item/weapon/weldingtool/largetank = 150,
/obj/item/weapon/weldingtool/hugetank = 300,
/obj/item/weapon/weldingtool/experimental = 600,
/obj/item/weapon/weldingtool = 100,
/obj/item/weapon/crowbar = 10,
/obj/item/weapon/beartrap = 35,
/obj/item/weapon/nullrod = 60,
/obj/item/weapon/weldpack = 300,
/obj/item/weapon/circuitboard/aicore = 6000,
/obj/item/weapon/circuitboard = 1000,
//GRENADES,
/obj/item/weapon/grenade/anti_photon = 200,
/obj/item/weapon/grenade/empgrenade = 180,
/obj/item/weapon/grenade/frag = 300,
/obj/item/weapon/grenade/spawnergrenade/vaurca = 700,
/obj/item/weapon/grenade/spawnergrenade/manhacks = 600,
/obj/item/weapon/grenade/spawnergrenade/spesscarp = 350,
/obj/item/weapon/grenade/spawnergrenade = 300,
/obj/item/weapon/grenade = 150,
/obj/item/weapon/implant = 100,
/obj/item/weapon/implanter = 80,
//MELEE,
/obj/item/weapon/melee/cultblade = 1500,
/obj/item/weapon/melee/energy/wizard = 15000,
/obj/item/weapon/melee/energy/glaive = 5400,
/obj/item/weapon/melee/energy/axe = 6000,
/obj/item/weapon/melee/energy = 4200,
/obj/item/weapon/melee/chainofcommand = 200,
/obj/item/weapon/melee/baton/stunrod = 350,
/obj/item/weapon/melee/baton/cattleprod = 30,
/obj/item/weapon/melee/baton = 80,
/obj/item/weapon/melee/classic_baton = 30,
/obj/item/weapon/melee/telebaton = 450,
/obj/item/weapon/melee/chainsword = 3000,
/obj/item/weapon/melee/ceremonial_sword = 2500,
/obj/item/weapon/melee/hammer = 1200,
/obj/item/weapon/melee/vaurca/navcomp = 1500,
/obj/item/weapon/melee/vaurca/rock = 700,
/obj/item/weapon/tank/jetpack = 390,
/obj/item/weapon/tank = 40,
/obj/item/weapon/contract = 20000,
/obj/item/weapon/ladder_mobile = 250,
/obj/item/weapon/contraband/poster = 25,
//MATERIAL,
/obj/item/weapon/material/sword = -120,
/obj/item/weapon/material/scythe = -100,
/obj/item/weapon/material/twohanded/fireaxe = -150,
/obj/item/weapon/material/harpoon = -70,
/obj/item/weapon/material = -5,
//RIGS,
/obj/item/weapon/rig/unathi/fancy = 30000,
/obj/item/weapon/rig/unathi = 17000,
/obj/item/weapon/rig/combat = 25000,
/obj/item/weapon/rig/ert = 20000,
/obj/item/weapon/rig/light/hacker = 13000,
/obj/item/weapon/rig/light/ninja = 16000,
/obj/item/weapon/rig/light/stealth = 11000,
/obj/item/weapon/rig/light = 14000,
/obj/item/weapon/rig/internalaffairs = 9000,
/obj/item/weapon/rig/merc = 25000,
/obj/item/weapon/rig/military = 30000,
/obj/item/weapon/rig/terminator = 30000,
/obj/item/weapon/rig = 15000,
/obj/item/weapon/forensics = 65,
/obj/item/weapon/evidencebag = 5,
/obj/item/weapon/sample = 15,
/obj/item/weapon/board = 15,
/obj/item/weapon/deck/holder = 10,
/obj/item/weapon/pack = 6,
/obj/item/weapon/holo = 0,
/obj/item/weapon/beach_ball/holoball = 0,
/obj/item/weapon/book/tome = 350,
/obj/item/weapon/book = 15,
/obj/item/weapon/barcodescanner = 130,
//CLOTHING,
//EARS,
/obj/item/clothing/ears/skrell = 100,
/obj/item/clothing/ears/bandanna = 20,
//GLASSES,
/obj/item/clothing/glasses/meson/prescription = 880,
/obj/item/clothing/glasses/meson = 800,
/obj/item/clothing/glasses/science = 400,
/obj/item/clothing/glasses/night = 1000,
/obj/item/clothing/glasses/regular/hipster = 400, //Hipstering is an expensive lifestyle yo,
/obj/item/clothing/glasses/regular = 300,
/obj/item/clothing/glasses/welding/superior = 450,
/obj/item/clothing/glasses/welding = 250,
/obj/item/clothing/glasses/sunglasses/prescription = 230,
/obj/item/clothing/glasses/sunglasses/sechud/tactical = 550,
/obj/item/clothing/glasses/sunglasses/sechud = 530,
/obj/item/clothing/glasses/thermal = 1990,
/obj/item/clothing/glasses/night = 1200,
/obj/item/clothing/glasses = 150,
//GLOVES,
/obj/item/clothing/gloves/boxing = 60,
/obj/item/clothing/gloves/yellow = 300,
/obj/item/clothing/gloves/fyellow = 25, //cheap cheap cheap,
/obj/item/clothing/gloves/captain = 100,
/obj/item/clothing/gloves/swat = 125,
/obj/item/clothing/gloves/combat = 400,
/obj/item/clothing/gloves/botanic_leather = 6,
/obj/item/clothing/gloves/force/syndicate = 1500,
/obj/item/clothing/gloves/force = 1000,
/obj/item/clothing/gloves = 5,
//MASKS,
/obj/item/clothing/mask/luchador = 60,
/obj/item/clothing/mask/breath/medical = 180,
/obj/item/clothing/mask/breath = 80,
/obj/item/clothing/mask/gas/plaguedoctor = 100,
/obj/item/clothing/mask/gas/swat = 200,
/obj/item/clothing/mask/gas/voice = 600,
/obj/item/clothing/mask/gas/swat/vox = 350,
/obj/item/clothing/mask/gas/tactical = 500,
/obj/item/clothing/mask/gas = 50,
/obj/item/clothing/mask/muzzle/tape = 2,
/obj/item/clothing/mask/muzzle = 100,
/obj/item/clothing/mask/surgical = 20,
/obj/item/clothing/mask/fakemoustache = 5,
/obj/item/clothing/mask/snorkel = 5,
/obj/item/clothing/mask/bluescarf = 10,
/obj/item/clothing/mask/redscarf = 15,
/obj/item/clothing/mask/greenscarf = 15,
/obj/item/clothing/mask/ninjascarf = 15,
/obj/item/clothing/mask/ai = 3000,
//SHOES,
/obj/item/clothing/shoes/galoshes = 50,
/obj/item/clothing/shoes/syndigaloshes = 250,
/obj/item/clothing/shoes/clown_shoes = 100,
/obj/item/clothing/shoes/cult = 350,
/obj/item/clothing/shoes/magboots = 350,
/obj/item/clothing/shoes/swat = 200,
/obj/item/clothing/shoes/combat = 450,
/obj/item/clothing/shoes = 25,
//SUITS,
/obj/item/clothing/suit/space/void/wizard = 5000,
/obj/item/clothing/suit/space/void/captain = 4000,
/obj/item/clothing/suit/space/void/merc = 3000,
/obj/item/clothing/suit/space/void/security = 3000,
/obj/item/clothing/suit/space/void = 2800,
/obj/item/clothing/suit/space/syndicate = 2200,
/obj/item/clothing/suit/space/skrell = 1500,
/obj/item/clothing/suit/space/vox = 1000,
/obj/item/clothing/suit/space/cult = 1050,
/obj/item/clothing/suit/space/emergency = 150,
/obj/item/clothing/suit/space = 730,
/obj/item/clothing/suit/unathi/mantle = 80,
/obj/item/clothing/suit/tajaran/furs = 90,
/obj/item/clothing/suit/cultrobes = 200,
/obj/item/clothing/suit/storage/vest/heavy/ert = 2500,
/obj/item/clothing/suit/storage/vest/merc = 3000,
/obj/item/clothing/suit/armor/vest/ert = 2500,
/obj/item/clothing/suit/armor/vest = 550,
/obj/item/clothing/suit/armor/riot = 700,
/obj/item/clothing/suit/armor/bulletproof = 700,
/obj/item/clothing/suit/armor/laserproof = 700,
/obj/item/clothing/suit/armor/reactive = 5000,
/obj/item/clothing/suit/armor/centcomm = 2000,
/obj/item/clothing/suit/armor/heavy = 1000,
/obj/item/clothing/suit/armor/hos = 1000,
/obj/item/clothing/suit/armor/tactical = 1500,
/obj/item/clothing/suit/armor = 500,
/obj/item/clothing/suit/bio_suit = 150,
/obj/item/clothing/suit/captunic/capjacket = 100,
/obj/item/clothing/suit/security/navyhos = 80,
/obj/item/clothing/suit/storage/hazardvest = 60,
/obj/item/clothing/suit/storage/toggle/labcoat = 55,
/obj/item/clothing/suit/bluetag = 20,
/obj/item/clothing/suit/redtag = 20,
/obj/item/clothing/suit/fire/heavy = 600,
/obj/item/clothing/suit/fire = 500,
/obj/item/clothing/suit/radiation = 450,
/obj/item/clothing/suit/bomb_suit = 300,
//HEADS,
/obj/item/clothing/head/collectable/petehat = 350,
/obj/item/clothing/head/collectable = 80,
/obj/item/clothing/head/hardhat = 180,
/obj/item/clothing/head/helmet/swat = 400,
/obj/item/clothing/head/helmet/gladiator = 280,
/obj/item/clothing/head/helmet/augment = 600,
/obj/item/clothing/head/helmet/riot = 500,
/obj/item/clothing/head/helmet/ablative = 500,
/obj/item/clothing/head/helmet/ballistic = 500,
/obj/item/clothing/head/helmet/merc = 1000,
/obj/item/clothing/head/helmet/tactical = 800,
/obj/item/clothing/head/helmet/gladiator = 300,
/obj/item/clothing/head/helmet/ert = 1000,
/obj/item/clothing/head/helmet/HoS = 800,
/obj/item/clothing/head/helmet = 250,
/obj/item/clothing/head/culthood = 150,
/obj/item/clothing/head/caphat/hop = 100,
/obj/item/clothing/head/caphat = 200,
/obj/item/clothing/head/centhat = 600,
/obj/item/clothing/head/hairflower = 5,
/obj/item/clothing/head/powdered_wig = 80,
/obj/item/clothing/head/justice = 30,
/obj/item/clothing/head/philosopher_wig = 70,
/obj/item/clothing/head/welding = 150,
/obj/item/clothing/head/bomb_hood = 200,
/obj/item/clothing/head/radiation = 250,
/obj/item/clothing/head/bio_hood = 100,
/obj/item/clothing/head/navy = 250,
/obj/item/clothing/head/dress/admiral = 1000,
/obj/item/clothing/head/dress = 350,
/obj/item/clothing/head/tajaran/scarf = 30,
/obj/item/clothing/head/helmet/space/void/wizard = 4000,
/obj/item/clothing/head/helmet/space/void/merc = 2000,
/obj/item/clothing/head/helmet/space/void/security = 2000,
/obj/item/clothing/head/helmet/space/void/captain = 3000,
/obj/item/clothing/head/helmet/space/void = 1900,
/obj/item/clothing/head/helmet/space/syndicate = 1200,
/obj/item/clothing/head/helmet/space/deathsquad = 2400,
/obj/item/clothing/head/helmet/space/vox = 1200,
/obj/item/clothing/head/helmet/space/skrell = 1200,
/obj/item/clothing/head/helmet/space/cult = 1300,
/obj/item/clothing/head/helmet/space/emergency = 250,
/obj/item/clothing/head/helmet/space = 450,
//ACCESSORIES,
/obj/item/clothing/accessory/storage = 55,
/obj/item/clothing/accessory/stethoscope = 70,
/obj/item/clothing/accessory/medal/gold/heroism = 1000,
/obj/item/clothing/accessory/medal/gold/captain = 800,
/obj/item/clothing/accessory/medal/gold = 600,
/obj/item/clothing/accessory/medal/silver = 300,
/obj/item/clothing/accessory/medal/iron = 150,
/obj/item/clothing/accessory/medal = 100,
/obj/item/clothing/accessory/armband = 30,
/obj/item/clothing/accessory/badge = 60,
/obj/item/clothing/accessory = 15,
//UNDERS,
/obj/item/clothing/under/rank/captain = 100,
/obj/item/clothing/under/rank/head_of_personnel = 60,
/obj/item/clothing/under/rank/head_of_personnel_whimsy = 80,
/obj/item/clothing/under/rank/chief_engineer = 95,
/obj/item/clothing/under/rank/research_director = 60,
/obj/item/clothing/under/rank/chief_medical_officer = 65,
/obj/item/clothing/under/rank/warden = 5,
/obj/item/clothing/under/rank/centcom = 200,
/obj/item/clothing/under/rank/fatigues = 250,
/obj/item/clothing/under/rank/service = 350,
/obj/item/clothing/under/rank/dress/admiral = 1000,
/obj/item/clothing/under/rank/dress = 450,
/obj/item/clothing/under/rank/centcom_commander = 300,
/obj/item/clothing/under/syndicate/tacticool = 60,
/obj/item/clothing/under/syndicate = 150,
/obj/item/clothing/under/tactical = 150,
/obj/item/clothing/under/ert = 200,
/obj/item/clothing/under/ccpolice = 250,
/obj/item/clothing/under/space = 400,
/obj/item/clothing = 50,
//DEVICES,
/obj/item/device/dociler = 450,
/obj/item/device/mmi = 1200,
/obj/item/device/kit/paint = 500,
/obj/item/device/kit = 100,
/obj/item/weapon/aicard = 6000,
/obj/item/device/chameleon = 4000,
/obj/item/device/paicard = 120,
/obj/item/device/powersink = 1800,
/obj/item/device/mass_spectrometer/adv = 400,
/obj/item/device/mass_spectrometer = 300,
/obj/item/device/reagent_scanner/adv = 600,
/obj/item/device/reagent_scanner = 500,
/obj/item/device/slime_scanner = 300,
/obj/item/device/transfer_valve = 50,
/obj/item/device/violin = 250,
/obj/item/device/pda = 60,
/obj/item/device/radio = 150,
/obj/item/device/assembly/igniter = 15,
/obj/item/device/assembly/infra = 10,
/obj/item/device/assembly/mousetrap = 5,
/obj/item/device/assembly/signaler = 30,
/obj/item/device/assembly = 50,
/obj/item/device/uv_light = 150,
/obj/item/device/eftpos = 30,
/obj/item/device = 90,
//ORGANS,
/obj/item/organ/heart = 1200,
/obj/item/organ/brain/golem = 3000,
/obj/item/organ/brain = 1200,
/obj/item/organ/pariah_brain = 5,
/obj/item/organ/vaurca/neuralsocket = 1500,
/obj/item/organ/stack/vox = 5000,
/obj/item/organ = 400,
//ITEMS,
/obj/item/slime_extract = 200,
/obj/item/robot_parts/robot_component = 250,
/obj/item/robot_parts = 30,
/obj/item/modular_computer/tablet = 1300,
/obj/item/modular_computer = 4000,
/obj/item/solar_assembly = 680,
/obj/item/ammo_casing = 5,
/obj/item/ammo_magazine = 30,
/obj/item/conveyor_construct = 100,
/obj/item/conveyor_switch_construct = 30,
/obj/item/supply_beacon = 5000,
/obj/item/frame = 60,
/obj/item/pipe = 100,
/obj/item/pipe_meter = 300,
/obj/item/mecha_parts/part/phazon_torso = 10000,
/obj/item/mecha_parts/part/phazon_head = 10000,
/obj/item/mecha_parts/part/phazon_left_arm = 10000,
/obj/item/mecha_parts/part/phazon_right_arm = 10000,
/obj/item/mecha_parts/part/phazon_left_leg = 10000,
/obj/item/mecha_parts/part/phazon_right_leg = 10000,
/obj/item/mecha_parts/part/phazon_armour = 10000,
/obj/item/mecha_parts/chassis/phazon = 10000,
/obj/item/mecha_parts/chassis = 1200,
/obj/item/mecha_parts/mecha_tracking = 400,
/obj/item/mecha_parts/mecha_equipment/teleporter = 3050,
/obj/item/mecha_parts/mecha_equipment/gravcatapult = 3000,
/obj/item/mecha_parts/mecha_equipment/armor_booster = 1100,
/obj/item/mecha_parts/mecha_equipment/repair_droid = 1900,
/obj/item/mecha_parts/mecha_equipment/tesla_energy_relay = 1300,
/obj/item/mecha_parts/mecha_equipment/generator/nuclear = 1700,
/obj/item/mecha_parts/mecha_equipment/generator = 1200,
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser = 2000,
/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser = 1200,
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy = 3000,
/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion = 1550,
/obj/item/mecha_parts/mecha_equipment/weapon/energy/pulse = 5000,
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot = 4750,
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg = 5800,
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/explosive = 2500,
/obj/item/mecha_parts/mecha_equipment = 1000,
/obj/item/mecha_parts = 500,
/obj/item/missile = 1200,
/obj/item/blueprints = 4000, //Information is valuable,
/obj/item/bodybag/cryobag = 600,
/obj/item/bodybag = 20,
/obj/item/glass_jar = 10,
/obj/item/target = 15,
/obj/item/inflatable = 30,
/obj/item/roller = 80,
/obj/item/rig_module/grenade_launcher = 1500,
/obj/item/rig_module/mounted/energy_blade = 5000,
/obj/item/rig_module/mounted/thermalldrill = 2500,
/obj/item/rig_module/mounted/kinetic_accelerator = 1500,
/obj/item/rig_module/mounted/plasmacutter = 2500,
/obj/item/rig_module/mounted/ion = 2000,
/obj/item/rig_module/mounted/xray = 3500,
/obj/item/rig_module/mounted/smg = 2500,
/obj/item/rig_module/mounted/pulse = 4500,
/obj/item/rig_module/mounted/taser = 1500,
/obj/item/rig_module/mounted/egun = 2100,
/obj/item/rig_module/mounted/energy_blade = 5500,
/obj/item/rig_module/mounted = 4100,
/obj/item/rig_module/stealth_field = 2500,
/obj/item/rig_module/teleporter = 3000,
/obj/item/rig_module/fabricator/energy_net = 1200,
/obj/item/rig_module/fabricator = 2800,
/obj/item/rig_module = 1000,
/obj/item/seeds = 10,
/obj/item/honey_frame = 15,
/obj/item/beehive_assembly = 100,
/obj/item/bee_pack = 200,
/obj/item/weedkiller = 30,
/obj/item/phylactery = 40000,
/obj/item/bluespace_crystal/artificial = 5000,
/obj/item/bluespace_crystal = 10000,
/obj/item/vaurca/box = 250,
/obj/item/hoist_kit = 150,
/obj/item = 5,
//STRUCTURES,
/obj/structure/ore_box = 12,
/obj/structure/constructshell = 100,
/obj/structure/cable = 1,
/obj/structure/particle_accelerator = 2000,
/obj/structure/droppod_door = 65,
/obj/structure/disposalconstruct = 0, //Similar to cables, they are assembled into something else,
/obj/structure/disposalpipe/tagger = 70,
/obj/structure/disposalpipe/sortjunction = 65,
/obj/structure/disposalpipe = 35,
/obj/structure/disposaloutlet = 65,
/obj/structure/boulder = 0, //just a dumb boulder,
/obj/structure/shuttle = 150,
/obj/structure/plasticflaps = 15,
/obj/structure/cult/pylon = 700,
/obj/structure/cult = 160,
/obj/structure/cryofeed = 450,
/obj/structure/AIcore = 6000,
/obj/structure/AIcore/deactivated = 7000,
/obj/structure/computerframe = 50,
/obj/structure/plushie = 7,
/obj/structure/bedsheetbin = 25,
/obj/structure/coatrack = 10,
/obj/structure/displaycase = 86,
/obj/structure/door_assembly = 35,
/obj/structure/girder = 15,
/obj/structure/grille = 5,
/obj/structure/inflatable = 1,
/obj/structure/janitorialcart = 120,
/obj/structure/kitchenspike = 35,
/obj/structure/lattice = 1,
/obj/structure/morgue = 100,
/obj/structure/crematorium = 600,
/obj/structure/device/piano = 1200, //pianos are expensive,
/obj/structure/noticeboard = 15,
/obj/structure/safe/floor = 180,
/obj/structure/safe = 200,
/obj/structure/sign = 25,
/obj/structure/dispenser = 500,
/obj/structure/transit_tube = 80,
/obj/structure/transit_tube_pod = 100,
/obj/structure/toilet = 50,
/obj/structure/alien = 300,
/obj/structure/closet = 15,
/obj/structure/bed = 7,
/obj/structure/holostool = 0,
/obj/structure/holohoop = 0,
/obj/structure/bookcase = 50,
/obj/structure/barricade = -1,
/obj/structure = 30,
//BOTS,
/mob/living/bot/cleanbot = 260,
/mob/living/bot/farmbot = 500,
/mob/living/bot/floorbot = 190,
/mob/living/bot/medbot = 600,
/mob/living/bot/secbot/ed209 = 1200,
/mob/living/bot/secbot = 800,
/mob/living/bot = 300,
//MOBS,
/mob/living/carbon/human = -10000,
/mob/living/carbon/slime = 5000,
/mob/living/silicon/robot = 10000,
/mob/living/silicon/pai = 1000,
/mob/living/silicon/ai = 50000,
/mob/living/silicon = 5000,
/mob/living/simple_animal/hostile/commanded/dog = 1000,
/mob/living/simple_animal/hostile/true_changeling = 20000,
/mob/living/simple_animal/hostile/biglizard = 10000,
/mob/living/simple_animal/hostile/bear/spatial = 2000,
/mob/living/simple_animal/hostile = 700,
/mob/living/simple_animal/construct = 10000,
/mob/living/simple_animal/mouse/king = 5000,
/mob/living/simple_animal/mouse = 10,
/mob/living/simple_animal/borer = 10000,
/mob/living/simple_animal/corgi/Ian = 1000, //Ian is valuable,
/mob/living/simple_animal/spiderbot = 3000,
/mob/living/simple_animal/cow = 2000, //Cow expensive,
/mob/living/simple_animal = 500,
/mob/living = 100,
//MECHAS,
/obj/mecha/combat/phazon = -100000,
/obj/mecha/combat/marauder/mauler = -80000,
/obj/mecha/combat/marauder/seraph = -70000,
/obj/mecha/combat/marauder = -60000,
/obj/mecha/combat/gygax/dark = -60000,
/obj/mecha/combat/gygax = -50000,
/obj/mecha/combat/honker = -45000,
/obj/mecha/combat/durand = -40000,
/obj/mecha/combat = -30000,
/obj/mecha = -20000,
//MACHINERY,
/obj/machinery/mineral/unloading_machine = -500,
/obj/machinery/mining/brace = -300,
/obj/machinery/drone_fabricator = -3000,
/obj/machinery/photocopier/faxmachine = -500,
/obj/machinery/papershredder = -80,
/obj/machinery/gravity_generator = -16000,
/obj/machinery/light = 25,
/obj/machinery/power/smes/buildable = -15000,
/obj/machinery/compressor = -4000,
/obj/machinery/power/turbine = -6000,
/obj/machinery/computer/turbine_computer = -2000,
/obj/machinery/chem_master = -6000,
/obj/machinery/chemical_dispenser = -5000,
/obj/machinery/conveyor = 200,
/obj/machinery/conveyor_switch = 100,
/obj/machinery/disposal = 500,
/obj/machinery/blackbox_recorder = -9500,
/obj/machinery/r_n_d/protolathe = -15000,
/obj/machinery/r_n_d/server = -20000,
/obj/machinery/r_n_d = -1000,
/obj/machinery/auto_cloner = -13000,
/obj/machinery/giga_drill = -1900,
/obj/machinery/artifact = -13500,
/obj/machinery/artifact_analyser = -11900,
/obj/machinery/artifact_harvester = -12300,
/obj/machinery/artifact_scanpad = -1800,
/obj/machinery/suspension_gen = -3000,
/obj/machinery/keycard_auth = -100,
/obj/machinery/power/supermatter/shard = 100000,
/obj/machinery/power/supermatter = 500000,
/obj/machinery/disease2/diseaseanalyser = -8000,
/obj/machinery/disease2/isolator/ = -9000,
/obj/machinery/atmospherics/pipe/simple/heat_exchanging = -1000,
/obj/machinery/atmospherics/pipe = -100,
/obj/machinery/atmospherics/portables_connector = -500,
/obj/machinery/atmospherics/tvalve = -150,
/obj/machinery/atmospherics/valve = -120,
/obj/machinery/atmospherics/binary/circulator = -2500,
/obj/machinery/atmospherics/binary/dp_vent_pump = -850,
/obj/machinery/atmospherics/binary/passive_gate = -1600,
/obj/machinery/atmospherics/pipeturbine = -3000,
/obj/machinery/atmospherics/binary/pump = -1900,
/obj/machinery/atmospherics/binary/pump/high_power = -2500,
/obj/machinery/atmospherics/omni/filter = -4000,
/obj/machinery/atmospherics/omni/mixer = -3600,
/obj/machinery/atmospherics/trinary/filter = -3300,
/obj/machinery/atmospherics/trinary/mixer = -3000,
/obj/machinery/atmospherics/unary/freezer = -6000,
/obj/machinery/atmospherics/unary/generator_input = -2500,
/obj/machinery/atmospherics/unary/heater = -6000,
/obj/machinery/atmospherics/unary/outlet_injector = -2300,
/obj/machinery/atmospherics/unary/oxygen_generator = -10000,
/obj/machinery/atmospherics/unary/vent_pump = -2000,
/obj/machinery/atmospherics/unary/vent_scrubber = -2300,
/obj/machinery/bodyscanner = -6000,
/obj/machinery/body_scanconsole = -1500,
/obj/machinery/ai_slipper = -500,
/obj/machinery/alarm = -800,
/obj/machinery/air_sensor = -800,
/obj/machinery/autolathe = -3300,
/obj/machinery/bluespacerelay = -4000,
/obj/machinery/button = 100,
/obj/machinery/cablelayer = -1700,
/obj/machinery/cell_charger = -90,
/obj/machinery/constructable_frame = -500,
/obj/machinery/cryopod = -3000,
/obj/machinery/deployable/barrier = -500,
/obj/machinery/floodlight = -200,
/obj/machinery/floor_light = -100,
/obj/machinery/floorlayer = -1500,
/obj/machinery/igniter = -300,
/obj/machinery/sparker = -500,
/obj/machinery/iv_drip = -100,
/obj/machinery/media/jukebox = -700,
/obj/machinery/magnetic_module = -500,
/obj/machinery/magnetic_controller = -500,
/obj/machinery/mass_driver = -500,
/obj/machinery/navbeacon = -90,
/obj/machinery/newscaster = -100,
/obj/machinery/nuclearbomb = -10000,
/obj/machinery/recharger = -200,
/obj/machinery/sleeper = -4000,
/obj/machinery/space_heater = -500,
/obj/machinery/ai_status_display = -600,
/obj/machinery/teleport = -15000,
/obj/machinery/camera = -700,
/obj/machinery/airlock_sensor = -800,
/obj/machinery/door/airlock = -800,
/obj/machinery/door/blast/shutters = -300,
/obj/machinery/door/blast = -1000,
/obj/machinery/door/firedoor = -600,
/obj/machinery/door = -100,
/obj/machinery/door_timer = -300,
/obj/machinery/embedded_controller/radio/airlock = -600,
/obj/machinery/gibber = -600,
/obj/machinery/microwave = -70,
/obj/machinery/pipedispenser = -100,
/obj/machinery/telecomms/broadcaster = -10000,
/obj/machinery/telecomms = -7000,
/obj/machinery/computer/mecha = -1000,
/obj/machinery/shower = -300,
/obj/machinery/acting/changer = -3000,
/obj/machinery/artillerycontrol = -1400,
/obj/machinery/dnaforensics = -1200,
/obj/machinery/microscope = -550,
/obj/machinery/atm = -4500,
/obj/machinery/readybutton = -0,
/obj/machinery/botany/editor = -16000,
/obj/machinery/botany = -9050,
/obj/machinery/seed_storage = -500,
/obj/machinery/beehive = -500,
/obj/machinery/portable_atmospherics/hydroponics/soil = 1, //its dirt,
/obj/machinery/portable_atmospherics/hydroponics = -2300,
/obj/machinery/librarypubliccomp = -600,
/obj/machinery/librarycomp = -1000,
/obj/machinery/libraryscanner = -1000,
/obj/machinery/bookbinder = -1200,
/obj/machinery/wish_granter = - 1000000,
/obj/machinery = -1000
) //Must be in descending order. Child before parents, otherwise it doesn't work.,
@@ -0,0 +1,22 @@
/obj/machinery/merchant_pad
name = "Teleportation Pad"
desc = "Place things here to trade."
icon = 'icons/obj/stationobjs.dmi'
icon_state = "tele0"
anchored = 1
density = 0
/obj/machinery/merchant_pad/proc/get_target()
var/turf/T = get_turf(src)
for(var/a in T)
if(a == src || (!istype(a,/obj) && !istype(a,/mob/living)) || istype(a,/obj/effect))
continue
return a
/obj/machinery/merchant_pad/proc/get_targets()
. = list()
var/turf/T = get_turf(src)
for(var/a in T)
if(a == src || (!istype(a,/obj) && !istype(a,/mob/living)) || istype(a,/obj/effect))
continue
. += a
+227
View File
@@ -0,0 +1,227 @@
/datum/computer_file/program/merchant
filename = "mlist"
filedesc = "Merchant's List"
extended_desc = "Allows communication and trade between passing vessels, even while jumping."
program_icon_state = "comm"
nanomodule_path = /datum/nano_module/program/merchant
requires_ntnet = 0
available_on_ntnet = 0
size = 12
usage_flags = PROGRAM_CONSOLE
required_access_run = access_merchant
required_access_download = access_merchant
var/obj/machinery/merchant_pad/pad = null
var/current_merchant = 0
var/show_trades = 0
var/hailed_merchant = 0
var/last_comms = null
var/temp = null
var/bank = 0 //A straight up money till
/datum/nano_module/program/merchant
name = "Merchant's List"
/datum/computer_file/program/merchant/proc/get_merchant(var/num)
if(num > SStrade.traders.len)
num = SStrade.traders.len
if(num)
return SStrade.traders[num]
/datum/nano_module/program/merchant/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state)
var/list/data = host.initial_data()
var/show_trade = 0
var/hailed = 0
var/datum/trader/T
if(program)
var/datum/computer_file/program/merchant/P = program
data["temp"] = P.temp
data["mode"] = !!P.current_merchant
data["last_comms"] = P.last_comms
data["pad"] = !!P.pad
data["bank"] = P.bank
show_trade = P.show_trades
hailed = P.hailed_merchant
T = P.get_merchant(P.current_merchant)
data["mode"] = !!T
if(T)
data["traderName"] = T.name
data["origin"] = T.origin
data["hailed"] = hailed
if(show_trade)
var/list/trades = list()
if(T.trading_items.len)
for(var/i in 1 to T.trading_items.len)
trades += T.print_trading_items(i)
data["trades"] = trades
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "merchant.tmpl", "Merchant List", 575, 700, state = state)
ui.auto_update_layout = 1
ui.set_initial_data(data)
ui.open()
/datum/computer_file/program/merchant/proc/connect_pad()
for(var/obj/machinery/merchant_pad/P in orange(1,get_turf(computer)))
pad = P
return
/datum/computer_file/program/merchant/proc/test_fire()
if(pad && pad.get_target())
return 1
return 0
/datum/computer_file/program/merchant/proc/offer_money(var/datum/trader/T, var/num)
if(pad)
var/response = T.offer_money_for_trade(num, bank)
if(istext(response))
last_comms = T.get_response(response, "No thank you.")
else
last_comms = T.get_response("trade_complete", "Thank you!")
T.trade(null,num, get_turf(pad))
bank -= response
return
last_comms = "PAD NOT CONNECTED"
/datum/computer_file/program/merchant/proc/bribe(var/datum/trader/T, var/amt)
if(bank < amt)
last_comms = "ERROR: NOT ENOUGH FUNDS."
return
bank -= amt
last_comms = T.bribe_to_stay_longer(amt)
/datum/computer_file/program/merchant/proc/offer_item(var/datum/trader/T, var/num)
if(pad)
var/list/targets = pad.get_targets()
for(var/target in targets)
if(!computer_emagged && istype(target,/mob/living/carbon/human))
last_comms = "SAFETY LOCK ENABLED: SENTIENT MATTER UNTRANSMITTABLE"
return
var/response = T.offer_items_for_trade(targets,num, get_turf(pad))
if(istext(response))
last_comms = T.get_response(response,"No, a million times no.")
else
last_comms = T.get_response("trade_complete","Thanks for your business!")
return
last_comms = "PAD NOT CONNECTED"
/datum/computer_file/program/merchant/proc/sell_items(var/datum/trader/T)
if(pad)
var/list/targets = pad.get_targets()
var/response = T.sell_items(targets)
if(istext(response))
last_comms = T.get_response(response, "Nope. Nope nope nope.")
else
last_comms = T.get_response("trade_complete", "Glad to be of service!")
bank += response
return
last_comms = "PAD NOT CONNECTED"
/datum/computer_file/program/merchant/proc/transfer_to_bank()
if(pad)
var/list/targets = pad.get_targets()
for(var/target in targets)
if(istype(target, /obj/item/weapon/spacecash))
var/obj/item/weapon/spacecash/cash = target
bank += cash.worth
qdel(target)
last_comms = "ALL MONEY DETECTED ON PAD TRANSFERED"
return
last_comms = "PAD NOT CONNECTED"
/datum/computer_file/program/merchant/proc/get_money()
if(!pad)
last_comms = "PAD NOT CONNECTED. CANNOT TRANSFER"
return
var/turf/T = get_turf(pad)
var/obj/item/weapon/spacecash/bundle/B = new(T)
B.worth = bank
bank = 0
B.update_icon()
/datum/computer_file/program/merchant/Topic(href, href_list)
if(..())
return 1
var/mob/user = usr
if(href_list["PRG_connect_pad"])
. = 1
connect_pad()
if(href_list["PRG_continue"])
. = 1
temp = null
if(href_list["PRG_transfer_to_bank"])
. = 1
transfer_to_bank()
if(href_list["PRG_get_money"])
. = 1
get_money()
if(href_list["PRG_main_menu"])
. = 1
current_merchant = 0
if(href_list["PRG_merchant_list"])
if(SStrade.traders.len == 0)
. = 0
temp = "Cannot find any traders within broadcasting range."
else
. = 1
current_merchant = 1
hailed_merchant = 0
last_comms = null
if(href_list["PRG_test_fire"])
. = 1
if(test_fire())
temp = "Test Fire Successful"
else
temp = "Test Fire Unsuccessful"
if(href_list["PRG_scroll"])
. = 1
var/scrolled = 0
switch(href_list["PRG_scroll"])
if("right")
scrolled = 1
if("left")
scrolled = -1
var/new_merchant = Clamp(current_merchant + scrolled, 1, SStrade.traders.len)
if(new_merchant != current_merchant)
hailed_merchant = 0
last_comms = null
current_merchant = new_merchant
if(current_merchant)
var/datum/trader/T = get_merchant(current_merchant)
if(!T.can_hail())
last_comms = T.get_response("hail_deny", "No, I'm not speaking with you.")
. = 1
else
if(href_list["PRG_hail"])
. = 1
last_comms = T.hail(user)
show_trades = 0
hailed_merchant = 1
if(href_list["PRG_show_trades"])
. = 1
show_trades = !show_trades
if(href_list["PRG_insult"])
. = 1
last_comms = T.insult()
if(href_list["PRG_compliment"])
. = 1
last_comms = T.compliment()
if(href_list["PRG_offer_item"])
. = 1
offer_item(T,text2num(href_list["PRG_offer_item"]) + 1)
if(href_list["PRG_how_much_do_you_want"])
. = 1
last_comms = T.how_much_do_you_want(text2num(href_list["PRG_how_much_do_you_want"]) + 1)
if(href_list["PRG_offer_money_for_item"])
. = 1
offer_money(T, text2num(href_list["PRG_offer_money_for_item"])+1)
if(href_list["PRG_what_do_you_want"])
. = 1
last_comms = T.what_do_you_want()
if(href_list["PRG_sell_items"])
. = 1
sell_items(T)
if(href_list["PRG_bribe"])
. = 1
bribe(T, text2num(href_list["PRG_bribe"]))
@@ -29,6 +29,9 @@
supernatural = 1
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
tameable = FALSE
var/nullblock = 0
mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY
@@ -37,6 +40,7 @@
var/list/construct_spells = list()
var/can_repair = 0
/mob/living/simple_animal/construct/cultify()
return
@@ -35,6 +35,7 @@
heat_damage_per_tick = 20
mob_size = 10
tameable = FALSE
/mob/living/simple_animal/hostile/alien/drone
name = "alien drone"
@@ -81,6 +81,7 @@
/mob/living/simple_animal/hostile/scarybat/cult
faction = "cult"
supernatural = 1
tameable = FALSE
/mob/living/simple_animal/hostile/scarybat/cult/cultify()
return
@@ -13,6 +13,8 @@
mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY
mob_push_flags = ALLMOBS
tameable = FALSE
response_help = "pets"
response_disarm = "shoves"
response_harm = "harmlessly punches"
@@ -34,23 +36,23 @@
min_oxy = 0
max_co2 = 0
max_tox = 0
var/is_devouring = FALSE
/mob/living/simple_animal/hostile/true_changeling/Initialize()
. = ..()
if(prob(25))
icon_state = "horror_alt"
icon_living = "horror_alt"
/mob/living/simple_animal/hostile/true_changeling/Life()
..()
adjustBruteLoss(-10) //it will slowly heal brute damage, making fire/laser a stronger option
/mob/living/simple_animal/hostile/true_changeling/mind_initialize()
..()
mind.assigned_role = "Changeling"
/mob/living/simple_animal/hostile/true_changeling/death(gibbed)
..()
if(!gibbed)
@@ -110,7 +112,7 @@
last_special = world.time + 100
src.is_devouring = FALSE
return
/mob/living/simple_animal/hostile/true_changeling/verb/dart(mob/living/target as mob in oview())
set name = "Launch Bone Dart"
set desc = "Launches a Bone Dart at a target."
@@ -26,6 +26,8 @@
known_commands = list("stay", "stop", "attack", "follow", "dance", "boogie", "boogy")
tameable = FALSE
/mob/living/simple_animal/hostile/commanded/bear/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone)
. = ..()
if(!.)
@@ -16,6 +16,8 @@
speed = 4
mob_size = 14
tameable = FALSE
/mob/living/simple_animal/hostile/creature/cult
faction = "cult"
@@ -14,6 +14,8 @@
health = 80
environment_smash = 2
tameable = FALSE
harm_intent_damage = 10
melee_damage_lower = 15
melee_damage_upper = 15
@@ -28,6 +28,8 @@
minbodytemp = 0
speed = 4
tameable = FALSE
/mob/living/simple_animal/hostile/hivebot/range
name = "Hivebot"
desc = "A smallish robot, this one is armed!"
@@ -26,6 +26,9 @@
/mob/living/simple_animal/hostile/proc/FindTarget()
if(!faction) //No faction, no reason to attack anybody.
return null
var/atom/T = null
stop_automated_movement = 0
for(var/atom/A in ListTargets(10))
@@ -36,6 +36,8 @@
faction = "mimic"
move_to_delay = 8
tameable = FALSE
/mob/living/simple_animal/hostile/mimic/FindTarget()
. = ..()
if(.)
@@ -37,3 +37,5 @@
heat_damage_per_tick = 15 //amount of damage applied if animal's body temperature is higher than maxbodytemp
cold_damage_per_tick = 10 //same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
unsuitable_atoms_damage = 10
tameable = FALSE
@@ -49,6 +49,8 @@
var/has_loot = 1
faction = "malf_drone"
tameable = FALSE
/mob/living/simple_animal/hostile/retaliate/malf_drone/Initialize()
. = ..()
if(prob(5))
@@ -33,6 +33,8 @@
faction = "russian"
status_flags = CANPUSH
tameable = FALSE
/mob/living/simple_animal/hostile/russian/ranged
icon_state = "russianranged"
@@ -35,6 +35,8 @@
faction = "syndicate"
status_flags = CANPUSH
tameable = FALSE
/mob/living/simple_animal/hostile/syndicate/death()
..()
if(corpse)
@@ -159,6 +161,8 @@
max_n2 = 0
minbodytemp = 0
tameable = FALSE
/mob/living/simple_animal/hostile/viscerator/death()
..(null,"is smashed into pieces!")
var/T = get_turf(src)
@@ -100,6 +100,8 @@
var/can_nap = 0
var/icon_rest = null
var/tameable = TRUE //if you can tame it, used by the dociler for now
/mob/living/simple_animal/proc/beg(var/atom/thing, var/atom/holder)
visible_emote("gazes longingly at [holder]'s [thing]",0)
+7 -7
View File
@@ -329,16 +329,16 @@
character.buckled.set_dir(character.dir)
SSticker.mode.handle_latejoin(character)
if(character.mind.assigned_role != "Cyborg")
data_core.manifest_inject(character)
SSticker.minds += character.mind //Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
if(SSjobs.ShouldCreateRecords(rank))
if(character.mind.assigned_role != "Cyborg")
data_core.manifest_inject(character)
SSticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
//Grab some data from the character prefs for use in random news procs.
AnnounceArrival(character, rank, join_message)
else
AnnounceCyborg(character, rank, join_message)
AnnounceArrival(character, rank, join_message)
else
AnnounceCyborg(character, rank, join_message)
qdel(src)
@@ -82,3 +82,15 @@ ERT
ai_slot = new/obj/item/weapon/computer_hardware/ai_slot(src)
nano_printer = new/obj/item/weapon/computer_hardware/nano_printer(src)
card_slot = new/obj/item/weapon/computer_hardware/card_slot(src)
// Merchant
/obj/item/modular_computer/console/preset/merchant
_app_preset_name = "merchant"
enrolled = 2
/obj/item/modular_computer/console/preset/merchant/install_default_hardware()
..()
ai_slot = new/obj/item/weapon/computer_hardware/ai_slot(src)
nano_printer = new/obj/item/weapon/computer_hardware/nano_printer(src)
card_slot = new/obj/item/weapon/computer_hardware/card_slot(src)
@@ -162,3 +162,17 @@
new/datum/computer_file/program/crushercontrol()
)
return _prg_list
/datum/modular_computer_app_presets/merchant
name = "merchant"
display_name = "Merchant"
description = "A preset for the merchant console"
available = 0
/datum/modular_computer_app_presets/merchant/return_install_programs()
var/list/_prg_list = list(
new/datum/computer_file/program/filemanager(),
new/datum/computer_file/program/chatclient(),
new /datum/computer_file/program/merchant()
)
return _prg_list
@@ -213,3 +213,9 @@
return
else
..()
/obj/item/weapon/gun/launcher/pneumatic/small
name = "small pneumatic cannon"
desc = "It looks smaller than your garden variety cannon"
max_w_class = 1
w_class = 3
@@ -99,7 +99,7 @@
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate
name = "Chloral Hydrate Bottle"
name = "chloral hydrate bottle"
desc = "A small bottle of Choral Hydrate. Mickey's Favorite!"
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-3"
@@ -352,7 +352,7 @@
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/capsaicin
name = "Capsaicin Bottle"
name = "capsaicin bottle"
desc = "A small bottle. Contains hot sauce."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
@@ -362,7 +362,7 @@
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/frostoil
name = "Frost Oil Bottle"
name = "frost oil bottle"
desc = "A small bottle. Contains cold sauce."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
+21
View File
@@ -1569,6 +1569,27 @@ CIRCUITS BELOW
build_path = /obj/item/weapon/circuitboard/mecha/durand/targeting
sort_string = "NAADC"
/datum/design/circuit/mecha/phazon_main
name = "'Phazon' central control"
id = "phazon_main"
req_tech = list(TECH_DATA = 6, TECH_BLUESPACE = 6)
build_path = /obj/item/weapon/circuitboard/mecha/phazon/main
sort_string = "NAAEA"
/datum/design/circuit/mecha/phazon_peri
name = "'Phazon' peripherals control"
id = "phazon_peri"
req_tech = list(TECH_DATA = 6, TECH_BLUESPACE = 6)
build_path = /obj/item/weapon/circuitboard/mecha/phazon/peripherals
sort_string = "NAAEB"
/datum/design/circuit/mecha/phazon_targ
name = "'Phazon' weapon control and targeting"
id = "phazon_targ"
req_tech = list(TECH_DATA = 6, TECH_COMBAT = 6, TECH_BLUESPACE = 6)
build_path = /obj/item/weapon/circuitboard/mecha/phazon/targeting
sort_string = "NAAEC"
/datum/design/circuit/tcom
req_tech = list(TECH_DATA = 4, TECH_ENGINEERING = 4)