mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-26 01:52:15 +00:00
Merge branch 'master' into more-contractor-stuff
This commit is contained in:
@@ -269,9 +269,9 @@
|
||||
// At this point in client Click() code we have passed the 1/10 sec check and little else
|
||||
// We don't even know if it's a middle click
|
||||
if(!usr.canClick())
|
||||
return 1
|
||||
if(usr.stat || usr.paralysis || usr.stunned || usr.weakened)
|
||||
return 1
|
||||
return TRUE
|
||||
if(use_check_and_message(usr, USE_ALLOW_NON_ADJACENT|USE_ALLOW_NON_ADV_TOOL_USR)) //You're always adjacent to your inventory in practice.
|
||||
return TRUE
|
||||
switch(name)
|
||||
if(BP_R_HAND)
|
||||
if(iscarbon(usr))
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
"Anomalist" = /datum/outfit/job/scientist/hephaestus,
|
||||
"Roboticist" = /datum/outfit/job/roboticist/hephaestus,
|
||||
"Shaft Miner" = /datum/outfit/job/mining/hephaestus,
|
||||
"Drill Technician" = /datum/outfit/job/mining/drill/hephaestus,
|
||||
"Quartermaster" = /datum/outfit/job/qm/hephaestus,
|
||||
"Cargo Technician" = /datum/outfit/job/cargo_tech/hephaestus,
|
||||
"Corporate Liaison" = /datum/outfit/job/representative/hephaestus
|
||||
@@ -91,6 +92,11 @@
|
||||
uniform = /obj/item/clothing/under/rank/hephaestus/tech
|
||||
id = /obj/item/card/id/hephaestus
|
||||
|
||||
/datum/outfit/job/mining/drill/hephaestus
|
||||
name = "Drill Technician - Hephaestus"
|
||||
uniform = /obj/item/clothing/under/rank/hephaestus/tech
|
||||
id = /obj/item/card/id/hephaestus
|
||||
|
||||
/datum/outfit/job/qm/hephaestus
|
||||
name = "Quartermaster - Hephaestus"
|
||||
uniform = /obj/item/clothing/under/rank/hephaestus/tech
|
||||
|
||||
@@ -424,7 +424,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
|
||||
/obj/item/device/pda/MouseDrop(obj/over_object as obj, src_location, over_location)
|
||||
var/mob/M = usr
|
||||
if((!istype(over_object, /obj/screen)) && !use_check(M))
|
||||
if(!istype(over_object, /obj/screen) && !use_check(M) && !(over_object == src))
|
||||
return attack_self(M)
|
||||
|
||||
/obj/item/device/pda/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
var/global/list/datum/stack_recipe/rod_recipes = list(
|
||||
new /datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("floor-mounted catwalk", /obj/structure/lattice/catwalk/indoor, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("grate, dark", /obj/structure/lattice/catwalk/indoor/grate, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("grate, light", /obj/structure/lattice/catwalk/indoor/grate/light, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("grate, dark", /obj/structure/lattice/catwalk/indoor/grate, 1, time = 10, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("grate, light", /obj/structure/lattice/catwalk/indoor/grate/light, 1, time = 10, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("mine track", /obj/structure/track, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE),
|
||||
new /datum/stack_recipe("cane", /obj/item/cane, 1, time = 6),
|
||||
new /datum/stack_recipe("crowbar", /obj/item/crowbar, 1, time = 6),
|
||||
|
||||
@@ -153,13 +153,12 @@ Implant Specifics:<BR>"}
|
||||
desc = "A military grade micro bio-explosive. Highly dangerous."
|
||||
var/elevel = "Localized Limb"
|
||||
var/phrase
|
||||
var/fallback_phrase = "supercalifragilisticexpialidocious"
|
||||
var/setup_done = FALSE //Have we set this yet?
|
||||
icon_state = "implant_evil"
|
||||
|
||||
/obj/item/implant/explosive/Initialize()
|
||||
. = ..()
|
||||
fallback_phrase = pick(adjectives)
|
||||
phrase = "You are [pick(adjectives)]"
|
||||
|
||||
/obj/item/implant/explosive/get_data()
|
||||
. = {"
|
||||
@@ -179,12 +178,10 @@ Implant Specifics:<BR>"}
|
||||
if(implanter.imp)
|
||||
to_chat(user, SPAN_NOTICE("\The [implanter] already has an implant loaded."))
|
||||
return // It's full.
|
||||
if(!phrase)
|
||||
var/choice = alert("\The [src]'s default phrase has not been changed. Continue?", "Ready for Implantation?", "Yes", "Cancel")
|
||||
if(!setup_done)
|
||||
var/choice = alert("\The [src]'s default settings have not been changed. Continue?", "Ready for Implantation?", "Yes", "Cancel")
|
||||
if(choice == "Cancel")
|
||||
return
|
||||
else
|
||||
phrase = fallback_phrase
|
||||
to_chat(user, "<B>You load \the [src] into \the [I]. The current setting is \"[elevel]\" and the current phrase is \"[phrase]\".</B>")
|
||||
user.drop_from_inventory(src)
|
||||
forceMove(implanter)
|
||||
@@ -272,8 +269,6 @@ Implant Specifics:<BR>"}
|
||||
SSexplosives.queue(data)
|
||||
|
||||
/obj/item/implant/explosive/implanted(mob/source, mob/user)
|
||||
if(!phrase)
|
||||
phrase = fallback_phrase
|
||||
if(user.mind)
|
||||
user.mind.store_memory("\The [src] in [source] can be activated by saying something containing the phrase ''[phrase]'', <B>say [phrase]</B> to attempt to activate.", 0, 0)
|
||||
to_chat(usr, "\The [src] in [source] can be activated by saying something containing the phrase ''[phrase]'', <B>say [phrase]</B> to attempt to activate.")
|
||||
@@ -284,8 +279,6 @@ Implant Specifics:<BR>"}
|
||||
phrase = input("Choose activation phrase:") as text
|
||||
var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = "")
|
||||
phrase = replace_characters(phrase, replacechars)
|
||||
if(!phrase)
|
||||
phrase = fallback_phrase
|
||||
user.mind.store_memory("\The [src] can be activated by saying something containing the phrase ''[phrase]'', <B>say [phrase]</B> to attempt to activate.", 0, 0)
|
||||
to_chat(user, "\The [src] can be activated by saying something containing the phrase ''[phrase]'', <B>say [phrase]</B> to attempt to activate.")
|
||||
setup_done = TRUE
|
||||
|
||||
@@ -52,29 +52,29 @@
|
||||
QDEL_NULL(closer)
|
||||
return ..()
|
||||
|
||||
/obj/item/storage/MouseDrop(obj/over_object as obj)
|
||||
|
||||
/obj/item/storage/MouseDrop(obj/over_object)
|
||||
if(!canremove)
|
||||
return
|
||||
|
||||
if (ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist
|
||||
|
||||
if(!over_object || over_object == src)
|
||||
return
|
||||
if(istype(over_object, /obj/screen/inventory))
|
||||
var/obj/screen/inventory/S = over_object
|
||||
if(S.slot_id == src.equip_slot)
|
||||
return
|
||||
if(ishuman(usr) || issmall(usr)) //so monkeys can take off their backpacks -- Urist
|
||||
if(over_object == usr && Adjacent(usr)) // this must come before the screen objects only block
|
||||
src.open(usr)
|
||||
return
|
||||
|
||||
if (!( istype(over_object, /obj/screen) ))
|
||||
if(!(istype(over_object, /obj/screen)))
|
||||
return ..()
|
||||
|
||||
//makes sure that the storage is equipped, so that we can't drag it into our hand from miles away.
|
||||
//there's got to be a better way of doing this.
|
||||
if (!(src.loc == usr) || (src.loc && src.loc.loc == usr))
|
||||
if(!(src.loc == usr) || (src.loc && src.loc.loc == usr))
|
||||
return
|
||||
|
||||
if (( usr.restrained() ) || ( usr.stat ))
|
||||
if(use_check_and_message(usr))
|
||||
return
|
||||
|
||||
if ((src.loc == usr) && !usr.unEquip(src))
|
||||
if((src.loc == usr) && !usr.unEquip(src))
|
||||
return
|
||||
|
||||
switch(over_object.name)
|
||||
@@ -86,7 +86,6 @@
|
||||
usr.put_in_l_hand(src,FALSE)
|
||||
src.add_fingerprint(usr)
|
||||
|
||||
|
||||
/obj/item/storage/proc/return_inv()
|
||||
. = contents.Copy()
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
icon_state = "catwalk"
|
||||
smooth = TRUE
|
||||
canSmoothWith = null
|
||||
var/return_amount = 3
|
||||
|
||||
// Special catwalk that can be placed on regular flooring.
|
||||
/obj/structure/lattice/catwalk/indoor
|
||||
@@ -80,7 +81,9 @@
|
||||
if (do_after(user, 5/C.toolspeed, act_target = src) && WT.remove_fuel(1, user))
|
||||
to_chat(user, "<span class='notice'>You slice apart [src].</span>")
|
||||
playsound(src, 'sound/items/Welder.ogg', 50, 1)
|
||||
new /obj/item/stack/rods{amount = 3}(loc)
|
||||
var/obj/item/stack/rods/R = new /obj/item/stack/rods(get_turf(src))
|
||||
R.amount = return_amount
|
||||
R.update_icon()
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/attackby(obj/item/C, mob/user)
|
||||
@@ -104,6 +107,7 @@
|
||||
desc = "A metal grate."
|
||||
icon = 'icons/obj/grate.dmi'
|
||||
icon_state = "grate_dark"
|
||||
return_amount = 1
|
||||
smooth = null
|
||||
var/base_icon_state = "grate_dark"
|
||||
var/damaged = FALSE
|
||||
@@ -122,6 +126,7 @@
|
||||
/obj/structure/lattice/catwalk/indoor/grate/light
|
||||
icon_state = "grate_light"
|
||||
base_icon_state = "grate_light"
|
||||
return_amount = 1
|
||||
|
||||
/obj/structure/lattice/catwalk/indoor/grate/light/old
|
||||
icon_state = "grate_light_old"
|
||||
|
||||
@@ -40,22 +40,26 @@
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/MouseDrop(var/obj/over_object)
|
||||
if (ishuman(usr) || issmall(usr))
|
||||
if(ishuman(usr) || issmall(usr))
|
||||
//makes sure that the clothing is equipped so that we can't drag it into our hand from miles away.
|
||||
if (!(src.loc == usr))
|
||||
if(!(src.loc == usr))
|
||||
return
|
||||
|
||||
if(!over_object)
|
||||
if(!over_object || over_object == src)
|
||||
return
|
||||
|
||||
if (( usr.restrained() ) || ( usr.stat ))
|
||||
if(istype(over_object, /obj/screen/inventory))
|
||||
var/obj/screen/inventory/S = over_object
|
||||
if(S.slot_id == src.equip_slot)
|
||||
return
|
||||
|
||||
if(use_check_and_message(usr))
|
||||
return
|
||||
|
||||
if (!usr.canUnEquip(src))
|
||||
if(!usr.canUnEquip(src))
|
||||
return
|
||||
|
||||
var/obj/item/clothing/C = src
|
||||
|
||||
usr.unEquip(C)
|
||||
|
||||
switch(over_object.name)
|
||||
|
||||
@@ -240,7 +240,6 @@
|
||||
|
||||
if(ispath(installed_barrel.projectile_type, /obj/item/projectile/kinetic))
|
||||
var/obj/item/projectile/kinetic/shot_projectile = new installed_barrel.projectile_type(get_turf(src))
|
||||
new installed_barrel.projectile_type(get_turf(src))
|
||||
shot_projectile.damage = damage_increase
|
||||
shot_projectile.range = range_increase
|
||||
shot_projectile.aoe = aoe_increase
|
||||
|
||||
@@ -18,20 +18,6 @@
|
||||
/obj/item/projectile/kinetic/mech/burst
|
||||
damage = 25
|
||||
|
||||
/obj/item/projectile/kinetic/Collide(var/atom/A)
|
||||
var/turf/target_turf = get_turf(A)
|
||||
if(!target_turf)
|
||||
target_turf = get_turf(src)
|
||||
if(istype(target_turf))
|
||||
var/datum/gas_mixture/environment = target_turf.return_air()
|
||||
damage *= max(1 - (environment.return_pressure()/100)*0.75,0)
|
||||
if(isliving(A)) //Never do more than 50 damage to a living being per shot.
|
||||
damage = min(damage, 50)
|
||||
if(istype(target_turf, /turf/simulated/mineral))
|
||||
var/turf/simulated/mineral/M = target_turf
|
||||
M.kinetic_hit(base_damage, dir)
|
||||
. = ..()
|
||||
|
||||
/obj/item/projectile/kinetic/on_impact(var/atom/A)
|
||||
var/turf/target_turf = get_turf(A)
|
||||
if(!target_turf)
|
||||
@@ -40,6 +26,19 @@
|
||||
aoe_shot = TRUE
|
||||
strike_thing(A)
|
||||
|
||||
/obj/item/projectile/kinetic/proc/do_damage(var/atom/A)
|
||||
var/turf/target_turf = get_turf(A)
|
||||
if(!target_turf)
|
||||
target_turf = get_turf(src)
|
||||
if(istype(target_turf))
|
||||
var/datum/gas_mixture/environment = target_turf.return_air()
|
||||
damage *= max(1 - (environment.return_pressure() / 100) * 0.75, 0)
|
||||
if(isliving(A)) //Never do more than 50 damage to a living being per shot.
|
||||
damage = min(damage, 50)
|
||||
if(istype(target_turf, /turf/simulated/mineral))
|
||||
var/turf/simulated/mineral/M = target_turf
|
||||
M.kinetic_hit(base_damage, dir)
|
||||
|
||||
/obj/item/projectile/kinetic/proc/strike_thing(atom/target)
|
||||
|
||||
var/turf/target_turf = get_turf(target)
|
||||
@@ -50,7 +49,10 @@
|
||||
new /obj/effect/overlay/temp/kinetic_blast(target_turf)
|
||||
|
||||
for(var/new_target in orange(aoe, target_turf))
|
||||
damage = max(base_damage - base_damage * get_dist(new_target, target_turf) * 0.25, 0)
|
||||
new /obj/effect/overlay/temp/kinetic_blast(get_turf(new_target))
|
||||
src.Collide(new_target)
|
||||
var/obj/item/projectile/kinetic/spread = new /obj/item/projectile/kinetic
|
||||
spread.aoe_shot = TRUE
|
||||
spread.damage = max(base_damage - base_damage * get_dist(new_target, target_turf) * 0.25, 0)
|
||||
spread.do_damage(new_target)
|
||||
spread.Collide(new_target)
|
||||
CHECK_TICK
|
||||
@@ -18,6 +18,8 @@
|
||||
var/list/supports = list()
|
||||
var/supported = FALSE
|
||||
var/active = FALSE
|
||||
var/current_error
|
||||
|
||||
var/list/resource_field = list()
|
||||
|
||||
var/ore_types = list(
|
||||
@@ -153,6 +155,7 @@
|
||||
else
|
||||
active = FALSE
|
||||
need_player_check = TRUE
|
||||
system_error("Resource field depleted.")
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/mining/drill/examine(mob/user)
|
||||
@@ -163,9 +166,12 @@
|
||||
to_chat(user, "The drill is [active ? "active" : "inactive"] and the cell panel is [panel_open ? "open" : "closed"].")
|
||||
if(panel_open)
|
||||
to_chat(user, "The power cell is [cell ? "installed" : "missing"].")
|
||||
to_chat(user, "The cell charge meter reads [cell ? round(cell.percent(),1) : 0]%")
|
||||
if(attached_satchel && user.Adjacent(src))
|
||||
to_chat(user, FONT_SMALL(SPAN_NOTICE("It has a [attached_satchel] attached to it.")))
|
||||
to_chat(user, "The cell charge meter reads [cell ? round(cell.percent(),1) : 0]%.")
|
||||
if(user.Adjacent(src))
|
||||
if(attached_satchel)
|
||||
to_chat(user, FONT_SMALL(SPAN_NOTICE("It has a [attached_satchel] attached to it.")))
|
||||
if(current_error)
|
||||
to_chat(user, FONT_SMALL(SPAN_WARNING("The error display reads \"[current_error]\".")))
|
||||
return
|
||||
|
||||
/obj/machinery/mining/drill/proc/activate_light(var/lights = DRILL_LIGHT_IDLE)
|
||||
@@ -206,16 +212,22 @@
|
||||
user.drop_from_inventory(S, src)
|
||||
attached_satchel = S
|
||||
to_chat(user, SPAN_NOTICE("You attach \the [S] to \the [src]."))
|
||||
for(var/obj/item/ore/ore in src) // takes ore currently in the drill and beams it away
|
||||
attached_satchel.insert_into_storage(ore)
|
||||
return
|
||||
|
||||
if(O.iswrench())
|
||||
if(!attached_satchel)
|
||||
to_chat(user, SPAN_WARNING("\The [src] doesn't have a satchel attached to it!"))
|
||||
return
|
||||
attached_satchel.forceMove(get_turf(user))
|
||||
user.put_in_hands(attached_satchel)
|
||||
to_chat(user, SPAN_NOTICE("You detach \the [attached_satchel]."))
|
||||
attached_satchel = null
|
||||
user.visible_message(SPAN_NOTICE("\The [user] starts detaching \the [attached_satchel]."), SPAN_NOTICE("You start detaching \the [attached_satchel]."))
|
||||
if(do_after(user, 30, TRUE, src))
|
||||
if(!attached_satchel)
|
||||
return
|
||||
attached_satchel.forceMove(get_turf(user))
|
||||
user.put_in_hands(attached_satchel)
|
||||
user.visible_message(SPAN_NOTICE("\The [user] detaches \the [attached_satchel]."), SPAN_NOTICE("You detach \the [attached_satchel]."))
|
||||
attached_satchel = null
|
||||
return
|
||||
|
||||
if(O.iscrowbar())
|
||||
@@ -256,6 +268,7 @@
|
||||
|
||||
if(need_player_check)
|
||||
to_chat(user, SPAN_NOTICE("You hit the manual override and reset the drill's error checking."))
|
||||
current_error = null
|
||||
need_player_check = FALSE
|
||||
if(anchored)
|
||||
get_resource_field()
|
||||
@@ -324,7 +337,7 @@
|
||||
..()
|
||||
harvest_speed = 0
|
||||
capacity = 0
|
||||
charge_use = 50
|
||||
charge_use = 25
|
||||
|
||||
for(var/obj/item/stock_parts/P in component_parts)
|
||||
if(ismicrolaser(P))
|
||||
@@ -332,7 +345,7 @@
|
||||
else if(ismatterbin(P))
|
||||
capacity = 200 * P.rating
|
||||
else if(iscapacitor(P))
|
||||
charge_use -= 10 * P.rating
|
||||
charge_use -= 5 * P.rating
|
||||
cell = locate(/obj/item/cell) in component_parts
|
||||
|
||||
/obj/machinery/mining/drill/proc/check_supports()
|
||||
@@ -352,35 +365,30 @@
|
||||
|
||||
/obj/machinery/mining/drill/proc/system_error(var/error)
|
||||
if(error)
|
||||
visible_message(SPAN_WARNING("\icon[src] [src.name] flashes a system warning: [error]"))
|
||||
visible_message(SPAN_WARNING("\icon[src] <b>[capitalize_first_letters(src.name)]</b> flashes a system warning: \"[error]\"."))
|
||||
current_error = error
|
||||
playsound(get_turf(src), 'sound/machines/warning-buzzer.ogg', 100, 1)
|
||||
need_player_check = TRUE
|
||||
active = FALSE
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/mining/drill/proc/get_resource_field()
|
||||
|
||||
resource_field = list()
|
||||
need_update_field = FALSE
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
if(!istype(T))
|
||||
if(!istype(T))
|
||||
return
|
||||
|
||||
var/tx = T.x - 2
|
||||
var/ty = T.y - 2
|
||||
var/turf/mine_turf
|
||||
for(var/iy = 0,iy < 5, iy++)
|
||||
for(var/ix = 0, ix < 5, ix++)
|
||||
mine_turf = locate(tx + ix, ty + iy, T.z)
|
||||
if(mine_turf && mine_turf.has_resources)
|
||||
resource_field += mine_turf
|
||||
for(var/turf/mine_turf in block(locate(src.x + 2, src.y + 2, src.z), locate(src.x - 2, src.y - 2, src.z)))
|
||||
if(mine_turf?.has_resources)
|
||||
resource_field += mine_turf
|
||||
|
||||
if(!length(resource_field))
|
||||
system_error("Resources depleted.")
|
||||
|
||||
/obj/machinery/mining/drill/proc/use_cell_power()
|
||||
if(!cell)
|
||||
if(!cell)
|
||||
return FALSE
|
||||
if(cell.charge >= charge_use)
|
||||
cell.use(charge_use)
|
||||
@@ -403,7 +411,7 @@
|
||||
else
|
||||
for(var/obj/item/ore/O in contents)
|
||||
O.forceMove(get_turf(src))
|
||||
to_chat(usr, SPAN_NOTICE("You spill the contents of \the [src]'s storage box all over the ground"))
|
||||
to_chat(usr, SPAN_NOTICE("You spill the contents of \the [src]'s storage box all over the ground."))
|
||||
|
||||
|
||||
/obj/machinery/mining/brace
|
||||
@@ -472,6 +480,11 @@
|
||||
playsound(get_turf(src), W.usesound, 100, 1)
|
||||
to_chat(user, SPAN_NOTICE("You [anchored ? "un" : ""]anchor the brace."))
|
||||
|
||||
for(var/angle in cardinal) // make it face any drill in cardinal direction from it
|
||||
if(locate(/obj/machinery/mining/drill) in get_step(src, angle))
|
||||
src.dir = angle
|
||||
break
|
||||
|
||||
anchored = !anchored
|
||||
if(anchored)
|
||||
connect()
|
||||
@@ -508,4 +521,4 @@
|
||||
|
||||
connected.supports -= src
|
||||
connected.check_supports()
|
||||
connected = null
|
||||
connected = null
|
||||
@@ -258,10 +258,11 @@
|
||||
return
|
||||
|
||||
/obj/item/gripper/no_use/loader //This is used to disallow building with metal.
|
||||
name = "sheet loader"
|
||||
desc = "A specialized loading device, designed to pick up and insert sheets of materials inside machines."
|
||||
name = "sheet holder"
|
||||
desc = "A specialized holding device, designed to hold sheets of material or tiling."
|
||||
icon_state = "gripper-sheet"
|
||||
|
||||
can_hold = list(
|
||||
/obj/item/stack/material
|
||||
/obj/item/stack/material,
|
||||
/obj/item/stack/tile
|
||||
)
|
||||
|
||||
@@ -79,9 +79,14 @@
|
||||
T.resources["phoron"] = rand(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX)
|
||||
T.resources["osmium"] = rand(RESOURCE_HIGH_MIN, RESOURCE_HIGH_MAX)
|
||||
T.resources["hydrogen"] = rand(RESOURCE_MID_MIN, RESOURCE_MID_MAX)
|
||||
T.resources["iron"] = 0
|
||||
T.resources["gold"] = 0
|
||||
T.resources["silver"] = 0
|
||||
if(prob(40)) // A medium chance for these useful mats to appear in very small quantities
|
||||
T.resources["iron"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX)
|
||||
T.resources["gold"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX)
|
||||
T.resources["silver"] = rand(RESOURCE_LOW_MIN, RESOURCE_LOW_MAX)
|
||||
else
|
||||
T.resources["iron"] = 0
|
||||
T.resources["gold"] = 0
|
||||
T.resources["silver"] = 0
|
||||
return
|
||||
|
||||
/datum/random_map/noise/ore/get_map_char(var/value)
|
||||
|
||||
Reference in New Issue
Block a user