mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-26 13:39:16 +01:00
Anomaly changes (#18902)
* Automatic changelog compile [ci skip] * Adds * Improv * TELESCI!!! * Gravity --------- Co-authored-by: vorestation-ci[bot] <199609141+vorestation-ci[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
vorestation-ci[bot] <199609141+vorestation-ci[bot]@users.noreply.github.com>
parent
688ebfde09
commit
55efae4bac
@@ -41,7 +41,7 @@
|
||||
. = ..()
|
||||
|
||||
/obj/effect/anomaly/flux/proc/mobShock(mob/living/M)
|
||||
if(canshock && istype(M))
|
||||
if(canshock && istype(M) && !M.is_incorporeal())
|
||||
canshock = FALSE
|
||||
M.electrocute_act(shockdamage, name)
|
||||
|
||||
|
||||
@@ -21,11 +21,17 @@
|
||||
if(!O.anchored)
|
||||
step_towards(O, src)
|
||||
for(var/mob/living/M in range(0, src))
|
||||
if(!M.can_overcome_gravity())
|
||||
gravShock(M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/human = M
|
||||
if(istype(human.shoes, /obj/item/clothing/shoes/magboots) && (human.shoes.item_flags & NOSLIP))
|
||||
continue
|
||||
gravShock(M)
|
||||
for(var/mob/living/M in range(4, src))
|
||||
if(!M.can_overcome_gravity())
|
||||
step_towards(M, src)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/human = M
|
||||
if(istype(human.shoes, /obj/item/clothing/shoes/magboots) && (human.shoes.item_flags & NOSLIP))
|
||||
continue
|
||||
step_towards(M, src)
|
||||
for(var/obj/O in range(0, src))
|
||||
if(O.anchored)
|
||||
continue
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
hallucinator.hallucination += 10
|
||||
if(prob(20))
|
||||
to_chat(hallucinator, pick(messages))
|
||||
hallucinator.Confuse(10)
|
||||
if(prob(10))
|
||||
to_chat(hallucinator, span_danger("Your nose bleeds!"))
|
||||
hallucinator.drip(1)
|
||||
@@ -49,6 +50,7 @@
|
||||
hallucinator.hallucination += 25
|
||||
to_chat(hallucinator, span_danger("Your nose bleeds!"))
|
||||
hallucinator.drip(1)
|
||||
hallucinator.Confuse(15)
|
||||
|
||||
/obj/effect/anomaly/hallucination/proc/generate_decoys()
|
||||
if(!spawn_decoys)
|
||||
|
||||
@@ -1,18 +1,11 @@
|
||||
/datum/anomaly_placer
|
||||
var/static/list/allowed_areas
|
||||
var/list/excluded = list(
|
||||
/area/crew_quarters,
|
||||
/area/shuttle,
|
||||
/area/space,
|
||||
/area/solar,
|
||||
/area/engineering/engine_room,
|
||||
/area/maintenance,
|
||||
/area/holodeck,
|
||||
/area/ai
|
||||
)
|
||||
|
||||
/datum/anomaly_placer/proc/find_valid_area()
|
||||
var/list/possible_areas = get_station_areas(excluded)
|
||||
if(!allowed_areas)
|
||||
generate_allowed_areas()
|
||||
|
||||
var/list/possible_areas = typecache_filter_list(GLOB.areas_by_type, allowed_areas)
|
||||
if(!length(possible_areas))
|
||||
CRASH("No valid areas for anomaly found.")
|
||||
|
||||
@@ -43,3 +36,19 @@
|
||||
if(isopenspace(tested))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/datum/anomaly_placer/proc/generate_allowed_areas()
|
||||
var/static/list/safe_area_types = typecacheof(list(
|
||||
/area/crew_quarters,
|
||||
/area/shuttle,
|
||||
/area/space,
|
||||
/area/solar,
|
||||
/area/engineering,
|
||||
/area/maintenance,
|
||||
/area/holodeck,
|
||||
/area/ai
|
||||
))
|
||||
|
||||
var/static/list/unsafe_area_subtypes = typecacheof(list(/area/engineering/break_room))
|
||||
|
||||
allowed_areas = GLOB.areas_by_type - safe_area_types + unsafe_area_subtypes
|
||||
|
||||
Reference in New Issue
Block a user