This commit is contained in:
LetterJay
2017-06-26 23:19:54 -05:00
60 changed files with 5414 additions and 774 deletions
@@ -262,7 +262,7 @@
/obj/item/weapon/nullrod/clown
icon = 'icons/obj/wizard.dmi'
icon_state = "honkrender"
icon_state = "clownrender"
item_state = "render"
name = "clown dagger"
desc = "Used for absolutely hilarious sacrifices."
@@ -62,6 +62,15 @@
new /obj/item/device/multitool(src)
new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange"))
/obj/item/weapon/storage/belt/utility/full/engi/PopulateContents()
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool/largetank(src)
new /obj/item/weapon/crowbar(src)
new /obj/item/weapon/wirecutters(src)
new /obj/item/device/multitool(src)
new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange"))
/obj/item/weapon/storage/belt/utility/atmostech/PopulateContents()
new /obj/item/weapon/screwdriver(src)
@@ -58,7 +58,7 @@
for(var/i in 1 to 3)
new /obj/item/clothing/head/welding(src)
for(var/i in 1 to 3)
new /obj/item/weapon/weldingtool/largetank(src)
new /obj/item/weapon/weldingtool(src)
/obj/structure/closet/secure_closet/engineering_personal
name = "engineer's locker"
+7 -2
View File
@@ -91,6 +91,11 @@
icon_state = "[icon_state][rand(1, 6)]"
..()
/obj/structure/flora/tree/jungle/small
pixel_y = 0
pixel_x = -32
icon = 'icons/obj/flora/jungletreesmall.dmi'
//grass
/obj/structure/flora/grass
name = "grass"
@@ -381,5 +386,5 @@
pixel_y = -16
/obj/structure/flora/rock/pile/largejungle/Initialize()
..()
icon_state = "[initial(icon_state)][rand(1,3)]"
. = ..()
icon_state = "[initial(icon_state)][rand(1,3)]"
+81 -3
View File
@@ -1,21 +1,95 @@
#define ENGINE_UNWRENCHED 0
#define ENGINE_WRENCHED 1
#define ENGINE_WELDED 2
#define ENGINE_WELDTIME 200
/obj/structure/shuttle
name = "shuttle"
icon = 'icons/turf/shuttle.dmi'
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
obj_integrity = 500
max_integrity = 500
armor = list(melee = 100, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) //default + ignores melee
/obj/structure/shuttle/engine
name = "engine"
density = 1
anchored = 1
density = TRUE
anchored = TRUE
var/engine_power = 1
var/state = ENGINE_WELDED //welding shmelding
//Ugh this is a lot of copypasta from emitters, welding need some boilerplate reduction
/obj/structure/shuttle/engine/can_be_unfasten_wrench(mob/user, silent)
if(state == ENGINE_WELDED)
if(!silent)
to_chat(user, "<span class='warning'>[src] is welded to the floor!</span>")
return FAILED_UNFASTEN
return ..()
/obj/structure/shuttle/engine/default_unfasten_wrench(mob/user, obj/item/weapon/wrench/W, time = 20)
. = ..()
if(. == SUCCESSFUL_UNFASTEN)
if(anchored)
state = ENGINE_WRENCHED
else
state = ENGINE_UNWRENCHED
/obj/structure/shuttle/engine/attackby(obj/item/I, mob/user, params)
add_fingerprint(user)
if(default_unfasten_wrench(user, I))
return
else if(istype(I, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = I
switch(state)
if(ENGINE_UNWRENCHED)
to_chat(user, "<span class='warning'>The [src.name] needs to be wrenched to the floor!</span>")
if(EM_SECURED)
if(WT.remove_fuel(0,user))
playsound(loc, WT.usesound, 50, 1)
user.visible_message("[user.name] starts to weld the [name] to the floor.", \
"<span class='notice'>You start to weld \the [src] to the floor...</span>", \
"<span class='italics'>You hear welding.</span>")
if(do_after(user,ENGINE_WELDTIME*WT.toolspeed, target = src) && WT.isOn())
state = ENGINE_WELDED
to_chat(user, "<span class='notice'>You weld \the [src] to the floor.</span>")
alter_engine_power(engine_power)
if(EM_WELDED)
if(WT.remove_fuel(0,user))
playsound(loc, WT.usesound, 50, 1)
user.visible_message("[user.name] starts to cut the [name] free from the floor.", \
"<span class='notice'>You start to cut \the [src] free from the floor...</span>", \
"<span class='italics'>You hear welding.</span>")
if(do_after(user,ENGINE_WELDTIME*WT.toolspeed, target = src) && WT.isOn())
state = ENGINE_WRENCHED
to_chat(user, "<span class='notice'>You cut \the [src] free from the floor.</span>")
alter_engine_power(-engine_power)
return
else
return ..()
/obj/structure/shuttle/engine/Destroy()
if(state == ENGINE_WELDED)
alter_engine_power(-engine_power)
. = ..()
//Propagates the change to the shuttle.
/obj/structure/shuttle/engine/proc/alter_engine_power(mod)
if(mod == 0)
return
if(SSshuttle.is_in_shuttle_bounds(src))
var/obj/docking_port/mobile/M = SSshuttle.get_containing_shuttle(src)
if(M)
M.alter_engines(mod)
/obj/structure/shuttle/engine/heater
name = "heater"
icon_state = "heater"
engine_power = 0 // todo make these into 2x1 parts
/obj/structure/shuttle/engine/platform
name = "platform"
icon_state = "platform"
engine_power = 0
/obj/structure/shuttle/engine/propulsion
name = "propulsion"
@@ -25,6 +99,10 @@
/obj/structure/shuttle/engine/propulsion/burst
name = "burst"
/obj/structure/shuttle/engine/propulsion/burst/cargo
state = ENGINE_UNWRENCHED
anchored = FALSE
/obj/structure/shuttle/engine/propulsion/burst/left
name = "left"
icon_state = "burst_l"
+10
View File
@@ -0,0 +1,10 @@
diff a/code/game/shuttle_engines.dm b/code/game/shuttle_engines.dm (rejected hunks)
@@ -46,7 +117,7 @@
bound_height = 64
appearance_flags = 0
-obj/structure/shuttle/engine/huge
+/obj/structure/shuttle/engine/huge
name = "engine"
opacity = 1
icon = 'icons/obj/3x3.dmi'
+17
View File
@@ -116,6 +116,23 @@
underlay_appearance.icon_state = "necro1"
return TRUE
/turf/closed/indestructible/riveted/boss
name = "stone wall"
desc = "A thick, seemingly indestructible stone wall."
icon = 'icons/turf/walls/boss_wall.dmi'
icon_state = "wall"
explosion_block = 50
baseturf = /turf/closed/indestructible/riveted/boss
/turf/closed/indestructible/riveted/boss/hot
icon = 'icons/turf/walls/boss_wall_hot.dmi'
baseturf = /turf/closed/indestructible/riveted/boss/hot
/turf/closed/indestructible/riveted/boss/get_smooth_underlay_icon(mutable_appearance/underlay_appearance, turf/asking_turf, adjacency_dir)
underlay_appearance.icon = 'icons/turf/floors.dmi'
underlay_appearance.icon_state = "basalt"
return TRUE
/turf/closed/indestructible/riveted/hierophant
name = "wall"
desc = "A wall made out of a strange metal. The squares on it pulse in a predictable pattern."
+8
View File
@@ -54,8 +54,16 @@
else
to_chat(user, "<span class='warning'>The plating is going to need some support! Place metal rods first.</span>")
/turf/open/chasm/proc/is_safe()
//if anything matching this typecache is found in the chasm, we don't drop things
var/static/list/chasm_safeties_typecache = typecacheof(list(/obj/structure/lattice/catwalk, /obj/structure/stone_tile))
var/list/found_safeties = typecache_filter_list(contents, chasm_safeties_typecache)
return LAZYLEN(found_safeties)
/turf/open/chasm/proc/drop_stuff(AM)
. = 0
if(is_safe())
return FALSE
var/thing_to_check = src
if(AM)
thing_to_check = list(AM)
@@ -54,7 +54,7 @@
/turf/open/floor/plating/lava/proc/is_safe()
//if anything matching this typecache is found in the lava, we don't burn things
var/static/list/lava_safeties_typecache = typecacheof(list(/obj/structure/lattice/catwalk))
var/static/list/lava_safeties_typecache = typecacheof(list(/obj/structure/lattice/catwalk, /obj/structure/stone_tile))
var/list/found_safeties = typecache_filter_list(contents, lava_safeties_typecache)
return LAZYLEN(found_safeties)