mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-26 06:22:26 +01:00
Post-Arc Bugfixes, Non-Sea Balance, etc. (#22836)
Fixes bugs associated with Lemurian Sea. Former test merge PR
This commit is contained in:
@@ -388,8 +388,8 @@ GLOBAL_LIST_INIT(severity_to_string, alist(EVENT_LEVEL_MUNDANE = "Mundane", EVEN
|
||||
20, list(ASSIGNMENT_ENGINEER = 15, ASSIGNMENT_JANITOR = 20)),
|
||||
|
||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Dark Matter Influx", /datum/event/gravity_anomaly,
|
||||
35, list(ASSIGNMENT_ENGINEER = 20), is_one_shot = TRUE,
|
||||
pop_needed = 12),
|
||||
15, list(ASSIGNMENT_ENGINEER = 20), is_one_shot = TRUE,
|
||||
pop_needed = 8),
|
||||
|
||||
new /datum/event_meta(EVENT_LEVEL_MAJOR, "Wandering Psiren School", /datum/event/wandering_psirens,
|
||||
10, list(ASSIGNMENT_SECURITY = 15, ASSIGNMENT_MEDICAL = 5)),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/datum/event/gravity_anomaly
|
||||
announceWhen = 0
|
||||
startWhen = 30
|
||||
startWhen = 0 // In practice, gravity generator is always nearly done already if it starts too late.
|
||||
endWhen = 60 // Actually gets set in setup()
|
||||
ic_name = "a gravitational anomaly"
|
||||
var/list/valid_victims
|
||||
@@ -102,7 +102,7 @@
|
||||
return FALSE
|
||||
|
||||
/datum/event/gravity_anomaly/proc/pick_victim_disturbance()
|
||||
if(activeFor >= next_gravity_surge && prob(67))
|
||||
if(activeFor >= next_gravity_surge)
|
||||
schedule_next_gravity_surge()
|
||||
if(prob(10))
|
||||
return "surge_hilarious"
|
||||
@@ -119,7 +119,7 @@
|
||||
return null
|
||||
|
||||
/datum/event/gravity_anomaly/proc/schedule_next_gravity_surge()
|
||||
next_gravity_surge = activeFor + rand(2, 90)
|
||||
next_gravity_surge = activeFor + rand(2, 10)
|
||||
|
||||
/datum/event/gravity_anomaly/proc/get_current_victims()
|
||||
var/list/current_victims = list()
|
||||
@@ -197,13 +197,13 @@
|
||||
/datum/event/gravity_anomaly/proc/apply_surge_default(var/mob/living/carbon/human/victim)
|
||||
victim.dizziness += rand(10, 20)
|
||||
victim.confused += rand(20, 25)
|
||||
if(prob(50))
|
||||
if(prob(33))
|
||||
if(isipc(victim))
|
||||
to_chat(victim, SPAN_MACHINE_WARNING(pick(nausea_strong_ipc)))
|
||||
else
|
||||
to_chat(victim, SPAN_WARNING(pick(nausea_strong_organic)))
|
||||
victim.vomit()
|
||||
if(prob(70))
|
||||
if(prob(90))
|
||||
if(victim.buckled_to)
|
||||
to_chat(victim, SPAN_WARNING("Sudden gravity flux presses you into your chair!"))
|
||||
shake_camera(victim, 3, 1)
|
||||
@@ -215,7 +215,7 @@
|
||||
else
|
||||
to_chat(victim, SPAN_WARNING("The floor lurches beneath you!"))
|
||||
shake_camera(victim, 10, 1)
|
||||
victim.visible_message(SPAN_DANGER("[victim.name] is tossed around by a sudden knot in the artifical gravity field!"))
|
||||
victim.visible_message(SPAN_HIGHDANGER("[victim.name] is tossed around by a sudden knot in the artifical gravity field!"))
|
||||
victim.throw_at_random(FALSE, 4, 1)
|
||||
victim.Weaken(3)
|
||||
|
||||
@@ -240,7 +240,7 @@
|
||||
to_chat(victim, SPAN_WARNING("You feel like your ankles are about to be ripped apart as the artificial gravity surges!"))
|
||||
shake_camera(victim, 8, 2)
|
||||
else
|
||||
victim.visible_message(SPAN_DANGER("[victim.name] is flung violently by a horrible gravity flux!"))
|
||||
victim.visible_message(SPAN_HIGHDANGER("[victim.name] is flung violently by a horrible gravity flux!"))
|
||||
victim.Weaken(8)
|
||||
if(prob(90))
|
||||
victim.throw_at_random(FALSE, 7, 1)
|
||||
|
||||
@@ -1116,15 +1116,16 @@
|
||||
timevomit = clamp(timevomit, 1, 10)
|
||||
level = clamp(level, 1, 3)
|
||||
|
||||
var/delay = rand(100,175)
|
||||
lastpuke = TRUE
|
||||
to_chat(src, SPAN_WARNING("You feel nauseous..."))
|
||||
if(level > 1)
|
||||
sleep(150 / timevomit) //15 seconds until second warning
|
||||
sleep(delay / timevomit)
|
||||
to_chat(src, SPAN_WARNING("You feel like you are about to throw up!"))
|
||||
if(level > 2)
|
||||
sleep(100 / timevomit) //and you have 10 more for mad dash to the bucket
|
||||
sleep(delay / timevomit)
|
||||
empty_stomach()
|
||||
sleep(350) //wait 35 seconds before next volley
|
||||
sleep(delay * 2)
|
||||
lastpuke = FALSE
|
||||
|
||||
/// A damaged stomach can put blood in your vomit.
|
||||
|
||||
@@ -142,19 +142,30 @@
|
||||
GLOB.exited_event.register(T, src, PROC_REF(on_turf_exited))
|
||||
|
||||
for(var/obj/effect/overmap/visitable/ship/ship in T)
|
||||
var/list/active_ship_events = ship_events[ship]
|
||||
for(var/datum/event/E as anything in active_ship_events)
|
||||
if(is_event_in_turf(E,T))
|
||||
continue
|
||||
E.kill()
|
||||
LAZYREMOVE(ship_events[ship], E)
|
||||
update_ship_hazards(ship, T)
|
||||
|
||||
for(var/obj/effect/overmap/event/E in active_hazards)
|
||||
start_hazard(ship,E)
|
||||
/singleton/overmap_event_handler/proc/update_ship_hazards(var/obj/effect/overmap/visitable/ship/ship, var/turf/T)
|
||||
if(!istype(ship))
|
||||
return
|
||||
if(!istype(T))
|
||||
T = get_turf(ship)
|
||||
|
||||
var/list/active_ship_events = ship_events[ship]
|
||||
for(var/datum/event/E as anything in active_ship_events)
|
||||
if(istype(T) && is_event_in_turf(E, T))
|
||||
continue
|
||||
E.kill()
|
||||
LAZYREMOVE(ship_events[ship], E)
|
||||
|
||||
if(!istype(T))
|
||||
return
|
||||
|
||||
for(var/obj/effect/overmap/event/E in hazard_by_turf[T])
|
||||
start_hazard(ship, E)
|
||||
|
||||
/singleton/overmap_event_handler/proc/is_event_in_turf(var/datum/event/E, var/turf/T)
|
||||
for(var/obj/effect/overmap/event/hazard in hazard_by_turf[T])
|
||||
if((E in hazard.events) && E.severity == hazard.difficulty)
|
||||
if((E.type in hazard.events) && E.severity == hazard.difficulty)
|
||||
return TRUE
|
||||
|
||||
/singleton/overmap_event_handler/proc/is_event_included(var/list/hazards, var/obj/effect/overmap/event/E, var/equal_or_better)//this proc is only used so it can break out of 2 loops cleanly
|
||||
|
||||
@@ -102,6 +102,16 @@
|
||||
|
||||
. = ..()
|
||||
|
||||
/obj/effect/overmap/visitable/ship/Move(atom/newloc, direction, glide_size_override = 0, update_dir = TRUE)
|
||||
. = ..()
|
||||
if(.)
|
||||
overmap_event_handler.update_ship_hazards(src)
|
||||
|
||||
/obj/effect/overmap/visitable/ship/forceMove(atom/destination)
|
||||
. = ..()
|
||||
if(.)
|
||||
overmap_event_handler.update_ship_hazards(src)
|
||||
|
||||
/obj/effect/overmap/visitable/ship/relaymove(mob/living/user, direction, accel_limit)
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -32,9 +32,9 @@
|
||||
if(randomize_range)
|
||||
switch(lighttype)
|
||||
if("tube")
|
||||
brightness_range = rand(5,8) // LEMURIAN SEA - INCREASE BY 1,1 AFTER ARC
|
||||
brightness_range = rand(6,9)
|
||||
if("bulb")
|
||||
brightness_range = rand(3,5) // LEMURIAN SEA - INCREASE BY 1,1 AFTER ARC
|
||||
brightness_range = rand(4,6)
|
||||
if(randomize_color)
|
||||
brightness_color = pick(randomized_colors)
|
||||
update()
|
||||
|
||||
@@ -240,7 +240,7 @@
|
||||
message_admins("LOG: Rigged light explosion, last touched by [fingerprintslast]")
|
||||
explode()
|
||||
|
||||
else if(prob(min(60,(switchcount**2) * 0.05))) // LEMURIAN SEA, REDUCE 0.05 -> 0.01 AFTER ARC
|
||||
else if(prob(min(60,(switchcount**2) * 0.01)))
|
||||
if(status == LIGHT_OK && trigger)
|
||||
status = LIGHT_BURNED
|
||||
stat |= BROKEN
|
||||
|
||||
Reference in New Issue
Block a user