Files
vgstation13/code/modules/mining/minerals.dm
Paul Ritter 9e371f3884 starting the crusade against relative pathing (#22593)
* starting the crusade against relative pathing

* new() part1

* new() part 2

* FOR VALHALLA

* you sneaky buggers

* part 5: the reckoning

* chapter 6: rejuvination

* chapter 7: age of conflict

* dammit travis
2019-04-29 13:33:46 -03:00

227 lines
4.5 KiB
Plaintext

var/list/name_to_mineral
proc/SetupMinerals()
name_to_mineral = list()
for(var/type in typesof(/mineral) - /mineral)
var/mineral/new_mineral = new type
if(!new_mineral.name)
continue
name_to_mineral[new_mineral.name] = new_mineral
return 1
mineral
///What am I called?
var/name
var/display_name
///How much ore?
var/result_amount
///Does this type of deposit spread?
var/spread = 1
///Chance of spreading in any direction
var/spread_chance
///Path to the resultant ore.
var/ore
mineral/New()
. = ..()
if(!display_name)
display_name = name
mineral/proc/UpdateTurf(var/turf/unsimulated/mineral/T)
T.UpdateMineral()
mineral/proc/DropMineral(var/turf/unsimulated/mineral/T)
var/obj/item/O = drop_stack(ore, T, result_amount)
if(O.pixel_x != 0 && O.pixel_y != 0) //give it a little jiggle
O.pixel_x = rand(-16,16) * PIXEL_MULTIPLIER
O.pixel_y = rand(-16,16) * PIXEL_MULTIPLIER
if(istype(O, /obj/item/stack/ore))
var/obj/item/stack/ore/OR = O
if(!T.geologic_data)
T.geologic_data = new/datum/geosample(T)
T.geologic_data.UpdateNearbyArtifactInfo(T)
OR.geologic_data = T.geologic_data
return O
mineral/uranium
name = "Uranium"
result_amount = 5
spread_chance = 10
ore = /obj/item/stack/ore/uranium
mineral/iron
name = "Iron"
result_amount = 5
spread_chance = 25
ore = /obj/item/stack/ore/iron
mineral/diamond
name = "Diamond"
result_amount = 5
spread_chance = 10
ore = /obj/item/stack/ore/diamond
mineral/gold
name = "Gold"
result_amount = 5
spread_chance = 10
ore = /obj/item/stack/ore/gold
mineral/silver
name = "Silver"
result_amount = 5
spread_chance = 10
ore = /obj/item/stack/ore/silver
mineral/plasma
name = "Plasma"
result_amount = 5
spread_chance = 25
ore = /obj/item/stack/ore/plasma
mineral/clown
display_name = "Bananium"
name = "Clown"
result_amount = 3
spread = 0
ore = /obj/item/stack/ore/clown
mineral/phazon
display_name = "Phazon"
name = "Phazon"
result_amount = 3
spread = 0
ore = /obj/item/stack/ore/phazon
mineral/pharosium
name = "Pharosium"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/pharosium
mineral/char
name = "Char"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/char
mineral/claretine
name = "Claretine"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/claretine
mineral/bohrum
name = "Bohrum"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/bohrum
mineral/syreline
name = "Syreline"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/syreline
mineral/erebite
name = "Erebite"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/erebite
mineral/cytine
name = "Cytine"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/cytine
mineral/uqill
name = "Uqill"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/uqill
mineral/telecrystal
name = "Telecrystal"
result_amount = 1
spread_chance = 5
ore = /obj/item/stack/ore/telecrystal
mineral/mauxite
name = "Mauxite"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/mauxite
mineral/cobryl
name = "Cobryl"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/cobryl
mineral/cerenkite
name = "Cerenkite"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/cerenkite
mineral/molitz
name = "Molitz"
result_amount = 5
spread_chance = 5
ore = /obj/item/stack/ore/molitz
mineral/gibtonite
display_name = "Gibtonite"
name = "Gibtonite"
result_amount = 1
spread = 1
ore = /obj/item/weapon/gibtonite
mineral/gibtonite/UpdateTurf(var/turf/unsimulated/mineral/T)
if(!istype(T,/turf/unsimulated/mineral/gibtonite))
var/old_state = T.icon_state
var/turf/unsimulated/mineral/newturf = T.ChangeTurf(/turf/unsimulated/mineral/gibtonite)
newturf.base_icon_state = old_state
newturf.icon_state = old_state
else
..()
mineral/ice
display_name = "Ice"
name = "Ice"
result_amount = 3
spread = 3
ore = /obj/item/ice_crystal
mineral/cave
display_name = "Cave"
name = "Cave"
result_amount = 1
spread = 1
ore = null
mineral/cave/UpdateTurf(var/turf/T)
if(!istype(T,/turf/unsimulated/floor/asteroid/cave))
T.ChangeTurf(/turf/unsimulated/floor/asteroid/cave)
else
..()
mineral/cave/ice
display_name = "Ice Cave"
name = "Ice Cave"
mineral/cave/ice/UpdateTurf(var/turf/T)
if(!istype(T,/turf/unsimulated/floor/asteroid/cave/permafrost))
T.ChangeTurf(/turf/unsimulated/floor/asteroid/cave/permafrost)
else
..()
mineral/mythril
display_name = "Silver"
name = "Mythril"
result_amount = 4
spread = 2
ore = /obj/item/stack/ore/mythril