diff --git a/game/engine/ButtonList.lua b/game/engine/ButtonList.lua index 5916746356cff4839925a1b25764c355f171486e..7af678c90552f91a41920887daca65906af2399f 100644 --- a/game/engine/ButtonList.lua +++ b/game/engine/ButtonList.lua @@ -18,6 +18,7 @@ function _M:init(list, x, y, w, h, font, separator) self.list = list if not font then self.font = core.display.newFont("/data/font/VeraBd.ttf", 16) end self.surface = core.display.newSurface(w, h) + self.texture = self.surface:glTexture() self.surface:erase() self.selected = 0 @@ -100,6 +101,7 @@ end function _M:display() if not self.changed then return self.surface end + self.surface:erase() for i, b in ipairs(self.list) do if i == self.selected then self.surface:merge(b.ssel, 0, (i - 1) * (b.h + self.separator)) @@ -111,13 +113,17 @@ function _M:display() return self.surface end +function _M:toScreen(x,y) + self.surface:toScreenWithTexture(self.texture,x,y) +end + function _M:makeButton(name, font, w, h, sel) font = font or self.font local s = core.display.newSurface(w, h) if sel then - s:erase(143, 155, 85) + s:erase(143, 155, 85, 200) end - s:alpha(255) + s:erase(0,0,0,200) s:merge(tiles:get(nil, 0,0,0, 0,0,0, "border_7"..(sel and "_sel" or "")..".png"), 0, 0) s:merge(tiles:get(nil, 0,0,0, 0,0,0, "border_9"..(sel and "_sel" or "")..".png"), w - 8, 0) diff --git a/game/engine/Dialog.lua b/game/engine/Dialog.lua index 777671e595cd4042fc719b364162c5b4a2cd1c55..12106501f23628e1a51d2eae2a8e83205bf2266f 100644 --- a/game/engine/Dialog.lua +++ b/game/engine/Dialog.lua @@ -68,7 +68,7 @@ function _M:display() end function _M:toScreen(x,y) - self.surface:toScreenWithTexture(self.texture,x,y) + self.surface:toScreenWithTexture(self.texture,x,y) end function _M:drawDialog(s) diff --git a/game/engine/Entity.lua b/game/engine/Entity.lua index 7a7c27fe29c914dfdc64c4002aa282e8aef16fa7..f7ac209c18f7f6f3ba6095c4c37f2c3857a6eacb 100644 --- a/game/engine/Entity.lua +++ b/game/engine/Entity.lua @@ -103,6 +103,11 @@ function _M:resolve(t) self:resolve(e) end end + + -- Finish resolving stuff + if t == self then + if self.resolveLevel then self:resolveLevel() end + end end --- Check for an entity's property diff --git a/game/engine/generator/map/Static.lua b/game/engine/generator/map/Static.lua index 6a69f5d649728fe95ddc4d1ce58d03a9f9d72c0d..6258ada1d1cc56b881c8b4f0d9783b309f573ab9 100644 --- a/game/engine/generator/map/Static.lua +++ b/game/engine/generator/map/Static.lua @@ -39,6 +39,9 @@ function _M:loadMap(file) end end + m.startx = ret.startx or math.floor(m.w / 2) + m.starty = ret.starty or math.floor(m.h / 2) + self.gen_map = m self.tiles = t end @@ -65,6 +68,5 @@ function _M:generate() -- self.map(i-1, j-1, Map.ACTOR, self.gen_map[i][j].actor) end end - -- Always starts at 1, 1 - return 1, 1 + return self.gen_map.startx, self.gen_map.starty end diff --git a/game/engine/interface/ActorLevel.lua b/game/engine/interface/ActorLevel.lua index f62e051e30a0dbf9b2b5a3a8efa57a7945c5f039..39914387135556ea01068ff4cb25e84f19ade720 100644 --- a/game/engine/interface/ActorLevel.lua +++ b/game/engine/interface/ActorLevel.lua @@ -17,16 +17,24 @@ end function _M:init(t) if t.level_range then - self.level = t.level_range[1] + self.level = 1 + self.start_level = t.level_range[1] self.max_level = t.level_range[2] else - self.level = t.level or 1 + self.level = 1 + self.start_level = t.level or 1 end self.exp = t.exp or 0 self.exp_mod = t.exp_mod or 1 self.exp_worth = t.exp_worth or 1 end +--- Resolves the correct level +-- called by self:resolve() +function _M:resolveLevel() + self:forceLevelup(self.start_level) +end + --- Defines the experience chart used -- Static! -- @param chart etiher a table of format "[level] = exp_needed" or a function that takes one parameter, a level, and returns the experience needed to reach it. @@ -72,6 +80,7 @@ end --- Forces an actor to levelup to "lev" function _M:forceLevelup(lev) +print("force level", self.level, lev) while self.level < lev do -- At max level, if any if self.max_level and self.level >= self.max_level then break end diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index bd6d197f9ab1cec16e628d828160b3f77819f66d..c35e7ff1422a665cc7819f0cf7d0cf312372e905 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -43,6 +43,12 @@ function _M:init(t) self.fatigue = 0 + self.unused_stats = self.unused_stats or 0 + self.unused_talents = self.unused_talents or 0 + self.unused_talents_types = self.unused_talents_types or 0 + + t.life_rating = t.life_rating or 10 + -- Default melee barehanded damage self.combat = { dam=1, atk=1, apr=0, dammod={str=1} } @@ -50,14 +56,10 @@ function _M:init(t) engine.interface.ActorInventory.init(self, t) engine.interface.ActorTemporaryEffects.init(self, t) engine.interface.ActorLife.init(self, t) - engine.interface.ActorLevel.init(self, t) engine.interface.ActorStats.init(self, t) engine.interface.ActorTalents.init(self, t) engine.interface.ActorResource.init(self, t) - - self.unused_stats = self.unused_stats or 0 - self.unused_talents = self.unused_talents or 0 - self.unused_talents_types = self.unused_talents_types or 0 + engine.interface.ActorLevel.init(self, t) end function _M:act() @@ -127,7 +129,11 @@ function _M:levelup() end -- Gain life and resources - self.max_life = self.max_life + 10 + local rating = self.life_rating + if not self.fixed_rating then + rating = rng.range(math.floor(self.life_rating * 0.5), math.floor(self.life_rating * 1.5)) + end + self.max_life = self.max_life + rating + (self:knowTalent(self.T_IMPROVED_HEALTH_I) and 1 or 0) + (self:knowTalent(self.T_IMPROVED_HEALTH_II) and 1 or 0) + (self:knowTalent(self.T_IMPROVED_HEALTH_III) and 1 or 0) diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index 9fab649556154b2de5cfc63f0139d75ad7fb111d..d7ae87c3bb61276a04b58378dd40522169049166 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -75,7 +75,7 @@ function _M:newGame() self.player = Player.new{name=self.player_name} local birth = Birther.new(self.player, {"base", "race", "subrace", "sex", "class", "subclass" }, function() - self.player.wild_x, self.player.wild_y = 10, 10 + self.player.wild_x, self.player.wild_y = 38, 15 self:changeLevel(1) local ds = LevelupStatsDialog.new(self.player) diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua index be171e6944e0e2a3832b657fabacd01dea60d4fc..6c9e84bb343c3814099edeafe1bd58a358f99125 100644 --- a/game/modules/tome/class/Player.lua +++ b/game/modules/tome/class/Player.lua @@ -34,6 +34,8 @@ function _M:init(t) self.mana_regen = 1 self.stamina_regen = 1 self.life_regen = 0.5 + self.life_rating = 10 + self.fixed_rating = true self.max_life=85 self.max_mana=85 diff --git a/game/modules/tome/data/autolevel_schemes.lua b/game/modules/tome/data/autolevel_schemes.lua index 6da042a9b82cf3e9bcbfc5400231ccddb5af1a60..93f48391c202f090316ebae1f2a62b9d11ff23e4 100644 --- a/game/modules/tome/data/autolevel_schemes.lua +++ b/game/modules/tome/data/autolevel_schemes.lua @@ -10,11 +10,11 @@ local function learnStats(self, statorder) end Autolevel:registerScheme{ name = "warrior", levelup = function(self) - -- 2 STR for 1 CON - learnStats(self, { self.STAT_STR, self.STAT_STR, self.STAT_CON }) + -- 2 STR for 1 DEX + learnStats(self, { self.STAT_STR, self.STAT_STR, self.STAT_DEX }) end} Autolevel:registerScheme{ name = "caster", levelup = function(self) - -- 2 STR for 1 CON + -- 2 MAG for 1 WIL learnStats(self, { self.STAT_MAG, self.STAT_MAG, self.STAT_WIL }) end} diff --git a/game/modules/tome/data/maps/towns/bree.lua b/game/modules/tome/data/maps/towns/bree.lua new file mode 100644 index 0000000000000000000000000000000000000000..b5ebbcf9d5ad873d6eea6a7a792339f770c05cb0 --- /dev/null +++ b/game/modules/tome/data/maps/towns/bree.lua @@ -0,0 +1,73 @@ +quickEntity(' ', {name='forest', display='#', color=colors.GREEN, block_move=true, block_sight=true}) + +startx = 131 +starty = 33 + +return { +[[ VV -- ]], +[[ VV -- ]], +[[ V -- ]], +[[ VV -- ]], +[[ VVV -- ]], +[[ VV -- ]], +[[OOOOO V -- ]], +[[ OOOO V -- ]], +[[---- OOOOO VVV --- VV ]], +[[------- OOOOOO V -- VVVV ]], +[[----------- OO V -- VVWWVVV ]], +[[--------------- OO VVV -- VVVWWWWWVVV ]], +[[---------------- OOO VVV -- VVWWWWWWWWWVV ]], +[[------------------ OO VVVVVVV VVWWWWWWWWWWWV ]], +[[-------------------- OOOOO --VVVV VVVVV VVWWWWWWWWWWWVV ]], +[[###------------------ OO ,,,,,,,,,,,,,,,,,, -- VVVVV VV VVVVVVVWWWWWWWVVV ]], +[[CCC####------------------ OOO ,,,,,CCCCCCCCCCCCCCCCCC,,,,,,,,, -- VVVVVV VVVVWWVVV ]], +[[TTTCCCC###---------------,, OO ,,,CCCCCCTTTTTTTTTTTTTTTTCCCCCCCCCC,,,, -- VVVV ]], +[[---TTTTCCC###---------,,,-- OO ,,CCCCTTTTTT--------------TTTTTTTTTTCCCCC,,,,, ^-- ]], +[[-------TTTCCC##-----,,------ O ,,CCCTTTT&.................----------TTTTTCCCCCC,, ^^^ -- ]], +[[----------TTTCC##,,,-------- OO ,CCCTTT....--ssssssss-..---..........-----TTTTTTCCC,,, ^^ -- ]], +[[-------------TC,,###- --- OO ,CCTTT...-----SSSSSSSS--.----------,,....&------TTTCCCC,, ^^ -- ]], +[[--------------,TTCCC### -- OOO ,,CCTT...-,,,,--ssssssss-..-sssssssssss,---......---TTTTCCT,, ^^ -- ]], +[[---------- ,,,--TTTCCC -- OO ,,CCCTT..-------,,##9#####-.--sssssssssss-,-------...----TTCCTT, ^^^ -- ]], +[[--------- ,, ,,----TTTCC O ,CCC T..--sssSsss,,,,------.--StSStSSSStS--,------.-....--TTCCTT,^^^ -- ]], +[[------- ,, , OO ,CCTTT...---ssstSSS---,,,----.--sssssssssss---,---...----..--TTCCT^^^^ ^^ -- ]], +[[-------- ,, ,, OO ,CCTT...-----sssssss--,,-,,---.--sssssssssss---,-...-------..--TTC^^^ ^ ---- ]], +[[-------- {, OO ,CTT..---,,,,###6###,,,---,,--.--###########----.&----------..--T^^^^ ^ --- -- ]], +[[---------- OOO ,CT..,,,,----,,,,,,,,------,,-.--###b###e###-....,---sssss---.--T^^ ^ -- -- ]], +[[----------- OO ,CCT.,sssssss----,-----------,,.-----.-----....-,--,,-StSSS---&-T^^^ ^ -- ----- ]], +[[-------------- OO ,CCTT.-StStSSS---,-----ssssss--..-----.--....--,,,,,,-,sssss---.-T^^^ ^ -- -- ,,& ]], +[[------------ OOOOO ,CTT-.-sssssss---,-----SSSSSS--.------.-..--,,,-ssss--,#####---.-T^^ ^ -- ----- ,, ]], +[[--------- OO ,CCT-.&-##5####----,----ssssss-..&.......--XXXX,-ssss--,------...-^^^ ^ ^^ ^ --- ---- ,,, ]], +[[-- ---- OOOOOOOO ,C OOOO--OOOOO----,----#c##4#-.---.,----,-UUUU,-SSSS--,-----..---^^ ^ ^ --- -----, OOOOOOOOOOOOOOO]], +[[-- ---- OOOOOOO ,CT-OssOOOO---OOOOOOOOO--OOOO--.-T-.-sss--,XXXX,-ssss---,---..--T^^ -- -- OOO ]], +[[-- ----- OOOOOOOOSt.---------XXXX-OOOO--OOOO---.-StS--,#0##,-ssss---,---.---^^ ^ ^ -- --- OOOO ]], +[[ - --- ----- ,,CT--.ss.-sssss---XXXX,---------OOOO.-sss---,,,,,-####--,---..-T^^ ^ ^ -- --- OO ]], +[[ ---- ---- ,,CT--.##.-SStSS---####,------------OO-#>#-ssssss-,,,---,----.--T^^ ^ -,- OOOOO ]], +[[ ------- ---- ,,CTT-....-sssss--,,,,,,----------F--OO-,--SSSSSt-ss-,-,---...-T^^ ^ ^ -, OOOO ]], +[[ ------- ------ ,,CCTT---..#2###-,sssss,-SSSSSSSS-----OO,--ssssss-tS--,.&...---^^ ^^ ^^^ -, OOOOOOOO ]], +[[ ----- ----- ,,CCT----..,,,,,-StSSS,-ssssssss------OOO-#1##a#-ss....-----T^^ ^^ -,- OOOOO ]], +[[ ---- -------- ,,CCTT----.&----,sssss,-##7#####--------OO,.,,.,-##.----TTTT^^ ^ ^^ -, OOOOO ]], +[[ --------------- ,,,CCTTTT--..---,##3##-,--,&,---------..&OOOOOOOOOOOTTTTTCC^^^ ^^ ^^ ,- OOO ]], +[[ -------- ,,,CCCC --..........,-,,---,--.......-------TTTTTOCCCCC,,^^^^^^^^^^^ -.- OOOOO ]], +[[ ---------- ,, ,,CCCTT----------.....-......-------TTTTTTTCCCCO,,,,, ^^^^^^^ -.- O ]], +[[ ------- ,, ,,CCTTTTTTTTTT-----...------TTTTTTTCCCCCC,,,,OOO -.- OOOO ]], +[[ ---- ,,, ,CCCCCCCCCCTTTTT-----TTTTTTCCCCCC,,,,,, OOO OOOOOOOOO ]], +[[ ^^ ---- ,, ,,,,,,,,,,CCCCCTTTTTTCCCCC,,,,,, OO OOO-- ]], +[[ ^^^^^ ,,, ,,,,,CCCCCC,,,,, OOOO OOO-- ]], +[[ ^^^^^^^^^ ,, ,,,,,, OOOOOOO OOO--- ]], +[[ ^^^^^^^^^ ,, OOOOOOO---- ]], +[[ ^^^^^^^^^^^^^^^ ,,, ..------ ]], +[[ ^^^^^^^^^^^^^^ ,,, ...... ....----- ]], +[[ ^^^^^^^^^^^^^^^ ,,, ........... ............ ............-------,,,, ]], +[[ ^^^^^^^^^^^^^^^^^ ,, ... .........-------------- ,,,,,,, ,,,,,,,,, ]], +[[ ^^^^^^^^^^^^^ ,, . ,,,,,, ,,,,,,,,, ]], +[[ ^^^^^^^^^^^^^^ ,, ... ,,,,, ------ --- ]], +[[ ^^^^^^^^^^^^^^^ ,, . ,,,,,,,,------- ----- ]], +[[ ^^^^^^^^^^^^^^ , .. ---------------- ]], +[[ ^^^^^^^^^^^^^^^^ ,, .. ------------------ ]], +[[ ^^^^^^^^^^^^^^^ , .. ----------------& ]], +[[ ^^^^^^^^^^^^^^^^ ,,. --- ---- ---- ]], +[[ ^^^^^^^^^^^^^ ,. - -- -- ]], +[[ ^^^^^^^^^^^^^^ . ]], +[[ ^^^^^^^^^^^^^^ . ]], +[[ ]], +} \ No newline at end of file diff --git a/game/modules/tome/data/maps/wilderness/main.lua b/game/modules/tome/data/maps/wilderness/main.lua index 5f3a848b5bb0dee7416a9bc474fcda2c5ee669a8..5a6a7dcd84ce2b4592686241ed82ca1fcc5126d0 100644 --- a/game/modules/tome/data/maps/wilderness/main.lua +++ b/game/modules/tome/data/maps/wilderness/main.lua @@ -1,6 +1,20 @@ +defineTile('1', 'TOWN_BREE') +defineTile('a', 'DUN_ANCIENT_RUINS') + quickEntity('B', {name='blue mountains', display='^', color=colors.LIGHT_BLUE, block_move=true}) +quickEntity('M', {name='misty mountains', display='^', color=colors.UMBER, block_move=true}) +quickEntity('G', {name='grey mountains', display='^', color=colors.SLATE, block_move=true}) +quickEntity('T', {name='deep forest', display='#', color=colors.GREEN, block_move=true}) +quickEntity('t', {name='forest', display='#', color=colors.LIGHT_GREEN, block_move=true}) +quickEntity('I', {name='iron mountains', display='^', color=colors.SLATE, block_move=true}) quickEntity('=', {name='the great sea', display='~', color=colors.BLUE, block_move=true}) quickEntity('.', {name='plains', display='.', color=colors.LIGHT_GREEN}) +quickEntity('g', {name='Forodwaith, the cold lands', display='.', color=colors.LIGHT_BLUE}) +quickEntity('w', {name='ash', display='.', color=colors.WHITE}) +quickEntity('h', {name='low hills', display='^', color=colors.GREEN}) +quickEntity(' ', {name='sea of Rhun', display='~', color=colors.BLUE, block_move=true}) +quickEntity('_', {name='river', display='~', color={r=0, g=80, b=255}, block_move=true}) +quickEntity('~', {name='Anduin river', display='~', color={r=0, g=30, b=255}, block_move=true}) return { [[========q=qqqqqqqqqgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg]], @@ -8,56 +22,56 @@ return { [[==========qq=q=qqqqgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg]], [[==============qqq=qqggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg]], [[===============q=q=q=gwwwwgggwwwwwgggggggggwwwwwwwwwwggggwwwwwwwwwwwwwggggwwwwwwwwggggwwwwwwwwwgggg]], -[[====================qwwwwwwwwwwwwwwwwggggggggwwwwwwwwwwwwwwwwwwwwwwwwwwggwwwwwwwwwwwwwwwwwwwwwwEEEE]], -[[======================wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.EEEEEEEE]], -[[========================wwwwwwww...wwwwwwwwww..........wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.EEEEEEEEEEE]], -[[========================..www....wwwwwwww................wwwwGGGGwwwwwwww......wwwww.EEEEEEEEEEEEEE]], -[[==========.......======.........hhhh..................GGGGGGGwwwDwwww.........wwww.EjEEEEjEEEEEEjEE]], -[[========......BB..===.........hhhhhhhh..&&&&&...&..GGGGGGGGGGGGG.................jEEEjEjEEjEjjEEEEj]], -[[=======......BB..===............hhhh.......&&&&&&GG.._._...........................jjjjjjjjjjjjjjjj]], -[[======...._.BB._..._............................M....._._TTT................II........jjjjjjjjjjjjj]], -[[=======.._..BB.._.._..hhhh................&....&MM~~~~.TT_TTTT..........I.....III........jjjjjj^^^^]], -[[======.._...BB..._._..hhh.......hhhhhh.....&&&&._MM..~.TTT_T_TT..^l......IIIIII..............jjj^^^]], +[[====================qwwwwwwwwwwwwwwwwggggggggwwwwwwwwwwwwwwwwwwwwwwwwwwggwwwwwwwwwwwwwwwwwwwwwwTTTT]], +[[======================wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.TTTTTTTT]], +[[========================wwwwwwww...wwwwwwwwww..........wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww.TTTTTTTTTTT]], +[[========================..www....wwwwwwww................wwwwGGGGwwwwwwww......wwwww.TTTTTTTTTTTTTT]], +[[==========.......======.........hhhh..................GGGGGGGwwwDwwww.........wwww.TtTTTTtTTTTTTtTT]], +[[========......BB..===.........hhhhhhhh..&&&&&...&..GGGGGGGGGGGGG.................tTTTtTtTTtTttTTTTt]], +[[=======......BB..===............hhhh.......&&&&&&GG.._._...........................tttttttttttttttt]], +[[======...._.BB._..._............................M....._._TTT................II........ttttttttttttt]], +[[=======.._..BB.._.._..hhhh................&....&MM~~~~.TT_TTTT..........I.....III........tttttt^^^^]], +[[======.._...BB..._._..hhh.......hhhhhh.....&&&&._MM..~.TTT_T_TT..^l......IIIIII..............ttt^^^]], [[=====.._..TBBB...._._..h.=....hhh|hh..........__.MM__~.TTTT_h_TT.l8........_.....................^^]], [[===...._....BB....._..hh.=_....h.|..........__...MM..~.TTTTTT_TT.=........_........................]], -[[====.._...BBBB...._....hhhh__....|........._.....MM..~.TTTTTT____a........_........................]], -[[=====.._..TTBB..._........._.....|h......._.ff...MM..~6TTTTT&&&T._........._.......................]], -[[====...__..TBBB._......hh.._.....|.hh...._.f^^^._MM..~..TTT&G&&&T._........._......................]], +[[====.._...BBBB...._....hhhh__....|.....a..._.....MM..~.TTTTTT____........._........................]], +[[=====.._..TTBB..._........._.....|h......._.tt...MM..~6TTTTT&&&T._........._.......................]], +[[====...__..TBBB._......hh.._.....|.hh...._.t^^^._MM..~..TTT&G&&&T._........._......................]], [[=====..._.....__......hho+-_.2---x1hh-------_L...MM---------------_........_.......................]], [[======..==..=__....h....h|.._.hh.|ih....._..^^^._M...~..TTTTTTTTTT._........_......................]], -[[=============.....hhh....|.._.OOO|h......_.._.._MMM...~..TTTTTTTTT.._........_....................j]], -[[======........BB...h.....|..._OOO|hh...._.._...MM.....~..TTTTTTTT...._......_....................jj]], -[[=====.........BB.........[---_.O.|.h...._._..MMMMM.s._~..TTTTTTTT....._......_..................jjj]], -[[=====.........BB............._[--|....._.._..MMMM___s.~~.TTTTTTTT......_.._._..................jjjj]], -[[======........BB....B......._....|....._._...MMMM.....~~.TTTTT.T........._.._.................jfjjj]], -[[=======.....TBBB..BBBB....._.....|....._....MMMMM....~~...TTTT.............._...............jffjjjj]], -[[==========..TBBBT........._......|...._.....MMMM.....~~...TTTT..............._...._.......fjfjjfjjj]], -[[==========..TTTBBTBB....._.......|ss__.....hMMMM....~~....TTTTTTT............._.__._ ...ffffffjjjjj]], -[[==========...TTBTT......_........___ss_....MMMMM....~~..TTTTTTTTTT............._.... ...f fffjjjj]], -[[==========.....T.T....._........_.....______MM___...~~.TTTTTTTTTT................... ffjjjjj]], -[[===========.=........._........_...........MMMM_!.!~~..TT&TTTTTTT.................. fjfjjjj]], -[[================....__........_..jjj......MMMM._!4!~~..TTTTTTTTT................... ...jjjj]], -[[=================.==E........_....jj.....ffMMM..!!!~.....TTTTT..................^^. ......jj]], -[[===================EE........._.........ffMMM.......~~.........................^^^^. .......j]], -[[===================E==......._..........ffMMMttttt._..~~~~;;....................^^^. ... .......j]], -[[===================E==......_...........f&MMMMtttt_s_.....~;;..................^^^^^. ... ........j]], -[[=====================......_.jjj........f&MMMtttttt..__s~~;;...................^^^^^^.............j]], -[[=====================.....=_.jj.........&&MMMttttt.....~...........................^^.............j]], -[[======================...==..jjj........&&_&&&.._.......~~........................................j]], -[[=======================.===..............^_^....._........~.......................................j]], -[[===========================..............._........_.....~........................................j]], -[[==========================.jj......._._.._........_....h=hh...SSS.................................j]], -[[==========================.jj._.._j_...__.........._..h===h.SSSS.................................jj]], -[[==========================..__.__._._._..&&&b....._....h=hh..SS.A.A.............................jjj]], -[[============================....._..._.__.&&&......_....~~.....AAkAAA..A..AA..A..A..AA...A.....jjjj]], -[[===========================.............._&&&^^....._....~~s...DDvvAAAAAAAAAAAAAAAAAAAAAAAAAAAAJjjj]], -[[===========================.......^.&.^^&&&&&&&......__.~~sss...DDVVVVVVVAVVVAVAA_"""_""""""..AAAjj]], -[[===========================.....^^.&.&_&^&.&^&_&&&9...._..~~ss..DDVVUVVVVVVVVVVA_"""""_""""""...AAj]], +[[=============.....hhh....|.._.ttt|h......_.._.._MMM...~..TTTTTTTTT.._........_....................t]], +[[======........BB...h.....|..._ttt|hh...._.._...MM.....~..TTTTTTTT...._......_....................tt]], +[[=====.........BB.........[---_.t.|.h...._._..MMMMM.s._~..TTTTTTTT....._......_..................ttt]], +[[=====.........BB............._[--|....._.._..MMMM___s.~~.TTTTTTTT......_.._._..................tttt]], +[[======........BB....B......._....|....._._...MMMM.....~~.TTTTT.T........._.._.................ttttt]], +[[=======.....TBBB..BBBB....._.....|....._....MMMMM....~~...TTTT.............._...............ttttttt]], +[[==========..TBBBT........._......|...._.....MMMM.....~~...TTTT..............._...._.......ttttttttt]], +[[==========..TTTBBTBB....._.......|ss__.....hMMMM....~~....TTTTTTT............._.__._ ...ttttttttttt]], +[[==========...TTBTT......_........___ss_....MMMMM....~~..TTTTTTTTTT............._.... ...t ttttttt]], +[[==========.....T.T....._........_.....______MM___...~~.TTTTTTTTTT................... ttttttt]], +[[===========.=........._........_...........MMMM_!.!~~..TT&TTTTTTT.................. ttttttt]], +[[================....__........_..ttt......MMMM._!4!~~..TTTTTTTTT................... ...tttt]], +[[=================.==t........_....tt.....ttMMM..!!!~.....TTTTT..................^^. ......tt]], +[[===================tt........._.........ttMMM.......~~.........................^^^^. .......t]], +[[===================t==......._..........ttMMMttttt._..~~~~~~....................^^^. ... .......t]], +[[===================t==......_...........t&MMMMtttt_s_.....~~~..................^^^^^. ... ........t]], +[[=====================......_.ttt........t&MMMtttttt..__s~~~~...................^^^^^^.............t]], +[[=====================.....=_.tt.........&&MMMttttt.....~...........................^^.............t]], +[[======================...==..ttt........&&_&&&.._.......~~........................................t]], +[[=======================.===..............^_^....._........~.......................................t]], +[[===========================..............._........_.....~........................................t]], +[[==========================.tt......._._.._........_....h=hh...SSS.................................t]], +[[==========================.tt._.._t_...__.........._..h===h.SSSS.................................tt]], +[[==========================..__.__._._._..&&&b....._....h=hh..SS.A.A.............................ttt]], +[[============================....._..._.__.&&&......_....~~.....AAkAAA..A..AA..A..A..AA...A.....tttt]], +[[===========================.............._&&&^^....._....~~s...DDvvAAAAAAAAAAAAAAAAAAAAAAAAAAAAJttt]], +[[===========================.......^.&.^^&&&&&&&......__.~~sss...DDVVVVVVVAVVVAVAA_"""_""""""..AAAtt]], +[[===========================.....^^.&.&_&^&.&^&_&&&9...._..~~ss..DDVVUVVVVVVVVVVA_"""""_""""""...AAt]], [[===========================....^....__^^...^^^._^&&........~~.c.DDVVUUVVVVVVVAA_"""""""_"""".....AA]], [[===========================..^^^_.._.......^^._.^^&&&........~~.DDVVVVVVVVVVAA""_""""""_"""""""....]], -[[============================.^f_.__._........_&^^^.&&&&&......e.DDVAAVAAAVVV"""""_""""_""""""".....]], -[[============================.f^_..._....hh.._&&&^^.._&&&&.&...~.DDD""A"A""""""""=="""_""""""""""...]], -[[============================.f^._.hhhhhhhh...__...._^&^&&&&&.~..DD""""""""""""======_"""""""""""AAA]], +[[============================.^t_.__._........_&^^^.&&&&&......e.DDVAAVAAAVVV"""""_""""_""""""".....]], +[[============================.t^_..._....hh.._&&&^^.._&&&&.&...~.DDD""A"A""""""""=="""_""""""""""...]], +[[============================.t^._.hhhhhhhh...__...._^&^&&&&&.~..DD""""""""""""======_"""""""""""AAA]], [[===========================.^^._...h.h........._.._.^&^^._^3.~..DD"""_"_"""""=====""""""""""""AAAdd]], [[==========================..^^.._.....===.=====_._&^...._...^.~.DD"__"_"__======"""""AA""""AAAAdddd]], [[==========================.h...._...===========_&&^...._._...~~.DD_""""""""""""_""A"AAAAAAAAddddddd]], diff --git a/game/modules/tome/data/zones/ancient_ruins/npcs.lua b/game/modules/tome/data/zones/ancient_ruins/npcs.lua index 1f08f9be673e2102aecde1d879d4ad4da58b78d9..0815638bf43f3b16ba2b984b4875f085633dca39 100644 --- a/game/modules/tome/data/zones/ancient_ruins/npcs.lua +++ b/game/modules/tome/data/zones/ancient_ruins/npcs.lua @@ -6,15 +6,16 @@ newEntity{ rarity = 4, autolevel = "warrior", ai = "simple", - max_life = 20, + max_life = 100, + life_rating = 10, max_mana = 1000, max_stamina = 1000, energy = { mod=0.5 }, has_blood = true, - stats = { str=15, dex=8, mag=12, }, + stats = { str=15, dex=8, mag=12, con=14 }, combat = { dam=8, atk=10, apr=2, def=4, armor=6}, } - +--[[ newEntity{ group = "dragon", name = "baby dragon", @@ -31,18 +32,18 @@ newEntity{ has_blood = {nb=3, color={50,255,120}}, combat = { dam=5, atk=6, def=2, apr=1, armor=2}, } - +]] newEntity{ group = "icky things", name = "white icky", display = "i", color=colors.YELLOW, - level_range = {3, 7}, exp_worth = 100, + level_range = {1, 7}, exp_worth = 100, rarity = 1, autolevel = "warrior", ai = "simple", max_life = resolvers.rngavg(10,20), - max_mana = 1000, - max_stamina = 1000, + max_mana = resolvers.rngavg(10,20), + max_stamina = resolvers.rngavg(10,20), energy = { mod=0.3 }, has_blood = {nb=3, color={50,255,120}}, combat = { dam=5, atk=6, def=2, apr=1, armor=2}, diff --git a/game/modules/tome/data/zones/town_bree/grids.lua b/game/modules/tome/data/zones/town_bree/grids.lua new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/game/modules/tome/data/zones/town_bree/npcs.lua b/game/modules/tome/data/zones/town_bree/npcs.lua new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/game/modules/tome/data/zones/town_bree/objects.lua b/game/modules/tome/data/zones/town_bree/objects.lua new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/game/modules/tome/data/zones/town_bree/zone.lua b/game/modules/tome/data/zones/town_bree/zone.lua new file mode 100644 index 0000000000000000000000000000000000000000..39be882003f5940e90e8f91d78409b83bafebae9 --- /dev/null +++ b/game/modules/tome/data/zones/town_bree/zone.lua @@ -0,0 +1,14 @@ +return { + name = "Bree", + level_range = {1, 1}, + max_level = 1, + width = 196, height = 66, + all_remembered = true, + all_lited = true, + generator = { + map = { + class = "engine.generator.map.Static", + map = "towns/bree", + }, + } +} diff --git a/game/modules/tome/data/zones/wilderness/grids.lua b/game/modules/tome/data/zones/wilderness/grids.lua index 430b5b3862c54061b15e6f029903c613bd98b0cc..23f3d31d3065f57f8472a5b0c620a7d8e7846f62 100644 --- a/game/modules/tome/data/zones/wilderness/grids.lua +++ b/game/modules/tome/data/zones/wilderness/grids.lua @@ -1,3 +1,11 @@ +newEntity{ + define_as = "TOWN_BREE", + name = "the small town of Bree", + display = '*', color_r=255, color_g=255, color_b=255, + change_level = 1, + change_zone = "town_bree", +} + newEntity{ define_as = "DUN_ANCIENT_RUINS", name = "entrance to ancient ruins", @@ -5,17 +13,3 @@ newEntity{ change_level = 1, change_zone = "ancient_ruins", } - -newEntity{ - define_as = "FLOOR", - name = "floor", - display = '.', color_r=255, color_g=255, color_b=255, -} - -newEntity{ - define_as = "WALL", - name = "wall", - display = '#', color_r=255, color_g=255, color_b=255, - block_move = true, - block_sight = true, -} diff --git a/game/special/mainmenu/class/Game.lua b/game/special/mainmenu/class/Game.lua index 9a521a52695ae44a0620e9bbc21f85cd876495cf..d36159b4ef42f083bc86006c71fa3b13fb7aa599 100644 --- a/game/special/mainmenu/class/Game.lua +++ b/game/special/mainmenu/class/Game.lua @@ -24,7 +24,7 @@ function _M:run() end function _M:display() - self.step:display():toScreen(self.step.display_x, self.step.display_y) + self.step:toScreen(self.step.display_x, self.step.display_y) engine.Game.display(self) end