Module:BassaridianCalendar
From MicrasWiki
Jump to navigationJump to search
Documentation for this module may be created at Module:BassaridianCalendar/doc
local p = {} function p.getCurrentDate() local startDate = os.time({year = 1999, month = 8, day = 6}) local secondsInDay = 86400 local daysPerYear = 183 local currentDate = os.time() local totalDaysElapsed = math.floor((currentDate - startDate) / secondsInDay) local yearFraction = totalDaysElapsed / daysPerYear local psscYear = math.floor(yearFraction) local dayOfYear = math.floor((yearFraction - psscYear) * daysPerYear) + 1 local zodiacProverbs = { Atosien = "The first light reveals the sacred cycle of renewal.", Eosena = "The dawn whispers: every step is a rebirth.", Micrasha = "Wisdom is the balance of shadow and flame.", Pyreska = "Creation ignites in the fires of transformation.", Indomin = "Two paths intertwine: strength in unity, clarity in duality.", Chrysen = "Gold is the soul's test: will you hoard or share?", Thalassian = "The tides of Thalassiel teach patience and purpose.", Nephelia = "Dreams are stars, fleeting yet eternal in the night sky.", Glinaeus = "The frost preserves what must endure.", Noctien = "Night guides those who seek the unseen truths.", Opsithia = "The harvest feeds not just the body, but the spirit.", Stygian = "Through the Styx flows the essence of transformation.", Faunian = "The forests sing of life and the balance it brings.", Silenian = "Celebration is the nectar of divine abundance.", Catosien = "Order shapes greatness; the straight path ascends." } local month, dayInMonth, zodiac if dayOfYear <= 61 then month = "Atosiel" dayInMonth = dayOfYear if dayInMonth <= 12 then zodiac = "Atosien" elseif dayInMonth <= 24 then zodiac = "Eosena" elseif dayInMonth <= 36 then zodiac = "Micrasha" elseif dayInMonth <= 48 then zodiac = "Pyreska" else zodiac = "Indomin" end elseif dayOfYear <= 122 then month = "Thalassiel" dayInMonth = dayOfYear - 61 if dayInMonth <= 12 then zodiac = "Chrysen" elseif dayInMonth <= 24 then zodiac = "Thalassian" elseif dayInMonth <= 36 then zodiac = "Nephelia" elseif dayInMonth <= 48 then zodiac = "Glinaeus" else zodiac = "Noctien" end else month = "Opsitheiel" dayInMonth = dayOfYear - 122 if dayInMonth <= 12 then zodiac = "Opsithia" elseif dayInMonth <= 24 then zodiac = "Stygian" elseif dayInMonth <= 36 then zodiac = "Faunian" elseif dayInMonth <= 48 then zodiac = "Silenian" else zodiac = "Catosien" end end local events = { ["Atosiel,6"] = "Bayram al-Nur (Festival of Light) [Vaeringheim]", ["Atosiel,18"] = "Chag Or Hadash (Festival of New Light) [Luminaria]", ["Atosiel,30"] = "Symposion Eirinis (Symposium of Harmony) [Serena]", ["Atosiel,43"] = "Alev Günü (Day of Flame) [Pyralis]", ["Atosiel,55"] = "Tikkun Tzel (Repair of Shadows) [Symphonara]", ["Thalassiel,67"] = "Panegyris Chrysou (Golden Gathering) [Aurelia]", ["Thalassiel,80"] = "Mehtap Dalgası (Moonlit Tide) [Vaeringheim]", ["Thalassiel,92"] = "Oneiro Foteino (Dream of Illumination) [Somniumpolis]", ["Thalassiel,105"] = "Erev Galgal (Eve of Cycles) [Nexa]", ["Thalassiel,115"] = "Leilat al-Kamar (Night of the Moon) [Lunalis Sancta]", ["Opsitheiel,128"] = "Chag Tvuah (Festival of Harvest) [Sylvapolis]", ["Opsitheiel,140"] = "Anagenesis Eirmos (Procession of Rebirth) [Acheron]", ["Opsitheiel,150"] = "Panagia Therizis (Holy Day of the Reaper) [Sylvapolis]", ["Opsitheiel,165"] = "Karnavali Thysias (Carnival of Celebration) [Erythros]", ["Opsitheiel,175"] = "Sefar Yashar (Straight Path Celebration) [Catonis Atrium]" } local eventKey = month .. "," .. dayInMonth local event = events[eventKey] or "No significant events today." local dailyProverb = zodiacProverbs[zodiac] return dayOfYear .. ", " .. month .. " (" .. zodiac .. "), " .. psscYear .. " PSSC – " .. event .. " – Proverb: " .. dailyProverb end return p