Adds New PoI Features + Bonus PoI (#5796)

* Adds cliffs.

* Finishes lava and polishes the other things.

* Hopefully finished with all the new shinies.
This commit is contained in:
Neerti
2019-01-10 16:17:43 -06:00
committed by Anewbe
parent 11ff7b1ca3
commit afa149ca2f
40 changed files with 980 additions and 125 deletions
@@ -18,7 +18,7 @@
return ..()
/obj/effect/map_effect/interval/effect_emitter/proc/configure_effects()
effect_system.set_up(effect_amount, effect_cardinals_only, usr.loc, effect_forced_dir)
effect_system.set_up(effect_amount, effect_cardinals_only, src.loc, effect_forced_dir)
/obj/effect/map_effect/interval/effect_emitter/trigger()
configure_effects() // We do this every interval in case it changes.
@@ -49,6 +49,7 @@
spawn(retry_delay) // Maybe someday we'll have fancy TG timers/schedulers.
if(!QDELETED(src))
.()
return
var/next_interval = rand(interval_lower_bound, interval_upper_bound)
spawn(next_interval)
+8 -1
View File
@@ -10,6 +10,7 @@
var/mineitemtype = /obj/item/weapon/mine
var/panel_open = 0
var/datum/wires/mines/wires = null
register_as_dangerous_object = TRUE
/obj/effect/mine/New()
icon_state = "uglyminearmed"
@@ -271,4 +272,10 @@
/obj/item/weapon/mine/incendiary
name = "incendiary mine"
desc = "A small explosive mine with a fire symbol on the side."
minetype = /obj/effect/mine/incendiary
minetype = /obj/effect/mine/incendiary
// This tells AI mobs to not be dumb and step on mines willingly.
/obj/item/weapon/mine/is_safe_to_step(mob/living/L)
if(!L.hovering)
return FALSE
return ..()
+52 -16
View File
@@ -3,7 +3,8 @@
/obj/effect/step_trigger
var/affect_ghosts = 0
var/stopper = 1 // stops throwers
invisibility = 101 // nope cant see this shit
invisibility = 99 // nope cant see this shit
plane = ABOVE_PLANE
anchored = 1
/obj/effect/step_trigger/proc/Trigger(var/atom/movable/A)
@@ -93,21 +94,56 @@
var/teleport_y = 0
var/teleport_z = 0
Trigger(var/atom/movable/A)
if(teleport_x && teleport_y && teleport_z)
var/turf/T = locate(teleport_x, teleport_y, teleport_z)
if(isliving(A))
var/mob/living/L = A
if(L.pulling)
var/atom/movable/P = L.pulling
L.stop_pulling()
P.forceMove(T)
L.forceMove(T)
L.start_pulling(P)
else
A.forceMove(T)
else
A.forceMove(T)
/obj/effect/step_trigger/teleporter/Trigger(atom/movable/AM)
if(teleport_x && teleport_y && teleport_z)
var/turf/T = locate(teleport_x, teleport_y, teleport_z)
move_object(AM, T)
/obj/effect/step_trigger/teleporter/proc/move_object(atom/movable/AM, turf/T)
if(AM.anchored)
return
if(isliving(AM))
var/mob/living/L = AM
if(L.pulling)
var/atom/movable/P = L.pulling
L.stop_pulling()
P.forceMove(T)
L.forceMove(T)
L.start_pulling(P)
else
L.forceMove(T)
else
AM.forceMove(T)
/* Moves things by an offset, useful for 'Bridges'. Uses dir and a distance var to work with maploader direction changes. */
/obj/effect/step_trigger/teleporter/offset
icon = 'icons/effects/effects.dmi'
icon_state = "arrow"
var/distance = 3
/obj/effect/step_trigger/teleporter/offset/north
dir = NORTH
/obj/effect/step_trigger/teleporter/offset/south
dir = SOUTH
/obj/effect/step_trigger/teleporter/offset/east
dir = EAST
/obj/effect/step_trigger/teleporter/offset/west
dir = WEST
/obj/effect/step_trigger/teleporter/offset/Trigger(atom/movable/AM)
var/turf/T = get_turf(src)
for(var/i = 1 to distance)
T = get_step(T, dir)
if(!istype(T))
return
move_object(AM, T)
/* Random teleporter, teleports atoms to locations ranging from teleport_x - teleport_x_offset, etc */