Merge pull request #2414 from fluffe9911/GREYTIDE-MECH

Ports Greytide mech from hippie
This commit is contained in:
Nich
2018-09-04 22:13:12 +02:00
committed by GitHub
5 changed files with 136 additions and 1 deletions

View File

@@ -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"

View 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)
..()

View 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

View File

@@ -11,10 +11,47 @@
reqs = list(/obj/item/clothing/torncloth = 1, /datum/reagent/water = 20)
time = 45
category = CAT_MISC
/datum/crafting_recipe/drone_shell
name = "Drone Shell"
result = /obj/item/drone_shell
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB