Merge remote-tracking branch 'upstream/master' into reagentsagain

This commit is contained in:
Archie
2020-12-18 01:20:57 -03:00
19 changed files with 131153 additions and 7294 deletions
+11 -1
View File
@@ -1249,7 +1249,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
if(!check_rights(R_ADMIN) || !check_rights(R_FUN))
return
var/list/punishment_list = list(ADMIN_PUNISHMENT_PIE, ADMIN_PUNISHMENT_FIREBALL, ADMIN_PUNISHMENT_CLUWNE, ADMIN_PUNISHMENT_LIGHTNING, ADMIN_PUNISHMENT_BRAINDAMAGE, ADMIN_PUNISHMENT_BSA, ADMIN_PUNISHMENT_GIB, ADMIN_PUNISHMENT_SUPPLYPOD, ADMIN_PUNISHMENT_MAZING, ADMIN_PUNISHMENT_ROD)
var/list/punishment_list = list(ADMIN_PUNISHMENT_PIE, ADMIN_PUNISHMENT_FIREBALL, ADMIN_PUNISHMENT_CLUWNE, ADMIN_PUNISHMENT_LIGHTNING, ADMIN_PUNISHMENT_BRAINDAMAGE, ADMIN_PUNISHMENT_BSA, ADMIN_PUNISHMENT_GIB, ADMIN_PUNISHMENT_SUPPLYPOD, ADMIN_PUNISHMENT_MAZING, ADMIN_PUNISHMENT_ROD, ADMIN_PUNISHMENT_TABLETIDESTATIONWIDE)
var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in punishment_list
@@ -1307,6 +1307,16 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
if(ADMIN_PUNISHMENT_PIE)
var/obj/item/reagent_containers/food/snacks/pie/cream/nostun/creamy = new(get_turf(target))
creamy.splat(target)
if(ADMIN_PUNISHMENT_TABLETIDESTATIONWIDE)
var/list/areas = list()
for(var/area/A in world)
if(A.z == SSmapping.station_start)
areas += A
SEND_SOUND(target, sound('hyperstation/sound/misc/hoopisundunkable.ogg',volume=50))
for(var/area/A in areas)
for(var/obj/structure/table/T in A)
T.tablepush(target, target)
sleep(1)
var/msg = "[key_name_admin(usr)] punished [key_name_admin(target)] with [punishment]."
message_admins(msg)
+98
View File
@@ -0,0 +1,98 @@
/datum/round_event_control/aurora_aquilae
name = "Aurora Aquilae"
typepath = /datum/round_event/aurora_aquilae
max_occurrences = 1
weight = 4
earliest_start = 900 MINUTES
/datum/round_event_control/aurora_aquilae/canSpawnEvent(players, gamemode)
if(!CONFIG_GET(flag/starlight))
return FALSE
return ..()
/datum/round_event/aurora_aquilae
announceWhen = 30
startWhen = 1
endWhen = 115
var/list/aurora_colors = list("#ffc8bc", "#ed927f", "#d5745f", "#bf3a1d", "#c71414", "#FF3131", "#ee0808", "#ff0000")
var/aurora_progress = 0 //this cycles from 1 to 8, slowly grading towards a bright red
var/list/areasToFlicker = list(/area/hallway,
/area/security,
/area/science)
/datum/round_event/aurora_aquilae/start()
for(var/area in GLOB.sortedAreas)
var/area/A = area
if(initial(A.dynamic_lighting) == DYNAMIC_LIGHTING_IFSTARLIGHT)
for(var/turf/open/space/S in A)
S.set_light(S.light_range * 8, S.light_power * 1)
for(var/mob/M in GLOB.player_list)
SEND_SOUND(M, sound('sound/ambience/aurora_aquilae.ogg', volume=10)) //ogg is "In the presence of a King" by Heaven Pierce Her, used in the videogame ULTRAKILL. All respects and credits to the equivalent artists who worked on it.
/datum/round_event/aurora_aquilae/proc/flicker_lights()
for(var/area/A in world)
for(var/typecheck in areasToFlicker)
if(istype(A, typecheck))
for(var/obj/machinery/light/L in A)
L.flicker(10)
/datum/round_event/aurora_aquilae/proc/break_lights()
for(var/area/A in world)
for(var/typecheck in areasToFlicker)
if(istype(A, typecheck))
for(var/obj/machinery/power/apc/temp in A)
temp.overload_lighting()
/datum/round_event/aurora_aquilae/proc/battleflashbacksthree()
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
new /datum/hallucination/stray_pistol_bullet(H)
/datum/round_event/aurora_aquilae/proc/battleflashbacksone()
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
new /datum/hallucination/fire(H)
new /datum/hallucination/battle(H)
/datum/round_event/aurora_aquilae/proc/battleflashbackstwo()
for(var/mob/living/carbon/human/H in GLOB.alive_mob_list)
new /datum/hallucination/battle(H)
var/delay = 0
for(var/i in 1 to 50)
delay += 3
addtimer(CALLBACK(src, .proc/battleflashbacksthree), delay)
/datum/round_event/aurora_aquilae/announce()
priority_announce("[station_name()]: A ·#HARMLESS#· cloud of ·|$% GLORY AND GUTS¬€#· ions is approaching your ·|%$ station, and will exhaust their energy battering the hull. Kinaris Command has approved a short break for all employees to relax and observe this very rare event. During this time, starlight will be bright but %%%BRUTAL·$ª, shifting between %$$%!ªTHE COMPLETE AND UTTER DESTRUCTION OF THE SENSES$ and %%THE ASHES OF THE GREAT AL-SHAIN%. Any staff who would like to view the %%PRESENCE OF A KING%$ for themselves may proceed to the nearest area with viewing ports to open space.",
sound = 'sound/misc/interference.ogg',
sender_override = "Kin]·|Aari$s Meteo%&rology DivD··isio#n")
addtimer(CALLBACK(src, .proc/flicker_lights), 5 SECONDS)
addtimer(CALLBACK(src, .proc/battleflashbacksone), 5 SECONDS)
addtimer(CALLBACK(src, .proc/break_lights), 90 SECONDS)
addtimer(CALLBACK(src, .proc/battleflashbackstwo), 140 SECONDS)
/datum/round_event/aurora_aquilae/tick()
if(activeFor % 5 == 0)
aurora_progress++
var/aurora_color = aurora_colors[aurora_progress]
for(var/area in GLOB.sortedAreas)
var/area/A = area
if(initial(A.dynamic_lighting) == DYNAMIC_LIGHTING_IFSTARLIGHT)
for(var/turf/open/space/S in A)
S.set_light(l_color = aurora_color)
/datum/round_event/aurora_aquilae/end()
for(var/area in GLOB.sortedAreas)
var/area/A = area
if(initial(A.dynamic_lighting) == DYNAMIC_LIGHTING_IFSTARLIGHT)
for(var/turf/open/space/S in A)
fade_to_black(S)
priority_announce("Have a pleasant shift, [station_name()], and thank you for watching us.",
sound = 'sound/misc/notice2.ogg',
sender_override = "???")
/datum/round_event/aurora_aquilae/proc/fade_to_black(turf/open/space/S)
set waitfor = FALSE
var/new_light = initial(S.light_range)
while(S.light_range > new_light)
S.set_light(S.light_range - 0.2)
sleep(30)
S.set_light(new_light, initial(S.light_power), initial(S.light_color))
+4 -4
View File
@@ -14,24 +14,24 @@
announceWhen = 1
startWhen = 9
endWhen = 50
var/list/aurora_colors = list("#ffd980", "#eaff80", "#eaff80", "#ffd980", "#eaff80", "#A2FFC7", "#A2FFDE", "#ffd980")
var/list/aurora_colors = list("#ffd980", "#eaff80", "#eaff80", "#ffd980", "#eaff80", "#A2FFC7", "#9400D3", "#FFC0CB")
var/aurora_progress = 0 //this cycles from 1 to 8, slowly changing colors from gentle green to gentle blue
/datum/round_event/aurora_caelus/announce()
priority_announce("[station_name()]: A harmless cloud of ions is approaching your station, and will exhaust their energy battering the hull. Kinaris Command has approved a short break for all employees to relax and observe this very rare event. During this time, starlight will be bright but gentle, shifting between quiet green and blue colors. Any staff who would like to view these lights for themselves may proceed to the area nearest to them with viewing ports to open space. We hope you enjoy the lights.",
priority_announce("[station_name()]: A harmless cloud of ions is approaching your station, and will exhaust their energy battering the hull. Kinaris Command has approved a short break for all employees to relax and observe this very rare event. During this time, starlight will be bright but gentle, shifting between quiet green and blue colors. We will also play quiet music for you to enjoy and relax. Any staff who would like to view these lights for themselves may proceed to the area nearest to them with viewing ports to open space. We hope you enjoy the lights.",
sound = 'sound/misc/notice2.ogg',
sender_override = "Kinaris Meteorology Division")
for(var/V in GLOB.player_list)
var/mob/M = V
if((M.client.prefs.toggles & SOUND_MIDI) && is_station_level(M.z))
M.playsound_local(M, 'sound/ambience/aurora_caelus.ogg', 20, FALSE, pressure_affected = FALSE)
M.playsound_local(M, 'sound/ambience/aurora_caelus_new.ogg', 40, FALSE, pressure_affected = FALSE) //ogg is "The Fire is Gone" by Heaven Pierce Her, used in the videogame ULTRAKILL. All respects and credits to the equivalent artists who worked on it.
/datum/round_event/aurora_caelus/start()
for(var/area in GLOB.sortedAreas)
var/area/A = area
if(initial(A.dynamic_lighting) == DYNAMIC_LIGHTING_IFSTARLIGHT)
for(var/turf/open/space/S in A)
S.set_light(S.light_range * 3, S.light_power * 0.5)
S.set_light(S.light_range * 6, S.light_power * 1)
/datum/round_event/aurora_caelus/tick()
if(activeFor % 5 == 0)
+22 -1
View File
@@ -1289,4 +1289,25 @@ GLOBAL_LIST_INIT(hallucination_list, list(
H.hal_target = target
H.preparePixelProjectile(target, start)
H.fire()
qdel(src)
qdel(src)
/datum/hallucination/stray_pistol_bullet //specifically for aurora_aquilae.dm event
/datum/hallucination/stray_pistol_bullet/New(mob/living/carbon/C, forced = TRUE)
set waitfor = FALSE
..()
var/list/turf/startlocs = list()
for(var/turf/open/T in view(world.view+1,target)-view(world.view,target))
startlocs += T
if(!startlocs.len)
qdel(src)
return
var/turf/start = pick(startlocs)
var/proj_type = /obj/item/projectile/hallucination/bullet
feedback_details += "Type: [proj_type]"
var/obj/item/projectile/hallucination/H = new proj_type(start)
target.playsound_local(start, H.hal_fire_sound, 60, 1)
H.hal_target = target
H.preparePixelProjectile(target, start)
H.fire()
qdel(src)