[Moeng-cvs] CaveAdventure/data/scripts Cave1.lua,NONE,1.1 Cave2.lua,NONE,1.1 Cave3.lua,NONE,1.1 Cave
Status: Alpha
Brought to you by:
b_lindeijer
From: <b_l...@us...> - 2004-01-13 19:06:51
|
Update of /cvsroot/moeng/CaveAdventure/data/scripts In directory sc8-pr-cvs1:/tmp/cvs-serv24427 Added Files: Cave1.lua Cave2.lua Cave3.lua CaveAdventure.lua Log Message: Added even more scripts. --- NEW FILE: Cave1.lua --- -- -- The first cave map, with the cave entrance. -- import("Map.lua") Cave1 = Map:subclass { name = "Cave1"; init = function(self) Map.init(self, "data/maps/cave1.map") self:spawn(Spring, 56, 30 + 1) local radio = self:spawn(Radio, 54, 3 + 1) radio.offset_y = radio.offset_y + 15 -- Spider webs self:spawn(SpiderWeb, 44, 3 + 1) self:spawn(SpiderWeb, 51, 17 + 1) self:spawn(SpiderWeb, 32, 49 + 1) self:spawn(SpiderWeb, 2, 68 + 1) self:spawn(SpiderWeb, 21, 6 + 1) self:spawn(SpiderWeb2, 62, 33 + 1) self:spawn(SpiderWeb2, 62, 61 + 1) self:spawn(SpiderWeb2, 10, 23 + 1) self:spawn(SpiderWeb2, 10, 3 + 1) -- Hostile creatures self:spawn(EnemySpider, 9, 7 + 1) self:spawn(EnemyPoisonSpiderQueen, 26, 64 + 1) self:spawn(EnemySpider, 32, 66 + 1) self:spawn(EnemySpider, 53, 58 + 1) self:spawn(EnemySpider, 49, 59 + 1) self:spawn(EnemySpider, 30, 11 + 1) self:spawn(EnemySpider, 27, 15 + 1) self:spawn(EnemySpider, 7, 29 + 1) self:spawn(EnemySpider, 10, 32 + 1) self:spawn(EnemySpider, 46, 21 + 1) self:spawn(EnemyPoisonSpiderQueen, 61, 34 + 1) self:spawn(EnemySpider, 60, 35 + 1) self:spawn(EnemySpider, 49, 42 + 1) self:spawn(EnemySpider, 42, 30 + 1) self:spawn(EnemySpider, 33, 31 + 1) self:spawn(EnemySpider, 45, 40 + 1) self:spawn(EnemySpider, 33, 30 + 1) self:spawn(EnemySpider, 25, 27 + 1) self:spawn(EnemySpider, 25, 18 + 1) self:spawn(EnemySpider, 23, 45 + 1) self:spawn(EnemySpider, 5, 51 + 1) self:spawn(EnemySpider, 9, 31 + 1) self:spawn(EnemySpider, 7, 15 + 1) self:spawn(EnemySpider, 40, 70 + 1) self:spawn(EnemyPoisonSpider, 43, 46 + 1) self:spawn(EnemyPoisonSpiderQueen, 25, 9 + 1) self:spawn(EnemyPoisonSpider, 21, 16 + 1) self:spawn(EnemyPoisonSpider, 8, 35 + 1) self:spawn(EnemyPoisonSpider, 9, 53 + 1) self:spawn(EnemyPoisonSpider, 5, 55 + 1) self:spawn(EnemyPoisonSpider, 51, 61 + 1) self:spawn(EnemyPoisonSpider, 7, 5 + 1) self:spawn(EnemyPoisonSpider, 32, 31 + 1) self:spawn(EnemyPoisonSpider, 22, 19 + 1) self:spawn(EnemyPoisonSpider, 27, 18 + 1) self:spawn(EnemyPoisonSpider, 3, 15 + 1) self:spawn(EnemyPoisonSpider, 4, 17 + 1) self:spawn(EnemyPoisonSpiderQueen, 7, 68 + 1) self:spawn(EnemyPoisonSpider, 49, 68 + 1) self:spawn(EnemyPoisonSpider, 37, 68 + 1) -- Torches self:spawn(Torch, 51, 56 + 1) self:spawn(Torch, 58, 30 + 1) self:spawn(Torch, 53, 22 + 1) self:spawn(Torch, 22, 7 + 1) self:spawn(Torch, 29, 7 + 1) self:spawn(Torch, 20, 16 + 1) self:spawn(Torch, 29, 18 + 1) self:spawn(Torch, 5, 56 + 1) self:spawn(Torch, 29, 63 + 1) -- Flowing waterfall self:spawn(CaveWaterfallExit, 50.5, 3 + 1) -- The tunnel self:spawn(CaveTunnelBottom, 8, 67 + 1) self:spawn(CaveTunnelTop, 8, 59 + 1) for i = 59, 65 do obj = self:spawn(CaveRoof, 8, i + 1) end obj.offset_y = obj.offset_y - 1 -- The bridge self:spawn(CaveBridge1, 45, 68 + 1) self:spawn(CaveBridge2, 45, 68 + 1) -- Pile of rubble self:spawn(CavePile, 16, 32 + 1) -- Pick self:spawn(CavePick, 27, 8 + 1) -- Map transitions obj = self:spawn(Cave1_Naar_Cave2, 0, 7 + 1) obj.h = 4 end; } --- NEW FILE: Cave2.lua --- -- -- The second cave map -- import("Map.lua") Cave2 = Map:subclass { name = "Cave2"; init = function(self) Map.init(self, "data/maps/cave2.map") self:spawn(Spring, 44, 7) self:spawn(Spring, 6, 42) -- Spider webs self:spawn(SpiderWeb, 19, 7) self:spawn(SpiderWeb, 1, 45) self:spawn(SpiderWeb, 30, 49) self:spawn(SpiderWeb, 43, 6) self:spawn(SpiderWeb2, 7, 7) self:spawn(SpiderWeb2, 32, 27) self:spawn(SpiderWeb2, 61, 18) -- Torches self:spawn(Torch, 6, 8) self:spawn(Torch, 9, 17) self:spawn(Torch, 28, 16) self:spawn(Torch, 27, 9) self:spawn(Torch, 23, 46) self:spawn(Torch, 14, 28) self:spawn(Torch, 3, 43) self:spawn(Torch, 25, 61) self:spawn(Torch, 48, 54) self:spawn(Torch, 52, 54) self:spawn(Torch, 59, 31) self:spawn(Torch, 45, 16) -- The (friendly) cavemen caveman1 = self:spawn(Caveman, 24, 4); caveman1.travel = 1; caveman2 = self:spawn(Caveman, 24, 3); caveman2.travel = 1; -- Hostile creatures self:spawn(EnemySpider, 58, 35) self:spawn(EnemySpider, 54, 34) self:spawn(EnemySpider, 41, 32) self:spawn(EnemySpider, 54, 46) self:spawn(EnemySpider, 43, 46) self:spawn(EnemySpider, 12, 59) self:spawn(EnemySpider, 28, 28) self:spawn(EnemySpider, 25, 19) self:spawn(EnemySpider, 24, 16) self:spawn(EnemySpider, 10, 30) self:spawn(EnemySpider, 22, 33) self:spawn(EnemySpider, 55, 22) self:spawn(EnemySpider, 54, 20) self:spawn(EnemySpider, 52, 22) self:spawn(EnemyPoisonSpider, 56, 36) self:spawn(EnemyPoisonSpider, 42, 34) self:spawn(EnemyPoisonSpider, 44, 33) self:spawn(EnemyPoisonSpider, 52, 45) self:spawn(EnemyPoisonSpider, 42, 47) self:spawn(EnemyPoisonSpider, 40, 46) self:spawn(EnemyPoisonSpider, 24, 61) self:spawn(EnemyPoisonSpider, 23, 63) self:spawn(EnemyPoisonSpider, 13, 57) self:spawn(EnemyPoisonSpider, 11, 58) self:spawn(EnemyPoisonSpider, 29, 27) self:spawn(EnemyPoisonSpider, 30, 28) self:spawn(EnemyPoisonSpider, 23, 18) self:spawn(EnemyPoisonSpider, 26, 17) self:spawn(EnemyPoisonSpider, 9, 31) self:spawn(EnemyPoisonSpider, 10, 32) self:spawn(EnemyPoisonSpider, 20, 32) self:spawn(EnemyPoisonSpider, 57, 20) self:spawn(EnemyCaveman, 47, 54); self:spawn(EnemyCaveman, 47, 56); self:spawn(EnemyCaveman, 54, 11); self:spawn(EnemyCaveman, 57, 11); self:spawn(EnemyCaveman, 31, 62); self:spawn(EnemyCaveman, 33, 62); self:spawn(EnemyCaveman, 10, 53); self:spawn(EnemyCaveman, 8, 53); obj = self:spawn(EnemyCaveman, 6, 16); obj.dir = DIR_LEFT self:spawn(EnemyCaveman, 5, 15); obj = self:spawn(EnemyCaveman, 4, 16); obj.dir = DIR_RIGHT -- Tunnel 1 self:spawn(CaveTunnelTop, 32, 57) self:spawn(CaveRoof, 32, 57) self:spawn(CaveRoof, 32, 58) self:spawn(CaveRoof, 32, 59) self:spawn(CaveTunnelBottom, 32, 61) -- Tunnel 2 self:spawn(CaveTunnelTop, 25, 11) self:spawn(CaveRoof, 25, 11) self:spawn(CaveTunnelBottom, 25, 13) -- Tunnel 3 self:spawn(CaveRoof, 24, 0) self:spawn(CaveRoof, 24, 1) self:spawn(CaveRoof, 24, 2) self:spawn(CaveRoof, 24, 3) self:spawn(CaveRoof, 24, 4) self:spawn(CaveTunnelBottom, 24, 6) -- The bridge self:spawn(CaveBridge1, 50, 55) self:spawn(CaveBridge2, 50, 55) -- Falling asleep self:spawn(CaveFallingAsleep, 25, 10) -- Map transitions obj = self:spawn(Cave2_Naar_Cave1, 63, 64) obj.h = 4 end; } --- NEW FILE: Cave3.lua --- -- -- The third cave map, with the boss. -- import("Map.lua") Cave3 = Map:subclass { name = "Cave3"; init = function(self) Map.init(self, "data/maps/cave3.map") self:spawn(Spring, 12, 12) -- Torches self:spawn(Torch, 30, 9) self:spawn(Torch, 40, 9) self:spawn(Torch, 30, 16) self:spawn(Torch, 40, 16) self:spawn(Torch, 8, 34) self:spawn(Torch, 79, 34) self:spawn(Torch, 64, 27) self:spawn(Torch, 95, 27) self:spawn(Torch, 33, 18) self:spawn(Torch, 33, 23) self:spawn(Torch, 33, 28) self:spawn(Torch, 33, 33) self:spawn(Torch, 37, 18) self:spawn(Torch, 37, 23) self:spawn(Torch, 37, 28) self:spawn(Torch, 37, 33) -- Cavemen obj = self:spawn(Caveman, 33, 20) obj.dir = DIR_RIGHT cavem1 = obj obj = self:spawn(Caveman, 33, 25) obj.dir = DIR_RIGHT cavem2 = obj obj = self:spawn(Caveman, 33, 30) obj.dir = DIR_RIGHT cavem3 = obj obj = self:spawn(Caveman, 37, 20) obj.dir = DIR_LEFT cavem4 = obj obj = self:spawn(Caveman, 37, 25) obj.dir = DIR_LEFT cavem5 = obj obj = self:spawn(Caveman, 37, 30) obj.dir = DIR_LEFT cavem6 = obj caveman_guard1 = self:spawn(EnemyCaveman, 80, 27) caveman_guard1.dir = DIR_RIGHT caveman_guard1:setState(AI_WAITING) caveman_guard2 = self:spawn(EnemyCaveman, 84, 27) caveman_guard2.dir = DIR_LEFT caveman_guard2:setState(AI_WAITING) caveman_guard3 = self:spawn(EnemyCaveman, 79, 27) caveman_guard3.dir = DIR_DOWN caveman_guard3:setState(AI_WAITING) caveman_guard4 = self:spawn(EnemyCaveman, 85, 27) caveman_guard4.dir = DIR_DOWN caveman_guard4:setState(AI_WAITING) -- Fences in prison self:spawn(FenceL, 66, 25) self:spawn(Fence1, 67, 25) self:spawn(FenceG2, 68, 25) self:spawn(Fence2, 69, 25) self:spawn(FenceR, 70, 25) self:spawn(FenceL, 73, 25) self:spawn(Fence2, 74, 25) self:spawn(FenceG2, 75, 25) self:spawn(Fence1, 76, 25) self:spawn(FenceR, 77, 25) self:spawn(FenceL, 80, 25) self:spawn(Fence2, 81, 25) self:spawn(FenceG, 82, 25) self:spawn(Fence2, 83, 25) self:spawn(FenceR, 84, 25) self:spawn(FenceL, 87, 25) self:spawn(Fence1, 88, 25) self:spawn(FenceG2, 89, 25) self:spawn(Fence1, 90, 25) self:spawn(FenceR, 91, 25) self:spawn(CaveTunnelTop, 35, 40) static_boss = self:spawn(CaveBoss, 35, 11) self:spawn(CaveNoticeStrong, 68, 34) obj = self:spawn(BossFightTrigger, 35, 12) obj.offset_y = -6 boss_block = self:spawn(BossBlock, 33, 18) end; } --- NEW FILE: CaveAdventure.lua --- import("Game.lua") import("Player.lua") CaveAdventure = Game:subclass { name = "CaveAdventure"; init = function(self) -- Create language object lang = CaveLang() -- WARNING: Bad design, introducing global variable -- Call superfunction Game.init(self) -- Load tile bitmaps m_import_tile_bmp("cave.bmp", 24, 24, 0) -- Load the maps cave1Map = Cave1() cave2Map = Cave2() cave3Map = Cave3() -- Spawn the player if (self.playerClass) then player = cave1Map:spawn(self.playerClass, -1, -1) playerController = PlayerController() playerController:possess(player) self.viewPort.target = player end --camera_handle = m_add_object(0, 0, "CameraHandle") --camera_handle.travel = 1 -- Show startup screen show_main_menu = 1 main_menu_bg = { bm = m_get_bitmap("menu.bmp"), alpha = 0, } main_title = { bm = m_get_bitmap("cave.tga"), y = -50, } main_start = { bm = m_get_bitmap("start.tga"), y = 300, } ActionController:addSequence{ ActionExModeOn(), ActionTweenVariable(main_menu_bg, "alpha", 200, 255), ActionTweenVariable(main_title, "y", 200, 184), ActionTweenVariable(main_start, "y", 100, 220), } -- Define startup sequence self.startupSequence = { ActionFadeOutMap(50), ActionSetVariable(_G, "show_main_menu", nil), ActionSetPosition(player, 50, 5, DIR_DOWN), -- Normal start position in cave 1 --ActionSetPosition(m_get_player(), 25, 15, DIR_UP), -- Just before sequence in cave 2 --ActionSetPosition(m_get_player(), 35, 19, DIR_UP), -- Just before starting boss fight in cave 3 --ActionSetPosition(m_get_player(), 4, 5, DIR_LEFT), -- Near cave 1 exit to cave 2 ActionPlaySong("data/music/Cave.ogg", 100), ActionFadeInMap(100), --ActionConversation(lang:getConv("INTRO")), ActionExModeOff(), ActionShowMapName(m_get_bitmap("cave_title_1.bmp")), } end; event_render = function(self) local width, height = m_screen_size() if (show_main_menu) then m_set_cursor(0,0) m_set_alpha(main_menu_bg.alpha) self.canvas:drawIcon(main_menu_bg.bm) self.canvas:setAlpha(255) m_set_drawmode(DM_ALPHA) self.canvas:setCursor(10, main_title.y); self.canvas:drawIcon(main_title.bm) self.canvas:setCursor(82, main_start.y); self.canvas:drawIcon(main_start.bm) m_set_drawmode(DM_MASKED) end Game.event_render(self) end; event_keypress = function(self, key) if (Game.event_keypress(self, key)) then return true end if (key == "action") then if (show_main_menu and not started) then started = 1 ActionController:addSequence(self.startupSequence) return true end end end; defaultproperties = { playerClass = Player } } |