Merge branch 'master' into nanoui-is-dead

This commit is contained in:
AffectedArc07
2020-11-26 09:34:14 +00:00
committed by GitHub
70 changed files with 719 additions and 1906 deletions
File diff suppressed because it is too large Load Diff
@@ -1,140 +1,15 @@
/////////////////////////////////////////////
//////// Attach a trail to any object, that spawns when it moves (like for the jetpack)
/// just pass in the object to attach it to in set_up
/// Then do start() to start it and stop() to stop it, obviously
/// and don't call start() in a loop that will be repeated otherwise it'll get spammed!
/////////////////////////////////////////////
/datum/effect_system/trail_follow
var/turf/oldposition
var/processing = 1
var/on = 1
/datum/effect_system/trail_follow/set_up(atom/atom)
attach(atom)
oldposition = get_turf(atom)
/datum/effect_system/trail_follow/Destroy()
oldposition = null
return ..()
/datum/effect_system/trail_follow/proc/stop()
processing = 0
on = 0
oldposition = null
/datum/effect_system/trail_follow/steam
effect_type = /obj/effect/particle_effect/steam
/datum/effect_system/trail_follow/steam/start() //Whoever is responsible for this abomination of code should become an hero
if(!on)
on = 1
processing = 1
if(!oldposition)
oldposition = get_turf(holder)
if(processing)
processing = 0
if(number < 3)
var/obj/effect/particle_effect/steam/I = new effect_type(oldposition)
number++
I.dir = holder.dir
oldposition = get_turf(holder)
spawn(10)
qdel(I)
number--
spawn(2)
if(on)
processing = 1
start()
/// Ion trails for spacepods and other space-flying things
/obj/effect/particle_effect/ion_trails
name = "ion trails"
icon_state = "ion_trails"
anchored = 1
anchored = TRUE
/datum/effect_system/trail_follow/ion
effect_type = /obj/effect/particle_effect/ion_trails
/datum/effect_system/trail_follow/ion/start() //Whoever is responsible for this abomination of code should become an hero
if(!on)
on = 1
processing = 1
if(processing)
processing = 0
var/turf/T = get_turf(src.holder)
if(T != oldposition)
if(!has_gravity(T))
var/obj/effect/particle_effect/ion_trails/I = new effect_type(oldposition)
I.dir = holder.dir
flick("ion_fade", I)
I.icon_state = ""
spawn(20)
qdel(I)
oldposition = T
spawn(2)
if(on)
processing = 1
start()
/datum/effect_system/trail_follow/ion/space_trail
var/turf/oldloc // secondary ion trail loc
var/turf/currloc
/datum/effect_system/trail_follow/ion/space_trail/Destroy()
oldloc = null
currloc = null
return ..()
/datum/effect_system/trail_follow/ion/space_trail/start()
if(!on)
on = 1
processing = 1
if(processing)
processing = 0
spawn(0)
var/turf/T = get_turf(src.holder)
if(currloc != T)
switch(holder.dir)
if(NORTH)
src.oldposition = T
src.oldposition = get_step(oldposition, SOUTH)
src.oldloc = get_step(oldposition,EAST)
//src.oldloc = get_step(oldloc, SOUTH)
if(SOUTH) // More difficult, offset to the north!
src.oldposition = get_step(holder,NORTH)
src.oldposition = get_step(oldposition,NORTH)
src.oldloc = get_step(oldposition,EAST)
//src.oldloc = get_step(oldloc,NORTH)
if(EAST) // Just one to the north should suffice
src.oldposition = T
src.oldposition = get_step(oldposition, WEST)
src.oldloc = get_step(oldposition,NORTH)
//src.oldloc = get_step(oldloc,WEST)
if(WEST) // One to the east and north from there
src.oldposition = get_step(holder,EAST)
src.oldposition = get_step(oldposition,EAST)
src.oldloc = get_step(oldposition,NORTH)
//src.oldloc = get_step(oldloc,EAST)
if(istype(T, /turf/space))
var/obj/effect/particle_effect/ion_trails/I = new effect_type(oldposition)
var/obj/effect/particle_effect/ion_trails/II = new effect_type(oldloc)
//src.oldposition = T
I.dir = holder.dir
II.dir = holder.dir
flick("ion_fade", I)
flick("ion_fade", II)
I.icon_state = ""
II.icon_state = ""
spawn(20)
if(I)
qdel(I)
if(II)
qdel(II)
spawn(2)
if(on)
processing = 1
start()
currloc = T
/obj/effect/particle_effect/ion_trails/Initialize(mapload, targetdir)
. = ..()
dir = targetdir
flick("ion_fade", src)
icon_state = null
QDEL_IN(src, 2 SECONDS)
//Reagent-based explosion effect
/datum/effect_system/reagents_explosion
+2 -2
View File
@@ -122,13 +122,13 @@
affecting_level = S.is_shielded() ? 2 : (S.intact ? 2 : 1)
for(var/atom in S.contents) //bypass type checking since only atom can be contained by turfs anyway
var/atom/AM = atom
if(AM && AM.simulated)
if(!QDELETED(AM) && AM.simulated)
if(AM.level >= affecting_level)
AM.ex_act(dist)
else
for(var/atom in T.contents) //see above
var/atom/AM = atom
if(AM && AM.simulated)
if(!QDELETED(AM) && AM.simulated)
AM.ex_act(dist)
CHECK_TICK
if(breach)
@@ -33,7 +33,7 @@
/obj/item/pipe_painter/attack_self(mob/user as mob)
mode = input("Which colour do you want to use?", "Pipe Painter", mode) in modes
mode = input("Which colour do you want to use?", name, mode) in modes
/obj/item/pipe_painter/examine(mob/user)
. = ..()
@@ -0,0 +1,22 @@
/obj/item/pipe_painter/window_painter
name = "window painter"
icon_state = "window_painter"
var/list/paintable_windows = list(
/obj/structure/window/reinforced,
/obj/structure/window/basic,
/obj/structure/window/full/reinforced,
/obj/structure/window/full/basic,
/obj/machinery/door/window)
/obj/item/pipe_painter/window_painter/afterattack(atom/A, mob/user as mob)
if(!is_type_in_list(A, paintable_windows) || !in_range(user, A))
return
var/obj/structure/window/W = A
if(W.color == GLOB.pipe_colors[mode])
to_chat(user, "<span class='notice'>This window is aready painted [mode]!</span>")
return
playsound(loc, usesound, 30, TRUE)
W.color = GLOB.pipe_colors[mode]
@@ -5,20 +5,16 @@
w_class = WEIGHT_CLASS_BULKY
item_state = "jetpack"
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
var/datum/effect_system/trail_follow/ion/ion_trail
actions_types = list(/datum/action/item_action/set_internals, /datum/action/item_action/toggle_jetpack, /datum/action/item_action/jetpack_stabilization)
var/on = 0
var/stabilizers = 0
var/volume_rate = 500 //Needed for borg jetpack transfer
/obj/item/tank/jetpack/New()
..()
ion_trail = new /datum/effect_system/trail_follow/ion()
ion_trail.set_up(src)
/obj/item/tank/jetpack/Destroy()
QDEL_NULL(ion_trail)
return ..()
/obj/item/tank/jetpack/on_mob_move(direction, mob/user)
if(on)
var/turf/T = get_step(src, GetOppositeDir(direction))
if(!has_gravity(T))
new /obj/effect/particle_effect/ion_trails(T, direction)
/obj/item/tank/jetpack/ui_action_click(mob/user, actiontype)
if(actiontype == /datum/action/item_action/toggle_jetpack)
@@ -59,14 +55,11 @@
/obj/item/tank/jetpack/proc/turn_on(mob/user)
on = TRUE
icon_state = "[initial(icon_state)]-on"
ion_trail.start()
/obj/item/tank/jetpack/proc/turn_off(mob/user)
on = FALSE
stabilizers = FALSE
icon_state = initial(icon_state)
ion_trail.stop()
/obj/item/tank/jetpack/proc/allow_thrust(num, mob/living/user)
if(!on)
@@ -150,8 +143,6 @@
/obj/item/tank/jetpack/carbondioxide/New()
..()
ion_trail = new /datum/effect_system/trail_follow/ion()
ion_trail.set_up(src)
air_contents.carbon_dioxide = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
/obj/item/tank/jetpack/carbondioxide/examine(mob/user)
@@ -72,24 +72,35 @@
/obj/structure/closet/jcloset/New()
..()
new /obj/item/clothing/under/rank/janitor(src)
new /obj/item/radio/headset/headset_service(src)
new /obj/item/cartridge/janitor(src)
new /obj/item/flashlight(src)
new /obj/item/flashlight(src)
new /obj/item/melee/flyswatter(src)
new /obj/item/melee/flyswatter(src)
new /obj/item/clothing/shoes/galoshes(src)
new /obj/item/clothing/shoes/galoshes(src)
new /obj/item/soap(src)
new /obj/item/soap(src)
new /obj/item/reagent_containers/spray/cleaner(src)
new /obj/item/caution(src)
new /obj/item/caution(src)
new /obj/item/caution(src)
new /obj/item/caution(src)
new /obj/item/storage/bag/trash(src)
new /obj/item/storage/bag/trash(src)
new /obj/item/lightreplacer(src)
new /obj/item/lightreplacer(src)
new /obj/item/holosign_creator(src)
new /obj/item/clothing/gloves/color/black(src)
new /obj/item/clothing/head/soft/purple(src)
new /obj/item/holosign_creator(src)
new /obj/item/watertank/janitor(src)
new /obj/item/watertank/janitor(src)
new /obj/item/storage/belt/janitor(src)
new /obj/item/storage/belt/janitor(src)
new /obj/item/clothing/gloves/color/black(src)
new /obj/item/clothing/head/soft/purple(src)
new /obj/item/radio/headset/headset_service(src)
new /obj/item/radio/headset/headset_service(src)
new /obj/item/clothing/under/rank/janitor(src)
new /obj/item/cartridge/janitor(src)
/*
* Lawyer
+3
View File
@@ -50,6 +50,7 @@
name = "grass"
icon = 'icons/obj/flora/snowflora.dmi'
anchored = 1
max_integrity = 15
/obj/structure/flora/grass/brown
icon_state = "snowgrass1bb"
@@ -80,6 +81,7 @@
icon = 'icons/obj/flora/snowflora.dmi'
icon_state = "snowbush1"
anchored = 1
max_integrity = 15
/obj/structure/flora/bush/New()
..()
@@ -92,6 +94,7 @@
icon = 'icons/obj/flora/ausflora.dmi'
icon_state = "firstbush_1"
anchored = 1
max_integrity = 15
/obj/structure/flora/ausbushes/New()
..()
@@ -71,6 +71,10 @@
base = "rtable"
if(istype(src, /obj/structure/table/wood/poker))
base = "poker"
if(istype(src, /obj/structure/table/wood/fancy))
base = "fancy"
if(istype(src, /obj/structure/table/wood/fancy/black))
base = "fancyblack"
icon_state = "[base]flip[type][type == 1 ? subtype : ""]"