diff --git a/game/engines/default/engine/Calendar.lua b/game/engines/default/engine/Calendar.lua index ae157054f6bc731973f6e3a9375b222da20358f3..022373bb2dd77a1c234ab47984b255c0f14b148c 100644 --- a/game/engines/default/engine/Calendar.lua +++ b/game/engines/default/engine/Calendar.lua @@ -33,7 +33,7 @@ DAY_START = HOUR * 6 --- Create a calendar -- @param definition the file to load that returns a table containing calendar months -- @param datestring a string to format the date when requested, in the format "%s %s %s %d %d", standing for, day, month, year, hour, minute -function _M:init(definition, datestring, start_year) +function _M:init(definition, datestring, start_year, start_day) local data = dofile(definition) self.calendar = {} local days = 0 @@ -46,6 +46,7 @@ function _M:init(definition, datestring, start_year) self.datestring = datestring self.start_year = start_year + self.start_day = start_day or 1 end function _M:getTimeDate(turn) @@ -56,7 +57,7 @@ end function _M:getDayOfYear(turn) local d, y - d = math.floor(turn / self.DAY) + d = math.floor(turn / self.DAY) + (self.start_day - 1) y = math.floor(d / 365) d = math.floor(d % 365) return d, self.start_year + y diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index 031afc03109641db17c80749100ddb778841d58b..a30ce83f8f4f18a6bf93924489497b87a1293a94 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -86,7 +86,7 @@ function _M:run() self.player_display = PlayerDisplay.new(0, 220, 200, self.h * 0.8 - 220, {30,30,0}) self.hotkeys_display = HotkeysDisplay.new(nil, self.w * 0.5, self.h * 0.8, self.w * 0.5, self.h * 0.2, "/data/gfx/ui/talents-list.png") self.npcs_display = ActorsSeenDisplay.new(nil, self.w * 0.5, self.h * 0.8, self.w * 0.5, self.h * 0.2, "/data/gfx/ui/talents-list.png") - self.calendar = Calendar.new("/data/calendar_rivendell.lua", "Today is the %s %s of the %s year of the Age of Ascendancy of Maj'Eyal.\nThe time is %02d:%02d.", 122) + self.calendar = Calendar.new("/data/calendar_rivendell.lua", "Today is the %s %s of the %s year of the Age of Ascendancy of Maj'Eyal.\nThe time is %02d:%02d.", 122, 167) self.tooltip = Tooltip.new(nil, nil, {255,255,255}, {30,30,30}) self.flyers = FlyingText.new() self:setFlyingText(self.flyers) diff --git a/game/modules/tome/data/birth/classes/mage.lua b/game/modules/tome/data/birth/classes/mage.lua index 0e974243fe633c696b9443f45b16e03ca5f29d7a..b4acafb96324cff40bd9c89b3efa5a216409186e 100644 --- a/game/modules/tome/data/birth/classes/mage.lua +++ b/game/modules/tome/data/birth/classes/mage.lua @@ -34,6 +34,7 @@ newBirthDescriptor{ Cryomancer = function() return profile.mod.allow_build.mage_cryomancer and "allow" or "disallow" end, Tempest = function() return profile.mod.allow_build.mage_tempest and "allow" or "disallow" end, Geomancer = function() return profile.mod.allow_build.mage_geomancer and "allow" or "disallow" end, + Maelstrom = function() return profile.mod.allow_build.mage_maelstrom and "allow" or "disallow" end, }, }, copy = { @@ -370,3 +371,52 @@ newBirthDescriptor{ }, }, } + +newBirthDescriptor{ + type = "subclass", + name = "Maelstrom", + desc = { + "A Maelstrom is an archmage specialized in elemental magic.", + "They gain access to all special elemental talents but have a restricted selection of other spells.", + "Most archmagi lack basic skills that others take for granted (like general fighting sense), but they make up for it by their raw magical power.", + "All archmagi have been trained in the secret town of Angolwen and posses a unique spell to teleport to it directly.", + "Their most important stats are: Magic and Willpower", + "#GOLD#Stats modifiers:", + "#LIGHT_BLUE# * +0 Strength, +0 Dexterity, +0 Constitution", + "#LIGHT_BLUE# * +5 Magic, +3 Willpower, +1 Cunning", + }, + stats = { mag=5, wil=3, cun=1, }, + talents_types = { + ["spell/fire"]={true, 0.3}, + ["spell/wildfire"]={true, 0.3}, + ["spell/air"]={true, 0.3}, + ["spell/storm"]={true, 0.3}, + ["spell/earth"]={true, 0.3}, + ["spell/stone"]={true, 0.3}, + ["spell/water"]={true, 0.3}, + ["spell/ice"]={true, 0.3}, + ["spell/conveyance"]={true, 0}, + ["cunning/survival"]={false, -0.1}, + }, + talents = { + [ActorTalents.T_ICE_SHARDS] = 1, + [ActorTalents.T_FLAME] = 1, + [ActorTalents.T_STALACTITIC_MISSILES] = 1, + [ActorTalents.T_NOVA] = 1, + [ActorTalents.T_TELEPORT_ANGOLWEN]=1, + }, + copy = { + -- All mages are of angolwen faction + faction = "angolwen", + max_life = 90, + life_rating = -4, + resolvers.equip{ id=true, + {type="weapon", subtype="staff", name="elm staff", autoreq=true}, + {type="armor", subtype="cloth", name="linen robe", autoreq=true}, + }, + resolvers.inventory{ id=true, + {type="potion", subtype="potion", name="potion of lesser mana", ego_chance=-1000}, + {type="potion", subtype="potion", name="potion of lesser mana", ego_chance=-1000}, + }, + }, +} diff --git a/game/modules/tome/data/calendar_rivendell.lua b/game/modules/tome/data/calendar_rivendell.lua index 07af65c429f2b0dcbe83c1351c5491c790fc1af1..5df94228d8e2bfab48d0f03ebee98c41cb7ecac5 100644 --- a/game/modules/tome/data/calendar_rivendell.lua +++ b/game/modules/tome/data/calendar_rivendell.lua @@ -18,13 +18,14 @@ -- darkgod@te4.org return { - { 1, "Yestarë", }, - { 54, "Tuilë" }, - { 72, "Lairë" }, - { 54, "Yávië" }, - { 3, "Enderi" }, - { 54, "Quellë" }, - { 72, "HrÃvë" }, - { 54, "Coirë" }, - { 1, "Mettarë" }, + { 2, "Wintertide", }, + { 10, "Allure" }, + { 80, "Regrowth" }, + { 80, "Pyre" }, + { 10, "Mirth" }, + { 3, "Summertide" }, + { 10, "Flare" }, + { 80, "Dusk" }, + { 80, "Haze" }, + { 10, "Decay" }, } diff --git a/ideas/classes.ods b/ideas/classes.ods index 25e80eee3d6acf2e183153c5373794c8bcbadb48..6b2fab3903a34647c6188afcd0f485e8a1754bf9 100644 Binary files a/ideas/classes.ods and b/ideas/classes.ods differ diff --git a/ideas/setting.ods b/ideas/setting.ods index 40bc7f9dfd8ae2f61f1ab0523c71c16abb69970c..c28c4fbc6c7767963708d51b8444c8d481d95c92 100644 Binary files a/ideas/setting.ods and b/ideas/setting.ods differ