mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-20 15:21:29 +00:00
* CI change * world.dm * .dme world.dm * subsystem renaming * .dme for subsystems * ai_laws.dm * armor.dm * emote.dm * logging.dm * spell.dm * air_alarm.dm * crew.dm * decal.dm * emissive_blocker.dm * footstep.dm * spawner.dm * fire.dm * carbon.dm * living.dm * mob.dm * movement.dm * thermal_drill.dm * plasmamen.dm * lavaland.dm * chaplain.dm * lightning.dm * magnet.dm * mimic.dm * wizard.dm * morph.dm * vampire.dm * click.dm * self.dm * radiation_storm.dm * airlock.dm * autolathe.dm * mulebot.dm * nuclearbomb.dm * particle_accelerator.dm * smartfridge.dm * syndicatebomb.dm * vending.dm * wires.dm * sound.dm * mining.dm * syndicate_space_base.dm * monkey.dm * guardian.dm * bomb.dm * standard.dm * nuclear.dm * pinpointer.dm * access.dm * departments.dm * job.dm * science.dm * buttons.dm * cloning.dm * igniter.dm * wishgranter.dm * atmos_control.dm * message.dm * power_monitor.dm * mecha.dm * combat.dm * mining_tools.dm * meteors.dm * spiders.dm * contraband.dm * aliens.dm * uplinks.dm * voice.dm * intercom.dm * lights.dm * robot_items.dm * mineral.dm * dice.dm * extinguisher.dm * paint.dm * signs.dm * staff.dm * smokebomb.dm * boxes.dm * random.dm * janicart.dm * statue.dm * cargo.dm * asteroid.dm * headslug.dm * fulton.dm * atmospherics.dm * pump.dm * corpse.dm * oldstation.dm * gps.dm * preferences.dm * clothing.dm * ears.dm * glasses.dm * boxing.dm * color.dm * renames ninja gear files * recipes.dm * error_handler.dm * anomaly.dm * floorcluwne.dm * undead.dm * overmind.dm * shield.dm * bottle.dm * organ.dm * piano.dm * plasma_fist.dm * language.dm * mob_defines.dm * mob_helpers.dm * damage_procs.dm * _defines.dm * empress.dm and queen.dm * brain.dm * organ file renaming * subsystems.dm * constructs.dm * bot.dm * pet.dm * nature.dm * magic.dm * colors.dm * drugs.dm * medicine.dm * toxins.dm * shuttle.dm * surgery.dm * moves a bunch of define files * traits.dm * names.dm * other_mobs.dm * flags.dm * some final define files * well turns out contractor_pinpointer.dm was taken * I forgot to remove this file * how in the hell did this get unticked * I DID INCLUDE IT, but there was a "w" there * swaps the world definitions * camera renamed to SScamera * examine -> alien_examine
77 lines
2.4 KiB
Plaintext
77 lines
2.4 KiB
Plaintext
SUBSYSTEM_DEF(maprotate)
|
|
name = "Maprotate"
|
|
flags = SS_NO_FIRE
|
|
|
|
var/rotation_mode = MAPROTATION_MODE_NORMAL_VOTE
|
|
var/setup_done = FALSE
|
|
|
|
// Debugging purposes. Im not having people change this on the fly.
|
|
/datum/controller/subsystem/maprotate/vv_edit_var(var_name, var_value)
|
|
if(((var_name == "rotation_mode") || (var_name == "setup_done")) && !check_rights(R_MAINTAINER))
|
|
return FALSE
|
|
|
|
. = ..()
|
|
|
|
/datum/controller/subsystem/maprotate/Initialize()
|
|
if(!SSdbcore.IsConnected())
|
|
return
|
|
|
|
// Make a quick list for number to date lookups
|
|
var/list/days = list("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday")
|
|
|
|
// Make a map of rotation modes to descriptions
|
|
var/list/rotation_descs = list()
|
|
rotation_descs[MAPROTATION_MODE_NORMAL_VOTE] = "there is normal map voting."
|
|
rotation_descs[MAPROTATION_MODE_NO_DUPLICATES] = "map votes will not include the current map."
|
|
rotation_descs[MAPROTATION_MODE_FULL_RANDOM] = "the map for next round is randomised."
|
|
|
|
// Yes. I am using the DB server to get a numerical weekday
|
|
// 0 = Monday
|
|
// 1 = Tuesday
|
|
// 2 = Wednesday
|
|
// 3 = Thursday
|
|
// 4 = Friday
|
|
// 5 = Saturday
|
|
// 6 = Sunday
|
|
|
|
var/datum/db_query/dbq = SSdbcore.NewQuery("SELECT WEEKDAY(NOW()) AS d")
|
|
if(!dbq.warn_execute())
|
|
log_startup_progress("Somehow, we failed to extract a numerical day from the DB. ?????????????")
|
|
return
|
|
|
|
var/day_index = 0
|
|
|
|
// Were gonna increase the DB value by 1 so we have 1-7, therefore we can use 0 as fail
|
|
|
|
if(dbq.NextRow())
|
|
day_index = text2num(dbq.item[1]) + 1
|
|
|
|
qdel(dbq)
|
|
|
|
if(!day_index)
|
|
log_startup_progress("Somehow, we failed to extract a valid numerical day from the DB. ?????????????")
|
|
return
|
|
|
|
|
|
// String interpolation is faster than num2text() for some reason
|
|
var/dindex_str = "[day_index]"
|
|
|
|
// Special is defined for this day
|
|
if(dindex_str in GLOB.configuration.vote.map_vote_day_types)
|
|
var/vote_type = GLOB.configuration.vote.map_vote_day_types[dindex_str]
|
|
// We have an index, but is it valid
|
|
if(vote_type in list(MAPROTATION_MODE_NORMAL_VOTE, MAPROTATION_MODE_NO_DUPLICATES, MAPROTATION_MODE_FULL_RANDOM))
|
|
log_startup_progress("It is [days[day_index]], which means [rotation_descs[vote_type]]")
|
|
rotation_mode = vote_type
|
|
setup_done = TRUE
|
|
|
|
// Its not valid
|
|
else
|
|
log_startup_progress("The defined rotation mode for this day is invalid. Please inform AA.")
|
|
|
|
// No special defined for this day
|
|
else
|
|
log_startup_progress("There is no special rotation defined for this day")
|
|
|
|
|