Merge branch 'master' into upstream-merge-8222

This commit is contained in:
Heroman
2022-02-19 18:41:29 +10:00
1251 changed files with 947582 additions and 38891 deletions
+50 -11
View File
@@ -11,11 +11,14 @@
icon_state = "mining_drill"
circuit = /obj/item/weapon/circuitboard/miningdrill
var/braces_needed = 2
var/list/supports = list()
var/total_brace_tier = 0
var/list/obj/machinery/mining/brace/supports = list()
var/supported = 0
var/active = 0
var/list/resource_field = list()
var/obj/item/device/radio/intercom/faultreporter
var/drill_range = 5
var/offset = 2
var/list/ore_types = list(
"hematite" = /obj/item/weapon/ore/iron,
@@ -174,6 +177,9 @@
if(newtag)
name = "[initial(name)] #[newtag]"
to_chat(user, "<span class='notice'>You changed the drill ID to: [newtag]</span>")
else
name = "[initial(name)]"
to_chat(user, SPAN_NOTICE("You removed the drill's ID and any extraneous labels."))
return
if(default_deconstruction_screwdriver(user, O))
return
@@ -197,6 +203,7 @@
/obj/machinery/mining/drill/attack_hand(mob/user as mob)
check_supports()
RefreshParts()
if (panel_open && cell && user.Adjacent(src))
to_chat(user, "You take out \the [cell].")
@@ -217,6 +224,8 @@
if(active)
visible_message("<b>\The [src]</b> lurches downwards, grinding noisily.")
need_update_field = 1
harvest_speed *= total_brace_tier
charge_use *= total_brace_tier
else
visible_message("<b>\The [src]</b> shudders to a grinding halt.")
else
@@ -242,10 +251,12 @@
harvest_speed = 0
capacity = 0
charge_use = 50
drill_range = 5
offset = 2
for(var/obj/item/weapon/stock_parts/P in component_parts)
if(istype(P, /obj/item/weapon/stock_parts/micro_laser))
harvest_speed = P.rating
harvest_speed = P.rating ** 2 // 1, 4, 9, 16, 25
exotic_drilling = P.rating - 1
if(exotic_drilling >= 1)
ore_types |= ore_types_uncommon
@@ -254,6 +265,14 @@
else
ore_types -= ore_types_uncommon
ore_types -= ore_types_rare
if(P.rating > 3) // are we t4+?
// default drill range 5, offset 2
if(P.rating >= 5) // t5
drill_range = 9
offset = 4
else if(P.rating >= 4) // t4
drill_range = 7
offset = 3
if(istype(P, /obj/item/weapon/stock_parts/matter_bin))
capacity = 200 * P.rating
if(istype(P, /obj/item/weapon/stock_parts/capacitor))
@@ -263,6 +282,7 @@
/obj/machinery/mining/drill/proc/check_supports()
supported = 0
total_brace_tier = 0
if((!supports || !supports.len) && initial(anchored) == 0)
icon_state = "mining_drill"
@@ -271,8 +291,14 @@
else
anchored = TRUE
if(supports && supports.len >= braces_needed)
supported = 1
if(supports)
if(supports.len >= braces_needed)
supported = 1
else for(var/obj/machinery/mining/brace/check in supports)
if(check.brace_tier >= 3)
supported = 1
for(var/obj/machinery/mining/brace/check in supports)
total_brace_tier += check.brace_tier
update_icon()
@@ -293,11 +319,11 @@
var/turf/T = get_turf(src)
if(!istype(T)) return
var/tx = T.x - 2
var/ty = T.y - 2
var/tx = T.x - offset
var/ty = T.y - offset
var/turf/simulated/mine_turf
for(var/iy = 0,iy < 5, iy++)
for(var/ix = 0, ix < 5, ix++)
for(var/iy = 0,iy < drill_range, iy++)
for(var/ix = 0, ix < drill_range, ix++)
mine_turf = locate(tx + ix, ty + iy, T.z)
if(!istype(mine_turf, /turf/space/))
if(mine_turf && mine_turf.has_resources)
@@ -334,12 +360,23 @@
desc = "A machinery brace for an industrial drill. It looks easily two feet thick."
icon_state = "mining_brace"
circuit = /obj/item/weapon/circuitboard/miningdrillbrace
var/brace_tier = 1
var/obj/machinery/mining/drill/connected
/obj/machinery/mining/brace/New()
..()
/obj/machinery/mining/brace/examine(mob/user)
. = ..()
if(brace_tier > 2)
. += SPAN_NOTICE("The internals of the brace look resilient enough to support a drill by itself.")
component_parts = list()
/obj/machinery/mining/brace/Initialize()
. = ..()
default_apply_parts()
/obj/machinery/mining/brace/RefreshParts()
..()
brace_tier = 0
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
brace_tier += M.rating
/obj/machinery/mining/brace/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(connected && connected.active)
@@ -350,6 +387,8 @@
return
if(default_deconstruction_crowbar(user, W))
return
if(default_part_replacement(user,W))
return
if(W.is_wrench())
+50 -35
View File
@@ -237,6 +237,7 @@
/obj/item/weapon/kinetic_crusher/machete
// general purpose. cleaves though
name = "proto-kinetic machete"
desc = "A scaled down version of a proto-kinetic crusher, used by people who don't want to lug around an axe-hammer."
icon_state = "glaive-machete"
@@ -245,16 +246,15 @@
slot_r_hand_str = 'icons/mob/items/righthand_melee_vr.dmi',
)
item_state = "c-machete"
w_class = ITEMSIZE_SMALL
w_class = ITEMSIZE_NORMAL
attack_verb = list("cleaved", "chopped", "pulped", "stabbed", "skewered")
force = 24
can_cleave = TRUE
requires_wield = FALSE
// yeah yeah buff but polaris mobs are meatwalls.
backstab_bonus = 40
detonation_damage = 26
// meme option
thrown_bonus = 20
force = 24
detonation_damage = 36 // 60
backstab_bonus = 40 // 100
thrown_bonus = 20 // 120
update_item_state = FALSE
@@ -269,11 +269,11 @@
attack_verb = list("bashed", "kicked", "punched", "struck", "axe kicked", "uppercut", "cross-punched", "jabbed", "hammerfisted", "roundhouse kicked")
integ_light_icon = FALSE
w_class = ITEMSIZE_HUGE
force = 30
can_cleave = FALSE
requires_wield = TRUE
backstab_bonus = 55
detonation_damage = 35
force = 28
detonation_damage = 37 // 75
backstab_bonus = 55 // 130
var/obj/item/offhand/crushergauntlets/offhand
/obj/item/weapon/kinetic_crusher/machete/gauntlets/equipped()
@@ -302,21 +302,29 @@
var/mob/living/M = loc
if(istype(M) && forced == 0)
if(M.can_wield_item(src) && src.is_held_twohanded(M))
name = initial(name)
wielded = TRUE
to_chat(M, "<span class ='notice'>You ready [src].</span>")
var/obj/item/offhand/crushergauntlets/O = new(M)
O.name = "[name] - readied"
O.desc = "As much as you'd like to punch things with one hand, [src] is far too unwieldy for that."
O.linked = src
M.put_in_inactive_hand(O)
offhand = O
wield(M)
else
unwield(M)
else
name = "[initial(name)] (unreadied)"
wielded = FALSE
to_chat(M, "<span class ='notice'>You unready [src].</span>")
if(offhand)
QDEL_NULL(offhand)
unwield(M)
/obj/item/weapon/kinetic_crusher/machete/gauntlets/proc/wield(var/mob/living/M)
name = initial(name)
wielded = TRUE
to_chat(M, "<span class ='notice'>You ready [src].</span>")
var/obj/item/offhand/crushergauntlets/O = new(M)
O.name = "[name] - readied"
O.desc = "As much as you'd like to punch things with one hand, [src] is far too unwieldy for that."
O.linked = src
M.put_in_inactive_hand(O)
offhand = O
/obj/item/weapon/kinetic_crusher/machete/gauntlets/proc/unwield(var/mob/living/M)
to_chat(M, "<span class ='notice'>You unready [src].</span>")
name = "[initial(name)] (unreadied)"
wielded = FALSE
if(offhand)
QDEL_NULL(offhand)
/obj/item/offhand
icon = 'icons/obj/weapons.dmi'
@@ -324,6 +332,7 @@
name = "offhand that shouldn't exist doo dee doo"
w_class = ITEMSIZE_NO_CONTAINER
// var/linked - redefine this wherever
// man i really should try porting the twohand component this is hacky and Sucks
/obj/item/offhand/crushergauntlets
var/obj/item/weapon/kinetic_crusher/machete/gauntlets/linked
@@ -333,7 +342,7 @@
linked.ready_toggle(TRUE)
/obj/item/weapon/kinetic_crusher/machete/gauntlets/rig
name = "mounted proto-kinetic gear"
name = "\improper mounted proto-kinetic gear"
var/obj/item/rig_module/gauntlets/storing_module
/obj/item/weapon/kinetic_crusher/machete/gauntlets/rig/dropped(mob/user)
@@ -351,6 +360,7 @@
else
QDEL_NULL(src)
// gimmicky backup for throwing
/obj/item/weapon/kinetic_crusher/machete/dagger
name = "proto-kinetic dagger"
desc = "A scaled down version of a proto-kinetic machete, usually used in a last ditch scenario."
@@ -361,13 +371,14 @@
)
item_state = "c-knife"
w_class = ITEMSIZE_SMALL
force = 15
requires_wield = FALSE
charge_overlay = FALSE
backstab_bonus = 35
detonation_damage = 25
// woohoo
thrown_bonus = 35
charge_time = 10 // lowered charge in return for lowered damage
force = 18
detonation_damage = 27 // 45
backstab_bonus = 40 // 85
// gimmick mode
thrown_bonus = 50 // 135 but you drop your knife because you threw it
//destablizing force
@@ -387,15 +398,18 @@
hammer_synced = null
return ..()
/obj/item/projectile/destabilizer/on_impact(var/atom/A)
if(ismineralturf(A))
var/turf/simulated/mineral/M = A
new /obj/effect/temp_visual/kinetic_blast(M)
M.GetDrilled(firer)
. = ..()
/obj/item/projectile/destabilizer/on_hit(atom/target, blocked = FALSE)
if(isliving(target))
var/mob/living/L = target
L.add_modifier(/datum/modifier/crusher_mark, 30 SECONDS, firer, TRUE)
var/target_turf = get_turf(target)
if(ismineralturf(target_turf))
var/turf/simulated/mineral/M = target_turf
new /obj/effect/temp_visual/kinetic_blast(M)
M.GetDrilled(firer)
if(hammer_synced.can_mark(L))
L.add_modifier(/datum/modifier/crusher_mark, 30 SECONDS, firer, TRUE)
..()
/*
@@ -404,5 +418,6 @@
there would be any if we had some
but alas
- hatterhat
*/
@@ -62,10 +62,8 @@
var/stack = params["stack"]
if(machine.stack_storage[stack] > 0)
var/stacktype = machine.stack_paths[stack]
var/obj/item/stack/material/S = new stacktype(get_turf(machine.output))
S.amount = machine.stack_storage[stack]
new stacktype(get_turf(machine.output), machine.stack_storage[stack])
machine.stack_storage[stack] = 0
S.update_icon()
. = TRUE
add_fingerprint(usr)
@@ -125,7 +123,7 @@
var/obj/item/stack/material/S = O
var/matname = S.material.name
if(!isnull(stack_storage[matname]))
stack_storage[matname] += S.amount
stack_storage[matname] += S.get_amount()
qdel(S)
else
O.loc = output.loc
@@ -136,10 +134,8 @@
for(var/sheet in stack_storage)
if(stack_storage[sheet] >= stack_amt)
var/stacktype = stack_paths[sheet]
var/obj/item/stack/material/S = new stacktype (get_turf(output))
S.amount = stack_amt
new stacktype (get_turf(output), stack_amt)
stack_storage[sheet] -= stack_amt
S.update_icon()
if(console)
console.updateUsrDialog()
+2 -2
View File
@@ -625,8 +625,8 @@ var/list/mining_overlay_cache = list()
if(prob(50))
M.Stun(5)
SSradiation.flat_radiate(src, 25, 100)
if(prob(25))
excavate_find(prob(5), finds[1])
if(prob(25))
excavate_find(prob(5), finds[1])
else if(rand(1,500) == 1)
visible_message("<span class='notice'>An old dusty crate was buried within!</span>")
new /obj/structure/closet/crate/secure/loot(src)
+10
View File
@@ -14,6 +14,16 @@
/turf/simulated/mineral/floor/ignore_cavegen
ignore_cavegen = TRUE
/turf/simulated/mineral/ignore_cavegen/cave
oxygen = MOLES_O2STANDARD
nitrogen = MOLES_N2STANDARD
temperature = T20C
/turf/simulated/mineral/floor/ignore_cavegen/cave
oxygen = MOLES_O2STANDARD
nitrogen = MOLES_N2STANDARD
temperature = T20C
/turf/simulated/mineral/vacuum
oxygen = 0
nitrogen = 0
+27 -28
View File
@@ -58,34 +58,33 @@
for(var/ore in stored_ore)
. += "- [stored_ore[ore]] [ore]"
/obj/structure/ore_box/verb/empty_box()
set name = "Empty Ore Box"
set category = "Object"
set src in view(1)
if(!ishuman(usr) && !isrobot(usr)) //Only living, intelligent creatures with gripping aparatti can empty ore boxes.
to_chat(usr, "<span class='warning'>You are physically incapable of emptying the ore box.</span>")
return
if(usr.stat || usr.restrained())
return
if(!Adjacent(usr)) //You can only empty the box if you can physically reach it
to_chat(usr, "You cannot reach the ore box.")
return
add_fingerprint(usr)
if(contents.len < 1)
to_chat(usr, "<span class='warning'>The ore box is empty.</span>")
return
for (var/obj/item/weapon/ore/O in contents)
contents -= O
O.loc = src.loc
to_chat(usr, "<span class='notice'>You empty the ore box.</span>")
return
// /obj/structure/ore_box/verb/empty_box()
// set name = "Empty Ore Box"
// set category = "Object"
// set src in view(1)
//
// if(!ishuman(usr) && !isrobot(usr)) //Only living, intelligent creatures with gripping aparatti can empty ore boxes.
// to_chat(usr, "<span class='warning'>You are physically incapable of emptying the ore box.</span>")
// return
// if(usr.stat || usr.restrained())
// return
//
// if(!Adjacent(usr)) //You can only empty the box if you can physically reach it
// to_chat(usr, "You cannot reach the ore box.")
// return
//
// add_fingerprint(usr)
//
// if(contents.len < 1)
// to_chat(usr, "<span class='warning'>The ore box is empty.</span>")
// return
//
// for (var/obj/item/weapon/ore/O in contents)
// contents -= O
// O.loc = src.loc
// to_chat(usr, "<span class='notice'>You empty the ore box.</span>")
//
// return
/obj/structure/ore_box/ex_act(severity)
if(severity == 1.0 || (severity < 3.0 && prob(50)))
@@ -120,13 +120,16 @@
EQUIPMENT("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 900),
EQUIPMENT("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000),
EQUIPMENT("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000),
EQUIPMENT("KA Efficiency Increase", /obj/item/borg/upgrade/modkit/efficiency, 1200),
EQUIPMENT("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1200),
EQUIPMENT("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000),
EQUIPMENT("KA Temperature Modulator", /obj/item/borg/upgrade/modkit/heater, 1000),
EQUIPMENT("KA Off-Station Modulator", /obj/item/borg/upgrade/modkit/offsite, 1750),
EQUIPMENT("KA Holster", /obj/item/clothing/accessory/holster/waist/kinetic_accelerator, 350),
EQUIPMENT("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250),
EQUIPMENT("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 300),
EQUIPMENT("KA Adjustable Tracer Rounds",/obj/item/borg/upgrade/modkit/tracer/adjustable, 175),
EQUIPMENT("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 125),
EQUIPMENT("Premium Kinetic Accelerator",/obj/item/weapon/gun/energy/kinetic_accelerator/premiumka, 12000),
)
prize_list["Digging Tools"] = list(
// EQUIPMENT("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 2000),
@@ -164,6 +167,7 @@
EQUIPMENT("Plush Toy", /obj/random/plushie, 300),
EQUIPMENT("Soap", /obj/item/weapon/soap/nanotrasen, 200),
EQUIPMENT("Thalers - 100", /obj/item/weapon/spacecash/c100, 1000),
EQUIPMENT("Thalers - 1000", /obj/item/weapon/spacecash/c1000, 10000),
EQUIPMENT("Umbrella", /obj/item/weapon/melee/umbrella/random, 200),
EQUIPMENT("Whiskey", /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, 125),
)
@@ -283,7 +287,10 @@
return
remove_points(inserted_id, prize.cost)
new prize.equipment_path(loc)
//VOREStation Edit Start
var/obj/I = new prize.equipment_path(loc)
I.persist_storable = FALSE
//VOREStation Edit End
flick(icon_vend, src) //VOREStation Add
else
flick(icon_deny, src) //VOREStation Add
@@ -65,6 +65,8 @@
EQUIPMENT("GPS Device", /obj/item/device/gps/mining, 10),
EQUIPMENT("Jump Boots", /obj/item/clothing/shoes/bhop, 250),
EQUIPMENT("Mini-Translocator", /obj/item/device/perfect_tele/one_beacon, 120),
EQUIPMENT("Survey Tools - Mapping Unit", /obj/item/device/mapping_unit, 150),
EQUIPMENT("Survey Tools - Mapping Beacon", /obj/item/device/holomap_beacon, 25),
EQUIPMENT("Survival Equipment - Insulated Poncho", /obj/random/thermalponcho, 75),
EQUIPMENT("Survival Equipment - Glowstick", /obj/item/device/flashlight/glowstick, 5),
EQUIPMENT("Survival Equipment - Flare", /obj/item/device/flashlight/flare, 5),