Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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)]"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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'
|
||||
@@ -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."
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user