Add orbital minecart droppers (#13784)

This commit is contained in:
Wildkins
2022-05-08 18:15:11 +02:00
committed by GitHub
parent 80f33ee553
commit 846662dea1
7 changed files with 70 additions and 11 deletions
@@ -2,11 +2,21 @@
name = "drill dropper"
desc = "A device used to paint a target, which will then promptly orbitally drop the requested items. This drill literally pierces the heavens."
drop_message = "Stand by for drillfall, ETA ten seconds, clear the targetted area."
drop_message = "Stand by for drillfall, ETA ten seconds, clear the targeted area."
drop_message_emagged = "St%n^ b* for dr$llfa#l, ETA t@n s*c%&ds, RUN."
map = new /datum/map_template/drill
/obj/item/device/orbital_dropper/minecart
name = "minecart train dropper"
desc = "A device used to paint a target, which will then promptly orbitally drop the requested items. This one is configured to deliver an exoplanet-ready minecart train. Rails not included."
drop_message = "Stand by for trainfall, ETA ten seconds. Clear the targeted area."
drop_message_emagged = "St%n^ b* for tr$infa#l, ETA t@n s*c%&ds, CHOO CHOO!"
drop_amount = 1
map = new /datum/map_template/minecart
/obj/item/device/orbital_dropper/mecha
name = "mecha dropper"
desc = "A device used to paint a target, which will then promptly orbitally drop the requested items. This one feels vaguely familiar..."
@@ -65,4 +75,4 @@
/obj/item/device/orbital_dropper/icarus_drones/orbital_drop(var/turf/target, var/user)
log_and_message_admins("[key_name_admin(user)] has used a [src] at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[target.x];Y=[target.y];Z=[target.z]'>JMP</a>.")
for(var/i = 1, i <= num_of_drones, i++)
new /mob/living/simple_animal/hostile/icarus_drone(get_random_turf_in_range(target, 4, 2, TRUE))
new /mob/living/simple_animal/hostile/icarus_drone(get_random_turf_in_range(target, 4, 2, TRUE))
+1
View File
@@ -55,6 +55,7 @@ var/global/list/minevendor_list = list( //keep in order of price
new /datum/data/mining_equipment("Industrial Drill Head", /obj/machinery/mining/drill, -1, 1000, 1),
new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 10, 1250),
new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/pickaxe/diamond, 10, 1500),
new /datum/data/mining_equipment("Orbital Minecart Dropper", /obj/item/device/orbital_dropper/minecart, 5, 2000),
new /datum/data/mining_equipment("Orbital Drill Dropper", /obj/item/device/orbital_dropper/drill, 10, 3250),
new /datum/data/mining_equipment("Thermal Drill", /obj/item/gun/energy/vaurca/thermaldrill, 5, 3750)
)
+14 -6
View File
@@ -598,7 +598,7 @@
/obj/vehicle/train/cargo/engine/mining/Initialize()
. = ..()
cell = new /obj/item/cell/high(src)
key = null
key = new /obj/item/key/minecarts(src)
var/image/I = new(icon = 'icons/obj/cart.dmi', icon_state = "[icon_state]_overlay", layer = src.layer + 0.2) //over mobs
add_overlay(I)
turn_off()
@@ -612,7 +612,19 @@
..()
/obj/vehicle/train/cargo/engine/mining/Move(var/turf/destination)
return ((locate(/obj/structure/track) in destination)) ? ..() : FALSE
if((locate(/obj/structure/track) in destination))
move_delay = initial(move_delay)
else if(!(locate(/obj/structure/track) in loc) && on) // Allow minecarts to off-track move, albeit slowly and only if not on a track already
if(move_delay == initial(move_delay))
move_delay = 10
visible_message(SPAN_WARNING("\The [src]'s rollers struggle to move without a track to follow!"), SPAN_WARNING("You hear a horrible grinding noise!"))
playsound(loc, 'sound/mecha/tanktread.ogg', 50, 1)
else if(prob(50))
playsound(loc, 'sound/mecha/tanktread.ogg', 50, 1)
else
return FALSE
. = ..()
/obj/vehicle/train/cargo/engine/mining/update_car(var/train_length, var/active_engines)
return
@@ -636,9 +648,6 @@
light_wedge = LIGHT_OMNI
light_color = LIGHT_COLOR_FIRE
/obj/vehicle/train/cargo/trolley/mining/Move(var/turf/destination)
return ((locate(/obj/structure/track) in destination)) ? ..() : FALSE
/obj/item/key/minecarts
name = "key"
desc = "A keyring with a small steel key, and a pickaxe shaped fob."
@@ -1478,4 +1487,3 @@ var/list/total_extraction_beacons = list()
for(var/turf/simulated/mineral/M in range(7,drill_loc))
if(prob(75))
M.GetDrilled(1)
+2 -2
View File
@@ -16,7 +16,7 @@
var/car_limit = 3 //how many cars an engine can pull before performance degrades
active_engines = 1
var/obj/item/key/cargo_train/key
var/obj/item/key/key
/obj/item/key/cargo_train
name = "key"
@@ -48,7 +48,7 @@
/obj/vehicle/train/cargo/engine/proc/setup_engine()
cell = new /obj/item/cell/high(src)
key = new(src)
key = new /obj/item/key/cargo_train(src)
var/image/I = new(icon = icon, icon_state = "[icon_state]_overlay", layer = src.layer + 0.2) //over mobs
add_overlay(I)
turn_off()
@@ -0,0 +1,8 @@
author: JohnWildkins
delete-after: True
changes:
- tweak: "Mining cart engines now start with a key inside."
- rscadd: "Adds a minecart orbital dropper, available from mining vendors for 2000pts. Comes with an engine and two carts."
- tweak: "Mining carts can now travel off-tracks very slowly, so long as they aren't already on a track."
+28
View File
@@ -0,0 +1,28 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/obj/vehicle/train/cargo/trolley/mining,
/turf/template_noop,
/area/template_noop)
"F" = (
/obj/vehicle/train/cargo/engine/mining,
/turf/template_noop,
/area/template_noop)
(1,1,1) = {"
a
b
a
"}
(2,1,1) = {"
a
b
a
"}
(3,1,1) = {"
a
F
a
"}
+5 -1
View File
@@ -20,4 +20,8 @@
/datum/map_template/drill
name = "Drill Drop"
mappath = 'maps/templates/orbital/drill.dmm'
mappath = 'maps/templates/orbital/drill.dmm'
/datum/map_template/minecart
name = "Minecart Drop"
mappath = 'maps/templates/orbital/minecart.dmm'