mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-04 14:33:10 +00:00
Christ on a stick. SO MANY ERRORS. REEE. # Conflicts: # baystation12.dme # code/_helpers/lists.dm # code/_helpers/logging.dm # code/_helpers/text.dm # code/_onclick/click.dm # code/controllers/configuration.dm # code/controllers/master_controller.dm # code/datums/supplypacks.dm # code/game/antagonist/antagonist.dm # code/game/antagonist/antagonist_print.dm # code/game/antagonist/outsider/commando.dm # code/game/antagonist/outsider/ninja.dm # code/game/area/areas.dm # code/game/gamemodes/cult/cult_items.dm # code/game/gamemodes/game_mode.dm # code/game/jobs/access.dm # code/game/machinery/atmoalter/canister.dm # code/game/machinery/autolathe.dm # code/game/machinery/doors/airlock.dm # code/game/machinery/recharger.dm # code/game/machinery/suit_storage_unit.dm # code/game/mecha/mech_fabricator.dm # code/game/mecha/mecha.dm # code/game/objects/effects/spiders.dm # code/game/objects/items.dm # code/game/objects/items/devices/PDA/PDA.dm # code/game/objects/items/devices/flash.dm # code/game/objects/items/devices/lightreplacer.dm # code/game/objects/items/devices/paicard.dm # code/game/objects/items/devices/scanners.dm # code/game/objects/items/devices/suit_cooling.dm # code/game/objects/items/devices/uplink.dm # code/game/objects/items/robot/robot_upgrades.dm # code/game/objects/items/toys.dm # code/game/objects/items/weapons/cards_ids.dm # code/game/objects/items/weapons/handcuffs.dm # code/game/objects/items/weapons/manuals.dm # code/game/objects/items/weapons/material/kitchen.dm # code/game/objects/items/weapons/material/misc.dm # code/game/objects/items/weapons/material/swords.dm # code/game/objects/items/weapons/melee/energy.dm # code/game/objects/items/weapons/melee/misc.dm # code/game/objects/items/weapons/scrolls.dm # code/game/objects/items/weapons/storage/belt.dm # code/game/objects/items/weapons/stunbaton.dm # code/game/objects/items/weapons/tools.dm # code/game/objects/objs.dm # code/game/objects/structures/crates_lockers/closets.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/game/objects/structures/janicart.dm # code/game/sound.dm # code/game/turfs/simulated.dm # code/game/verbs/ooc.dm # code/global.dm # code/modules/admin/verbs/debug.dm # code/modules/admin/verbs/modifyvariables.dm # code/modules/client/client procs.dm # code/modules/client/preferences.dm # code/modules/clothing/clothing.dm # code/modules/clothing/head/hardhat.dm # code/modules/clothing/head/helmet.dm # code/modules/clothing/head/jobs.dm # code/modules/clothing/head/misc_special.dm # code/modules/clothing/shoes/jobs.dm # code/modules/clothing/spacesuits/alien.dm # code/modules/clothing/spacesuits/captain.dm # code/modules/clothing/spacesuits/miscellaneous.dm # code/modules/clothing/spacesuits/rig/rig_pieces.dm # code/modules/clothing/spacesuits/rig/suits/alien.dm # code/modules/clothing/spacesuits/spacesuits.dm # code/modules/clothing/spacesuits/void/merc.dm # code/modules/clothing/spacesuits/void/void.dm # code/modules/clothing/suits/armor.dm # code/modules/clothing/suits/jobs.dm # code/modules/clothing/suits/storage.dm # code/modules/clothing/suits/utility.dm # code/modules/clothing/suits/wiz_robe.dm # code/modules/clothing/under/jobs/security.dm # code/modules/economy/Events.dm # code/modules/economy/Events_Mundane.dm # code/modules/economy/economy_misc.dm # code/modules/events/blob.dm # code/modules/events/event.dm # code/modules/events/event_container.dm # code/modules/events/event_manager.dm # code/modules/events/money_lotto.dm # code/modules/events/prison_break.dm # code/modules/events/spacevine.dm # code/modules/hydroponics/trays/tray.dm # code/modules/mob/dead/observer/observer.dm # code/modules/mob/emote.dm # code/modules/mob/holder.dm # code/modules/mob/language/station.dm # code/modules/mob/living/bot/cleanbot.dm # code/modules/mob/living/carbon/alien/diona/diona.dm # code/modules/mob/living/carbon/alien/diona/diona_attacks.dm # code/modules/mob/living/carbon/give.dm # code/modules/mob/living/carbon/human/emote.dm # code/modules/mob/living/carbon/human/human.dm # code/modules/mob/living/carbon/human/human_defense.dm # code/modules/mob/living/carbon/human/inventory.dm # code/modules/mob/living/carbon/human/life.dm # code/modules/mob/living/carbon/human/species/outsider/vox.dm # code/modules/mob/living/carbon/human/species/station/golem.dm # code/modules/mob/living/carbon/human/species/station/station.dm # code/modules/mob/living/carbon/human/update_icons.dm # code/modules/mob/living/carbon/metroid/metroid.dm # code/modules/mob/living/living.dm # code/modules/mob/living/living_defense.dm # code/modules/mob/living/living_defines.dm # code/modules/mob/living/silicon/ai/ai.dm # code/modules/mob/living/silicon/pai/admin.dm # code/modules/mob/living/silicon/pai/pai.dm # code/modules/mob/living/silicon/robot/drone/drone.dm # code/modules/mob/living/silicon/robot/drone/drone_manufacturer.dm # code/modules/mob/living/silicon/robot/emote.dm # code/modules/mob/living/silicon/robot/robot_items.dm # code/modules/mob/living/silicon/robot/robot_modules.dm # code/modules/mob/living/silicon/silicon.dm # code/modules/mob/living/simple_animal/bees.dm # code/modules/mob/living/simple_animal/friendly/cat.dm # code/modules/mob/living/simple_animal/friendly/corgi.dm # code/modules/mob/living/simple_animal/friendly/farm_animals.dm # code/modules/mob/living/simple_animal/friendly/mouse.dm # code/modules/mob/living/simple_animal/friendly/spiderbot.dm # code/modules/mob/living/simple_animal/hostile/hostile.dm # code/modules/mob/living/simple_animal/simple_animal.dm # code/modules/mob/logout.dm # code/modules/mob/mob.dm # code/modules/mob/mob_grab_specials.dm # code/modules/mob/mob_helpers.dm # code/modules/mob/new_player/sprite_accessories.dm # code/modules/organs/organ.dm # code/modules/organs/organ_alien.dm # code/modules/organs/organ_external.dm # code/modules/paperwork/faxmachine.dm # code/modules/projectiles/ammunition/boxes.dm # code/modules/projectiles/ammunition/bullets.dm # code/modules/projectiles/guns/energy/nuclear.dm # code/modules/projectiles/guns/energy/rifle.dm # code/modules/projectiles/guns/energy/special.dm # code/modules/projectiles/guns/projectile.dm # code/modules/projectiles/guns/projectile/automatic.dm # code/modules/projectiles/guns/projectile/pistol.dm # code/modules/projectiles/guns/projectile/revolver.dm # code/modules/projectiles/guns/projectile/shotgun.dm # code/modules/projectiles/projectile/bullets.dm # code/modules/projectiles/projectile/special.dm # code/modules/reagents/reagent_containers.dm # code/modules/reagents/reagent_containers/food/drinks.dm # code/modules/research/designs.dm # code/modules/research/destructive_analyzer.dm # code/modules/research/rdconsole.dm # code/modules/spells/artifacts.dm # code/modules/spells/spellbook.dm # code/modules/tables/tables.dm # code/world.dm # config/example/config.txt # icons/mob/items_lefthand.dmi # icons/mob/items_righthand.dmi # icons/obj/lighting.dmi
97 lines
3.2 KiB
Plaintext
97 lines
3.2 KiB
Plaintext
/datum/event/meteor_wave
|
|
startWhen = 86
|
|
endWhen = 9999//safety value, will be set during ticks
|
|
|
|
var/wave_delay = 13//Note, wave delay is in procs. actual time is equal to wave_delay * 2.1
|
|
var/min_waves = 11
|
|
var/max_waves = 16
|
|
var/min_meteors = 1
|
|
var/max_meteors = 2
|
|
var/duration = 340//Total duration in seconds that the storm will last after it starts
|
|
|
|
|
|
var/waves = 8
|
|
var/next_wave = 86
|
|
ic_name = "a meteor storm"
|
|
|
|
/datum/event/meteor_wave/setup()
|
|
startWhen += rand(-15,15)//slightly randomised start time
|
|
waves = rand(min_waves,max_waves)
|
|
next_wave = startWhen
|
|
wave_delay = round(((duration - 10)/waves)/2.1, 1)
|
|
|
|
/datum/event/meteor_wave/announce()
|
|
command_announcement.Announce("A heavy meteor storm has been detected on collision course with the station. Estimated three minutes until impact, please activate station shields, and seek shelter in the central ring.", "Meteor Alert", new_sound = 'sound/AI/meteors.ogg')
|
|
|
|
/datum/event/meteor_wave/start()
|
|
command_announcement.Announce("Contact with meteor wave imminent, all hands brace for impact.", "Meteor Alert")
|
|
|
|
/datum/event/meteor_wave/tick()
|
|
if(activeFor >= next_wave)
|
|
var/amount = rand(min_meteors,max_meteors)
|
|
|
|
event_meteor_wave(amount)
|
|
next_wave += wave_delay
|
|
waves--
|
|
if(waves <= 0)
|
|
endWhen = activeFor + 1
|
|
else
|
|
endWhen = next_wave + wave_delay
|
|
|
|
/datum/event/meteor_wave/end()
|
|
spawn(100)//We give 10 seconds before announcing, for the last wave of meteors to hit the station
|
|
command_announcement.Announce("The station has survived the meteor storm, it is now safe to commence repairs.", "Meteor Alert")
|
|
|
|
//
|
|
/datum/event/meteor_shower
|
|
startWhen = 86
|
|
endWhen = 9999
|
|
|
|
var/wave_delay = 6
|
|
var/min_waves = 7
|
|
var/max_waves = 9
|
|
var/min_meteors = 0
|
|
var/max_meteors = 1
|
|
var/duration = 180//Total duration in seconds that the storm will last after it starts
|
|
|
|
var/waves = 4//this is randomised
|
|
var/next_wave = 86
|
|
ic_name = "a meteor shower"
|
|
|
|
/datum/event/meteor_shower/setup()
|
|
startWhen += rand(-15,15)//slightly randomised start time
|
|
waves = rand(min_waves,max_waves)
|
|
next_wave = startWhen
|
|
|
|
wave_delay = round(((duration - 10)/waves)/2.1, 1)
|
|
|
|
/datum/event/meteor_shower/announce()
|
|
command_announcement.Announce("A meteor shower is approaching the station, estimated contact in three minutes. Crew are recommended to stay away from the outer areas of the station.", "Meteor Alert")
|
|
|
|
//meteor showers are lighter and more common,
|
|
/datum/event/meteor_shower/tick()
|
|
if(activeFor >= next_wave)
|
|
var/amount = rand(min_meteors,max_meteors)
|
|
|
|
event_meteor_wave(amount)
|
|
next_wave += wave_delay
|
|
waves--
|
|
if(waves <= 0)
|
|
endWhen = activeFor + 1
|
|
else
|
|
endWhen = next_wave + wave_delay
|
|
|
|
/datum/event/meteor_shower/start()
|
|
command_announcement.Announce("Meteors have reached the station. Please stay away from outer areas until the shower has passed.", "Meteor Alert")
|
|
|
|
|
|
/datum/event/meteor_shower/end()
|
|
spawn(100)
|
|
command_announcement.Announce("The station has cleared the meteor shower, please return to your stations.", "Meteor Alert")
|
|
|
|
|
|
//An event specific version of the meteor wave proc, to bypass the delays
|
|
/proc/event_meteor_wave(var/number = meteors_in_wave)
|
|
for(var/i = 0 to number)
|
|
spawn(rand(10,80))
|
|
spawn_meteor() |