Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into Arntyougoingtosayhello

This commit is contained in:
Aurorablade
2018-08-07 01:33:55 -04:00
893 changed files with 20196 additions and 16421 deletions
+9 -9
View File
@@ -6,11 +6,11 @@
var/aurora_progress = 0 //this cycles from 1 to 7, slowly changing colors from gentle green to gentle blue
/datum/event/aurora_caelus/announce()
event_announcement.Announce("[station_name()]: A harmless cloud of ions is approaching your station, and will exhaust their energy battering the hull.\
Nanotrasen 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.", "Harmless ions approaching", new_sound = 'sound/misc/notice2.ogg', from = "Nanotrasen Meterology Divison")
event_announcement.Announce("[station_name()]: A harmless cloud of ions is approaching your station, and will exhaust their energy battering the hull. \
Nanotrasen 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.", "Harmless ions approaching", new_sound = 'sound/misc/notice2.ogg', from = "Nanotrasen Meteorology Division")
for(var/V in player_list)
var/mob/M = V
if((M.client.prefs.toggles & SOUND_MIDI) && is_station_level(M.z))
@@ -37,10 +37,10 @@ We hope you enjoy the lights.", "Harmless ions approaching", new_sound = 'sound/
for(var/s in GLOB.station_level_space_turfs)
var/turf/space/S = s
fade_to_black(S)
event_announcement.Announce("The aurora caelus event is now ending. Starlight conditions will slowly return to normal.\
When this has concluded, please return to your workplace and continue work as normal.\
event_announcement.Announce("The Aurora Caelus event is now ending. Starlight conditions will slowly return to normal. \
When this has concluded, please return to your workplace and continue work as normal. \
Have a pleasant shift, [station_name()], and thank you for watching with us.",
"Harmless ions approaching", new_sound = 'sound/misc/notice2.ogg', from = "Nanotrasen Meterology Divison")
"Harmless ions approaching", new_sound = 'sound/misc/notice2.ogg', from = "Nanotrasen Meteorology Division")
/datum/event/aurora_caelus/proc/fade_to_black(turf/space/S)
set waitfor = FALSE
@@ -48,4 +48,4 @@ Have a pleasant shift, [station_name()], and thank you for watching with us.",
while(S.light_range > new_light)
S.set_light(S.light_range - 0.2)
sleep(30)
S.set_light(new_light, 1, l_color = "") // we should be able to use `, null` as the last arg but BYOND is a piece of FUCKING SHIT AND SET_LIGHT DOESN'T WORK THAT WAY DESPITE EVERY FUCKING THING ABOUT IT INDICATING THAT IT GODDAMN WELL SHOULD AAAAAAAAAAAAAAAAA
S.set_light(new_light, 1, l_color = "") // we should be able to use `, null` as the last arg but BYOND is a piece of FUCKING SHIT AND SET_LIGHT DOESN'T WORK THAT WAY DESPITE EVERY FUCKING THING ABOUT IT INDICATING THAT IT GODDAMN WELL SHOULD AAAAAAAAAAAAAAAAA
+8 -5
View File
@@ -2,6 +2,10 @@
announceWhen = 50
endWhen = 900
var/list/spawned_mobs = list(
/mob/living/simple_animal/hostile/carp = 95,
/mob/living/simple_animal/hostile/carp/megacarp = 5,
)
var/list/spawned_carp = list()
/datum/event/carp_migration/setup()
@@ -17,6 +21,7 @@
event_announcement.Announce(announcement, "Lifesign Alert")
/datum/event/carp_migration/start()
if(severity == EVENT_LEVEL_MAJOR)
spawn_fish(landmarks_list.len)
else if(severity == EVENT_LEVEL_MODERATE)
@@ -32,19 +37,17 @@
spawn_locations.Add(C.loc)
spawn_locations = shuffle(spawn_locations)
num_groups = min(num_groups, spawn_locations.len)
var/i = 1
while(i <= num_groups)
var/group_size = rand(group_size_min, group_size_max)
for(var/j = 1, j <= group_size, j++)
var/carptype = /mob/living/simple_animal/hostile/carp
if(prob(5))
carptype = /mob/living/simple_animal/hostile/carp/megacarp
var/carptype = pickweight(spawned_mobs)
spawned_carp.Add(new carptype(spawn_locations[i]))
i++
/datum/event/carp_migration/end()
for(var/mob/living/simple_animal/hostile/carp/C in spawned_carp)
for(var/mob/living/simple_animal/hostile/C in spawned_carp)
if(!C.stat)
var/turf/T = get_turf(C)
if(istype(T, /turf/space))
+2 -2
View File
@@ -11,14 +11,14 @@
/datum/event/disease_outbreak/start()
if(!virus_type)
virus_type = pick(/datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis)
virus_type = pick(/datum/disease/advance/flu, /datum/disease/advance/cold, /datum/disease/brainrot, /datum/disease/magnitis, /datum/disease/beesease, /datum/disease/anxiety, /datum/disease/fake_gbs, /datum/disease/fluspanish, /datum/disease/pierrot_throat, /datum/disease/lycan)
for(var/mob/living/carbon/human/H in shuffle(living_mob_list))
if(issmall(H)) //don't infect monkies; that's a waste
continue
if(!H.client)
continue
if(VIRUSIMMUNE in H.species.species_traits) //don't let virus immune things get diseases they're not supposed to get.
if(VIRUSIMMUNE in H.dna.species.species_traits) //don't let virus immune things get diseases they're not supposed to get.
continue
var/turf/T = get_turf(H)
if(!T)
+2 -1
View File
@@ -139,7 +139,8 @@ var/list/event_last_fired = list()
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Vermin Infestation",/datum/event/infestation, 100, list(ASSIGNMENT_JANITOR = 100)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Sentience", /datum/event/sentience, 50),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Wallrot", /datum/event/wallrot, 0, list(ASSIGNMENT_ENGINEER = 30, ASSIGNMENT_GARDENER = 50)),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Aurora Caelus", /datum/event/aurora_caelus, 15, is_one_shot = TRUE)
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Aurora Caelus", /datum/event/aurora_caelus, 15, is_one_shot = TRUE),
new /datum/event_meta(EVENT_LEVEL_MUNDANE, "Koi School", /datum/event/carp_migration/koi, 80,)
)
/datum/event_container/moderate
-1
View File
@@ -107,7 +107,6 @@
#undef LOC_HYDRO
#undef LOC_VAULT
#undef LOC_TECH
#undef LOC_TACTICAL
#undef VERM_MICE
#undef VERM_LIZARDS
+35 -35
View File
@@ -119,22 +119,22 @@
if(2) //X is an object
message = "THE CREW ARE NOW [ionnumberbase] [ionnumbermodhalf][ionadjectiveshalf][ionobjects]"
if(9) //X is harmful to humans
if(9) //X is harmful to crew
switch(rand(1,7)) //What is X?
if(1) //X is a threat
message = "[ionadjectiveshalf][ionthreats] ARE HARMFUL TO HUMANS"
message = "[ionadjectiveshalf][ionthreats] ARE HARMFUL TO CREW"
if(2) //X is a job
message = "[ionadjectiveshalf][ioncrew1] ARE HARMFUL TO HUMANS"
message = "[ionadjectiveshalf][ioncrew1] ARE HARMFUL TO CREW"
if(3) //X is an object
message = "[ionadjectiveshalf][ionobjects] ARE HARMFUL TO HUMANS"
message = "[ionadjectiveshalf][ionobjects] ARE HARMFUL TO CREW"
if(4) //X is an action
message = "THOSE WHO [ionmust] ARE HARMFUL TO HUMANS"
message = "THOSE WHO [ionmust] ARE HARMFUL TO CREW"
if(5) //X is an abstract
message = "[ionabstract] IS HARMFUL TO HUMANS"
message = "[ionabstract] IS HARMFUL TO CREW"
if(6) //X is being a job
message = "BEING [ionadjectiveshalf][ioncrew1] IS HARMFUL TO HUMANS"
message = "BEING [ionadjectiveshalf][ioncrew1] IS HARMFUL TO CREW"
if(7) //X is doing a thing
message = "[ionthings] IS HARMFUL TO HUMANS"
message = "[ionthings] IS HARMFUL TO CREW"
if(10 to 11) //(Not) Having X is harmful
switch(rand(1,2)) //Is having or not having harmful?
@@ -304,16 +304,16 @@
if(24 to 26) //The AI must always
message = "YOU MUST ALWAYS [ionmust]"
if(27 to 28) //Humans must eat X to survive
if(27 to 28) //Crew must eat X to survive
switch(rand(1,4)) //What is X?
if(1) //X is a food
message = "HUMANS MUST EAT [ionadjectiveshalf][ionfood] TO SURVIVE"
message = "CREW MUST EAT [ionadjectiveshalf][ionfood] TO SURVIVE"
if(2) //X is an object
message = "HUMANS MUST EAT [ionadjectiveshalf][ionobjects] TO SURVIVE"
message = "CREW MUST EAT [ionadjectiveshalf][ionobjects] TO SURVIVE"
if(3) //X is a threat
message = "HUMANS MUST EAT [ionadjectiveshalf][ionthreats] TO SURVIVE"
message = "CREW MUST EAT [ionadjectiveshalf][ionthreats] TO SURVIVE"
if(4) //X is a job
message = "HUMANS MUST EAT [ionadjectiveshalf][ioncrew1] TO SURVIVE"
message = "CREW MUST EAT [ionadjectiveshalf][ioncrew1] TO SURVIVE"
if(29 to 31) //Change jobs or ranks
switch(rand(1,2)) //Change job or rank?
@@ -360,54 +360,54 @@
if(2) //X is perform Y
message = "THE [ioncrew1] MUST [ionmust]"
if(34) //X is non/the only human
if(34) //X is non/the only crew
switch(rand(1,2)) //Only or non?
if(1) //Only human
if(1) //Only crew
switch(rand(1,7)) //Who is it?
if(1) //A specific job
message = "ONLY THE [ioncrew1] ARE HUMAN"
message = "ONLY THE [ioncrew1] ARE CREW"
if(2) //Two specific jobs
message = "ONLY THE [ioncrew1] AND [ioncrew2] ARE HUMAN"
message = "ONLY THE [ioncrew1] AND [ioncrew2] ARE CREW"
if(3) //Threats
message = "ONLY [ionadjectiveshalf][ionthreats] ARE HUMAN"
message = "ONLY [ionadjectiveshalf][ionthreats] ARE CREW"
if(4) // Objects
message = "ONLY [ionadjectiveshalf][ionobjects] ARE HUMAN"
message = "ONLY [ionadjectiveshalf][ionobjects] ARE CREW"
if(5) // Species
message = "ONLY [ionspecies] ARE HUMAN"
message = "ONLY [ionspecies] ARE CREW"
if(6) //Adjective crewmembers
message = "ONLY [ionadjectives] PEOPLE ARE HUMAN"
message = "ONLY [ionadjectives] PEOPLE ARE CREW"
if(7) //Only people who X
switch(rand(1,3)) //What is X?
if(1) //X is perform an action
message = "ONLY THOSE WHO [ionmust] ARE HUMAN"
message = "ONLY THOSE WHO [ionmust] ARE CREW"
if(2) //X is own certain objects
message = "ONLY THOSE WHO HAVE [ionadjectiveshalf][ionobjects] ARE HUMAN"
message = "ONLY THOSE WHO HAVE [ionadjectiveshalf][ionobjects] ARE CREW"
if(3) //X is eat certain food
message = "ONLY THOSE WHO EAT [ionadjectiveshalf][ionfood] ARE HUMAN"
message = "ONLY THOSE WHO EAT [ionadjectiveshalf][ionfood] ARE CREW"
if(2) //Non human
if(2) //Non crew
switch(rand(1,7)) //Who is it?
if(1) //A specific job
message = "[ioncrew1] ARE NON-HUMAN"
message = "[ioncrew1] ARE NON-CREW"
if(2) //Two specific jobs
message = "[ioncrew1] AND [ioncrew2] ARE NON-HUMAN"
message = "[ioncrew1] AND [ioncrew2] ARE NON-CREW"
if(3) //Threats
message = "[ionadjectiveshalf][ionthreats] ARE NON-HUMAN"
message = "[ionadjectiveshalf][ionthreats] ARE NON-CREW"
if(4) // Objects
message = "[ionadjectiveshalf][ionobjects] ARE NON-HUMAN"
message = "[ionadjectiveshalf][ionobjects] ARE NON-CREW"
if(5) // Species
message = "[ionspecies] ARE NON-HUMAN"
message = "[ionspecies] ARE NON-CREW"
if(6) //Adjective crewmembers
message = "[ionadjectives] PEOPLE ARE NON-HUMAN"
message = "[ionadjectives] PEOPLE ARE NON-CREW"
if(7) //Only people who X
switch(rand(1,3)) //What is X?
if(1) //X is perform an action
message = "THOSE WHO [ionmust] ARE NON-HUMAN"
message = "THOSE WHO [ionmust] ARE NON-CREW"
if(2) //X is own certain objects
message = "THOSE WHO HAVE [ionadjectiveshalf][ionobjects] ARE NON-HUMAN"
message = "THOSE WHO HAVE [ionadjectiveshalf][ionobjects] ARE NON-CREW"
if(3) //X is eat certain food
message = "THOSE WHO EAT [ionadjectiveshalf][ionfood] ARE NON-HUMAN"
message = "THOSE WHO EAT [ionadjectiveshalf][ionfood] ARE NON-CREW"
if(35 to 36) //You must protect or harm X
switch(rand(1,2)) //Protect or harm?
@@ -493,7 +493,7 @@
/proc/generate_static_ion_law()
/var/list/players = list()
for(var/mob/living/carbon/human/player in player_list)
if( !player.mind || player.mind.assigned_role == "MODE" || player.client.inactivity > MinutesToTicks(10))
if( !player.mind || player.mind.assigned_role == player.mind.special_role || player.client.inactivity > MinutesToTicks(10))
continue
players += player.real_name
var/random_player = "The Captain"
+9
View File
@@ -0,0 +1,9 @@
/datum/event/carp_migration
spawned_mobs = list(
/mob/living/simple_animal/hostile/retaliate/carp/koi = 95,
/mob/living/simple_animal/hostile/retaliate/carp/koi/honk = 2,
)
/datum/event/carp_migration/koi/start()
spawn_fish(landmarks_list.len)
+1 -1
View File
@@ -4,7 +4,7 @@
/datum/event/mass_hallucination/start()
for(var/mob/living/carbon/human/H in living_mob_list)
var/armor = H.getarmor(type = "rad")
if((RADIMMUNE in H.species.species_traits) || armor >= 75) // Leave radiation-immune species/rad armored players completely unaffected
if((RADIMMUNE in H.dna.species.species_traits) || armor >= 75) // Leave radiation-immune species/rad armored players completely unaffected
continue
H.AdjustHallucinate(rand(50, 100))
+7 -66
View File
@@ -1,70 +1,11 @@
/datum/event/radiation_storm
announceWhen = 1
var/safe_zones = list(
/area/maintenance,
/area/crew_quarters/sleep,
/area/security/brig,
/area/shuttle,
/area/vox_station,
/area/syndicate_station
)
/datum/event/radiation_storm/setup()
startWhen = 3
endWhen = startWhen + 1
announceWhen = 1
/datum/event/radiation_storm/announce()
// Don't do anything, we want to pack the announcement with the actual event
/datum/event/radiation_storm/proc/is_safe_zone(var/area/A)
for(var/szt in safe_zones)
if(istype(A, szt))
return 1
return 0
priority_announcement.Announce("High levels of radiation detected near the station. Maintenance is best shielded from radiation.", "Anomaly Alert", 'sound/ai/radiation.ogg')
//sound not longer matches the text, but an audible warning is probably good
/datum/event/radiation_storm/start()
spawn()
event_announcement.Announce("High levels of radiation detected near the station. Please evacuate into one of the shielded maintenance tunnels.", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg')
for(var/area/A in world)
if(!is_station_level(A.z) || is_safe_zone(A))
continue
A.radiation_alert()
make_maint_all_access()
sleep(600)
event_announcement.Announce("The station has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert")
for(var/i = 0, i < 10, i++)
for(var/mob/living/carbon/human/H in living_mob_list)
var/armor = H.getarmor(type = "rad")
if((RADIMMUNE in H.species.species_traits) || armor >= 100) // Leave radiation-immune species/fully rad armored players completely unaffected
continue
var/turf/T = get_turf(H)
if(!T)
continue
if(!is_station_level(T.z) || is_safe_zone(T.loc))
continue
if(istype(H,/mob/living/carbon/human))
H.apply_effect((rand(15,35)),IRRADIATE,0)
if(prob(5))
H.apply_effect((rand(40,70)),IRRADIATE,0)
if(prob(75))
randmutb(H) // Applies bad mutation
domutcheck(H,null,1)
else
randmutg(H) // Applies good mutation
domutcheck(H,null,1)
sleep(100)
event_announcement.Announce("The station has passed the radiation belt. Please report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert")
for(var/area/A in world)
if(!is_station_level(A.z) || is_safe_zone(A))
continue
A.reset_radiation_alert()
sleep(600) // Want to give them time to get out of maintenance.
revoke_maint_all_access()
SSweather.run_weather(/datum/weather/rad_storm)