mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Merge pull request #2414 from fluffe9911/GREYTIDE-MECH
Ports Greytide mech from hippie
This commit is contained in:
@@ -2724,6 +2724,8 @@
|
||||
#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\mecha\makeshift\lockermech.dm"
|
||||
#include "yogstation\code\game\mecha\makeshift\makeshift_tools.dm"
|
||||
#include "yogstation\code\game\objects\effects\landmarks.dm"
|
||||
#include "yogstation\code\game\objects\items\bandage.dm"
|
||||
#include "yogstation\code\game\objects\items\cards_ids.dm"
|
||||
|
||||
74
yogstation/code/game/mecha/makeshift/lockermech.dm
Normal file
74
yogstation/code/game/mecha/makeshift/lockermech.dm
Normal file
@@ -0,0 +1,74 @@
|
||||
/obj/mecha/makeshift
|
||||
desc = "A locker with stolen wires, struts, electronics and airlock servos crudley assemebled into something that resembles the fuctions of a mech."
|
||||
name = "Locker Mech"
|
||||
icon = 'yogstation/icons/mecha/lockermech.dmi'
|
||||
icon_state = "lockermech"
|
||||
max_integrity = 100 //its made of scraps
|
||||
lights_power = 5
|
||||
step_in = 4 //Same speed as a ripley, for now.
|
||||
armor = list(melee = 20, bullet = 10, laser = 10, energy = 0, bomb = 10, bio = 0, rad = 0, fire = 70, acid = 60) //Same armour as a locker
|
||||
internal_damage_threshold = 30 //Its got shitty durability
|
||||
max_equip = 2 //You only have two arms and the control system is shitty
|
||||
wreckage = null
|
||||
var/list/cargo = list()
|
||||
var/cargo_capacity = 5 // you can fit a few things in this locker but not much.
|
||||
|
||||
/obj/mecha/makeshift/Topic(href, href_list)
|
||||
..()
|
||||
if(href_list["drop_from_cargo"])
|
||||
var/obj/O = locate(sanitize(href_list["drop_from_cargo"]))
|
||||
if(O && O in cargo)
|
||||
occupant_message("<span class='notice'>You unload [O].</span>")
|
||||
O.forceMove(loc)
|
||||
cargo -= O
|
||||
log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - src.cargo.len]")
|
||||
return
|
||||
|
||||
/obj/mecha/makeshift/go_out()
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/mecha/makeshift/moved_inside(mob/living/carbon/human/H)
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/mecha/makeshift/Exit(atom/movable/O)
|
||||
if(O in cargo)
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/obj/mecha/makeshift/contents_explosion(severity, target)
|
||||
for(var/X in cargo)
|
||||
var/obj/O = X
|
||||
if(prob(30/severity))
|
||||
cargo -= O
|
||||
O.forceMove(loc)
|
||||
. = ..()
|
||||
|
||||
/obj/mecha/makeshift/get_stats_part()
|
||||
var/output = ..()
|
||||
output += "<b>Cargo Compartment Contents:</b><div style=\"margin-left: 15px;\">"
|
||||
if(cargo.len)
|
||||
for(var/obj/O in cargo)
|
||||
output += "<a href='?src=\ref[src];drop_from_cargo=\ref[O]'>Unload</a> : [O]<br>"
|
||||
else
|
||||
output += "Nothing"
|
||||
output += "</div>"
|
||||
return output
|
||||
|
||||
/obj/mecha/makeshift/relay_container_resist(mob/living/user, obj/O)
|
||||
to_chat(user, "<span class='notice'>You lean on the back of [O] and start pushing so it falls out of [src].</span>")
|
||||
if(do_after(user, 10, target = O))//Its a fukken locker
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || O.loc != src )
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You successfully pushed [O] out of [src]!</span>")
|
||||
O.loc = loc
|
||||
cargo -= O
|
||||
else
|
||||
if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded.
|
||||
to_chat(user, "<span class='warning'>You fail to push [O] out of [src]!</span>")
|
||||
|
||||
/obj/mecha/makeshift/Destroy()
|
||||
new /obj/structure/closet(loc)
|
||||
..()
|
||||
22
yogstation/code/game/mecha/makeshift/makeshift_tools.dm
Normal file
22
yogstation/code/game/mecha/makeshift/makeshift_tools.dm
Normal file
@@ -0,0 +1,22 @@
|
||||
/obj/item/mecha_parts/mecha_equipment/drill/makeshift
|
||||
name = "Makeshift exosuit drill"
|
||||
desc = "Cobbled together from likely stolen parts, this drill is nowhere near as effective as the real deal."
|
||||
equip_cooldown = 60 //Its slow as shit
|
||||
force = 10 //Its not very strong
|
||||
drill_delay = 15
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/drill/makeshift/can_attach(obj/mecha/M as obj)
|
||||
if(istype(M, /obj/mecha/makeshift))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/makeshift
|
||||
name = "makeshift clamp"
|
||||
desc = "Loose arrangement of cobbled together bits resembling a clamp."
|
||||
equip_cooldown = 25
|
||||
dam_force = 10
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/makeshift/can_attach(obj/mecha/M as obj)
|
||||
if(istype(M, /obj/mecha/makeshift))
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -18,3 +18,40 @@
|
||||
reqs = list(/obj/item/stock_parts/cell = 1, /obj/item/assembly/flash/handheld = 1, /obj/item/crowbar = 1, /obj/item/wrench = 1, /obj/item/restraints/handcuffs/cable = 1, /obj/item/screwdriver = 1, /obj/item/multitool = 1, /obj/item/weldingtool = 1, /obj/item/wirecutters = 1, /obj/item/storage/backpack = 1, /obj/item/stack/sheet/plasteel = 5)
|
||||
time = 120
|
||||
category = CAT_ROBOT
|
||||
|
||||
/datum/crafting_recipe/lockermech
|
||||
name = "Locker Mech"
|
||||
result = /obj/mecha/makeshift
|
||||
reqs = list(/obj/item/stack/cable_coil = 20,
|
||||
/obj/item/stack/sheet/metal = 10,
|
||||
/obj/item/storage/toolbox = 2, // For feet
|
||||
/obj/item/tank/internals/oxygen = 1, // For air
|
||||
/obj/item/electronics/airlock = 1, //You are stealing the motors from airlocks
|
||||
/obj/item/extinguisher = 1, //For bastard pnumatics
|
||||
/obj/item/paper = 5, //Cause paper is the best for making a mech airtight obviously
|
||||
/obj/item/flashlight = 1, //For the mech light
|
||||
/obj/item/stack/rods = 4, //to mount the equipment
|
||||
/obj/item/chair = 2) //For legs
|
||||
tools = list(/obj/item/weldingtool, /obj/item/screwdriver, /obj/item/wirecutters)
|
||||
time = 200
|
||||
category = CAT_ROBOT
|
||||
|
||||
/datum/crafting_recipe/lockermechdrill
|
||||
name = "Makeshift exosuit drill"
|
||||
result = /obj/item/mecha_parts/mecha_equipment/drill/makeshift
|
||||
reqs = list(/obj/item/stack/cable_coil = 5,
|
||||
/obj/item/stack/sheet/metal = 2,
|
||||
/obj/item/surgicaldrill = 1)
|
||||
tools = list(/obj/item/screwdriver)
|
||||
time = 50
|
||||
category = CAT_ROBOT
|
||||
|
||||
/datum/crafting_recipe/lockermechclamp
|
||||
name = "Makeshift exosuit clamp"
|
||||
result = /obj/item/mecha_parts/mecha_equipment/hydraulic_clamp/makeshift
|
||||
reqs = list(/obj/item/stack/cable_coil = 5,
|
||||
/obj/item/stack/sheet/metal = 2,
|
||||
/obj/item/wirecutters = 1) //Don't ask, its just for the grabby grabby thing
|
||||
tools = list(/obj/item/screwdriver)
|
||||
time = 50
|
||||
category = CAT_ROBOT
|
||||
BIN
yogstation/icons/mecha/lockermech.dmi
Normal file
BIN
yogstation/icons/mecha/lockermech.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
Reference in New Issue
Block a user