mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-24 17:11:22 +00:00
Fixes #7594, gemstones separated from a mixed stack were being shoved inside a mob rather than dropped in neat stacks to the floor. Additionally, I discovered some errors in calculating stack size. These have been corrected, pls merge.
619 lines
20 KiB
Plaintext
619 lines
20 KiB
Plaintext
|
|
#define GEM_RUBY "ruby"
|
|
#define GEM_TOPAZ "topaz"
|
|
#define GEM_SAPPHIRE "sapphire"
|
|
#define GEM_AMETHYST "amethyst"
|
|
#define GEM_EMERALD "emerald"
|
|
#define GEM_DIAMOND "diamond"
|
|
#define GEM_MIXED "mixed"
|
|
|
|
#define GEM_SMALL "small"
|
|
#define GEM_MEDIUM "medium"
|
|
#define GEM_LARGE "large"
|
|
#define GEM_ENORMOUS "enormous"
|
|
|
|
/obj/item/precious
|
|
name = "valuable object"
|
|
desc = "An object of value, made of crystallized coder tears."
|
|
var/maxstack
|
|
var/stack_contents = list()
|
|
var/pickup = 0
|
|
var/stacksize = 1
|
|
var/plural
|
|
|
|
/obj/item/precious/gemstone
|
|
name = "gemstone"
|
|
desc = "An impossibly generic gemstone. How do you even have this?"
|
|
icon = 'icons/obj/gemstones.dmi'
|
|
var/gemcolor
|
|
var/gemtype
|
|
var/gemsize
|
|
|
|
/obj/item/precious/gemstone/Initialize(mapload, amount)
|
|
. = ..()
|
|
if(amount)
|
|
stacksize = amount
|
|
update_gem()
|
|
|
|
/obj/item/precious/gemstone/mixed/Initialize(mapload, amount, kind)
|
|
ASSERT(kind)
|
|
stack_contents[kind] = amount
|
|
. = ..(mapload, amount)
|
|
|
|
/obj/item/precious/gemstone/attackby(obj/item/precious/gemstone/G, mob/user)
|
|
if (!istype(G))
|
|
return ..()
|
|
if(G.gemtype == GEM_MIXED)
|
|
to_chat(user, span("notice", "Try doing it the other way - put an unmixed gem into the pile, instead of the pile onto an organized gem stack."))
|
|
return
|
|
if(src.gemsize != G.gemsize)
|
|
to_chat(user, span("notice", "You can't mix gem sizes. It would be too disorganized!"))
|
|
return
|
|
if(src.gemsize == GEM_ENORMOUS)
|
|
to_chat(user, span("notice", "That gem is far too big to stack!"))
|
|
return
|
|
if(src.gemtype == G.gemtype)
|
|
gemstacker(G, user)
|
|
else
|
|
gemmixer(G, user)
|
|
|
|
/obj/item/precious/gemstone/AltClick(mob/user)
|
|
if(src.gemsize == GEM_ENORMOUS)
|
|
user.put_in_hands(src)
|
|
return
|
|
if(src.stacksize == 1) // just pick it up...
|
|
user.put_in_hands(src)
|
|
return
|
|
if(src.gemtype == GEM_MIXED)
|
|
to_chat(user, span("notice", "Try disassembling the whole stack instead, if you want to separate it."))
|
|
return
|
|
else
|
|
to_chat(user, span("notice", "You take a [src.gemsize] [src.gemtype] from the pile."))
|
|
src.stacksize -= 1
|
|
src.update_gem()
|
|
var/obj/O = new type(loc, 1)
|
|
user.put_in_hands(O)
|
|
src.update_gem()
|
|
|
|
/obj/item/precious/gemstone/attack_self(mob/user)
|
|
. = ..()
|
|
if(src.gemsize == GEM_ENORMOUS)
|
|
user.visible_message(span("notice", "[user] admires the sparkling facets of [src]."),
|
|
span("notice", "You gaze into the sparkling facets of [src.name]. Hypnotically beautiful..."))
|
|
return
|
|
switch (stacksize)
|
|
if(1)
|
|
user.visible_message(span("notice", "[user] flips [src] in one hand."),
|
|
span("notice", "You give [src] a little flip. Shiny!"))
|
|
return
|
|
if(1 to 5)
|
|
user.visible_message(span("notice", "[user] sifts [src] through their fingers, admiring the gleaming gemstones."),
|
|
span("notice", "You sift [src] through your fingers. Glittery..."),
|
|
span("notice", "You hear soft clinking."))
|
|
return
|
|
if(6 to 10)
|
|
user.visible_message(span("notice", "[user] counts [src], looking pleased with their bounty."),
|
|
span("notice", "You count [src]. Yep, still [stacksize] gems in the pile!"),
|
|
span("notice", "You hear soft clinking."))
|
|
return
|
|
if(11 to 30)
|
|
user.visible_message(span("notice", "[user] begins counting [src], looking extremely pleased."),
|
|
span("notice", "You start counting [src]. 1... 2... 3..."),
|
|
span("notice", "You hear soft clinking."))
|
|
if(do_after(5))
|
|
to_chat(user, span("notice", "You finish counting. There's still [stacksize] gems in the pile. Hurray!"))
|
|
else
|
|
to_chat(user, span("notice", "You lost your count of [src]!"))
|
|
|
|
/obj/item/precious/gemstone/proc/gemstacker(obj/item/precious/gemstone/G, mob/user)
|
|
if(src.stacksize == src.maxstack)
|
|
to_chat(user, span("notice", "That stack can't get any bigger!"))
|
|
return
|
|
else
|
|
src.stacksize += 1
|
|
G.stacksize -= 1
|
|
update_gem(G)
|
|
G.update_gem(src)
|
|
|
|
/obj/item/precious/gemstone/proc/gemmixer(obj/item/precious/gemstone/G, mob/user)
|
|
if(src.stacksize == src.maxstack)
|
|
to_chat(user, span("notice", "You can't fit any more gems into that pile!"))
|
|
return
|
|
if(src.gemtype != GEM_MIXED)
|
|
to_chat(user, span("notice", "You mix the gemstones together into a pile."))
|
|
G.stacksize -= 1
|
|
switch(gemsize)
|
|
if(GEM_SMALL)
|
|
var/obj/item/precious/gemstone/mixed/pile = new(loc, stacksize, gemtype)
|
|
pile.add_gem(G)
|
|
if(GEM_MEDIUM)
|
|
var/obj/item/precious/gemstone/mixed/med/pile = new(loc, stacksize, gemtype)
|
|
pile.add_gem(G)
|
|
if(GEM_LARGE)
|
|
var/obj/item/precious/gemstone/mixed/large/pile = new(loc, stacksize, gemtype)
|
|
pile.add_gem(G)
|
|
qdel(src)
|
|
else
|
|
to_chat(user, span("notice", "You add the [G.gemtype] to the pile."))
|
|
stack_contents[G.gemtype] += 1
|
|
src.stacksize += 1
|
|
G.stacksize -= 1
|
|
update_gem()
|
|
G.update_gem()
|
|
|
|
|
|
/obj/item/precious/gemstone/proc/add_gem(obj/item/precious/gemstone/G)
|
|
stack_contents[G.gemtype] += 1
|
|
stacksize += 1
|
|
|
|
|
|
/obj/item/precious/gemstone/proc/update_gem()
|
|
if(src.stacksize <= 0)
|
|
qdel(src)
|
|
return
|
|
if(src.gemtype == GEM_MIXED)
|
|
switch (gemsize)
|
|
if(GEM_SMALL)
|
|
switch(stacksize)
|
|
if(30)
|
|
icon_state = "smixed_30"
|
|
if(10 to 29)
|
|
icon_state = "smixed_10"
|
|
else
|
|
icon_state = "smixed_5"
|
|
if(GEM_MEDIUM)
|
|
switch(stacksize)
|
|
if(15)
|
|
icon_state = "mmixed_10"
|
|
else
|
|
icon_state = "mmixed_5"
|
|
if(GEM_LARGE)
|
|
icon_state = "lmixed"
|
|
else
|
|
switch (gemsize)
|
|
if(GEM_SMALL)
|
|
switch (stacksize)
|
|
if(30)
|
|
icon_state = "s[gemtype]_30"
|
|
if(10 to 29)
|
|
icon_state = "s[gemtype]_10"
|
|
if(5 to 9)
|
|
icon_state = "s[gemtype]_5"
|
|
else
|
|
icon_state = "s[gemtype]_[stacksize]"
|
|
if(GEM_MEDIUM)
|
|
switch (stacksize)
|
|
if(15)
|
|
icon_state = "m[gemtype]_10"
|
|
if(5 to 14)
|
|
icon_state = "m[gemtype]_5"
|
|
else
|
|
icon_state = "m[gemtype]_[stacksize]"
|
|
if(GEM_LARGE)
|
|
icon_state = "l[gemtype]_[stacksize]"
|
|
updatedesc()
|
|
|
|
/obj/item/precious/gemstone/proc/updatedesc()
|
|
if(src.stacksize == 1)
|
|
name = "[gemsize] [gemtype]"
|
|
desc = "A single [gemcolor] gemstone of [gemsize] size"
|
|
return
|
|
if(src.gemtype != GEM_MIXED)
|
|
switch(stacksize)
|
|
if(2 to 5)
|
|
name = "[gemsize] [plural]"
|
|
desc = "Several [gemsize] [gemcolor] gemstones. There are [stacksize] gems."
|
|
if(5 to 14)
|
|
name = "pile of [gemsize] [plural]"
|
|
desc = "A pile of [gemsize] [gemcolor] gemstones, stacked into a pile. There are [stacksize] gems in the pile."
|
|
if(15 to 30)
|
|
name = "heap of [gemsize] [plural]"
|
|
desc = "A hefty stack of [gemsize] [gemcolor] gemstones, heaped into a mass of glittering wealth. There are [stacksize] gems in the pile."
|
|
else
|
|
desc = "A colorful pile of assorted [gemsize] gleaming gemstones. There are [stacksize] gems in the pile."
|
|
|
|
var/list/gemtype2type = list(
|
|
GEM_RUBY = list(
|
|
GEM_SMALL = /obj/item/precious/gemstone/ruby,
|
|
GEM_MEDIUM = /obj/item/precious/gemstone/ruby/med,
|
|
GEM_LARGE = /obj/item/precious/gemstone/ruby/large),
|
|
GEM_AMETHYST = list(
|
|
GEM_SMALL = /obj/item/precious/gemstone/amethyst,
|
|
GEM_MEDIUM = /obj/item/precious/gemstone/amethyst/med,
|
|
GEM_LARGE = /obj/item/precious/gemstone/amethyst/large),
|
|
GEM_TOPAZ = list(
|
|
GEM_SMALL = /obj/item/precious/gemstone/topaz,
|
|
GEM_MEDIUM = /obj/item/precious/gemstone/topaz/med,
|
|
GEM_LARGE = /obj/item/precious/gemstone/topaz/large),
|
|
GEM_DIAMOND = list(
|
|
GEM_SMALL = /obj/item/precious/gemstone/diamond,
|
|
GEM_MEDIUM = /obj/item/precious/gemstone/diamond/med,
|
|
GEM_LARGE = /obj/item/precious/gemstone/diamond/large),
|
|
GEM_EMERALD = list (
|
|
GEM_SMALL = /obj/item/precious/gemstone/emerald,
|
|
GEM_MEDIUM = /obj/item/precious/gemstone/emerald/med,
|
|
GEM_LARGE = /obj/item/precious/gemstone/emerald/large),
|
|
GEM_SAPPHIRE = list(
|
|
GEM_SMALL = /obj/item/precious/gemstone/sapphire,
|
|
GEM_MEDIUM = /obj/item/precious/gemstone/sapphire/med,
|
|
GEM_LARGE = /obj/item/precious/gemstone/sapphire/large))
|
|
|
|
|
|
/obj/item/precious/gemstone/mixed/verb/separate_pile()
|
|
set name = "Separate Pile"
|
|
set category = "Object"
|
|
set src in view(1)
|
|
|
|
for (var/gtype in stack_contents)
|
|
var/realtype = global.gemtype2type[gtype][gemsize]
|
|
new realtype(get_turf(loc), stack_contents[gtype])
|
|
to_chat(usr, span("notice", "You separate the gemstone pile into neat, organized stacks of similar gems."))
|
|
qdel(src)
|
|
|
|
// Small gemstones
|
|
|
|
/obj/item/precious/gemstone/ruby
|
|
name = "small ruby"
|
|
desc = "A single red gemstone of small size."
|
|
icon_state = "sruby_1"
|
|
gemtype = GEM_RUBY
|
|
gemsize = GEM_SMALL
|
|
plural = "rubies"
|
|
gemcolor = "red"
|
|
maxstack = 30
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/topaz
|
|
name = "small topaz"
|
|
desc = "A single yellow gemstone of small size."
|
|
icon_state = "stopaz_1"
|
|
gemtype = GEM_TOPAZ
|
|
gemsize = GEM_SMALL
|
|
plural = "topazes"
|
|
gemcolor = "yellow"
|
|
maxstack = 30
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/sapphire
|
|
name = "small sapphire"
|
|
desc = "A single blue gemstone of small size."
|
|
icon_state = "ssapphire_1"
|
|
gemtype = GEM_SAPPHIRE
|
|
gemsize = GEM_SMALL
|
|
plural = "sapphires"
|
|
gemcolor = "blue"
|
|
maxstack = 30
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/amethyst
|
|
name = "small amethyst"
|
|
desc = "A single purple gemstone of small size."
|
|
icon_state = "samethyst_1"
|
|
gemtype = GEM_AMETHYST
|
|
gemsize = GEM_SMALL
|
|
plural = "amethysts"
|
|
gemcolor = "purple"
|
|
maxstack = 30
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/emerald
|
|
name = "small emerald"
|
|
desc = "A single green gemstone of small size."
|
|
icon_state = "semerald_1"
|
|
gemtype = GEM_EMERALD
|
|
gemsize = GEM_SMALL
|
|
plural = "emeralds"
|
|
gemcolor = "green"
|
|
maxstack = 30
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/diamond
|
|
name = "small diamond"
|
|
desc = "A single colorless gemstone of small size."
|
|
icon_state = "sdiamond_1"
|
|
gemtype = GEM_DIAMOND
|
|
gemsize = GEM_SMALL
|
|
plural = "diamonds"
|
|
gemcolor = "colorless"
|
|
maxstack = 30
|
|
stacksize = 1
|
|
|
|
// Medium Gemstones
|
|
|
|
/obj/item/precious/gemstone/ruby/med
|
|
name = "medium ruby"
|
|
desc = "A single red gemstone of medium size."
|
|
icon_state = "mruby_1"
|
|
gemtype = GEM_RUBY
|
|
gemsize = GEM_MEDIUM
|
|
maxstack = 15
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/topaz/med
|
|
name = "medium topaz"
|
|
desc = "A single yellow gemstone of medium size."
|
|
icon_state = "mtopaz_1"
|
|
gemtype = GEM_TOPAZ
|
|
gemsize = GEM_MEDIUM
|
|
maxstack = 15
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/sapphire/med
|
|
name = "medium sapphire"
|
|
desc = "A single blue gemstone of medium size."
|
|
icon_state = "msapphire_1"
|
|
gemtype = GEM_SAPPHIRE
|
|
gemsize = GEM_MEDIUM
|
|
maxstack = 15
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/amethyst/med
|
|
name = "medium amethyst"
|
|
desc = "A single purple gemstone of medium size."
|
|
icon_state = "mamethyst_1"
|
|
gemtype = GEM_AMETHYST
|
|
gemsize = GEM_MEDIUM
|
|
maxstack = 15
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/emerald/med
|
|
name = "medium emerald"
|
|
desc = "A single green gemstone of medium size."
|
|
icon_state = "memerald_1"
|
|
gemtype = GEM_EMERALD
|
|
gemsize = GEM_MEDIUM
|
|
maxstack = 15
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/diamond/med
|
|
name = "medium diamond"
|
|
desc = "A single colorless gemstone of medium size."
|
|
icon_state = "mdiamond_1"
|
|
gemtype = GEM_DIAMOND
|
|
gemsize = GEM_MEDIUM
|
|
maxstack = 15
|
|
stacksize = 1
|
|
|
|
// Large Gemstones
|
|
|
|
/obj/item/precious/gemstone/ruby/large
|
|
name = "large ruby"
|
|
desc = "A single red gemstone of large size."
|
|
icon_state = "lruby_1"
|
|
gemtype = GEM_RUBY
|
|
gemsize = GEM_LARGE
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/topaz/large
|
|
name = "large topaz"
|
|
desc = "A single yellow gemstone of large size."
|
|
icon_state = "ltopaz_1"
|
|
gemtype = GEM_TOPAZ
|
|
gemsize = GEM_LARGE
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/sapphire/large
|
|
name = "large sapphire"
|
|
desc = "A single blue gemstone of large size."
|
|
icon_state = "lsapphire_1"
|
|
gemtype = GEM_SAPPHIRE
|
|
gemsize = GEM_LARGE
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/amethyst/large
|
|
name = "large amethyst"
|
|
desc = "A single purple gemstone of large size."
|
|
icon_state = "lamethyst_1"
|
|
gemtype = GEM_AMETHYST
|
|
gemsize = GEM_LARGE
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/emerald/large
|
|
name = "large emerald"
|
|
desc = "A single green gemstone of large size."
|
|
icon_state = "lemerald_1"
|
|
gemtype = GEM_EMERALD
|
|
gemsize = GEM_LARGE
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/diamond/large
|
|
name = "large diamond"
|
|
desc = "A single colorless gemstone of large size."
|
|
icon_state = "ldiamond_1"
|
|
gemtype = GEM_DIAMOND
|
|
gemsize = GEM_LARGE
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
// Enormous Gemstones
|
|
|
|
/obj/item/precious/gemstone/ruby/huge
|
|
name = "enormous ruby"
|
|
desc = "A single red gemstone of enormous size."
|
|
icon_state = "eruby"
|
|
gemtype = GEM_RUBY
|
|
gemsize = GEM_ENORMOUS
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/topaz/huge
|
|
name = "enormous topaz"
|
|
desc = "A single yellow gemstone of enormous size."
|
|
icon_state = "etopaz"
|
|
gemtype = GEM_TOPAZ
|
|
gemsize = GEM_ENORMOUS
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/sapphire/huge
|
|
name = "enormous sapphire"
|
|
desc = "A single blue gemstone of enormous size."
|
|
icon_state = "esapphire"
|
|
gemtype = GEM_SAPPHIRE
|
|
gemsize = GEM_ENORMOUS
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/amethyst/huge
|
|
name = "enormous amethyst"
|
|
desc = "A single purple gemstone of enormous size."
|
|
icon_state = "eamethyst"
|
|
gemtype = GEM_AMETHYST
|
|
gemsize = GEM_ENORMOUS
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/emerald/huge
|
|
name = "enormous emerald"
|
|
desc = "A single green gemstone of enormous size."
|
|
icon_state = "eemerald"
|
|
gemtype = GEM_EMERALD
|
|
gemsize = GEM_ENORMOUS
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
/obj/item/precious/gemstone/diamond/huge
|
|
name = "enormous diamond"
|
|
desc = "A single colorless gemstone of enormous size."
|
|
icon_state = "ediamond"
|
|
gemtype = GEM_DIAMOND
|
|
gemsize = GEM_ENORMOUS
|
|
maxstack = 5
|
|
stacksize = 1
|
|
|
|
// Temporary treasure hunt space - to be deleted after someone finds the first enormous gemstone
|
|
|
|
/obj/item/precious/gemstone/pickup(mob/living/user)
|
|
if(src.gemsize != GEM_ENORMOUS)
|
|
return
|
|
if(src.pickup == 0)
|
|
to_chat(user, "<span style='color: green;'><i>As you struggle to pick up [src.name], you realize this might possibly be the most valuable object you will ever hold in your life. Can you even put a value on a gemstone this large?</i></span>")
|
|
log_and_message_admins ("[user.name] has found the first enormous gemstone, \a [src.gemtype]. Please inform Kaedwuff about this, he has plans to give them a surprise.")
|
|
src.pickup = 1
|
|
|
|
|
|
// Mixed Gem Piles
|
|
|
|
/obj/item/precious/gemstone/mixed
|
|
name = "small gemstone pile"
|
|
desc = "A pile of assorted small gemstones."
|
|
icon_state = "smixed_5"
|
|
gemtype = GEM_MIXED
|
|
gemsize = GEM_SMALL
|
|
maxstack = 30
|
|
stacksize = 0
|
|
|
|
/obj/item/precious/gemstone/mixed/med
|
|
name = "medium gemstone pile"
|
|
desc = "A pile of assorted medium gemstones."
|
|
gemtype = GEM_MIXED
|
|
gemsize = GEM_MEDIUM
|
|
maxstack = 15
|
|
stacksize = 0
|
|
|
|
/obj/item/precious/gemstone/mixed/large
|
|
name = "large gemstone pile"
|
|
desc = "A pile of assorted large gemstones."
|
|
gemtype = GEM_MIXED
|
|
gemsize = GEM_LARGE
|
|
maxstack = 5
|
|
stacksize = 0
|
|
|
|
/turf/simulated/mineral/proc/findgem()
|
|
if(prob(95))
|
|
spawnsmallgem()
|
|
else
|
|
if(prob(99))
|
|
spawnmediumgem()
|
|
else
|
|
if (prob (95))
|
|
spawnlargegem()
|
|
else
|
|
spawnhugegem()
|
|
|
|
/turf/simulated/mineral/proc/spawnsmallgem()
|
|
if(prob(75))
|
|
if(prob(80))
|
|
var/picked = pick(/obj/item/precious/gemstone/ruby, /obj/item/precious/gemstone/topaz, /obj/item/precious/gemstone/sapphire, /obj/item/precious/gemstone/amethyst, /obj/item/precious/gemstone/emerald)
|
|
new picked(src)
|
|
visible_message(span("notice", "A tiny, glittering gemstone was in the rubble!"))
|
|
else
|
|
new /obj/item/precious/gemstone/diamond(src)
|
|
visible_message(span("notice", "A tiny, glittering diamond was in the rubble! Shiny!"))
|
|
|
|
else
|
|
if(prob(80))
|
|
var/picked = pick(/obj/item/precious/gemstone/ruby, /obj/item/precious/gemstone/topaz, /obj/item/precious/gemstone/sapphire, /obj/item/precious/gemstone/amethyst, /obj/item/precious/gemstone/emerald)
|
|
new picked(src, 2)
|
|
visible_message(span("notice", "A couple tiny, glittering gemstones were in the rubble! Lucky!"))
|
|
else
|
|
new /obj/item/precious/gemstone/diamond(src)
|
|
visible_message(span("notice", "A couple tiny, glittering diamonds were in the rubble! Sweet!"))
|
|
|
|
/turf/simulated/mineral/proc/spawnmediumgem(src)
|
|
if(prob(80))
|
|
var/picked = pick(/obj/item/precious/gemstone/ruby/med, /obj/item/precious/gemstone/topaz/med, /obj/item/precious/gemstone/sapphire/med, /obj/item/precious/gemstone/amethyst/med, /obj/item/precious/gemstone/emerald/med)
|
|
new picked(src)
|
|
visible_message(span("notice", "You found a small gemstone in the rubble! Nice!"))
|
|
else
|
|
new /obj/item/precious/gemstone/diamond/med(src)
|
|
visible_message(span("notice", "You found a small diamond in the rubble! Yeehaw!"))
|
|
|
|
/turf/simulated/mineral/proc/spawnlargegem(src)
|
|
var/picked = pick(/obj/item/precious/gemstone/ruby/large, /obj/item/precious/gemstone/topaz/large, /obj/item/precious/gemstone/sapphire/large, /obj/item/precious/gemstone/amethyst/large, /obj/item/precious/gemstone/diamond/large, /obj/item/precious/gemstone/emerald/large)
|
|
new picked(src)
|
|
visible_message(span("notice", "There was sizable gemstone in the rubble! Wow!"))
|
|
|
|
/turf/simulated/mineral/proc/spawnhugegem(src)
|
|
if(prob(90))
|
|
var/picked = pick(/obj/item/precious/gemstone/ruby/large, /obj/item/precious/gemstone/topaz/large, /obj/item/precious/gemstone/sapphire/large, /obj/item/precious/gemstone/amethyst/large, /obj/item/precious/gemstone/diamond/large, /obj/item/precious/gemstone/emerald/large)
|
|
new picked(src, rand(2,5))
|
|
visible_message(span("danger", "There is a loud crunching sound and you watch in horror as a enormous gemstone that had been embedded in the rock fractures into pieces."))
|
|
visible_message(span("notice", "Well, that was unlucky... at least the fragments are worth something, though..."))
|
|
else
|
|
var/picked = pick(/obj/item/precious/gemstone/ruby/huge, /obj/item/precious/gemstone/topaz/huge, /obj/item/precious/gemstone/sapphire/huge, /obj/item/precious/gemstone/amethyst/huge, /obj/item/precious/gemstone/diamond/huge, /obj/item/precious/gemstone/emerald/huge)
|
|
new picked(src)
|
|
visible_message("<span style='color: green;'><i><em>An enormous gemstone tumbles out of the rubble, somehow managing to survive the destruction of the rock it was hidden in. Holy shit - this thing is larger than your head! You're going to be rich if you can get hold of that!</em></i></span>")
|
|
|
|
/turf/simulated/mineral/proc/spawndiamond()
|
|
if(prob(95))
|
|
spawnsmalldiamond()
|
|
else
|
|
if(prob(99))
|
|
spawnmediumdiamond()
|
|
else
|
|
if (prob (95))
|
|
spawnlargediamond()
|
|
else
|
|
spawnhugediamond()
|
|
|
|
/turf/simulated/mineral/proc/spawnsmalldiamond()
|
|
if(prob(75))
|
|
new /obj/item/precious/gemstone/diamond(src)
|
|
visible_message(span("notice", "There was also a tiny, glittering higher quality diamond among the rubble!"))
|
|
else
|
|
new /obj/item/precious/gemstone/diamond(src, 2)
|
|
visible_message(span("notice", "A couple of tiny higher quality diamonds were also among the rubble! Lucky!"))
|
|
|
|
/turf/simulated/mineral/proc/spawnmediumdiamond()
|
|
new /obj/item/precious/gemstone/diamond/med(src)
|
|
visible_message(span("notice", "A small higher quality diamond was also in the rubble! Nice!"))
|
|
|
|
/turf/simulated/mineral/proc/spawnlargediamond()
|
|
new /obj/item/precious/gemstone/diamond/large(src)
|
|
visible_message(span("notice", "A sizable higher quality diamond was in the rubble! Wow!"))
|
|
|
|
/turf/simulated/mineral/proc/spawnhugediamond()
|
|
if(prob(90))
|
|
new /obj/item/precious/gemstone/diamond/large(src, rand(2,5))
|
|
visible_message(span("danger", "There is a loud crunching sound and you watch in horror as a enormous diamond that had been embedded in the rock fractures into pieces."))
|
|
visible_message(span("notice", "Well, that was unlucky... at least the fragments are worth something, though..."))
|
|
else
|
|
new /obj/item/precious/gemstone/diamond/huge(src)
|
|
visible_message("<span style='color: green;'><i><em>You find an enormous diamond in the rubble that managed to survive the destruction of the rock it was hidden in. Holy shit - this thing is larger than your head! You're going to be rich if you can get hold of that!</em></i></span>")
|