mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
6601
_maps/RandomRuins/SpaceRuins/freeminer_asteroid.dmm
Normal file
6601
_maps/RandomRuins/SpaceRuins/freeminer_asteroid.dmm
Normal file
File diff suppressed because it is too large
Load Diff
1769
_maps/shuttles/whiteship_miner.dmm
Normal file
1769
_maps/shuttles/whiteship_miner.dmm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,2 +1,4 @@
|
||||
#define ACCESS_PARAMEDIC 69 //Paramedic Office
|
||||
#define ACCESS_TCOM_ADMIN 70
|
||||
#define ACCESS_FREEMINER 71
|
||||
#define ACCESS_FREEMINER_CAPTAIN 72
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// yogs - This file is mirrored to yogstation/game/mecha/mecha_wreckage.dm
|
||||
///////////////////////////////////
|
||||
//////// Mecha wreckage ////////
|
||||
///////////////////////////////////
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
|
||||
var/list/forced_ruins = list() //These go first on the z level associated (same random one by default)
|
||||
var/list/ruins_availible = list() //we can try these in the current pass
|
||||
var/list/ruins_placed = list() // yogs
|
||||
var/forced_z //If set we won't pick z level and use this one instead.
|
||||
|
||||
//Set up the starting ruin list
|
||||
@@ -101,6 +102,7 @@
|
||||
ruins_availible -= R
|
||||
log_world("Failed to place [current_pick.name] ruin.")
|
||||
else
|
||||
ruins_placed[current_pick.type] = TRUE // yogs
|
||||
budget -= current_pick.cost
|
||||
if(!current_pick.allow_duplicates)
|
||||
for(var/datum/map_template/ruin/R in ruins_availible)
|
||||
@@ -113,6 +115,11 @@
|
||||
ruins_availible -= possible_exclusion
|
||||
if(current_pick.always_spawn_with)
|
||||
for(var/v in current_pick.always_spawn_with)
|
||||
// yogs start
|
||||
var/datum/map_template/ruin/RT = v
|
||||
if(!initial(RT.allow_duplicates) && ruins_placed[v])
|
||||
continue
|
||||
// yogs end
|
||||
for(var/ruin_name in SSmapping.ruins_templates) //Because we might want to add space templates as linked of lava templates.
|
||||
var/datum/map_template/ruin/linked = SSmapping.ruins_templates[ruin_name] //why are these assoc, very annoying.
|
||||
if(istype(linked,v))
|
||||
|
||||
@@ -656,7 +656,6 @@
|
||||
#include "code\game\mecha\mecha_defense.dm"
|
||||
#include "code\game\mecha\mecha_parts.dm"
|
||||
#include "code\game\mecha\mecha_topic.dm"
|
||||
#include "code\game\mecha\mecha_wreckage.dm"
|
||||
#include "code\game\mecha\combat\combat.dm"
|
||||
#include "code\game\mecha\combat\durand.dm"
|
||||
#include "code\game\mecha\combat\gygax.dm"
|
||||
@@ -2629,8 +2628,10 @@
|
||||
#include "yogstation\code\__HELPERS\unsorted.dm"
|
||||
#include "yogstation\code\controllers\subsystem\input.dm"
|
||||
#include "yogstation\code\datums\mind.dm"
|
||||
#include "yogstation\code\datums\shuttles.dm"
|
||||
#include "yogstation\code\datums\world_topic.dm"
|
||||
#include "yogstation\code\datums\components\uplink.dm"
|
||||
#include "yogstation\code\datums\ruins\free_miners.dm"
|
||||
#include "yogstation\code\game\world.dm"
|
||||
#include "yogstation\code\game\area\Space_Station_13_areas.dm"
|
||||
#include "yogstation\code\game\gamemodes\traitor\double_agents.dm"
|
||||
@@ -2641,10 +2642,12 @@
|
||||
#include "yogstation\code\game\machinery\computer\Operating.dm"
|
||||
#include "yogstation\code\game\machinery\telecomms\computers\logbrowser.dm"
|
||||
#include "yogstation\code\game\machinery\telecomms\computers\telemonitor.dm"
|
||||
#include "yogstation\code\game\mecha\mecha_wreckage.dm"
|
||||
#include "yogstation\code\game\objects\effects\landmarks.dm"
|
||||
#include "yogstation\code\game\objects\items\cards_ids.dm"
|
||||
#include "yogstation\code\game\objects\items\crayons.dm"
|
||||
#include "yogstation\code\game\objects\items\sharpener.dm"
|
||||
#include "yogstation\code\game\objects\items\circuitboards\computer_circuitboards.dm"
|
||||
#include "yogstation\code\game\objects\items\devices\powersink.dm"
|
||||
#include "yogstation\code\game\objects\items\devices\PDA\cart.dm"
|
||||
#include "yogstation\code\game\objects\items\devices\PDA\PDA.dm"
|
||||
|
||||
187
yogstation/code/datums/ruins/free_miners.dm
Normal file
187
yogstation/code/datums/ruins/free_miners.dm
Normal file
@@ -0,0 +1,187 @@
|
||||
/datum/map_template/ruin/space/freeminer_asteroid
|
||||
id = "freeminer_asteroid"
|
||||
suffix = "freeminer_asteroid.dmm"
|
||||
name = "Free Miner Asteroid"
|
||||
description = "Some space miners still cling to the old way of getting that \
|
||||
sweet, sweet plasma - painstakingly digging it out of free-floating asteroids\
|
||||
instead of flying down to the hellscape of lavaland."
|
||||
allow_duplicates = FALSE
|
||||
always_spawn_with = list(/datum/map_template/ruin/space/whiteshipdock = PLACE_SPACE_RUIN)
|
||||
|
||||
/datum/map_template/ruin/space/freeminer_asteroid/load(turf/T, centered = FALSE)
|
||||
. = ..()
|
||||
if(.)
|
||||
SSmapping.config.shuttles["whiteship"] = "whiteship_miner"
|
||||
|
||||
|
||||
/obj/machinery/computer/shuttle/white_ship/miner
|
||||
name = "Free Miner Ship Console"
|
||||
desc = "Used to control the Free Miner Ship."
|
||||
circuit = /obj/item/circuitboard/computer/white_ship/miner
|
||||
shuttleId = "whiteship"
|
||||
possible_destinations = "whiteship_away;whiteship_home;whiteship_z4;whiteship_mining0;whiteship_mining1;whiteship_mining2;whiteship_custom"
|
||||
req_access = list(ACCESS_FREEMINER_CAPTAIN)
|
||||
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship/miner
|
||||
name = "Free Miner Navigation Computer"
|
||||
desc = "Used to designate a precise transit location for the Free Miner Ship."
|
||||
jumpto_ports = list("whiteship_away" = 1, "whiteship_home" = 1, "whiteship_mining0" = 1, "whiteship_mining1" = 1, "whiteship_mining2" = 1)
|
||||
x_offset = -4
|
||||
y_offset = -7
|
||||
|
||||
/obj/machinery/computer/camera_advanced/shuttle_docker/whiteship/miner/Initialize(mapload)
|
||||
. = ..()
|
||||
for(var/V in SSshuttle.stationary)
|
||||
var/obj/docking_port/stationary/S = V
|
||||
if(jumpto_ports[S.id])
|
||||
z_lock |= S.z
|
||||
|
||||
|
||||
/obj/effect/mob_spawn/human/free_miner
|
||||
name = "Free Miner"
|
||||
id_job = "Free Miner"
|
||||
roundstart = FALSE
|
||||
death = FALSE
|
||||
icon = 'icons/obj/machines/sleeper.dmi'
|
||||
icon_state = "sleeper"
|
||||
flavour_text = "You are a free miner, making a living mining the asteroids that were left behind when Nanotrasen moved from asteroid mining to lavaland. Try to make a profit and show those corporates who the real miners are!"
|
||||
assignedrole = "Free Miner"
|
||||
outfit = /datum/outfit/freeminer
|
||||
|
||||
/datum/outfit/freeminer
|
||||
name = "Free Miner"
|
||||
uniform = /obj/item/clothing/under/rank/miner
|
||||
shoes = /obj/item/clothing/shoes/workboots/mining
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
back = /obj/item/storage/backpack/industrial
|
||||
l_pocket = /obj/item/mining_voucher
|
||||
r_pocket = /obj/item/storage/bag/ore
|
||||
belt = /obj/item/pickaxe
|
||||
id = /obj/item/card/id/freeminer
|
||||
backpack_contents = list(/obj/item/radio)
|
||||
|
||||
|
||||
/obj/effect/mob_spawn/human/free_miner/engi
|
||||
name = "Free Miner Engineer"
|
||||
id_job = "Free Miner Engineer"
|
||||
flavour_text = "You are a free miner, making a living mining the asteroids that were left behind when Nanotrasen moved from asteroid mining to lavaland. Try to make a profit and show those corporates who the real miners are!"
|
||||
l_pocket = null
|
||||
r_pocket = null
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
belt = /obj/item/storage/belt/utility/full
|
||||
assignedrole = "Free Miner Engineer"
|
||||
outfit = /datum/outfit/freeminer/engi
|
||||
|
||||
/datum/outfit/freeminer/engi
|
||||
l_pocket = null
|
||||
r_pocket = null
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
belt = /obj/item/storage/belt/utility/full
|
||||
|
||||
|
||||
/obj/effect/mob_spawn/human/free_miner/captain
|
||||
name = "Free Miner Captain"
|
||||
id_job = "Free Miner Captain"
|
||||
flavour_text = "You are a free miner, making a living mining the asteroids that were left behind when Nanotrasen moved from asteroid mining to lavaland. Try to make a profit and show those corporates who the real miners are! Try not to lose your ID, as it is the only way to move your ship."
|
||||
assignedrole = "Free Miner Captain"
|
||||
outfit = /datum/outfit/freeminer/captain
|
||||
|
||||
/datum/outfit/freeminer/captain
|
||||
uniform = /obj/item/clothing/under/rank/vice
|
||||
back = /obj/item/storage/backpack
|
||||
l_pocket = /obj/item/melee/classic_baton/telescopic
|
||||
r_pocket = null
|
||||
belt = null
|
||||
id = /obj/item/card/id/freeminer/captain
|
||||
|
||||
|
||||
/obj/item/card/id/freeminer
|
||||
name = "Free Miner ID"
|
||||
access = list(ACCESS_MINERAL_STOREROOM, ACCESS_FREEMINER)
|
||||
|
||||
/obj/item/card/id/freeminer/captain
|
||||
name = "Free Miner Ship Captain ID"
|
||||
access = list(ACCESS_MINERAL_STOREROOM, ACCESS_FREEMINER, ACCESS_FREEMINER_CAPTAIN)
|
||||
|
||||
/****************Free Miner Vendor**************************/
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/free_miner
|
||||
name = "free miner ship equipment vendor"
|
||||
desc = "a vendor sold by nanotrasen to profit off small mining contractors."
|
||||
prize_list = list(
|
||||
new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750),
|
||||
new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/clothing/suit/space/hardsuit/mining, 2000),
|
||||
new /datum/data/mining_equipment("Mecha Plasma Generator", /obj/item/mecha_parts/mecha_equipment/generator, 1500),
|
||||
new /datum/data/mining_equipment("Diamond Mecha Drill", /obj/item/mecha_parts/mecha_equipment/drill/diamonddrill, 2000),
|
||||
new /datum/data/mining_equipment("Mecha Plasma Cutter", /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma, 3000),
|
||||
new /datum/data/mining_equipment("Stimpack", /obj/item/reagent_containers/hypospray/medipen/stimpack, 50),
|
||||
new /datum/data/mining_equipment("Stimpack Bundle", /obj/item/storage/box/medipens/utility, 200),
|
||||
new /datum/data/mining_equipment("Advanced Scanner", /obj/item/t_scanner/adv_mining_scanner, 800),
|
||||
new /datum/data/mining_equipment("Hivelord Stabilizer", /obj/item/hivelordstabilizer, 400),
|
||||
new /datum/data/mining_equipment("Shelter Capsule", /obj/item/survivalcapsule, 400),
|
||||
new /datum/data/mining_equipment("GAR Meson Scanners", /obj/item/clothing/glasses/meson/gar, 500),
|
||||
new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 500),
|
||||
new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 600),
|
||||
new /datum/data/mining_equipment("Fire First-Aid Kit", /obj/item/storage/firstaid/fire, 600),
|
||||
new /datum/data/mining_equipment("Toxin First-Aid Kit", /obj/item/storage/firstaid/toxin, 600),
|
||||
new /datum/data/mining_equipment("Resonator", /obj/item/resonator, 800),
|
||||
new /datum/data/mining_equipment("Lazarus Injector", /obj/item/lazarus_injector, 800),
|
||||
new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/pickaxe/silver, 750),
|
||||
new /datum/data/mining_equipment("Jetpack Upgrade", /obj/item/tank/jetpack/suit, 2000),
|
||||
new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000),
|
||||
new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/pickaxe/diamond, 1500),
|
||||
new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2000),
|
||||
new /datum/data/mining_equipment("Plasma Cutter" , /obj/item/gun/energy/plasmacutter, 2500),
|
||||
new /datum/data/mining_equipment("Point Transfer Card", /obj/item/card/mining_point_card, 500),
|
||||
new /datum/data/mining_equipment("Minebot", /mob/living/simple_animal/hostile/mining_drone, 800),
|
||||
new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/mine_bot_upgrade, 400),
|
||||
new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/mine_bot_upgrade/health, 400),
|
||||
new /datum/data/mining_equipment("Minebot Cooldown Upgrade", /obj/item/borg/upgrade/modkit/cooldown/minebot, 600),
|
||||
new /datum/data/mining_equipment("Minebot AI Upgrade", /obj/item/slimepotion/slime/sentience/mining, 1000),
|
||||
new /datum/data/mining_equipment("KA Minebot Passthrough", /obj/item/borg/upgrade/modkit/minebot_passthrough, 100),
|
||||
new /datum/data/mining_equipment("KA White Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer, 100),
|
||||
new /datum/data/mining_equipment("KA Adjustable Tracer Rounds", /obj/item/borg/upgrade/modkit/tracer/adjustable, 150),
|
||||
new /datum/data/mining_equipment("KA Super Chassis", /obj/item/borg/upgrade/modkit/chassis_mod, 250),
|
||||
new /datum/data/mining_equipment("KA Hyper Chassis", /obj/item/borg/upgrade/modkit/chassis_mod/orange, 300),
|
||||
new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000),
|
||||
new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000),
|
||||
new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000),
|
||||
new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000)
|
||||
)
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/free_miner/New()
|
||||
..()
|
||||
var/obj/item/circuitboard/machine/B = new /obj/item/circuitboard/machine/mining_equipment_vendor/free_miner(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/free_miner/RedeemVoucher(obj/item/mining_voucher/voucher, mob/redeemer)
|
||||
var/list/items = list("Kinetic Accelerator", "Resonator Kit", "Minebot Kit", "Crusher Kit", "Advanced Scanner")
|
||||
|
||||
var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in items
|
||||
if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer)
|
||||
return
|
||||
var/drop_location = drop_location()
|
||||
switch(selection)
|
||||
if("Kinetic Accelerator")
|
||||
new /obj/item/gun/energy/kinetic_accelerator(drop_location)
|
||||
if("Resonator Kit")
|
||||
new /obj/item/extinguisher/mini(drop_location)
|
||||
new /obj/item/resonator(drop_location)
|
||||
if("Minebot Kit")
|
||||
new /mob/living/simple_animal/hostile/mining_drone(drop_location)
|
||||
new /obj/item/weldingtool/hugetank(drop_location)
|
||||
new /obj/item/clothing/head/welding(drop_location)
|
||||
new /obj/item/borg/upgrade/modkit/minebot_passthrough(drop_location)
|
||||
if("Crusher Kit")
|
||||
new /obj/item/extinguisher/mini(drop_location)
|
||||
new /obj/item/twohanded/required/kinetic_crusher(drop_location)
|
||||
if("Advanced Scanner")
|
||||
new /obj/item/t_scanner/adv_mining_scanner(drop_location)
|
||||
|
||||
SSblackbox.record_feedback("tally", "mining_voucher_redeemed", 1, selection)
|
||||
qdel(voucher)
|
||||
|
||||
/obj/item/circuitboard/machine/mining_equipment_vendor/free_miner
|
||||
name = "circuit board (Free Miner Ship Equipment Vendor)"
|
||||
build_path = /obj/machinery/mineral/equipment_vendor/free_miner
|
||||
|
||||
3
yogstation/code/datums/shuttles.dm
Normal file
3
yogstation/code/datums/shuttles.dm
Normal file
@@ -0,0 +1,3 @@
|
||||
/datum/map_template/shuttle/whiteship/miner
|
||||
suffix = "miner"
|
||||
name = "Free Miner Ship"
|
||||
265
yogstation/code/game/mecha/mecha_wreckage.dm
Normal file
265
yogstation/code/game/mecha/mecha_wreckage.dm
Normal file
@@ -0,0 +1,265 @@
|
||||
///////////////////////////////////
|
||||
//////// Mecha wreckage ////////
|
||||
///////////////////////////////////
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage
|
||||
name = "exosuit wreckage"
|
||||
desc = "Remains of some unfortunate mecha. Completely irreparable, but perhaps something can be salvaged."
|
||||
icon = 'icons/mecha/mecha.dmi'
|
||||
density = TRUE
|
||||
anchored = FALSE
|
||||
opacity = 0
|
||||
var/list/welder_salvage = list(/obj/item/stack/sheet/plasteel, /obj/item/stack/sheet/metal, /obj/item/stack/rods)
|
||||
var/list/wirecutters_salvage = list(/obj/item/stack/cable_coil)
|
||||
var/list/crowbar_salvage = list()
|
||||
var/mob/living/silicon/ai/AI //AIs to be salvaged
|
||||
|
||||
/obj/structure/mecha_wreckage/Initialize(mapload, mob/living/silicon/ai/AI_pilot)
|
||||
. = ..()
|
||||
if(!AI_pilot) //Type-checking for this is already done in mecha/Destroy()
|
||||
return
|
||||
|
||||
AI = AI_pilot
|
||||
AI.apply_damage(150, BURN) //Give the AI a bit of damage from the "shock" of being suddenly shut down
|
||||
AI.death() //The damage is not enough to kill the AI, but to be 'corrupted files' in need of repair.
|
||||
AI.forceMove(src) //Put the dead AI inside the wreckage for recovery
|
||||
add_overlay(mutable_appearance('icons/obj/projectiles.dmi', "green_laser")) //Overlay for the recovery beacon
|
||||
AI.controlled_mech = null
|
||||
AI.remote_control = null
|
||||
|
||||
/obj/structure/mecha_wreckage/examine(mob/user)
|
||||
..()
|
||||
if(AI)
|
||||
to_chat(user, "<span class='notice'>The AI recovery beacon is active.</span>")
|
||||
|
||||
/obj/structure/mecha_wreckage/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weldingtool))
|
||||
if(!welder_salvage || !welder_salvage.len)
|
||||
to_chat(user, "<span class='warning'>You don't see anything that can be cut with [I]!</span>")
|
||||
return
|
||||
|
||||
if(!I.use_tool(src, user, 0, volume=50))
|
||||
return
|
||||
|
||||
var/type = prob(70) ? pick(welder_salvage) : null
|
||||
if(type)
|
||||
var/N = new type(get_turf(user))
|
||||
user.visible_message("[user] cuts [N] from [src].", "<span class='notice'>You cut [N] from [src].</span>")
|
||||
if(istype(N, /obj/item/mecha_parts/part))
|
||||
welder_salvage -= type
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You fail to salvage anything valuable from [src]!</span>")
|
||||
return
|
||||
|
||||
else if(istype(I, /obj/item/wirecutters))
|
||||
if(!wirecutters_salvage || !wirecutters_salvage.len)
|
||||
to_chat(user, "<span class='warning'>You don't see anything that can be cut with [I]!</span>")
|
||||
return
|
||||
else
|
||||
var/type = prob(70) ? pick(wirecutters_salvage) : null
|
||||
if(type)
|
||||
var/N = new type(get_turf(user))
|
||||
user.visible_message("[user] cuts [N] from [src].", "<span class='notice'>You cut [N] from [src].</span>")
|
||||
wirecutters_salvage -= type
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You fail to salvage anything valuable from [src]!</span>")
|
||||
|
||||
else if(istype(I, /obj/item/crowbar))
|
||||
if(!crowbar_salvage || !crowbar_salvage.len)
|
||||
to_chat(user, "<span class='warning'>You don't see anything that can be pried with [I]!</span>")
|
||||
return
|
||||
else
|
||||
var/type = pick(crowbar_salvage)
|
||||
crowbar_salvage -= type
|
||||
var/obj/S = new type()
|
||||
if(S)
|
||||
S.forceMove(user.drop_location())
|
||||
user.visible_message("[user] pries [S] from [src].", "<span class='notice'>You pry [S] from [src].</span>")
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage/transfer_ai(interaction, mob/user, null, obj/item/aicard/card)
|
||||
if(!..())
|
||||
return
|
||||
|
||||
//Proc called on the wreck by the AI card.
|
||||
if(interaction == AI_TRANS_TO_CARD) //AIs can only be transferred in one direction, from the wreck to the card.
|
||||
if(!AI) //No AI in the wreck
|
||||
to_chat(user, "<span class='warning'>No AI backups found.</span>")
|
||||
return
|
||||
cut_overlays() //Remove the recovery beacon overlay
|
||||
AI.forceMove(card) //Move the dead AI to the card.
|
||||
card.AI = AI
|
||||
if(AI.client) //AI player is still in the dead AI and is connected
|
||||
to_chat(AI, "The remains of your file system have been recovered on a mobile storage device.")
|
||||
else //Give the AI a heads-up that it is probably going to get fixed.
|
||||
AI.notify_ghost_cloning("You have been recovered from the wreckage!", source = card)
|
||||
to_chat(user, "<span class='boldnotice'>Backup files recovered</span>: [AI.name] ([rand(1000,9999)].exe) salvaged from [name] and stored within local memory.")
|
||||
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage/gygax
|
||||
name = "\improper Gygax wreckage"
|
||||
icon_state = "gygax-broken"
|
||||
|
||||
/obj/structure/mecha_wreckage/gygax/Initialize()
|
||||
. = ..()
|
||||
var/list/parts = list(/obj/item/mecha_parts/part/gygax_torso,
|
||||
/obj/item/mecha_parts/part/gygax_head,
|
||||
/obj/item/mecha_parts/part/gygax_left_arm,
|
||||
/obj/item/mecha_parts/part/gygax_right_arm,
|
||||
/obj/item/mecha_parts/part/gygax_left_leg,
|
||||
/obj/item/mecha_parts/part/gygax_right_leg)
|
||||
for(var/i = 0; i < 2; i++)
|
||||
if(parts.len && prob(40))
|
||||
var/part = pick(parts)
|
||||
welder_salvage += part
|
||||
parts -= part
|
||||
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage/gygax/dark
|
||||
name = "\improper Dark Gygax wreckage"
|
||||
icon_state = "darkgygax-broken"
|
||||
|
||||
/obj/structure/mecha_wreckage/marauder
|
||||
name = "\improper Marauder wreckage"
|
||||
icon_state = "marauder-broken"
|
||||
|
||||
/obj/structure/mecha_wreckage/mauler
|
||||
name = "\improper Mauler wreckage"
|
||||
icon_state = "mauler-broken"
|
||||
desc = "The syndicate won't be very happy about this..."
|
||||
|
||||
/obj/structure/mecha_wreckage/seraph
|
||||
name = "\improper Seraph wreckage"
|
||||
icon_state = "seraph-broken"
|
||||
|
||||
/obj/structure/mecha_wreckage/reticence
|
||||
name = "\improper Reticence wreckage"
|
||||
icon_state = "reticence-broken"
|
||||
color = "#87878715"
|
||||
desc = "..."
|
||||
|
||||
/obj/structure/mecha_wreckage/ripley
|
||||
name = "\improper Ripley wreckage"
|
||||
icon_state = "ripley-broken"
|
||||
|
||||
/obj/structure/mecha_wreckage/ripley/Initialize()
|
||||
. = ..()
|
||||
var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso,
|
||||
/obj/item/mecha_parts/part/ripley_left_arm,
|
||||
/obj/item/mecha_parts/part/ripley_right_arm,
|
||||
/obj/item/mecha_parts/part/ripley_left_leg,
|
||||
/obj/item/mecha_parts/part/ripley_right_leg)
|
||||
for(var/i = 0; i < 2; i++)
|
||||
if(parts.len && prob(40))
|
||||
var/part = pick(parts)
|
||||
welder_salvage += part
|
||||
parts -= part
|
||||
|
||||
/obj/structure/mecha_wreckage/ripley/loaded
|
||||
name = "intact Ripley wreckage"
|
||||
|
||||
/obj/structure/mecha_wreckage/ripley/loaded/Initialize()
|
||||
. = ..()
|
||||
welder_salvage = list(/obj/item/mecha_parts/part/ripley_torso,
|
||||
/obj/item/mecha_parts/part/ripley_left_arm,
|
||||
/obj/item/mecha_parts/part/ripley_right_arm,
|
||||
/obj/item/mecha_parts/part/ripley_left_leg,
|
||||
/obj/item/mecha_parts/part/ripley_right_leg)
|
||||
crowbar_salvage = list(/obj/item/circuitboard/mecha/ripley/peripherals,
|
||||
/obj/item/circuitboard/mecha/ripley/main)
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage/ripley/firefighter
|
||||
name = "\improper Firefighter wreckage"
|
||||
icon_state = "firefighter-broken"
|
||||
|
||||
/obj/structure/mecha_wreckage/ripley/firefighter/Initialize()
|
||||
. = ..()
|
||||
var/list/parts = list(/obj/item/mecha_parts/part/ripley_torso,
|
||||
/obj/item/mecha_parts/part/ripley_left_arm,
|
||||
/obj/item/mecha_parts/part/ripley_right_arm,
|
||||
/obj/item/mecha_parts/part/ripley_left_leg,
|
||||
/obj/item/mecha_parts/part/ripley_right_leg,
|
||||
/obj/item/clothing/suit/fire)
|
||||
for(var/i = 0; i < 2; i++)
|
||||
if(parts.len && prob(40))
|
||||
var/part = pick(parts)
|
||||
welder_salvage += part
|
||||
parts -= part
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage/ripley/deathripley
|
||||
name = "\improper Death-Ripley wreckage"
|
||||
icon_state = "deathripley-broken"
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage/honker
|
||||
name = "\improper H.O.N.K wreckage"
|
||||
icon_state = "honker-broken"
|
||||
desc = "All is right in the universe."
|
||||
|
||||
/obj/structure/mecha_wreckage/honker/Initialize()
|
||||
. = ..()
|
||||
var/list/parts = list(
|
||||
/obj/item/mecha_parts/chassis/honker,
|
||||
/obj/item/mecha_parts/part/honker_torso,
|
||||
/obj/item/mecha_parts/part/honker_head,
|
||||
/obj/item/mecha_parts/part/honker_left_arm,
|
||||
/obj/item/mecha_parts/part/honker_right_arm,
|
||||
/obj/item/mecha_parts/part/honker_left_leg,
|
||||
/obj/item/mecha_parts/part/honker_right_leg)
|
||||
for(var/i = 0; i < 2; i++)
|
||||
if(parts.len && prob(40))
|
||||
var/part = pick(parts)
|
||||
welder_salvage += part
|
||||
parts -= part
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage/durand
|
||||
name = "\improper Durand wreckage"
|
||||
icon_state = "durand-broken"
|
||||
|
||||
/obj/structure/mecha_wreckage/durand/Initialize()
|
||||
. = ..()
|
||||
var/list/parts = list(
|
||||
/obj/item/mecha_parts/part/durand_torso,
|
||||
/obj/item/mecha_parts/part/durand_head,
|
||||
/obj/item/mecha_parts/part/durand_left_arm,
|
||||
/obj/item/mecha_parts/part/durand_right_arm,
|
||||
/obj/item/mecha_parts/part/durand_left_leg,
|
||||
/obj/item/mecha_parts/part/durand_right_leg)
|
||||
for(var/i = 0; i < 2; i++)
|
||||
if(parts.len && prob(40))
|
||||
var/part = pick(parts)
|
||||
welder_salvage += part
|
||||
parts -= part
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage/phazon
|
||||
name = "\improper Phazon wreckage"
|
||||
icon_state = "phazon-broken"
|
||||
|
||||
|
||||
/obj/structure/mecha_wreckage/odysseus
|
||||
name = "\improper Odysseus wreckage"
|
||||
icon_state = "odysseus-broken"
|
||||
|
||||
/obj/structure/mecha_wreckage/odysseus/Initialize()
|
||||
. = ..()
|
||||
var/list/parts = list(
|
||||
/obj/item/mecha_parts/part/odysseus_torso,
|
||||
/obj/item/mecha_parts/part/odysseus_head,
|
||||
/obj/item/mecha_parts/part/odysseus_left_arm,
|
||||
/obj/item/mecha_parts/part/odysseus_right_arm,
|
||||
/obj/item/mecha_parts/part/odysseus_left_leg,
|
||||
/obj/item/mecha_parts/part/odysseus_right_leg)
|
||||
for(var/i = 0; i < 2; i++)
|
||||
if(parts.len && prob(40))
|
||||
var/part = pick(parts)
|
||||
welder_salvage += part
|
||||
parts -= part
|
||||
@@ -0,0 +1,3 @@
|
||||
/obj/item/circuitboard/computer/white_ship/miner
|
||||
name = "circuit board (Free Miner Ship)"
|
||||
build_path = /obj/machinery/computer/shuttle/white_ship/miner
|
||||
Reference in New Issue
Block a user