Compare commits

...

24 Commits

Author SHA1 Message Date
JailGamer faac5dc947 [WIP] Stage 2. Tiles per als núvols 2026-05-31 17:53:35 +02:00
JailGamer 9d044d10f9 [CHG] Ajustos en el copter per a dur conductor 2026-05-31 13:46:56 +02:00
JailGamer ef87fd3c25 [WIP] Reestructurant codi
[WIP] Stage 2 ja 'arranca'
2026-05-30 22:20:24 +02:00
JailGamer 714ed083d4 [NEW] Incrementat requeriment de mini a 1.5.11 2026-05-30 13:34:57 +02:00
JailGamer e0825e5bbb [WIP] Reestructurant codi abans de posar-me en el nivell 2
[NEW] Afegit music_player
[NEW] Música de fons des de l'inici
2026-05-29 23:28:51 +02:00
JailGamer 2eb4bc82eb [WIP] Stage 2 2026-05-25 22:08:22 +02:00
JailGamer a29dea89ae Reestructuració i neteja de codi 2026-05-24 23:09:43 +02:00
JailGamer 43013f9c4b [NEW] 1up 2026-05-24 19:46:49 +02:00
JailGamer 1456f3addc [FIX] Expresió mal posicionada 2026-05-24 19:11:30 +02:00
JailGamer 1561250686 El abad on li toca començar 2026-05-24 18:48:08 +02:00
JailGamer 84124d7f7b [CHG] Canviada una expressió de l'abad
[FIX] Corregida col·lisió en la fireball
[CHG] Mogut debug a game_debug
[NEW] Stage manager per a gestió de nivells
2026-05-24 18:47:04 +02:00
JailGamer 9f97bf9160 [CHG] Modificada la función per a expresions de l'abad
[NEW] Afegit mood estranyat
[CLN] Eliminat menu.lua
2026-05-24 13:42:56 +02:00
JailGamer d4b45df65f [NEW] Transformada la pantalla de game over a estat (canvia dead.lua per game_over.lua)
[FIX] Centrat en la pantalla de les opcions del títol
2026-05-24 13:34:15 +02:00
JailGamer 995e021c10 [FIX] El abad ja no se queda de peu en les escales 2026-05-24 13:13:54 +02:00
JailGamer 9cbe4d0075 [FIX] Informa de la versió del runtime de mini
[FIX] Viewport centrat en l'X de l'abad
2026-05-24 10:06:53 +02:00
JailGamer 6aa100da9e [NEW] Comprovació de la versió de mini abans d'arrancar el joc
[FIX] Eliminats fitxers que ja no valien
[WIP] Stage 2
2026-05-24 09:56:20 +02:00
JailGamer a8aa041000 [ENH] Mapa modificat
[NEW] Capacitat per a habilitar/deshabilitar el hint al obrir una porta
2026-05-23 22:17:31 +02:00
JailGamer 4759767823 [CHG] El contacte en el jefe fa mal
[CHG] La fireball no se pot esquivar apretant avall
[NEW] La fireball se pot para d'una cacauà
2026-05-22 20:46:23 +02:00
JailGamer 4d13ed4eb0 [ENH] Tile de botella
[NEW] Indicacions per a anar a la mansió de Batman al obrir totes les portes
2026-05-22 20:02:22 +02:00
JailGamer ee43ac15ec [FIX] Al acabar una escala cap amunt botava
[FIX] Al botar i caure en un escala, no parava en l'escala i caia
2026-05-22 17:06:19 +02:00
JailGamer 6276948f87 [NEW] Outro al acabar en el boss
[FIX] Abad mogut a una posició segura al acabar en el boss
2026-05-19 21:51:44 +02:00
JailGamer c5c72abc73 [FIX] El abad havia deixat de botar en recte 2026-05-17 21:13:13 +02:00
JailGamer bbe1d539a4 [FIX] Tornat el joc a mode normal que l'havia pujant en opcions per a debugar 2026-05-17 20:54:40 +02:00
JailGamer 074277187c [FIX] Viewport tremolant al tornar del jefe... per un =... 2026-05-17 20:52:00 +02:00
42 changed files with 1815 additions and 3595 deletions
+71 -48
View File
@@ -2,8 +2,6 @@
cw = arcade_config.character_width
ch = arcade_config.character_height
require "dead"
-- abad={ x=40, y=24,
-- flip=false,
-- frame=1,
@@ -45,6 +43,7 @@ function abad_init()
mustep=1,
stairs_flip=false,
stairs_moves=0, --contador de moviments dins de les escales
exited_stairs = 0,
draw=abad.draw,
hurting=0,
update=nil,
@@ -65,9 +64,11 @@ function abad_init()
bb={x=8,y=0,w=16,h=32},
safe={hab=10,x=40,y=24},
move=abad.move,
mood="normal"}
mood="normal",
vehicle=""}
abad.update=abad_state_normal
abad.objects={}
-- abad.objects={clau_premiere = true, clau_elalien = true}
end
function abad:move( x, y )
@@ -78,8 +79,9 @@ function abad:move( x, y )
end
function abad_add_mood(abad_x, spr_off_x, abad_y, spr_off_y, flip, mood)
flip = flip or false
mood = mood or "normal"
local flip = flip or false
local mood = mood or "normal"
local mood_y = 0
if flip then
abad_x = abad_x-15+4
@@ -87,48 +89,48 @@ function abad_add_mood(abad_x, spr_off_x, abad_y, spr_off_y, flip, mood)
if mood~="normal" then
if mood=="sorpresa" then
draw.surf(240,0,11,4,abad_x+16-spr_off_x,abad_y+5-spr_off_y,11,4,flip)
elseif mood=="enfadat" then
draw.surf(240,4,11,4,abad_x+16-spr_off_x,abad_y+5-spr_off_y,11,4,flip)
mood_y = 0
elseif mood=="sobrat" then
mood_y = 4
elseif mood=="interessant" then
draw.surf(240,8,11,4,abad_x+16-spr_off_x,abad_y+5-spr_off_y,11,4,flip)
mood_y = 8
elseif mood=="estranyat" then
mood_y = 12
end
draw.surf(240,mood_y,11,4,abad_x+16-spr_off_x,abad_y+5-spr_off_y,11,4,flip)
end
end
function abad:draw()
local flip = abad.flip
local x, y = viewp:screen_coords(self.x, self.y)
if abad.update==abad_state_stairs then
-- flip=abad.stairs_flip
-- -- flip=(((abad.x>>1)+(abad.y>>1))%2)==0
if math.abs(abad.stairs_moves-(abad.x+abad.y))>12 then
abad.stairs_moves = abad.x+abad.y
abad.flip = not abad.flip
if abad.vehicle=="" then
if abad.update==abad_state_stairs then
if math.abs(abad.stairs_moves-(abad.x+abad.y))>12 then
abad.stairs_moves = abad.x+abad.y
abad.flip = not abad.flip
end
flip = abad.flip
end
flip = abad.flip
-- if ((abad.x+abad.y)%12)==0 then
-- abad.stairs_flip=not abad.stairs_flip
-- end
-- local msg = "-- "..abad.x.." "..abad.y
-- if flip then msg = "FLIP"..abad.x.." "..abad.y end
-- -- msg_print(0,35,msg,true)
end
if (abad.respawning==0) or (math.floor(abad.respawning/15)%2==0) then
draw.surf(abad.frame*abad.w,0,abad.w,abad.h,x,y,abad.w,abad.h,flip)
-- caminant, parat, disparant o saltant
if abad.frame<=3 or abad.frame==6 then
abad_add_mood(x,0,y,0,flip,abad.mood)
if (abad.respawning==0) or (math.floor(abad.respawning/15)%2==0) then
draw.surf(abad.frame*abad.w,0,abad.w,abad.h,x,y,abad.w,abad.h,flip)
-- caminant, parat, disparant o saltant
if abad.frame<=3 or abad.frame==6 then
abad_add_mood(x,0,y,0,flip,abad.mood)
end
end
end
if abad.respawning > 0 then
abad.respawning=abad.respawning-1
end
-- draw.rect(x+abad.bb.x,y+abad.bb.y,abad.bb.w,abad.bb.h,3)
if abad.respawning > 0 then
abad.respawning=abad.respawning-1
end
-- draw.rect(x+abad.bb.x,y+abad.bb.y,abad.bb.w,abad.bb.h,3)
elseif abad.vehicle=="copter" then
surf.source.push(tiles2)
draw.surf(96,0,abad.w,abad.h,x,y,abad.w,abad.h,flip)
surf.source.pop()
end
end
function abad_make_safe( force )
@@ -141,6 +143,10 @@ function abad_make_safe( force )
end
end
function abad_lifes_up(howmuch)
abad.vides = abad.vides + howmuch
end
function abad_heal(howmuch)
abad.energia = abad.energia + howmuch
if abad.energia>abad.max_energia then
@@ -158,10 +164,12 @@ function abad_hurt(howmuch)
abad.vides=abad.vides-1
if abad.vides==0 then
--final de la partida
dead.start()
music.play(audio_game_over,0)
states:executar("game over",false)
-- dead.start()
-- music.play(audio_game_over,0)
else
music.play(audio_life_lost,0)
-- music.play(audio_life_lost,0)
music_player:play(audio_life_lost,0,true)
abad.energia=abad.max_energia
-- abad.hab=abad.safe.hab
-- abad.x=abad.safe.x
@@ -292,7 +300,7 @@ function abad_land ()
-- Comprovar on està aterrant
local tile1_hit= arc_check_tile(x1_check, y_check )
local tile2_hit= arc_check_tile(x2_check, y_check)
local floor_tile = tile1_hit>=tiletype.half or tile2_hit>=tiletype.half
local floor_tile = tile1_hit>=tiletype.half or tile2_hit>=tiletype.half or tile1_hit==tiletype.stair or tile2_hit==tiletype.stair
-- Encara que siga un tile de piso s'ha de comprovar que
-- la y es un múltiple de l'alt dels tiles
@@ -429,27 +437,36 @@ function abad_state_normal()
abad_make_safe()
if controller:check("up") then
if abad_in_stairs(0,-1) then
abad.update=abad_state_stairs
else
abad.update=abad_state_normal
abad.frame=0
end
if abad_in_stairs(0,-1) and controller:check("up") then
abad.exited_stairs = 0
abad.update=abad_state_stairs
elseif controller:check("down") then
abad.exited_stairs = 0
abad_move_down()
elseif controller:check("right") then
abad.exited_stairs = 0
abad.update=abad_state_walking
abad.flip=false
elseif controller:check("left") then
abad.exited_stairs = 0
abad.update=abad_state_walking
abad.flip=true
elseif controller:check("jump") then
abad_do_jump()
if abad.exited_stairs ==0 then
abad_do_jump()
else
abad.exited_stairs = abad.exited_stairs - 1
if abad.exited_stairs<0 then
abad.exited_stairs = 0
end
end
--elseif btn(KEY_Z) then
-- abad.respawning=240
elseif controller:check("shoot") then
abad.exited_stairs = 0
abad_shot_cacau()
else
abad.exited_stairs = 0
end
end
@@ -588,7 +605,11 @@ function abad_state_falling()
end
if abad_land() then
abad.update=abad_state_normal
if abad_in_stairs(0,-1) then
abad.update=abad_state_stairs
else
abad.update=abad_state_normal
end
return
end
@@ -605,6 +626,7 @@ end
function abad_state_stairs()
abad.frame=4
abad.wait=abad.wait+1
abad.exited_stairs = 0
local moved = false
if controller:check("right") then
@@ -620,6 +642,7 @@ function abad_state_stairs()
abad.y=abad.y-1
moved = true
else
abad.exited_stairs = 20
abad.update=abad_state_normal
abad.frame=0
end
+39 -19
View File
@@ -1,23 +1,43 @@
audio_main_song="mus_menu.ogg"
audio_song_batman="mus_batm.ogg"
audio_main_song ="mus_menu.ogg"
audio_song_batman ="mus_batm.ogg"
audio_song_premiere="mus_prem.ogg"
audio_song_elalien="mus_alie.ogg"
audio_life_lost="mus_life.ogg"
audio_game_over="mus_over.ogg"
audio_song_imp="mus_imp.ogg"
audio_song_copter="mus_copter.ogg"
audio_song_elalien ="mus_alie.ogg"
audio_life_lost ="mus_life.ogg"
audio_game_over ="mus_over.ogg"
audio_song_imp ="mus_imp.ogg"
audio_song_copter ="mus_copter.ogg"
audio_final=audio_main_song
audio_abad_jump="snd_ajmp.wav"
audio_abad_fall="snd_afal.wav"
audio_abad_hit="snd_ahit.wav"
audio_abad_shot="snd_asht.wav"
audio_abad_step={"snd_ast1.wav", "snd_ast2.wav", "snd_ast3.wav", "snd_ast2.wav"}
audio_switch="snd_swch.wav"
audio_hit="snd_hit.wav"
audio_low="snd_low.wav"
audio_text_abad="snd_txta.wav"
audio_abad_jump ="snd_ajmp.wav"
audio_abad_fall ="snd_afal.wav"
audio_abad_hit ="snd_ahit.wav"
audio_abad_shot ="snd_asht.wav"
audio_abad_step ={"snd_ast1.wav", "snd_ast2.wav", "snd_ast3.wav", "snd_ast2.wav"}
audio_switch ="snd_swch.wav"
audio_hit ="snd_hit.wav"
audio_low ="snd_low.wav"
audio_text_abad ="snd_txta.wav"
audio_text_premiere="snd_txtp.wav"
audio_text_elalien="snd_txte.wav"
audio_text_batman="snd_txtb.wav"
audio_text_imp="snd_txtb.wav"
audio_text_elalien ="snd_txte.wav"
audio_text_batman ="snd_txtb.wav"
audio_text_imp ="snd_txtb.wav"
function audio_init()
-- Càrrega dels audios
audio_text_abad = sound.load(audio_text_abad)
audio_text_premiere = sound.load(audio_text_premiere)
audio_text_elalien = sound.load(audio_text_elalien)
audio_text_batman = sound.load(audio_text_batman)
audio_text_imp = sound.load(audio_text_imp)
audio_abad_jump = sound.load(audio_abad_jump)
audio_abad_fall = sound.load(audio_abad_fall)
audio_abad_hit = sound.load(audio_abad_hit)
audio_abad_shot = sound.load(audio_abad_shot)
audio_abad_step[1] = sound.load(audio_abad_step[1])
audio_abad_step[2] = sound.load(audio_abad_step[2])
audio_abad_step[3] = sound.load(audio_abad_step[3])
audio_abad_step[4] = audio_abad_step[2]
audio_switch = sound.load(audio_switch)
audio_hit = sound.load(audio_hit)
audio_low = sound.load(audio_low)
end
+32 -10
View File
@@ -28,18 +28,33 @@ copter={
enabled=true,
disable_reason="",
enabled=true,
rider = nil,
gir = {}
}
function copter.init()
local world_x, world_y = coords.room_to_world(copter.hab,copter.x,copter.y)
copter.x=world_x
copter.y=world_y
function copter.init(rider)
if rider==nil then
local world_x, world_y = coords.room_to_world(copter.hab,copter.x,copter.y)
copter.x=world_x
copter.y=world_y
else
copter.rider = rider
copter.hab = rider.hab
copter.x = rider.x-32
copter.y = rider.y-32
copter.y = copter.y-16
end
copter.gir[1] = math.random(8)-1
copter.gir[2] = math.random(4)-1
copter.gir[3] = math.random(8)-1
copter.gir[4] = math.random(6)-1
copter.gir[5] = math.random(8)-1
copter.gir[6] = math.random(4)-1
end
function copter.draw()
local curr_sf = surf.source()
surf.source(tiles2)
-- local curr_sf = surf.source()
surf.source.push(tiles2)
local scr_x, scr_y = viewp:screen_coords( copter.x, copter.y )
draw.surf(0,0,copter.w,copter.h,scr_x,scr_y,copter.w,copter.h,copter.flip)
if copter.wait==0 or copter.wait==32 then
@@ -59,13 +74,20 @@ function copter.draw()
draw.line(scr_x+51,scr_y+23,scr_x+64+copter.gir[4],scr_y+38,16)
draw.line(scr_x+47,scr_y+16,scr_x+43+copter.gir[5],scr_y+8,16)
end
surf.source(curr_sf)
-- surf.source(curr_sf)
surf.source.pop()
end
function copter.update()
copter.step = copter.step +1
copter.wait = copter.wait +1
if copter.wait==16 then
copter.step = copter.step +1
copter.wait = copter.wait +1
if copter.wait==16 then
copter.wait = 0
end
if copter.rider~=nil then
copter.hab = copter.rider.hab
copter.x = copter.rider.x-32
copter.y = copter.rider.y-32
copter.y = copter.y-16
end
end
-46
View File
@@ -1,46 +0,0 @@
dead={}
function dead.start()
dead.count=0
dead.pos={}
dead.vel={}
for i=1,128 do
dead.pos[i]=0
dead.vel[i]=(200+math.random(0,399))/400
end
game_update=dead.update
end
function dead.update()
dead.count=dead.count+1
for i=1,128 do
if dead.pos[i]<96 then
dead.pos[i]=dead.pos[i]+dead.vel[i]
draw.vline(i-1,0,dead.pos[i],16)
end
end
if dead.count>50 then
if dead.count>130 then
draw.text("GAME OVER",44,40,2)
elseif dead.count>120 then
draw.text("GAME OVE",44,40,2)
elseif dead.count>110 then
draw.text("GAME OV",44,40,2)
elseif dead.count>100 then
draw.text("GAME O",44,40,2)
elseif dead.count>90 then
draw.text("GAME",44,40,2)
elseif dead.count>80 then
draw.text("GAM",44,40,2)
elseif dead.count>70 then
draw.text("GA",44,40,2)
elseif dead.count>60 then
draw.text("G",44,40,2)
end
end
if (dead.count>250 and (key.press(keyShoot) or pad.press(btnShoot))) or dead.count>500 then
game_exit()
game_init(true)
end
end
+39 -27
View File
@@ -42,6 +42,8 @@ function fireball.draw()
end
function fireball.update()
if fireball.hab == -1 then return end
if fireball.power==2 and fireball.power>fireball.size then
fireball.wait = fireball.wait + 1
fireball.x1=abad.x+abad.bb.x+(abad.bb.w//2)
@@ -78,10 +80,8 @@ function fireball.update()
fireball.h=fireball.w
fireball.bb = {x=0,y=0,w=4*fireball.size,h=4*fireball.size}
return
end
end
if fireball.hab == -1 then return end
-- fireball.wait=fireball.wait+1
--if fireball.wait==3 then
@@ -91,34 +91,46 @@ function fireball.update()
-- fireball.hab=-1
-- return
--end
if fireball.power==1 then
if arc_check_tile(fireball.x,fireball.y)<tiletype.block then
if fireball.flip then
fireball.x=fireball.x-fireball.step_length
else
fireball.x=fireball.x+fireball.step_length
end
if fireball.power==1 then
if arc_check_tile(fireball.x,fireball.y)<tiletype.block then
if fireball.flip then
fireball.x=fireball.x-fireball.step_length
else
fireball.hab=-1
return
end
elseif fireball.power==2 then
fireball.x = fireball.x+fireball.step_length_x
fireball.y = fireball.y+fireball.step_length_y
end
if viewp:inside(fireball.x, fireball.y, fireball.w, fireball.h) then
if collision(fireball,abad) then
if fireball.power==1 and abad.update~=abad_state_crouch then
abad_hurt(1)
fireball.hab=-1
elseif fireball.power==2 then
abad_hurt(2)
fireball.hab=-1
end
fireball.x=fireball.x+fireball.step_length
end
else
fireball.hab=-1
return
end
elseif fireball.power==2 then
fireball.x = fireball.x+fireball.step_length_x
fireball.y = fireball.y+fireball.step_length_y
end
if viewp:inside(fireball.x, fireball.y, fireball.w, fireball.h) then
if collision(fireball,abad) then
-- if fireball.power==1 and abad.update~=abad_state_crouch then
if fireball.power==1 then
abad_hurt(1)
fireball.hab=-1
elseif fireball.power==2 then
abad_hurt(2)
fireball.hab=-1
end
else
if fireball.power==1 then
for _, cacau_shot in pairs(cacau.shots()) do
if cacau_shot.alive and
collision(fireball,cacau_shot)
then
fireball.hab = -1
cacau:kill(cacau_shot)
end
end
end
end
else
fireball.hab=-1
end
--end
end
+93 -369
View File
@@ -1,4 +1,34 @@
require "controller"
require "audio"
arcade_config = require("arcade_config")
require "states"
require "requirements"
require "logo"
require "intro"
require "title"
require "opcions"
require "opcions_input"
require "pause"
require "game_over"
require "scenes"
coords = require "coords"
require "helpers"
require "music_player"
-- require "map"
require "mapa"
require "warp"
require "fade"
require "point"
require "fps"
--require "menu"
viewport= require("viewport")
require "stage_mgr"
require "abad"
require "cacau"
require "llibre"
@@ -18,19 +48,21 @@ require "imp3"
require "fireball"
require "bar_meter"
require "stage1"
-- require "stage1"
require "remote_view"
require "dialeg"
require "trigger_event"
require "batman"
require "health_potion"
require "one_up"
require "tiles_layer2"
require "batvio"
-- require "live_scene"
require "copter"
require "sign"
local DEBUG = false
font_default = font.current()
local tile_w = arcade_config.tiles_width
local tile_h = arcade_config.tiles_height
@@ -39,102 +71,68 @@ local res_h = arcade_config.resolucion.height
local view_tile_id = false
local view_checking_tile = false
local stage= 1
local stage_loaded = 0
stage_update = nil
stage_draw_back = nil
stage_draw_middle = nil
stage_draw_front = nil
viewp = viewport.new(arcade_config.resolucion.width, arcade_config.resolucion.height)
viewp:position(0,0)
function foo()
print("foo")
-- actors={}
function game_load()
surf.target(0)
surf.cls(16)
math.randomseed(os.time())
mapa_surface_init()
-- states:executar("check-reqs")
states:executar("title")
controller:init()
fonts_init()
images_init()
fade.init()
audio_init()
logo_config(font_sf)
end
function actor_warp_draw(actor)
local shrink_w = actor.w*actor.shrink
local shrink_h = actor.h*actor.shrink
local offset_x = math.floor((actor.w-shrink_w)/2)
local offset_y = math.floor((actor.h-shrink_h)/2)
local scr_x, scr_y = viewp:screen_coords( actor.x+offset_x, actor.y+offset_y )
shrink_w = math.floor(shrink_w)
shrink_h = math.floor(shrink_h)
function game_init(menu)
actors={}
abad_init()
table.insert(actors,abad)
score.create()
if shrink_w>0 and shrink_h>0 then
draw.surfrot((actor.frame&7)*cw, (actor.frame>>cxr2)*ch,
cw, ch,
scr_x, scr_y,
actor.angle,
shrink_w, shrink_h,
actor.flip)
end
stages.load_stage(true)
states:next()
end
function actor_warp_update(actor)
-- warp, wait, respawn
if actor.warping then
if actor.step<actor.death_time then
actor.shrink=actor.shrink-actor.d_shrink
actor.angle=actor.angle+actor.d_angle
if actor.angle>=360 then actor.angle = actor.angle % 360 end
if actor.shrink<=0 then
actor.shrink=1
actor.d_shrink=1
actor.angle=0
actor.d_angle=1
actor.warping = false
actor.frame = -1
actor.step = 0
if actor.energy~=nil then
actor.energy = actor.max_energy
end
end
end
elseif actor.step<actor.death_time/2 then
actor.frame = -1
elseif actor.step<actor.death_time then
if actor.step%2==0 then
actor.frame=actor.anim[#actor.anim]
else
actor.frame=-1
end
elseif actor.step>=actor.death_time then
actor.frame=actor.anim[1]
actor.step=0
actor.wait=0
if actor.name=="caco" then
actor.update=caco.update_normal
elseif actor.name=="zombie" then
actor.update=zombie.update_normal
end
actor.dying = false
end
end
actors={}
function game_exit()
-- mapa_restore_backup()
actors={}
-- cameras={}
end
function game_init(menu)
stage= 1
stage_loaded = 0
-- print("GAME INIT")
actors={}
abad_init()
table.insert(actors,abad)
score.create()
-- game_update=update_game
states:next()
--
-- Carregar fonts general del joc
--
function fonts_init()
font_sf=font.load("X2_font.fnt")
end
function images_init()
tiles=surf.load("tiles.gif")
surf.source(tiles)
local paleta=pal.load("tiles.gif")
pal.set(paleta)
tiles2=surf.load("tiles2.gif")
-- Crear el warp
warp.init(tiles)
end
-- function image_close()
-- surf.free(tiles)
-- warp.close()
-- end
function mapa_surface_init()
if (sf_mapa) then surf.free(sf_mapa) end
sf_mapa=surf.new(mapa_room_cols*mapa_rooms_per_piso,mapa_room_rows*mapa_pisos)
end
function render_map( sf_map, sf_tiles, x, y, target )
target = target or 0
@@ -147,60 +145,6 @@ function render_map( sf_map, sf_tiles, x, y, target )
view.origin(0,0)
end
function load_stage()
local stage_init = stages["stage"..stage.."_init"]
if stage_init then
stage_init()
stage_loaded = stage
print("Stage "..stage.." loaded")
else
print("No se ha cargado la fase "..stage)
end
end
function load_boss_stage()
--local stage_boss = stages["stage"..stage.."_boss"]
-- if stage_boss and not scene_running and not stages.loaded_boss then
stage_update = stages["stage"..stage.."_boss_update"]
stage_draw_back = stages["stage"..stage.."_boss_draw_back"]
stage_draw_middle = stages["stage"..stage.."_boss_draw_middle"]
stage_draw_front = stages["stage"..stage.."_boss_draw_front"]
-- stage_boss_end = stages["stage"..stage.."_boss_end"]
-- stage_boss()
print("Stage "..stage.." Boss loaded")
-- else
-- print("No se ha cargado la fase "..stage)
-- end
end
function unload_boss_stage()
-- stage_boss_end()
stage_update = nil
stage_draw_back = nil
stage_draw_middle = nil
stage_draw_front = nil
-- stage_boss_end = nil
end
function viewport_update()
-- Moure el viewport
local vp_x = viewp.x
local vp_y = viewp.y
local vp_center_offset_x = (viewp.width >> 1)
local vp_center_offset_y = (viewp.height >> 1)
vp_x = abad.x - vp_center_offset_x
if vp_x < 0 then vp_x = 0 end
vp_y = abad.y - vp_center_offset_y
if vp_y < 0 then vp_y = 0 end
viewp:position(vp_x, vp_y)
end
function world_update()
-- Actualitzar moviment del mapa (ex: tiles animats)
arc_mapa_update()
@@ -225,9 +169,10 @@ function world_update()
end
end
end
end
if stage_update then stage_update() end
if stages.stage_update then stages.stage_update() end
-- Actualizar el que queda
cacau.update()
@@ -243,7 +188,8 @@ function world_draw()
render_map(sf_mapa, tiles, viewp.x, viewp.y)
tiles_layer2.draw()
if stage_draw_back then stage_draw_back() end
-- if stage_draw_back then stage_draw_back() end
if stages.stage_draw_back then stages.stage_draw_back() end
-- pintar warps
for key,warp in pairs(warp.warp_list) do
@@ -262,23 +208,24 @@ function world_draw()
dialeg.draw()
if stage_draw_middle then stage_draw_middle() end
-- if stage_draw_middle then stage_draw_middle() end
if stages.stage_draw_middle then stages.stage_draw_middle() end
cacau:draw()
if stage_draw_front then stage_draw_front() end
if stages.stage_draw_front then stages.stage_draw_front() end
remote_view_draw()
end
function update_game()
if stage~=stage_loaded then load_stage() end
surf.target(0)
surf.cls(16)
music_player:update()
world_update()
viewport_update()
stages.stage_viewport_update()
world_draw()
@@ -294,229 +241,6 @@ function update_game()
end
end
function pause()
print("pause()")
-- surf.source(0)
-- surf.target(back)
-- draw.surf(0,0,128,96,0,0)
-- surf.target(0)
-- surf.source(tiles)
-- pausa_option=1
-- pause_old_update=game_update
-- game_update=update_pause
end
function update_pause()
draw.rectf(16,16,97,65,16)
draw.rect(16,16,97,65,15)
draw.text("PAUSA",54,20,15)
menu_count=menu_count+1
local parpadeig=false
if menu_count>=20 then
parpadeig=true
if menu_count>40 then menu_count=0 end
end
draw.rect(28,33+(10*(pausa_option-1)),73,9,14)
if (not parpadeig) then draw.rect(28,33+(10*(pausa_option-1)),73,9,13) end
--draw.rect(28,33+(10*(pausa_option-1)),73,9,13)
draw.text("CONTINUAR",30,35,14)
draw.text("MUSICA:",30,45,14)
if music.enabled() then
draw.text("SI",91,45,15)
else
draw.text("NO",91,45,15)
end
draw.text("SÓ:",30,55,14)
if sound.enabled() then
draw.text("SI",91,55,15)
else
draw.text("NO",91,55,15)
end
draw.text("EIXIR",30,65,14)
if key.press(key.ESCAPE) then
surf.source(back)
draw.surf(0,0,128,96,0,0)
surf.source(tiles)
game_update = pause_old_update
elseif key.press(keyDown) or pad.press(btnDown) then
pausa_option = pausa_option + 1
if pausa_option == 5 then pausa_option = 1 end
elseif key.press(keyUp) or pad.press(btnUp) then
pausa_option = pausa_option - 1
if pausa_option == 0 then pausa_option = 4 end
elseif key.press(keyShoot) or pad.press(btnShoot) then
if pausa_option==1 then
surf.source(back)
draw.surf(0,0,128,96,0,0)
surf.source(tiles)
game_update = pause_old_update
elseif pausa_option==2 then
music.enabled(not music.enabled())
elseif pausa_option==3 then
sound.enabled(not sound.enabled())
else
game_exit()
game_init(true)
end
end
end
function print_analisis_field ( field )
local field_state=" "
if boss.analisis[field] then field_state="X" end
print(" [ "..field_state.." ] "..field)
end
function print_analisis()
print("--------------------------------------------")
print_analisis_field("can_chase_abad")
print_analisis_field("can_climb")
print_analisis_field("can_shot")
print_analisis_field("can_super")
print_analisis_field("can_go_altar")
print_analisis_field("falling")
print_analisis_field("going_to_fall")
print_analisis_field("target_reached")
print("X= "..boss.x..", OX= "..boss.x_old)
print(" ")
end
function special_keys()
if key.press(key.A) then
boss.x_old = boss.x
boss.x = boss.x-1
print_analisis()
end
if key.press(key.S) then
boss.y_old = boss.y
boss.y = boss.y+1
print_analisis()
end
if key.press(key.D) then
-- boss.x_old = boss.x
-- boss.x = boss.x+1
-- print_analisis()
dialeg.new( "Hola mundo!", abad )
end
if key.press(key.F) then
-- boss.x_old = boss.x
-- boss.x = boss.x+1
-- print_analisis()
dialeg.new( "Ma cuando arribo a casa", premiere )
end
if key.press(key.W) then
boss.y_old = boss.y
boss.y = boss.y-1
print_analisis()
end
if key.press(key.W) then
boss.y_old = boss.y
boss.y = boss.y-1
print_analisis()
end
if key.press(key.F) then
boss._pause = not boss._pause
end
if key.press(key.N1) then
-- abad prev room
local hab = abad.hab-1
if hab<0 then hab=0 end
local hab_x = 4
local hab_y = 3
local abad_x, abad_y = coords.room_to_world ( hab, hab_x, hab_y)
abad:move(abad_x, abad_y)
local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
end
if key.press(key.N2) then
-- abad next room
local hab = abad.hab+1
if hab<0 then hab=0 end
local hab_x = 4
local hab_y = 3
local abad_x, abad_y = coords.room_to_world ( hab, hab_x, hab_y)
abad:move(abad_x, abad_y)
local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
end
if key.press(key.N8) then
-- local abad_x, abad_y = coords.room_to_world ( 31, 8, 3 )
-- print(abad_x..", "..abad_y)
-- abad:move(abad_x, abad_y)
-- local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
imp.mode="away"
imp.mode_cooldown = 60000
print("away")
end
if key.press(key.N9) then
-- mapa_restore_backup()
-- set_actors_enabled_by_room(true, "boss", 44, 55)
-- viewp:free_move()
imp.mode="chase"
imp.mode_cooldown = 60000
print("chase")
end
if key.press(key.N0) then
-- abad go to room
-- local abad_x, abad_y = coords.room_to_world ( 34, 3, 3 )
-- print(abad_x..", "..abad_y)
-- abad:move(abad_x, abad_y)
-- local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
imp.init()
end
end
function debug_info()
-- fps_print()
-- if true then return end
font.current(font_default)
-- viewp:print()
-- msg_print(0,14,"ABAD= "..abad.x..", "..abad.y, true)
-- msg_print(0,21,"VIEW= "..viewp.x..", "..viewp.y, true)
local hab, xx, yy = coords.world_to_tile(abad.x, abad.y)
msg_print(0,28,hab.." ( "..xx..", "..yy.." )", true)
-- msg_print(0,35,hab.." ( "..xx..", "..yy.." )", true)
-- msg_print(0,42," JH= "..abad.jump_height,true)
-- view_coord(abad.x+8, abad.y+0, 16, 32, 6)
-- view_coord(abad.x+abad.bb.x, abad.y+abad.bb.h, 2, 2, 4)
-- view_coord(abad.x+abad.bb.x+abad.bb.w, abad.y+abad.bb.h, 2, 2, 2)
-- view_coord(abad.x, abad.y, 2, 2, 3)
-- if key.press(key.T) then
-- view_tile_id = not view_tile_id
-- view_checking_tile = false
-- end
-- if key.press(key.C) then
-- view_checking_tile = not view_checking_tile
-- view_tile_id = false
-- end
--
-- if view_tile_id then
-- write_tile(abad.x, abad.y, 0, true, "R")
-- write_tile(abad.x, abad.y+16, 0, true, "R")
-- write_tile(abad.x, abad.y+32, 0, true, "R")
--
-- write_tile(abad.x+16, abad.y+32, 0, true, "C")
--
-- write_tile(abad.x+32, abad.y, 0, true, "L")
-- write_tile(abad.x+32, abad.y+16, 0, true, "L")
-- write_tile(abad.x+32, abad.y+32, 0, true, "L")
-- end
--
-- if view_checking_tile then
-- local msg = "FLIP= true"
-- if not abad.flip then
-- msg ="FLIP= false"
-- view_coord(abad.x+abad.bb.w+abad.bb.x-1, abad.y+abad.bb.h-4, 2, 2, 2)
-- else
-- view_coord(abad.x+abad.bb.x-1, abad.y+abad.bb.h-4, 2, 2, 2)
-- end
-- msg_print(abad.x, abad.y-8,msg)
-- end
font.current(font_sf)
end
states:registrar("game", {game_init, update_game} )
require "game_debug"
+156
View File
@@ -0,0 +1,156 @@
DEBUG = false
-- DEBUG ---------------------------------------------------
function print_analisis_field ( field )
local field_state=" "
if boss.analisis[field] then field_state="X" end
print(" [ "..field_state.." ] "..field)
end
function print_analisis()
print("--------------------------------------------")
print_analisis_field("can_chase_abad")
print_analisis_field("can_climb")
print_analisis_field("can_shot")
print_analisis_field("can_super")
print_analisis_field("can_go_altar")
print_analisis_field("falling")
print_analisis_field("going_to_fall")
print_analisis_field("target_reached")
print("X= "..boss.x..", OX= "..boss.x_old)
print(" ")
end
function special_keys()
if key.press(key.A) then
boss.x_old = boss.x
boss.x = boss.x-1
print_analisis()
end
if key.press(key.S) then
boss.y_old = boss.y
boss.y = boss.y+1
print_analisis()
end
if key.press(key.D) then
-- boss.x_old = boss.x
-- boss.x = boss.x+1
-- print_analisis()
dialeg.new( "Hola mundo!", abad )
end
if key.press(key.F) then
-- boss.x_old = boss.x
-- boss.x = boss.x+1
-- print_analisis()
dialeg.new( "Ma cuando arribo a casa", premiere )
end
if key.press(key.W) then
boss.y_old = boss.y
boss.y = boss.y-1
print_analisis()
end
if key.press(key.W) then
boss.y_old = boss.y
boss.y = boss.y-1
print_analisis()
end
if key.press(key.F) then
boss._pause = not boss._pause
end
if key.press(key.N1) then
-- abad prev room
local hab = abad.hab-1
if hab<0 then hab=0 end
local hab_x = 4
local hab_y = 3
local abad_x, abad_y = coords.room_to_world ( hab, hab_x, hab_y)
abad:move(abad_x, abad_y)
local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
end
if key.press(key.N2) then
-- abad next room
local hab = abad.hab+1
if hab<0 then hab=0 end
local hab_x = 4
local hab_y = 3
local abad_x, abad_y = coords.room_to_world ( hab, hab_x, hab_y)
abad:move(abad_x, abad_y)
local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
end
if key.press(key.N8) then
-- local abad_x, abad_y = coords.room_to_world ( 31, 8, 3 )
-- print(abad_x..", "..abad_y)
-- abad:move(abad_x, abad_y)
-- local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
imp.mode="away"
imp.mode_cooldown = 60000
print("away")
end
if key.press(key.N9) then
-- mapa_restore_backup()
-- set_actors_enabled_by_room(true, "boss", 44, 55)
-- viewp:free_move()
imp.mode="chase"
imp.mode_cooldown = 60000
print("chase")
end
if key.press(key.N0) then
-- abad go to room
-- local abad_x, abad_y = coords.room_to_world ( 34, 3, 3 )
-- print(abad_x..", "..abad_y)
-- abad:move(abad_x, abad_y)
-- local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
imp.init()
end
end
function debug_info()
-- fps_print()
-- if true then return end
font.current(font_default)
-- viewp:print()
-- msg_print(0,14,"ABAD= "..abad.x..", "..abad.y, true)
-- msg_print(0,21,"VIEW= "..viewp.x..", "..viewp.y, true)
local hab, xx, yy = coords.world_to_tile(abad.x, abad.y)
msg_print(0,28,hab.." ( "..xx..", "..yy.." )", true)
-- msg_print(0,35,hab.." ( "..xx..", "..yy.." )", true)
-- msg_print(0,42," JH= "..abad.jump_height,true)
-- view_coord(abad.x+8, abad.y+0, 16, 32, 6)
-- view_coord(abad.x+abad.bb.x, abad.y+abad.bb.h, 2, 2, 4)
-- view_coord(abad.x+abad.bb.x+abad.bb.w, abad.y+abad.bb.h, 2, 2, 2)
-- view_coord(abad.x, abad.y, 2, 2, 3)
-- if key.press(key.T) then
-- view_tile_id = not view_tile_id
-- view_checking_tile = false
-- end
-- if key.press(key.C) then
-- view_checking_tile = not view_checking_tile
-- view_tile_id = false
-- end
--
-- if view_tile_id then
-- write_tile(abad.x, abad.y, 0, true, "R")
-- write_tile(abad.x, abad.y+16, 0, true, "R")
-- write_tile(abad.x, abad.y+32, 0, true, "R")
--
-- write_tile(abad.x+16, abad.y+32, 0, true, "C")
--
-- write_tile(abad.x+32, abad.y, 0, true, "L")
-- write_tile(abad.x+32, abad.y+16, 0, true, "L")
-- write_tile(abad.x+32, abad.y+32, 0, true, "L")
-- end
--
-- if view_checking_tile then
-- local msg = "FLIP= true"
-- if not abad.flip then
-- msg ="FLIP= false"
-- view_coord(abad.x+abad.bb.w+abad.bb.x-1, abad.y+abad.bb.h-4, 2, 2, 2)
-- else
-- view_coord(abad.x+abad.bb.x-1, abad.y+abad.bb.h-4, 2, 2, 2)
-- end
-- msg_print(abad.x, abad.y-8,msg)
-- end
font.current(font_sf)
end
+56
View File
@@ -0,0 +1,56 @@
dead={}
function game_over_init()
dead.count=0
dead.pos={}
dead.vel={}
for i=1,256 do
dead.pos[i]=0
dead.vel[i]=(200+math.random(0,399))/400
end
-- game_update=dead.update
-- music.play(audio_game_over,0)
music_player:play(audio_game_over,0)
states:next()
end
function game_over_update()
dead.count=dead.count+1
for i=1,256 do
if dead.pos[i]<192 then
dead.pos[i]=dead.pos[i]+dead.vel[i]
draw.vline(i-1,0,dead.pos[i],16)
end
end
if dead.count>50 then
if dead.count>130 then
draw.text("GAME OVER",96,90,2)
elseif dead.count>120 then
draw.text("GAME OVE",96,90,2)
elseif dead.count>110 then
draw.text("GAME OV",96,90,2)
elseif dead.count>100 then
draw.text("GAME O",96,90,2)
elseif dead.count>90 then
draw.text("GAME",96,90,2)
elseif dead.count>90 then
draw.text("GAM",96,90,2)
elseif dead.count>70 then
draw.text("GA",96,90,2)
elseif dead.count>60 then
draw.text("G",96,90,2)
end
end
if (dead.count>250 and (key.press(keyShoot) or pad.press(btnShoot))) or dead.count>500 then
-- game_exit()
-- game_init(true)
states:next()
end
end
function game_over_end()
states:executar("title",false)
end
states:registrar("game over",{game_over_init, game_over_update, game_over_end})
+1 -1
View File
@@ -268,7 +268,7 @@ if DEBUG_FN_NAME then print("shot") end
flip=true
x_ini = self.x-4
end
local hab, tx, ty, off_x, off_y = coords.world_to_tile(x_ini,self.y+(self.h/4))
local hab, tx, ty, off_x, off_y = coords.world_to_tile(x_ini,self.y+(self.h/2))
fireball.init(hab, tx, ty, flip, off_x, off_y)
sound.play(audio_hit)
+5
View File
@@ -279,6 +279,11 @@ function imp:update_normal()
self:next_frame()
-- colisions en personatges
-- self:colisions()
if viewp:inside(self.x, self.y, self.w, self.h) then
if collision(abad,self) then
abad_hurt(1)
end
end
end
end
+84 -50
View File
@@ -1,70 +1,75 @@
local abad={x=0,y=0,w=32,h=32,dx=88,dy=48,dw=32,dh=32}
local batman={x=0,y=96,w=32,h=32,dx=164,dy=48,dw=32,dh=32}
local cacaus={x=224,y=176,w=32,h=16,dx=152,dy=64,dw=32,dh=16}
local cacaus_trans={x=192,y=176,w=16,h=8,dx=65,dy=56,dw=16,dh=8}
local marc={x=30,y=6,w=198,h=102,color=2}
local pas_porta={x=146,y=48,w=14,h=32,color=16}
local abad ={ x=0, y= 0, w=32, h=32, dx= 88, dy=48, dw=32, dh=32 }
local batman={ x=0, y= 96, w=32, h=32, dx=164, dy=48, dw=32, dh=32 }
local cacaus={ x=224, y=176, w=32, h=16, dx=152, dy=64, dw=32, dh=16 }
local cacaus_trans={ x=192, y=176, w=16, h=8, dx=65, dy=56, dw=16, dh=8 }
local marc={ x=30, y=6, w=198, h=102, color=2 }
local pas_porta={ x=146, y=48, w=14, h=32, color=16 }
local scene_x_offset = 32
local scene_y_offset = 8
intro_wait=40
intro_step=0
local tiles_file = "tiles.gif"
local next_state = "title"
function draw_escenari ()
surf.cls(16)
draw_item_intro("marc",false)
view.origin(scene_x_offset, scene_y_offset)
mapa_draw(10)
-- Borrar la porta del mapa
draw_item_intro("pas porta")
end
local intro_wait=40
local intro_step=0
function draw_item_intro( name, flip, mood )
if ( name == "abad" ) then
-- abad.mood = mood or "normal"
draw.surf(abad.x, abad.y, abad.w, abad.h, abad.dx, abad.dy, abad.dw, abad.dh, flip)
abad_add_mood(abad.dx,0,abad.dy,0,flip,mood)
elseif (name == "batman" ) then
draw.surf(batman.x, batman.y, batman.w, batman.h, batman.dx, batman.dy, batman.dw, batman.dh, flip)
elseif (name == "cacaus" ) then
draw.surf(cacaus.x, cacaus.y, cacaus.w, cacaus.h, cacaus.dx, cacaus.dy, cacaus.dw, cacaus.dh, flip)
elseif (name == "cacaus trans" ) then
draw.surf(cacaus_trans.x, cacaus_trans.y, cacaus_trans.w, cacaus_trans.h, cacaus_trans.dx, cacaus_trans.dy, cacaus_trans.dw, cacaus_trans.dh, flip)
elseif (name == "marc" ) then
draw.rect(marc.x, marc.y, marc.w, marc.h, marc.color)
elseif (name == "pas porta" ) then
draw.rectf(pas_porta.x, pas_porta.y, pas_porta.w, pas_porta.h, pas_porta.color)
end
end
local intro_mapa_room_cols = 12; -- en quantitat de tiles
local intro_mapa_room_rows = 6; -- en quantitat de tiles
local intro_mapa_rooms_per_piso = 1
local intro_mapa_pisos = 1
local intro_mapa_empty_tile = 256
local intro_mapa={
-- 1
{
256, 66, 26, 27, 28, 29, 28, 29, 26, 27, 28, 29,
256,256,256, 24,256,256,256,256,256, 25,256,256,
64, 68,256,256,256,256,256,256,256, 25,256,256,
256,256, 66, 24,256,121,256,256,256, 38,256,256,
256, 66,256, 24,101,102,103,256,256, 38,256,256,
66,256,256, 24, 28, 29, 28, 29, 28, 29, 28, 29,
},
}
function intro_init()
print("INTRO_INIT")
-- game_update = intro_intro
intro_wait=400
-- print("INTRO_INIT")
mapa = intro_mapa
mapa_room_cols = intro_mapa_room_cols
mapa_room_rows = intro_mapa_room_rows
mapa_rooms_per_piso = intro_mapa_rooms_per_piso
mapa_pisos = intro_mapa_pisos
mapa_empty_tile = intro_mapa_empty_tile
mapa_surface_init()
load_tilemap( sf_mapa )
tiles=surf.load(tiles_file)
surf.source(tiles)
local paleta=pal.load(tiles_file)
pal.set(paleta)
intro_wait=400
surf.target(0)
surf.cls(16)
fade.fadein()
font.current(font_sf)
-- flow:add_path({intro_intro, intro_update})
states:next()
end
function intro_intro()
-- print("INTRO_INTRO")
intro_wait=1
-- game_update = intro_update
states:next()
fade.fadeoutin()
end
function intro_update()
-- print("INTRO_UPDATE")
if key.press(key.ESCAPE) or pad.press(btnPause) then
-- game_init(true)
print("INTRO_UPDATE")
-- game_update = menu_init
-- game_init(true)
intro_end()
states:next()
elseif key.press(key.SPACE) then
intro_wait=1
end
@@ -121,21 +126,50 @@ function intro_update()
elseif intro_step==7 then
start_scene(scenes.intro_04,58)
intro_step=intro_step+1
-- STEP 8
elseif intro_step==8 then
-- game_init(true)
-- game_update = menu_init
intro_end()
states:next()
end
intro_wait=50
end
end
function intro_end()
print("intro_end")
-- print("INTRO_END")
fade.fadeoutin()
states:executar("title")
states:executar(next_state)
end
states:registrar("intro", {intro_init, intro_intro, intro_update})
function draw_escenari ()
surf.cls(16)
draw_item_intro("marc",false)
view.origin(scene_x_offset, scene_y_offset)
mapa_draw(0)
-- Borrar la porta del mapa
draw_item_intro("pas porta")
end
function draw_item_intro( name, flip, mood )
if ( name == "abad" ) then
draw.surf(abad.x, abad.y, abad.w, abad.h, abad.dx, abad.dy, abad.dw, abad.dh, flip)
abad_add_mood(abad.dx,0,abad.dy,0,flip,mood)
elseif (name == "batman" ) then
draw.surf(batman.x, batman.y, batman.w, batman.h, batman.dx, batman.dy, batman.dw, batman.dh, flip)
elseif (name == "cacaus" ) then
draw.surf(cacaus.x, cacaus.y, cacaus.w, cacaus.h, cacaus.dx, cacaus.dy, cacaus.dw, cacaus.dh, flip)
elseif (name == "cacaus trans" ) then
draw.surf(cacaus_trans.x, cacaus_trans.y, cacaus_trans.w, cacaus_trans.h, cacaus_trans.dx, cacaus_trans.dy, cacaus_trans.dw, cacaus_trans.dh, flip)
elseif (name == "marc" ) then
draw.rect(marc.x, marc.y, marc.w, marc.h, marc.color)
elseif (name == "pas porta" ) then
draw.rectf(pas_porta.x, pas_porta.y, pas_porta.w, pas_porta.h, pas_porta.color)
end
end
states:registrar("intro", {intro_init, intro_intro, intro_update, intro_end})
+4 -90
View File
@@ -1,95 +1,7 @@
arcade_config = require("arcade_config")
coords = require "coords"
require "helpers"
require "controller"
require "states"
require "map"
require "mapa"
require "warp"
require "fade"
require "audio"
require "logo"
require "intro"
require "scenes"
require "title"
require "game"
require "opcions"
require "opcions_input"
require "point"
require "pause"
require "fps"
--require "menu"
coords.set_config({
tiles_width = arcade_config.tiles_width,
tiles_height = arcade_config.tiles_height,
room_cols = mapa_room_cols,
room_rows = mapa_room_rows,
rooms_per_floor = mapa_rooms_per_piso,
})
font_default = font.current()
function images_init()
tiles=surf.load("tiles.gif")
surf.source(tiles)
local paleta=pal.load("tiles.gif")
pal.set(paleta)
tiles2=surf.load("tiles2.gif")
-- Crear el warp
warp.init(tiles)
end
function image_close()
surf.free(tiles)
warp.close()
end
function fonts_init()
font_sf=font.load("X2_font.fnt")
end
function mapa_init()
sf_mapa=surf.new(mapa_room_cols*mapa_rooms_per_piso,mapa_room_rows*mapa_pisos)
load_tilemap( sf_mapa )
end
function audio_init()
-- Càrrega dels audios
audio_text_abad = sound.load(audio_text_abad)
audio_text_premiere = sound.load(audio_text_premiere)
audio_text_elalien = sound.load(audio_text_elalien)
audio_text_batman = sound.load(audio_text_batman)
audio_text_imp = sound.load(audio_text_imp)
audio_abad_jump = sound.load(audio_abad_jump)
audio_abad_fall = sound.load(audio_abad_fall)
audio_abad_hit = sound.load(audio_abad_hit)
audio_abad_shot = sound.load(audio_abad_shot)
audio_abad_step[1] = sound.load(audio_abad_step[1])
audio_abad_step[2] = sound.load(audio_abad_step[2])
audio_abad_step[3] = sound.load(audio_abad_step[3])
audio_abad_step[4] = audio_abad_step[2]
audio_switch = sound.load(audio_switch)
audio_hit = sound.load(audio_hit)
audio_low = sound.load(audio_low)
end
function mini.init()
-- back_sf=surf.new(256,192)
math.randomseed(os.time())
fonts_init()
images_init()
mapa_init()
fade.init()
audio_init()
controller:init()
logo_config(font_sf)
surf.target(0)
surf.cls(16)
states:executar("logo")
game_load()
end
function mini.update()
@@ -103,7 +15,9 @@ function mini.update()
win.cursor(fs)
end
if (game_update) then game_update() end
if (game_update) then
game_update()
end
-- Pausa per a que vaja be en mini 1.5.1
-- local t0 = os.clock()
-839
View File
@@ -1,839 +0,0 @@
mapa_room_cols = 12; -- en quantitat de tiles
mapa_room_rows = 6; -- en quantitat de tiles
mapa_rooms_per_piso = 10
mapa_pisos = 8
mapa_empty_tile = 256
-- 0 1 2 3 4 5 6 7 8 9
-- 10 11 12 13 14 15 16 17 18 19
-- ...
-- 70 71 72 73 74 75 76 77 78 79
mapa={
-- 1
{
256,256,256,18,19,21,20,21,20,21,20,21,
64,68,256,16,72,256,256,256,256,256,256,256,
256,256,66,256,88,256,256,70,71,256,256,256,
256,66,256,16,256,112,256,86,87,256,114,256,
66,256,256,16,256,256,256,256,256,256,256,256,
256,64,256,16,20,21,20,21,20,21,20,21,
},
-- 2
{
20,21,20,21,20,21,20,21,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,73,74,256,256,256,256,73,74,256,256,
256,256,89,90,256,256,256,256,89,90,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
-- 20,21,20,21,20,21,21,256,80,17,20,21,
20,21,20,21,20,21,21,256,256,0,20,21,
},
-- 3
{
20,21,20,21,20,21,20,21,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,256,256,
256,96,97,96,256,73,74,256,97,96,96,256,
256,99,256,100,256,89,90,256,99,256,100,256,
256,256,256,256,256,256,256,256,256,256,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 4
{
20,21,20,21,20,21,20,21,20,21,18,19,
256,256,256,256,256,256,256,256,256,256,77,17,
256,73,74,256,256,73,74,256,98,98,93,17,
256,89,90,256,256,89,90,256,99,100,256,256,
256,256,256,256,256,256,256,256,10,11,256,256,
20,21,20,21,20,21,20,21,10,11,20,21,
},
-- 5
{
66,256,256,67,256,65,256,64,256,256,256,66,
256,256,64,256,256,256,256,256,256,68,256,67,
18,19,18,19,18,19,18,19,256,256,65,256,
256,256,256,256,256,256,256,16,256,256,256,256,
256,256,256,256,256,256,256,16,256,64,256,66,
20,21,20,21,20,21,20,21,256,256,66,256,
},
-- 6
{
256,66,256,41,44,45,44,45,44,45,44,45,
64,256,256,41,256,256,256,256,256,256,256,256,
68,256,66,256,256,256,96,97,256,256,256,256,
256,67,256,41,256,256,99,100,256,256,256,256,
65,256,256,41,95,256,256,256,10,11,256,256,
256,65,42,43,44,45,44,45,10,11,44,45,
},
-- 7
{
42,43,256,256,256,256,65,256,256,256,256,64,
256,41,256,67,256,256,256,256,68,256,256,256,
256,41,256,256,256,66,256,256,256,256,256,256,
256,256,256,64,256,256,65,256,67,256,67,256,
256,256,256,256,256,256,256,256,256,256,256,256,
42,43,20,21,20,21,20,21,20,21,20,21,
},
-- 8
{
67,256,256,256,256,65,256,256,256,256,64,256,
256,256,67,256,256,256,256,68,256,256,256,256,
256,256,256,256,66,256,256,256,256,256,256,67,
256,256,64,256,256,65,256,67,256,67,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
20,21,20,21,17,256,256,17,20,21,20,21,
},
-- 9
{
256,256,256,256,65,256,256,256,256,64,17,17,
256,67,256,256,256,256,68,256,256,256,17,256,
256,256,256,66,256,256,256,256,256,256,17,256,
256,64,256,256,65,256,67,256,67,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 10
{
17,17,17,17,17,17,17,17,17,17,18,19,
256,256,256,256,256,256,256,256,256,256,17,17,
256,256,73,74,256,256,73,74,256,256,18,19,
256,256,89,90,256,256,89,90,256,256,17,17,
256,256,256,256,256,256,256,256,256,256,18,19,
-- 20,21,256,80,17,18,19,17,18,19,17,17,
20,21,256,256,0,18,19,17,18,19,17,17,
},
-- 11
{
256,66,26,27,28,29,28,29,26,27,28,29,
256,256,256,24,256,256,256,256,15,25,256,256,
64,68,256,256,256,256,256,256,256,25,256,256,
256,256,66,24,256,121,256,256,256,38,256,256,
256,66,256,24,101,102,103,256,256,38,256,256,
66,256,256,24,28,29,28,29,28,29,28,29,
},
-- 12
{
-- 28,29,28,29,28,29,29,256,256,256,26,27,
28,29,28,29,28,29,29,1,256,256,26,27,
256,256,256,256,256,256,256,256,256,25,72,256,
256,256,73,74,256,256,256,256,1,256,88,256,
256,256,89,90,256,256,256,1,256,256,256,256,
256,256,256,256,256,256,1,256,256,256,256,256,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 13
{
28,29,26,27,26,27,28,29,28,29,28,29,
256,256,256,26,27,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,73,74,256,256,
256,256,256,98,98,256,256,256,89,90,256,256,
256,256,104,101,102,103,256,256,256,256,256,256,
-- 28,29,28,29,28,29,29,256,81,25,28,29,
28,29,28,29,28,29,29,256,256,1,28,29,
},
-- 14
{
28,29,28,29,28,29,28,29,10,11,28,25,
256,256,256,256,256,256,256,256,10,11,256,25,
256,73,74,256,256,256,256,256,10,11,256,256,
256,89,90,256,256,75,76,256,10,11,256,25,
256,256,256,256,256,91,92,256,10,11,256,25,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 15
{
26,27,26,27,28,29,28,29,26,27,26,27,
28,29,256,256,256,256,256,256,256,256,28,24,
256,256,256,256,256,73,74,256,256,256,256,24,
256,256,75,76,256,89,90,256,75,76,256,24,
256,256,91,92,256,256,256,256,91,92,256,24,
26,27,28,29,28,29,28,29,28,29,26,27,
},
-- 16
{
64,256,26,27,28,29,28,29,10,11,28,29,
68,256,66,25,256,256,256,256,10,11,256,256,
256,67,256,256,256,107,108,256,10,11,256,256,
65,256,256,25,256,109,110,256,10,11,256,256,
256,65,256,25,256,256,256,256,10,11,256,256,
256,256,26,27,28,29,28,29,10,11,28,29,
},
-- 17
{
28,29,28,29,25,41,44,45,44,45,44,45,
256,256,256,256,25,41,256,256,256,256,256,256,
256,73,74,256,25,41,256,256,73,74,256,256,
256,89,90,78,25,41,256,256,89,90,256,256,
256,256,95,94,25,41,256,256,10,11,256,256,
28,29,28,29,25,41,44,45,10,11,44,45,
},
-- 18
{
44,45,44,45,41,256,256,41,44,45,44,45,
256,256,256,256,256,69,256,256,256,256,256,256,
256,256,256,256,256,256,69,256,256,256,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
256,256,256,41,41,256,69,41,41,256,256,256,
45,44,45,42,43,256,256,42,43,44,45,44,
},
-- 19
{
44,45,44,45,42,43,42,43,44,45,44,45,
256,256,256,256,256,40,40,256,256,256,256,256,
256,97,98,97,256,40,40,256,98,97,96,256,
256,99,256,100,256,40,40,256,99,256,100,256,
256,256,256,256,256,40,40,256,256,256,256,256,
-- 3,41,83,256,44,45,44,45,44,45,44,45,
45,3,256,256,44,45,44,45,44,45,44,45,
},
-- 20
{
-- 44,45,256,256,256,42,43,41,42,43,41,41,
44,45,3,256,256,42,43,41,42,43,41,41,
256,256,256,256,41,41,256,256,256,77,42,43,
256,256,256,3,256,41,256,256,256,93,41,41,
256,256,3,256,256,39,256,256,256,256,42,43,
256,3,256,256,256,38,256,256,8,9,41,41,
44,45,44,45,44,45,44,45,8,9,42,43,
},
-- 21
{
34,35,36,37,36,37,36,37,36,37,36,37,
32,256,256,256,256,256,256,256,256,256,256,256,
32,256,97,97,98,256,256,256,97,96,97,256,
32,256,99,256,100,256,256,256,99,256,100,256,
32,256,8,9,256,104,101,102,103,256,256,256,
34,35,8,9,36,37,36,37,36,37,36,37,
},
-- 22
{
36,37,33,33,36,37,36,37,33,33,36,37,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,96,97,96,98,256,256,256,256,
256,256,113,256,99,256,256,100,256,114,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 23
{
-- 37,36,37,36,37,36,37,256,256,256,36,37,
37,36,37,36,37,36,37,2,256,256,36,37,
256,256,256,256,256,256,256,256,256,33,256,256,
256,97,98,97,256,256,112,256,2,256,256,256,
256,99,256,100,256,256,256,2,256,75,76,256,
256,256,256,256,256,256,2,256,256,91,92,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 24
{
34,35,256,256,256,256,256,256,256,256,34,35,
256,2,34,35,34,35,34,35,34,35,2,256,
256,256,113,256,256,112,114,256,256,114,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,104,101,102,256,101,102,256,101,102,103,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 25
{
36,37,36,37,36,37,36,37,36,37,34,35,
256,256,256,256,256,256,73,74,256,256,77,32,
256,96,97,96,256,256,89,90,256,256,93,32,
256,99,256,100,256,121,256,256,256,256,256,32,
256,256,256,256,256,101,102,103,8,9,256,32,
36,37,36,37,36,37,36,37,8,9,33,32,
},
-- 26
{
18,19,17,17,18,19,17,17,10,11,18,19,
17,256,256,256,256,256,256,256,10,11,256,256,
18,19,256,256,256,256,256,256,10,11,256,256,
256,17,256,256,256,75,76,256,10,11,256,256,
18,19,256,256,256,91,92,256,10,11,256,256,
20,21,256,256,18,19,17,17,18,19,17,17,
},
-- 27
{
17,17,18,19,17,17,18,19,10,11,18,19,
256,256,256,256,256,256,256,256,10,11,256,256,
256,73,74,256,256,73,74,256,10,11,256,256,
256,89,90,256,256,89,90,256,10,11,256,256,
256,256,256,256,256,256,256,256,10,11,256,256,
-- 17,17,18,19,17,256,80,17,18,19,17,17,
17,17,18,19,17,256,256,0,18,19,17,17,
},
-- 28
{
18,19,17,18,19,256,256,33,33,34,35,33,
256,256,256,17,17,256,69,34,35,72,256,256,
256,256,256,18,19,256,69,33,33,88,256,256,
256,256,256,17,16,256,256,34,35,256,256,256,
256,256,256,18,19,69,256,41,33,256,256,256,
17,18,19,17,17,69,256,34,35,33,33,34,
},
-- 29
{
-- 33,256,256,256,33,33,34,35,33,33,34,35,
33,256,256,2,33,33,34,35,33,33,34,35,
256,33,256,256,256,256,256,256,256,256,256,256,
256,256,2,256,256,256,256,256,256,256,256,256,
256,256,256,2,256,256,256,117,98,106,116,256,
256,256,256,256,2,256,104,101,102,101,102,256,
34,35,33,33,34,35,33,33,34,35,33,33,
},
-- 30
{
33,33,34,35,33,33,34,35,8,9,33,33,
256,256,256,256,256,256,33,33,8,9,34,35,
256,256,256,256,256,97,34,35,8,9,33,33,
256,256,256,256,115,100,33,33,8,9,34,35,
256,256,256,104,101,102,34,35,8,9,33,33,
34,35,33,33,34,35,33,33,8,9,34,35,
},
-- 31
{
40,40,8,9,40,40,40,40,40,40,40,40,
40,45,8,9,45,44,45,44,45,44,45,44,
40,256,8,9,256,256,256,256,256,256,256,256,
40,256,8,9,256,256,112,75,76,113,256,256,
40,256,8,9,256,256,256,91,92,256,256,256,
42,43,44,45,44,45,44,45,44,45,44,45,
},
-- 32
{
40,40,40,40,40,40,40,40,40,40,40,40,
44,45,41,45,44,41,44,45,44,45,44,45,
256,256,38,256,256,38,256,256,256,256,256,256,
256,112,38,256,113,38,256,256,114,256,256,113,
256,256,38,256,256,38,256,256,256,256,256,256,
-- 44,45,41,83,256,44,45,44,45,44,45,44,
44,45,3,256,256,44,45,44,45,44,45,44,
},
-- 33
{
40,40,40,40,40,40,40,40,40,40,40,40,
43,44,45,44,45,42,43,44,45,44,45,42,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,75,76,256,114,113,256,75,76,256,256,
256,256,91,92,256,256,256,256,91,92,256,256,
44,45,44,45,44,45,44,45,44,45,44,45,
},
-- 34
{
40,40,40,40,40,40,40,40,40,40,40,40,
45,44,45,44,45,44,45,44,45,44,45,40,
256,256,256,256,256,256,256,256,73,74,256,40,
256,256,113,256,256,114,256,121,89,90,256,40,
256,256,256,256,256,256,256,101,102,103,256,40,
-- 44,45,41,83,256,44,45,44,45,44,45,40,
44,45,3,256,256,44,45,44,45,44,45,40,
},
-- 35
{
26,27,28,29,28,29,28,29,8,9,26,27,
24,15,256,256,256,256,256,256,8,9,256,24,
24,256,256,256,256,256,256,256,8,9,256,24,
24,256,256,256,256,256,256,256,8,9,256,24,
24,256,256,256,256,256,256,256,8,9,256,24,
26,27,28,29,28,29,28,29,8,9,26,27,
},
-- 36
{
24,29,256,256,1,25,26,27,25,1,28,29,
24,256,256,256,256,256,25,26,27,256,256,256,
24,256,256,256,256,256,256,256,25,256,256,256,
24,256,106,116,256,256,256,256,38,256,256,256,
24,25,101,102,256,256,256,256,38,256,256,256,
-- 28,29,28,29,25,81,256,28,29,28,29,28,
28,29,28,29,1,256,256,28,29,28,29,28,
},
-- 37
{
-- 29,26,27,28,29,256,256,256,26,27,26,27,
29,26,27,28,29,1,256,256,26,27,26,27,
256,256,256,256,256,256,256,25,256,256,28,29,
256,256,256,256,256,256,1,256,256,256,256,256,
256,112,256,256,256,1,256,256,256,256,113,256,
256,256,256,256,1,256,101,102,103,256,256,256,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 38
{
27,26,27,28,29,256,256,28,29,26,27,26,
29,256,256,256,256,256,69,256,256,256,256,28,
256,256,98,96,98,256,256,98,98,96,256,256,
256,256,99,256,100,256,256,99,256,100,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
29,28,29,28,29,69,256,28,29,28,29,28,
},
-- 39
{
28,29,25,25,28,29,25,25,28,29,25,25,
256,256,25,25,256,256,256,256,256,256,106,24,
256,256,15,256,256,256,256,256,256,256,95,24,
256,256,256,256,78,97,107,108,256,106,105,24,
256,256,256,256,94,101,102,110,103,105,98,24,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 40
{
24,29,28,29,28,29,28,29,8,9,26,27,
24,256,256,256,256,256,256,256,8,9,25,25,
24,256,114,256,256,256,112,256,8,9,26,27,
24,256,256,256,256,256,256,256,8,9,25,25,
24,256,256,256,105,256,256,256,8,9,26,27,
24,29,28,29,28,29,28,29,28,29,25,25,
},
-- 41
{
26,27,28,29,28,29,26,27,26,27,28,29,
24,72,256,256,256,256,256,28,29,256,256,256,
24,88,256,256,256,256,256,256,256,256,256,256,
24,256,256,256,112,256,256,256,256,256,114,256,
24,256,256,256,256,256,256,256,256,256,256,256,
-- 28,29,28,29,28,29,25,81,256,28,29,29,
28,29,28,29,28,29,1,256,256,28,29,29,
},
-- 42
{
-- 28,29,256,256,256,1,26,27,26,27,28,29,
28,29,256,256,1,1,26,27,26,27,28,29,
256,256,25,256,256,256,256,28,29,256,256,256,
256,256,256,1,256,256,256,256,256,256,256,256,
256,113,256,256,1,256,256,96,97,96,98,256,
256,256,256,256,256,1,256,101,256,256,102,256,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 43
{
28,29,28,29,26,27,26,27,28,29,26,27,
256,256,256,256,256,28,29,256,256,256,77,24,
256,256,256,256,256,256,256,256,256,256,93,24,
256,113,256,256,256,75,76,256,114,256,256,24,
256,256,10,11,256,91,92,256,256,256,256,24,
28,29,10,11,28,29,28,29,28,29,28,29,
},
-- 44
{
-- 33,37,256,256,256,36,37,36,37,36,37,2,
33,37,256,256,2,36,37,36,37,36,37,2,
32,256,33,256,256,256,256,256,256,256,256,256,
32,98,256,2,256,256,256,256,256,256,256,256,
32,99,256,256,2,256,256,256,75,76,256,256,
32,256,256,256,256,2,256,256,91,92,256,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 45
{
36,37,36,37,36,37,36,37,8,9,34,35,
256,256,256,256,256,256,256,256,8,9,256,32,
256,256,98,97,96,256,256,256,8,9,256,32,
256,256,99,256,100,256,256,256,8,9,256,32,
256,256,256,256,101,102,103,256,8,9,256,32,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 46
{
-- 18,19,18,19,256,256,256,20,21,20,21,20,
18,19,18,19,256,256,0,20,21,20,21,20,
18,19,72,256,17,256,256,256,256,256,256,256,
18,19,88,256,256,0,256,256,256,256,256,256,
18,19,256,75,76,78,0,256,256,116,256,256,
18,19,256,91,92,94,95,0,256,101,102,256,
18,19,18,19,18,19,18,19,18,19,18,19,
},
-- 47
{
20,21,20,21,20,21,20,21,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,256,256,
256,97,96,98,97,256,256,96,97,98,96,256,
114,99,256,256,100,114,114,99,256,256,100,114,
256,256,256,256,256,256,256,256,256,256,256,256,
18,19,18,19,18,19,18,19,18,19,18,19,
},
-- 48
{
20,21,20,21,17,256,256,17,20,21,20,21,
256,256,256,256,256,256,69,256,256,256,256,256,
256,256,96,97,256,256,69,256,256,256,256,256,
256,115,99,100,256,256,256,256,256,117,256,256,
256,101,102,103,256,111,111,256,101,102,103,256,
19,18,19,18,19,69,256,18,19,18,19,18,
},
-- 49
{
20,21,256,69,18,19,18,19,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,114,256,
256,256,69,256,256,256,114,256,256,256,256,256,
256,114,69,111,256,256,256,256,17,18,19,17,
256,256,111,256,18,19,18,19,18,19,18,19,
18,19,256,69,17,18,19,18,19,18,19,17,
},
-- 50
{
20,21,20,21,20,21,20,21,20,21,20,16,
256,114,256,256,256,256,256,256,256,256,98,16,
256,256,256,256,256,256,256,256,256,256,100,16,
17,19,256,256,256,114,256,256,256,256,78,16,
18,19,18,19,256,256,256,256,256,256,94,16,
-- 17,18,19,18,19,18,19,256,80,17,18,19,
17,18,19,18,19,18,19,256,256,0,18,19,
},
-- 51
{
-- 42,43,44,45,44,45,256,256,256,44,45,45,
42,43,44,45,44,45,256,256,3,44,45,45,
40,72,256,256,256,256,41,256,256,256,256,256,
40,96,256,256,256,256,256,3,256,256,256,256,
40,99,256,114,256,114,256,256,3,256,256,256,
40,256,256,256,256,256,256,256,256,3,256,256,
44,45,44,45,44,45,44,45,44,45,44,45,
},
-- 52
{
44,45,44,45,44,45,44,45,44,45,44,41,
256,256,256,256,256,256,256,256,256,256,256,40,
256,256,73,74,256,256,256,70,71,256,97,40,
256,256,89,90,256,256,256,86,87,256,100,40,
256,256,256,256,256,256,256,256,256,256,256,40,
-- 44,45,41,83,256,44,44,45,44,45,44,45,
44,45,3,256,256,44,44,45,44,45,44,45,
},
-- 53
{
18,19,10,11,18,19,17,17,20,21,20,21,
16,15,10,11,256,256,256,256,256,256,256,256,
16,256,10,11,256,256,75,76,256,256,256,256,
16,256,10,11,256,256,91,92,256,256,256,256,
16,256,10,11,256,256,18,19,256,256,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 54
{
20,21,20,21,21,17,18,19,67,256,256,256,
256,256,256,256,256,17,18,19,256,65,68,64,
256,256,256,256,256,256,18,19,256,256,256,256,
256,256,256,256,256,256,38,256,67,256,64,256,
256,256,256,256,256,256,38,256,256,256,256,256,
20,21,20,21,20,21,20,21,54,55,54,56,
},
-- 55
{
256,65,256,256,256,67,256,67,256,256,256,256,
256,256,256,64,256,256,256,256,65,68,64,256,
256,256,256,256,256,256,64,256,256,256,256,67,
256,256,65,67,256,256,64,256,256,64,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
54,55,54,56,56,55,54,56,54,56,55,54,
},
-- 56
{
65,256,256,256,67,256,67,256,256,256,256,64,
256,256,64,256,256,256,256,65,68,64,256,256,
256,256,256,256,256,64,256,256,256,256,67,256,
256,65,67,256,256,64,256,256,64,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
55,54,55,54,56,54,55,56,54,55,54,56,
},
-- 57
{
256,256,256,67,34,35,34,35,34,35,34,35,
256,64,256,256,34,35,72,256,256,256,256,256,
256,256,256,256,34,35,88,256,256,256,256,256,
65,67,256,256,256,38,256,256,75,76,256,256,
256,256,256,256,256,38,256,256,91,92,256,256,
54,55,56,54,36,37,36,37,36,37,36,37,
},
-- 58
{
35,34,35,34,35,69,256,34,35,34,35,34,
256,256,256,256,256,69,256,256,256,256,256,256,
256,113,70,71,114,256,256,112,107,108,113,256,
256,256,86,87,256,256,69,256,109,110,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
37,36,37,36,37,256,256,36,37,36,37,36,
},
-- 59
{
34,35,256,256,34,35,34,35,34,35,34,35,
256,256,256,69,256,256,256,256,256,256,256,256,
256,256,69,256,256,256,97,96,256,256,256,256,
256,256,111,111,256,256,99,100,256,256,256,256,
256,41,120,119,41,256,256,256,8,9,256,256,
3,41,46,47,41,3,36,37,8,9,36,37,
},
-- 60
{
-- 35,34,35,34,35,34,35,256,256,33,34,35,
35,34,35,34,35,34,35,2,256,256,34,35,
-- 256,256,36,37,256,256,256,256,256,33,34,35,
256,256,36,37,256,256,256,256,256,2,34,35,
256,256,256,256,256,256,256,256,2,77,34,35,
256,256,116,256,256,256,256,2,256,93,34,35,
256,256,101,102,103,256,2,256,256,256,34,35,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 61
{
18,19,21,20,21,20,21,20,21,17,18,19,
16,15,256,256,256,256,256,256,256,77,18,19,
16,256,256,256,256,256,256,256,256,93,18,19,
16,256,256,256,256,256,256,116,256,78,18,19,
16,256,10,11,256,256,101,102,256,94,18,19,
20,21,10,11,20,21,20,21,20,21,20,21,
},
-- 62
{
-- 18,19,256,256,256,20,20,21,20,21,20,21,
18,19,256,256,0,0,20,21,20,21,20,21,
16,72,17,256,256,256,256,256,256,256,256,256,
16,88,256,0,256,256,256,256,256,256,256,256,
16,256,256,78,0,256,256,114,75,76,256,256,
16,95,256,94,256,0,256,256,91,92,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 63
{
20,21,20,21,20,21,20,21,20,21,20,17,
256,256,256,256,256,256,256,256,256,256,256,16,
256,256,256,256,256,256,256,256,256,256,98,16,
256,256,256,256,256,256,117,97,96,256,100,16,
256,256,256,256,256,256,101,256,102,103,256,16,
-- 20,21,17,80,256,20,20,21,20,21,20,21,
20,21,0,256,256,20,20,21,20,21,20,21,
},
-- 64
{
41,48,49,48,50,49,48,49,48,50,49,48,
41,256,256,256,256,256,256,256,256,256,256,256,
41,256,256,256,256,256,256,256,256,256,256,256,
41,256,256,256,113,256,256,114,256,256,112,256,
41,256,8,9,256,256,256,256,256,256,256,256,
42,43,8,9,42,43,42,43,42,43,42,43,
},
-- 65
{
48,50,48,49,50,49,50,48,50,49,50,48,
256,256,256,256,256,256,256,256,256,256,112,256,
256,256,256,256,256,256,113,256,256,256,256,256,
256,256,114,256,256,256,256,256,42,43,42,43,
256,256,256,256,42,43,42,43,256,256,256,256,
42,43,42,43,256,256,256,256,256,256,256,256,
},
-- 66
{
48,49,48,48,50,49,48,50,49,48,48,50,
256,113,256,256,114,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
42,43,42,43,42,43,256,256,256,112,256,256,
256,256,256,256,42,43,3,256,256,256,256,256,
256,256,256,256,42,43,42,43,42,43,42,43,
},
-- 67
{
50,48,50,49,50,48,50,49,41,42,43,48,
256,256,256,256,256,256,256,256,77,42,43,256,
256,256,256,256,256,256,256,256,93,42,43,256,
256,256,114,256,256,113,256,256,256,42,43,256,
256,256,256,256,256,256,256,256,256,42,43,256,
-- 42,43,41,41,42,43,41,83,256,42,43,50,
42,43,41,41,42,43,3,256,256,42,43,50,
},
-- 68
{
25,28,29,26,27,256,69,26,27,28,29,28,
24,97,256,256,256,256,256,256,256,256,256,256,
24,99,256,256,256,69,256,256,256,256,256,256,
24,256,95,256,113,69,256,256,114,75,76,256,
24,101,102,103,256,111,111,256,256,91,92,256,
28,28,29,28,29,256,69,28,29,28,29,28,
},
-- 69
{
28,29,26,27,26,27,28,29,8,9,28,29,
256,256,256,28,29,256,256,256,8,9,256,256,
256,256,256,256,256,256,256,256,8,9,256,256,
75,76,75,76,75,76,75,76,8,9,256,256,
91,92,91,92,91,92,91,92,8,9,256,256,
28,29,1,26,27,1,28,29,8,9,28,29,
},
-- 70
{
28,29,26,27,25,25,256,256,65,256,256,256,
256,256,256,77,26,27,256,256,256,68,256,256,
256,256,256,93,25,25,256,256,256,256,66,256,
256,256,256,78,26,27,256,66,256,256,256,67,
256,256,95,94,25,25,256,256,256,256,256,256,
28,29,28,29,26,27,54,56,54,56,55,54,
},
-- 71
{
46,47,10,11,46,47,46,47,46,47,46,47,
47,256,10,11,256,256,256,256,256,256,256,256,
47,98,10,11,256,256,256,256,256,256,256,256,
47,99,10,11,256,256,115,105,256,256,256,256,
47,256,10,11,256,256,101,102,103,256,256,256,
46,47,46,47,46,47,46,47,46,47,46,47,
},
-- 72
{
46,47,46,47,46,47,46,47,46,47,46,47,
256,256,256,256,256,256,26,27,26,27,28,29,
256,256,256,256,256,256,38,256,256,256,256,256,
256,256,256,116,256,256,38,256,256,256,256,256,
256,256,101,102,256,256,26,27,26,27,256,256,
46,47,46,47,46,47,46,47,46,47,28,29,
},
-- 73
{
-- 46,47,256,256,256,25,26,27,26,27,26,27,
46,47,256,256,1,25,26,27,26,27,26,27,
28,29,25,256,256,256,256,256,256,28,29,25,
256,256,256,1,256,256,256,116,96,96,256,256,
256,256,256,256,1,256,256,99,256,100,256,256,
256,25,256,256,256,1,256,256,256,256,256,256,
28,29,28,29,26,27,26,27,26,27,26,27,
},
-- 74
{
26,27,8,9,26,27,26,27,26,27,26,27,
25,256,8,9,1,25,28,29,28,29,25,1,
256,256,8,9,256,256,256,256,256,256,256,256,
256,256,8,9,256,256,256,116,106,256,256,256,
256,256,8,9,256,256,104,101,102,103,256,256,
26,27,26,27,26,27,26,27,26,27,26,27,
},
-- 75
{
26,27,26,27,26,27,26,27,26,27,26,27,
256,256,28,29,25,28,29,25,28,29,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,114,256,256,256,113,256,256,256,256,114,256,
256,256,256,256,256,256,256,256,256,256,256,256,
26,27,28,29,28,29,28,29,28,29,26,27,
},
-- 76
{
26,27,26,27,26,27,26,27,18,19,20,21,
256,256,256,256,256,256,15,25,17,15,256,256,
256,256,256,256,256,256,256,25,17,256,256,256,
256,256,256,114,256,256,78,25,17,256,256,256,
256,256,256,256,256,95,94,25,17,256,256,256,
26,27,26,27,26,27,26,27,51,53,52,51,
},
-- 77
{
-- 18,19,18,19,18,19,256,256,256,18,19,52,
18,19,18,19,18,19,256,256,0,18,19,52,
256,256,17,72,256,256,17,256,256,256,256,256,
256,256,38,88,256,113,256,0,256,256,256,256,
256,256,38,256,256,256,256,256,0,256,256,256,
256,256,38,256,256,256,256,256,256,0,256,256,
52,51,52,53,52,53,51,52,51,53,52,53,
},
-- 78
{
51,52,53,51,52,256,256,52,53,51,52,17,
256,256,256,256,256,256,69,256,256,256,256,17,
256,256,256,256,256,69,256,256,256,256,256,17,
256,256,256,256,256,111,111,106,256,256,78,17,
256,256,256,256,17,118,119,17,256,95,94,17,
51,52,53,53,51,53,52,53,51,52,51,17,
},
-- 79
{
256,256,256,256,42,43,42,43,8,9,42,43,
256,256,256,256,42,43,72,256,8,9,256,256,
256,126,127,256,42,43,88,256,8,9,256,256,
256,256,256,256,42,43,256,256,8,9,256,256,
256,256,256,256,42,43,256,256,8,9,256,256,
256,256,256,256,42,43,42,43,42,43,42,43,
},
-- 80
{
42,43,42,43,42,43,42,43,256,256,256,256,
256,256,256,256,256,15,42,43,256,256,256,256,
256,256,256,256,256,256,42,43,256,126,127,256,
256,256,256,256,256,256,42,43,256,256,256,256,
256,256,256,256,256,256,42,43,256,256,256,256,
42,43,42,43,42,43,42,43,256,256,256,256,
},
}
+12 -4
View File
@@ -1,9 +1,16 @@
-- require "map"
tiletype={void=0,nonpc=1,stair=2,switch=3,half=4,block=5}
mapa={}
mapa.wait=0
mapa.step=0
mapa_room_cols = 0
mapa_room_rows = 0
mapa_rooms_per_piso = 0
mapa_pisos = 0
mapa_empty_tile = 0
half_block_set={
[20] = true, [21] = true,
[22] = true, [28] = true,
@@ -96,11 +103,12 @@ function arc_mapa_update()
end
end
function mapa_draw(hab)
for ty=0,5 do
for tx=0,11 do
local tile=mapa[1+hab][1+tx+ty*12]
if tile~=256 and (tile<126 or mapa.step>4) then
for ty=0,mapa_room_rows-1 do
for tx=0,mapa_room_cols-1 do
local tile=mapa[1+hab][1+tx+ty*mapa_room_cols]
if tile~=mapa_empty_tile and (tile<126 or mapa.step>4) then
-- draw.surf((tile&15)*8,64+(tile>>4)*8,8,8,tx*8,ty*8)
local txr = arcade_config.tiles_per_row-1
local txr2 = arcade_config.tiles_per_row_base2
-276
View File
@@ -1,276 +0,0 @@
function menu_init()
print("MENU INIT")
menu_sel=0
menu_state=update_main_menu;
abad.update = abad_nop
game_update=update_menu
menu_count=0
menu_change_room=300
menu_room=math.random(0,59)
music.play(audio_main_song)
end
function menu_update()
--game_update=update_game
music.stop()
end
function draw_hab(hab,x,y)
end
function mapa_update(hab1, hab2)
end
function redraw_menu_hab()
-- draw_hab(menu_room,16,41)
-- draw.rectf(0,0,15*o2aX,97*o2aX,16)
-- draw.rectf(114*o2aX,0,78*o2aX,97*o2aX,16)
-- draw.rect(15*o2aX,40*o2aX,99*o2aX,50*o2aX,2)
-- mapa_update(abad.hab,menu_room)
-- for key,actor in pairs(actors) do
-- actor:update()
-- end
-- imp.update()
-- bambolla.update()
-- cacau.update()
-- fireball.update()
-- switches.update()
end
function update_menu()
menu_change_room=menu_change_room-1
if menu_change_room==0 then
menu_room = math.random(0,59)
menu_change_room=300
end
surf.cls(16)
draw_title(14*o2aX, 0)
menu_state()
end
function update_options_menu()
menu_count=menu_count+1
local parpadeig=false
if menu_count>=20 then
parpadeig=true
if menu_count>40 then menu_count=0 end
end
draw.rect(28*o2aX,(28+(10*menu_sel))*o2aX,73*o2aX,9*o2aX,14)
if (not parpadeig) then draw.rect(28*o2aX,(28+(10*menu_sel))*o2aX,73*o2aX,9*o2aX,13) end
arc_text("MÚSICA", 30*o2aX, 30*o2aX, 14); arc_text(music.enabled() and "SI" or "NO",91*o2aX,30*o2aX,15)
arc_text("", 30*o2aX, 40*o2aX, 14); arc_text(sound.enabled() and "SI" or "NO",91*o2aX,40*o2aX,15)
arc_text("REDEFINIR TECLAT", 30*o2aX, 50*o2aX, 14)
arc_text("REDEFINIR GAMEPAD", 30*o2aX, 60*o2aX, 14)
arc_text("TORNAR", 30*o2aX, 70*o2aX, 14)
if key.press(keyShoot) or key.press(key.SPACE) or pad.press(pad.A) or pad.press(btnShoot) then
if menu_sel==0 then
music.enabled(not music.enabled())
if music.enabled() then music.play(audio_main_song) end
elseif menu_sel==1 then
sound.enabled(not sound.enabled())
elseif menu_sel==2 then
menu_count=0
menu_state=update_redefine_keys_menu
elseif menu_sel==3 then
menu_count=0
menu_state=update_redefine_pad_menu
else
menu_count=0
menu_sel=0
menu_state=update_main_menu
end
elseif key.press(keyDown) or key.press(key.DOWN) or pad.press(pad.DOWN) or pad.press(btnDown) then
menu_sel=menu_sel+1
if menu_sel==5 then menu_sel=0 end
elseif key.press(keyUp) or key.press(key.UP) or pad.press(pad.UP) or pad.press(btnUp) then
menu_sel=menu_sel-1
if menu_sel==-1 then menu_sel=4 end
elseif key.press(key.ESCAPE) or pad.press(btnPause) then
menu_count=0
menu_sel=0
menu_state=update_main_menu
end
end
function update_main_menu()
menu_count=menu_count+1
local parpadeig=false
if menu_count>=20 then
parpadeig=true
if menu_count>40 then menu_count=0 end
end
draw.rect(28*o2aX,(18+(10*menu_sel))*o2aX,73*o2aX,9*o2aX,14)
if (not parpadeig) then draw.rect(28*o2aX,(18+(10*menu_sel))*o2aX,73*o2aX,9*o2aX,13) end
arc_text("JUGAR", 54*o2aX, 20*o2aX, 14)
arc_text("OPCIONS", 50*o2aX, 30*o2aX, 14)
--if (not parpadeig or menu_sel~=2) then text("REDEFINIR GAMEPAD", 30, 32, 13) end
redraw_menu_hab()
if key.press(keyShoot) or key.press(key.SPACE) or pad.press(pad.A) or pad.press(btnShoot) then
if menu_sel==0 then
game_exit()
game_init()
fade.fadeoutin()
elseif menu_sel==1 then
menu_count=0
menu_sel=0
menu_state=update_options_menu--update_redefine_keys_menu;
else
menu_count=0
menu_state=update_redefine_pad_menu
end
elseif key.press(keyDown) or key.press(key.DOWN) or pad.press(pad.DOWN) or pad.press(btnDown) then
menu_sel=menu_sel+1
if menu_sel==2 then menu_sel=0 end
elseif key.press(keyUp) or key.press(key.UP) or pad.press(pad.UP) or pad.press(btnUp) then
menu_sel=menu_sel-1
if menu_sel==-1 then menu_sel=1 end
elseif key.press(key.ESCAPE) or pad.press(btnPause) then
sys.quit()
end
end
function update_redefine_keys_menu()
if key.press(key.ESCAPE) then
menu_count = 0
menu_state = update_options_menu;
end
if menu_count==0 then
arc_textB("PULSA TECLA PER A AMUNT", 20*o2aX, 24*o2aX, 13)
local k = key.press();
if k ~= 0 and k~=key.ESCAPE then
menu_count = 1
keyUp=k
config.key("keyup", keyUp)
end
elseif menu_count==1 then
arc_textB("PULSA TECLA PER A AVALL", 20*o2aX, 24*o2aX, 13)
local k = key.press();
if k ~= 0 and k~=key.ESCAPE then
menu_count = 2
keyDown=k
config.key("keydown", keyDown)
end
elseif menu_count==2 then
arc_textB("PULSA TECLA PER A ESQUERRA", 14*o2aX, 24*o2aX, 13)
local k = key.press();
if k ~= 0 and k~=key.ESCAPE then
menu_count = 3
keyLeft=k
config.key("keleft", keyLeft)
end
elseif menu_count==3 then
arc_textB("PULSA TECLA PER A DRETA", 20*o2aX, 24*o2aX, 13)
local k = key.press();
if k ~= 0 and k~=key.ESCAPE then
menu_count = 4
keyRight=k
config.key("keyright", keyRight)
end
elseif menu_count==4 then
arc_textB("PULSA TECLA PER A BOTAR", 20*o2aX, 24*o2aX, 13)
local k = key.press();
if k ~= 0 and k~=key.ESCAPE then
menu_count = 5
keyJump=k
config.key("keyjump", keyJump)
end
elseif menu_count==5 then
arc_textB("PULSA TECLA PER A DISPAR", 18*o2aX, 24*o2aX, 13)
local k = key.press();
if k ~= 0 and k~=key.ESCAPE then
menu_count = 0
menu_state = update_options_menu;
keyShoot=k
config.key("keyshoot", keyShoot)
end
end
end
function update_redefine_pad_menu()
if key.press(key.ESCAPE) then
menu_count = 0
menu_state = update_options_menu;
end
if menu_count==0 then
arc_textB("PULSA BOTÓ PER A AMUNT", 22*o2aX, 24*o2aX, 13)
local btn = pad.press();
if btn ~= -1 then
menu_count = 1
btnUp=btn
config.key("btnup", btnUp)
end
elseif menu_count==1 then
arc_textB("PULSA BOTÓ PER A AVALL", 22*o2aX, 24*o2aX, 13)
local btn = pad.press();
if btn ~= -1 then
menu_count = 2
btnDown=btn
config.key("btndown", btnDown)
end
elseif menu_count==2 then
arc_textB("PULSA BOTÓ PER A ESQUERRA", 16*o2aX, 24*o2aX, 13)
local btn = pad.press();
if btn ~= -1 then
menu_count = 3
btnLeft=btn
config.key("keleft", btnLeft)
end
elseif menu_count==3 then
arc_textB("PULSA BOTÓ PER A DRETA", 22*o2aX, 24*o2aX, 13)
local btn = pad.press();
if btn ~= -1 then
menu_count = 4
btnRight=btn
config.key("btnright", btnRight)
end
elseif menu_count==4 then
arc_textB("PULSA BOTÓ PER A BOTAR", 22*o2aX, 24*o2aX, 13)
local btn = pad.press();
if btn ~= -1 then
menu_count = 5
btnJump=btn
config.key("btnjump", btnJump)
end
elseif menu_count==5 then
arc_textB("PULSA BOTÓ PER A DISPAR", 20*o2aX, 24*o2aX, 13)
local btn = pad.press();
if btn ~= -1 then
menu_count = 6
btnShoot=btn
config.key("btnshoot", btnShoot)
end
elseif menu_count==6 then
arc_textB("PULSA BOTÓ PER A GPS ARRERE", 14*o2aX, 24*o2aX, 13)
local btn = pad.press();
if btn ~= -1 then
menu_count = 7
btnCycle1=btn
config.key("btncycle1", btnCycle1)
end
elseif menu_count==7 then
arc_textB("PULSA BOTÓ PER A GPS AVANT", 14*o2aX, 24*o2aX, 13)
local btn = pad.press();
if btn ~= -1 then
menu_count = 8
btnCycle2=btn
config.key("btncycle2", btnCycle2)
end
elseif menu_count==8 then
arc_textB("PULSA BOTÓ PER A PAUSA", 22*o2aX, 24*o2aX, 13)
local btn = pad.press();
if btn ~= -1 then
menu_count = 0
menu_state = update_options_menu;
btnPause=btn
config.key("btnpause", btnPause)
end
end
end
+80
View File
@@ -0,0 +1,80 @@
music_info = {
mus_life_ogg = 1.6
}
music_player = {
playlist = {song="", pos=0},
song = "",
playing = false,
pos = 0,
old_pos = 0,
check_time = 0,
}
function music_player:play(song, loop, enqueue)
-- print("MUSIC_PLAYER:PLAY "..song)
if enqueue then
self.playlist.song = self.song
self.playlist.pos = music.pos()
end
-- print( os.clock())
if loop~=nil then
music.play(song, loop)
else
music.play(song)
end
-- print( os.clock())
self.song = song
-- self.old_pos = music.pos()
self.playing = true
self.check_time = os.clock()
end
function music_player:pause()
music.pause()
end
function music_player:resume()
music.resume()
end
function music_player:stop()
music.stop()
end
function music_player:pos()
music.pos()
end
function music_player:enabled()
music.enabled()
end
function music_player:update()
-- self.pos = music.pos()
local curr_time = os.clock()
local song_name = self.song:gsub("%.", "_")
if music_info[song_name]~=nil and curr_time-self.check_time>music_info[song_name] then
-- print("MUSIC_PLAYER:UPDATE "..self.pos.." / "..self.old_pos.." / "..music.pos())
-- if self.pos==self.old_pos then self.playing = false end
self.playing = false
self.old_pos = self.pos
self.check_time = curr_time
end
if not self.playing and self.playlist.song~="" then
self.song = self.playlist.song
self.pos = self.playlist.pos
-- print( os.clock())
music.play(self.song)
-- print( os.clock())
-- music.pos(self.pos)
self.playlist.song = ""
self.playlist.pos = 0
end
end
+70
View File
@@ -0,0 +1,70 @@
one_up_gif_x = 208
one_up_gif_y = 128
one_up={}
function one_up.new(_hab, _x, _y, _y_speed, _max_height, _flip)
_raising = false
if _max_height>0 then _raising=true end
return {
name="one_up",
hab = _hab,
x = _x, y = _y,
w = 16, h = 16,
flip = _flip,
vx=0, vy=0,
y_speed = _y_speed,
max_height = _max_height,
raising = _raising,
enabled=true,
wait = 0,
bb={x=4,y=0,w=9,h=16},
update=one_up.update,
draw=one_up.draw,
}
end
function one_up:draw()
if not self.enabled then return end
local x = one_up_gif_x
local y = one_up_gif_y
local scr_x, scr_y = viewp:screen_coords( self.x, self.y )
draw.surf(x,y,self.w,self.h,scr_x,scr_y,self.w,self.h,self.flip)
-- draw.rect(scr_x+one_up.bb.x,scr_y+one_up.bb.y,one_up.bb.w,one_up.bb.h,3)
end
function one_up:update()
if not self.enabled then return end
if self.raising and self.y_speed>0 then
self.y_speed = -self.y_speed
elseif not self.raising and self.y_speed<0 then
self.y_speed = -self.y_speed
end
local x2_check = self.x+self.bb.x+self.bb.w
local x1_check = self.x+self.bb.x
local y_check = self.y+self.bb.h+self.y_speed
if true then
self.wait=0
self.max_height = self.max_height+self.y_speed
self.y = self.y+self.y_speed
if self.max_height==0 then self.raising=false end
end
self.wait=self.wait+1
local tile1_hit_type= arc_check_tile(x1_check, y_check )
local tile2_hit_type= arc_check_tile(x2_check, y_check)
local block_tile = tile1_hit_type == tiletype.block or tile2_hit_type == tiletype.block
if block_tile then self.y_speed=0 end
self.hab = coords.world_to_tile(self.x, self.y)
if self.hab==abad.hab then
if collision(abad,self) then
abad_lifes_up(1)
self.enabled = false
remove_actor(self)
end
end
end
+2 -1
View File
@@ -21,7 +21,8 @@ function opcions_update()
if key.press(keyShoot) or key.press(key.SPACE) or pad.press(pad.A) or pad.press(btnShoot) or key.press(key.RETURN) then
if menu_sel==0 then
music.enabled(not music.enabled())
if music.enabled() then music.play(audio_main_song) end
-- if music.enabled() then music.play(audio_main_song) end
if music.enabled() then music_player:play(audio_main_song) end
elseif menu_sel==1 then
sound.enabled(not sound.enabled())
elseif menu_sel==2 then
+8 -3
View File
@@ -1,21 +1,25 @@
remote_view_wait = 0
remote_view_hab = ""
remote_sf_w = mapa_room_cols*arcade_config.tiles_width
remote_sf_h = mapa_room_rows*arcade_config.tiles_height
remote_sf_w = 0
remote_sf_h = 0
function remote_view_init ()
remote_sf_w = mapa_room_cols*arcade_config.tiles_width
remote_sf_h = mapa_room_rows*arcade_config.tiles_height
sf_remote=surf.new(remote_sf_w, remote_sf_h)
end
function remote_view(hab)
-- print("REMOTE_VIEW "..hab)
remote_view_hab = hab
remote_view_wait = 200
end
function remote_view_draw()
if remote_view_wait>0 then
-- print("REMOTE_VIEW_DRAW "..remote_view_hab)
local x,y = coords.room_to_coord ( remote_view_hab )
-- print("X,Y= "..x.." , "..y)
local curr_source = surf.source()
local curr_target = surf.target()
@@ -30,6 +34,7 @@ function remote_view_draw()
surf.source(sf_remote)
draw.surf(0,0,remote_sf_w,remote_sf_h,11,11,(remote_sf_w/2)-2,(remote_sf_h/2)-2)
draw.rect(10,10,(remote_sf_w/2),(remote_sf_h/2),2)
-- print("RSW,RSH= "..remote_sf_w.." , "..remote_sf_h)
surf.source(curr_source)
remote_view_wait = remote_view_wait-1
end
+55
View File
@@ -0,0 +1,55 @@
local mini_version = ""
local versio_req = {1,5,13}
local parts = {}
local printed = false
function reqs_init()
local version=sys.version()
-- print(version)
for part in string.gmatch(version, "[^.]+") do
table.insert(parts, tonumber(part))
end
-- print(parts[1].." "..versio_req[1])
-- print(parts[2].." "..versio_req[2])
-- print(parts[3].." "..versio_req[3])
states:next()
end
function reqs_draw()
-- print("LOGO DRAW "..logo_step)
surf.target(0)
surf.cls(16)
local str1 = "Es requerix mini "..table.concat(versio_req, ".")
local str2 = "Executant amb mini "..table.concat(parts, ".")
draw.text(str1,20,20,2)
draw.text(str2,20,30,2)
if not printed then
print(str1)
print(str2)
printed = true
end
end
function reqs_end()
-- print("LOGO_END")
states:executar("logo")
end
function reqs_update()
if parts[1]<versio_req[1] then
reqs_draw()
elseif parts[2]<versio_req[2] then
reqs_draw()
elseif parts[3]<versio_req[3] then
reqs_draw()
else
states:next()
end
if controller:check("ESC") or controller:check("shoot") then
sys.quit()
end
end
states:registrar("check-reqs",{reqs_init, reqs_update, reqs_end})
+28 -32
View File
@@ -28,13 +28,13 @@ scene={
scenes={
lluita_imp= {
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Eh!?","...","MANTE! Tu de qui eres?"},die=20},
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","Aaaarrrrgghhh",""},die=20,musica=audio_song_imp},
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Ah! Que eres foraster","Que fas açí? Has","vingut a per pelailles?"},die=20},
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","Grwuuuunnnn",""},die=20},
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Pos jo lo unic que","tinc es un grapat","de cacaus"},die=20},
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","GROOOOAAAARRR",""},die=20},
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Haver parat en Alcoi!","A mi que me contes!"," CACAUS A MI!!!!"},die=20},
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Eh!?","...","MANTE! Tu de qui eres?"}, mood="estranyat"},
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","Aaaarrrrgghhh",""},musica=audio_song_imp},
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Ah! Que eres foraster","Que fas açí? Has","vingut a per pelailles?"}},
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","Grwuuuunnnn",""}},
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Pos jo lo unic que","tinc es un grapat","de cacaus"}},
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","GROOOOAAAARRR",""}},
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Haver parat en Alcoi!","A mi que me contes!"," CACAUS A MI!!!!"},mood="sobrat"},
},
llibre_trobat={
{x=avatar_abad2_x,y=avatar_abad_y,flip=false,audio="abad",text={"Este llibre...","Es el de les tècniques","especials dels abad..."},mood="interessant"},
@@ -161,8 +161,8 @@ scenes={
stage1_ending={
{x=avatar_batman_x,y=avatar_batman_y,flip=true,audio="batman",musica=audio_song_batman,text={"Te pensaves que anaves", "a recuperar-los tan fàcil","moniato!"},die=20},
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Torna'm els meus cacaus","lladre!","Com t'agarre..."},die=20},
{x=avatar_batman_x,y=avatar_batman_y,flip=true,audio="batman",text={"Si vols els cacaus","hauràs d'agarrar-me", ""},die=20},
{x=avatar_batman_x,y=avatar_batman_y,flip=true,audio="batman",text={"I mes te val no tardar","perque estan bonissims", "Torradets en el seu punt"},die=20},
{x=avatar_batman_x,y=avatar_batman_y,flip=true,audio="batman",text={"Vols els cacaus?","Ales no te'n veig", "JAJAJAJAJA"},die=20},
{x=avatar_batman_x,y=avatar_batman_y,flip=true,audio="batman",text={"Crrrkkkk","Estan bonissims!", "Torradets en el seu punt"},die=20},
},
stage1_ending_2={
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"elalien!","Premiere!","Que feu ací!?"},die=20},
@@ -191,12 +191,12 @@ scenes={
}
function start_scene(_scene, offset, stop_music)
--bkg=newsurf(128,96)
--setdest(bkg)
--setsource(0)
--draw.surf(0,0,128,96,0,0)
--setsource(tiles)
--setdest(0)
if stop_music then
print("STOP MUSIC")
elseif _scene[1].musica then
print("PLAY ".._scene[1].musica)
end
scenes.current_scene=_scene
scenes.dnum=1
scenes.step=0
@@ -205,15 +205,15 @@ function start_scene(_scene, offset, stop_music)
scenes.offset=28
scenes.die=scenes.current_scene[scenes.dnum].die or 0
if _scene[1].musica then
--print(scene[1].musica)
music.play(scenes.current_scene[scenes.dnum].musica)
-- print(scene[1].musica)
-- music.play(scenes.current_scene[scenes.dnum].musica)
music_player:play(scenes.current_scene[scenes.dnum].musica)
end
if offset then scenes.offset=offset end
-- old_update=game_update
-- game_update=update_scene
scene.running = true
if not stop_music then scene.stop_music = false end
-- print("SCENE START")
print("SCENE START")
states:executar("scene", true); -- guardar l'estat anterior i executar
end
@@ -242,29 +242,24 @@ end
function play_music()
if scenes.current_scene[scenes.dnum].musica then
-- print("PLAY MUSIC "..scenes.dnum)
music.stop()
music.play(scenes.current_scene[scenes.dnum].musica)
-- music.stop()
-- music.play(scenes.current_scene[scenes.dnum].musica)
music_player:stop()
music_player:play(scenes.current_scene[scenes.dnum].musica)
end
end
function draw_abad_with_mood(mood, dx, dy, dw, dh)
local ox, oy =view.origin()
view.origin(0,0)
-- -- composicio
-- composicio
local curr_sf = surf.target()
surf.target(avatar_sf)
surf.cls(16)
draw.surf(scenes.current_scene[scenes.dnum].x,scenes.current_scene[scenes.dnum].y,avatar_w,avatar_h,0,0,avatar_w,avatar_h)
abad_add_mood(0,scenes.current_scene[scenes.dnum].x,0,scenes.current_scene[scenes.dnum].y,false,mood)
-- if mood=="sorpresa" then
-- draw.surf(240,0,11,4,16-scenes.current_scene[scenes.dnum].x,5-scenes.current_scene[scenes.dnum].y,11,4)
-- elseif mood=="enfadat" then
-- draw.surf(240,4,11,4,16-scenes.current_scene[scenes.dnum].x,5-scenes.current_scene[scenes.dnum].y,11,4)
-- elseif mood=="interessant" then
-- draw.surf(240,8,11,4,16-scenes.current_scene[scenes.dnum].x,5-scenes.current_scene[scenes.dnum].y,11,4)
-- else
-- abad.mood="normal"
-- end
-- Dibuixar
view.origin(ox, oy)
surf.target(curr_sf)
@@ -392,6 +387,7 @@ function update_scene()
if scenes.die==0 then
if scenes.dnum==#scenes.current_scene then
if scene.stop_music then music.stop() end
-- if batman.endgame then
-- final_init()
-- fade.fadeoutin()
+44
View File
@@ -0,0 +1,44 @@
sign={}
function sign.new(_hab, _x, _y, _angle,_flip)
local world_x, world_y = coords.room_to_world(_hab,_x,_y)
return {name="sign",
hab=_hab,
x=world_x,
y=world_y,
w=16,
h=16,
flip=_flip,
--frame=19,
wait=0,
step=0,
can_warp=false,
warping=false,
shrink=1,
d_shrink=1,
angle=_angle,
d_angle=0,
--hit=sign.hit,
update=sign.update,
draw=sign.draw,
--jumpfwd=false,
--dying=false,
--death_time=40,
--anim={19,19,20,21},
bb={x=0,y=0,w=16,h=16},
enabled= true,
disable_reason="" }
end
function sign:draw()
if not self.enabled then return end
local scr_x, scr_y = viewp:screen_coords( self.x, self.y )
draw.surf(240,224,self.w,self.h,scr_x,scr_y,self.w,self.h,self.flip)
end
function sign:update()
self.wait = (self.wait + 1) % 18
if (self.wait==0) then
self.enabled = not self.enabled
end
end
+99 -34
View File
@@ -1,17 +1,40 @@
stages = {}
stages.boss_loaded = false
stages.boss_ready = false
stages.boss_finished = false
boss = nil
function stages.stage1_init()
-- stagemgr init
stages.actors={}
stages.boss_loaded = false
stages.boss_ready = false
stages.boss_finished = false
boss = nil
-- actors={}
-- mapa init
mapa = stage1_mapa
mapa_room_cols = s01_mapa_room_cols
mapa_room_rows = s01_mapa_room_rows
mapa_rooms_per_piso = s01_mapa_rooms_per_piso
mapa_pisos = s01_mapa_pisos
mapa_empty_tile = s01_mapa_empty_tile
tiletype={void=0,nonpc=1,stair=2,switch=3,half=4,block=5}
mapa.wait=0
mapa.step=0
mapa_surface_init()
load_tilemap( sf_mapa )
mapa.tobatcave = false
coords.set_config({
tiles_width = arcade_config.tiles_width,
tiles_height = arcade_config.tiles_height,
room_cols = mapa_room_cols,
room_rows = mapa_room_rows,
rooms_per_floor = mapa_rooms_per_piso,
})
remote_view_init()
-- actors init
llibre.init()
table.insert(actors,llibre)
@@ -34,8 +57,6 @@ function stages.stage1_init()
table.insert( actors, boss )
boss_meter = bar_meter.new(20,12,128,10,1,1,boss,5)
--batman
bol.init()
table.insert(actors,bol)
@@ -107,10 +128,10 @@ function stages.stage1_init()
local hp_x, hp_y = coords.room_to_world(69, 9, 3)
table.insert( actors, health_potion.new(77, hp_x, hp_y, 0, 0, 1) )
-- TRIGGERS
-- if not menu then table.insert(actors,trigger.new(10,57,32,triggers.escena_abad_inici)) end
table.insert( actors, trigger.new(10,7,3,triggers.escena_abad_inici,"inici","TR01") )
table.insert( actors, trigger.new(10,8,3,triggers.start_bg_music,"musica") )
table.insert( actors, trigger.new(11,2,3,triggers.escena_abad_corfes,"corfes","TR02") )
table.insert( actors, trigger.new(31,1,3,triggers.escena_abad_portes,"portes","TR03") )
@@ -124,6 +145,7 @@ function stages.stage1_init()
--
table.insert( actors, trigger.new(55,1,3,triggers.escena_lluita_imp,"lluita imp"))
-- La definició de les portes en en inici 1, la del trigger en inici 0
table.insert( actors, trigger.new(10,8,1,triggers.open_door,"","primera porta","switch",{11, 57,45}) )
table.insert( actors, trigger.new(34,1,1,triggers.open_door,"","dos portes casa abad","switch",{32, 50,38,26,53,41,29},{"TR03","TR04"}) )
table.insert( actors, trigger.new(52,1,1,triggers.open_door,"","porta casa abad","switch",{72, 42,30},{"TR05"}) )
@@ -131,14 +153,11 @@ function stages.stage1_init()
table.insert( actors, trigger.new(75,6,1,triggers.open_door,"","pasillo inf","switch",{77, 50,38,26}) )
table.insert( actors, trigger.new(75,9,1,triggers.open_door,"","acces inf casa batman","switch",{57, 53,41},{"TR07"}) )
table.insert( actors, trigger.new(79,5,1,triggers.open_door,"","sotan casa batman","switch",{36, 56,44}) )
table.insert( actors, trigger.new(38,2,2,triggers.open_door,"","","switch",{39, 62,63}) )
-- table.insert( actors, trigger.new(1, 1,1,triggers.open_door,"","acces cacaus","switch",{20, 53,41},{"TR08"}))
table.insert( actors, trigger.new(38,2,2,triggers.add_1up,"","","switch",{39, 62,63}) )
table.insert( actors, trigger.new(35,1,3,triggers.open_door,"","batman a casa abad (1/2)","invisible",{36, 12,24 }) )
table.insert( actors, trigger.new(35,1,3,triggers.open_door,"","batman a casa abad (2/2)","invisible",{35, 23,35 }) )
-- table.insert(actors,trigger.new(14,40,32,triggers.teleport_a))
-- table.insert(actors,trigger.new(67,8,32,triggers.teleport_b))
-- table.insert(actors,trigger.new(29,40,32,triggers.teleport_c))
-- table.insert(actors,trigger.new(61,8,32,triggers.teleport_d))
-- Dialegs
trigger_event.new("Premiere dialeg 1",
trigger_ev.dialeg_trigger,
trigger_ev.dialeg_init,
@@ -171,6 +190,10 @@ function stages.stage1_init()
tiles_layer2.new(13,11,3,144,144,16,16)
tiles_layer2.new(13,11,4,144,144,16,16)
tiles_layer2.new(34,11,1,128,144,16,16)
tiles_layer2.new(34,11,2,128,144,16,16)
tiles_layer2.new(35, 0,1,128,144,16,16)
tiles_layer2.new(35, 0,2,128,144,16,16)
tiles_layer2.new(69,4,2,160,144,16,16)
tiles_layer2.new(69,5,2,176,144,16,16)
tiles_layer2.new(69,4,3,160,144,16,16)
@@ -179,35 +202,35 @@ function stages.stage1_init()
tiles_layer2.new(76,3,2,128,208,16,16, tiles_layer2.update_aranya, tiles_layer2.draw_aranya)
tiles_layer2.new(78,6,2,128,208,16,16, tiles_layer2.update_aranya, tiles_layer2.draw_aranya)
-- abad init
abad.vehicle = ""
local abad_x, abad_y = coords.room_to_world ( 10, 4, 3 )
-- local abad_x, abad_y = coords.room_to_world ( 54, 8, 3 )
-- table.insert( actors, trigger.new(8,4,3,triggers.escena_stage1_ending,"stage1 ending","TR09") )
-- local abad_x, abad_y = coords.room_to_world ( 8, 9, 3 )
-- local abad_x, abad_y = coords.room_to_world ( 8, 9, 3 )
abad:move(abad_x, abad_y)
abad_make_safe( true )
-- viewport init
local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
remote_view_init()
viewp:free_move()
stages.boss_ready = false
stages.boss_loaded = false
end
function stages.stage1_update()
-- print("stage1_update")
-- fireball.update()
-- if (abad.energia<=abad.max_energia/2) then
-- -- Requeriment: tindre mitja clau
-- premiere.healer_init()
-- end
stages.stage1_toBatcave()
for key,actor in pairs(stages.actors) do
if viewp:inside(actor.x, actor.y, actor.w, actor.h) and actor~=abad then
actor:update()
end
end
end
function stages.stage1_draw_back()
-- print("stage1_draw_back")
for key,actor in pairs(stages.actors) do
if viewp:inside(actor.x, actor.y, actor.w, actor.h) and actor~=abad then
actor:draw()
end
end
end
function stages.stage1_draw_middle()
@@ -220,11 +243,53 @@ function stages.stage1_draw_front()
-- boss_meter:draw()
end
function stages.stage2_init()
-- print("stage 2 init")
function stages.stage1_bg_music()
music_player:play(audio_song_premiere)
end
function stages.stage1_viewport_update()
-- Moure el viewport
local vp_x = viewp.x
local vp_y = viewp.y
local vp_center_offset_x = (viewp.width // 2)
local vp_center_offset_y = (viewp.height // 2)
vp_x = abad.x+(abad.w/2) - vp_center_offset_x
if vp_x < 0 then vp_x = 0 end
vp_y = abad.y - vp_center_offset_y
if vp_y < 0 then vp_y = 0 end
viewp:position(vp_x, vp_y)
end
function stages.stage1_toBatcave()
local switches_enabled = 0
if mapa.tobatcave then return end
for key,actor in pairs(actors) do
if actor.type=="switch" and actor.enabled then
switches_enabled = switches_enabled +1
end
end
if switches_enabled<=2 then
mapa.tobatcave = true
table.insert( stages.actors, sign.new(76, 8 , 1, 0, true) ) -- L
table.insert( stages.actors, sign.new(73, 10, 3, 0, true) ) -- L
table.insert( stages.actors, sign.new(72, 5 , 1, 0, true) ) -- L
-- table.insert( stages.actors, sign.new(61, 6 , 1, 0, true) ) -- L
-- table.insert( stages.actors, sign.new(50, 9 , 1, 0, true) ) -- L
table.insert( stages.actors, sign.new(41, 5, 3, 0, false) ) -- R
-- table.insert( actors, sign.new(40, 10, 3, 0, false) ) -- R
-- table.insert( actors, sign.new(42, 1 , 2, 90, false) ) -- D
table.insert( stages.actors, sign.new(53, 4 , 3, 0, false) ) -- R
-- print("GO TO BATCAVE")
end
end
-- require "stage1_maps"
require "stage1_world_map"
require "stage1_boss_map"
require "stage1_boss"
+38 -37
View File
@@ -1,5 +1,8 @@
stage1_boss ={
time = 0,
out_x = 0,
out_y = 0,
out_speed = 8,
}
function stages.stage1_boss_ready()
@@ -8,23 +11,6 @@ function stages.stage1_boss_ready()
stages.boss_finished = false
end
-- function stages.stage1_boss()
-- -- if not scene.running and not stages.boss_loaded then
-- load_tilemap( sf_mapa, stage1_boss_mapa )
-- -- actors_in_room_backup_and_remove(stage1_boss_mapa.r0.r,stage1_boss_mapa.r1.r)
-- -- viewp:fixed({l=8,r=44,u=48,d=0}, viewp.x, viewp.y-48)
-- -- viewp:fixed({l=8,r=44,u=0,d=0})
-- stages.boss_loaded = true
-- boss.reason=""
-- boss.enabled=true
-- boss:fight()
-- trigger_event.new("Premiere Boss 1",
-- trigger_ev.premiere_boss1_trigger,
-- trigger_ev.premiere_healer_init,
-- premiere.healer_update)
-- -- end
-- end
function stages.stage1_boss_update()
-- print("stage1_update")
fireball.update()
@@ -48,22 +34,21 @@ function stages.stage1_boss_draw_front()
boss_meter:draw()
end
function stages.stage1_boss_bg_music()
-- music_player:play(audio_song_premiere)
end
function stages.stage1_boss_viewport_update()
-- Moure el viewport
stages.stage1_viewport_update()
end
function stages.stage1_boss_finished()
stages.boss_ready = true
stages.boss_finished = true
end
-- function stages.stage1_boss_end()
-- mapa_restore_backup()
-- set_actors_enabled_by_room(true, "boss", stage1_boss_mapa.r0.r, stage1_boss_mapa.r1.r)
-- remove_actor(boss)
-- stages.boss_ready = false
-- stages.boss_finished = false
-- stages.boss_loaded = false
-- viewp:free_move()
-- end
-- INTRO FUNCTIONS
function stages.stage1_boss_intro_init()
trigger_event.new("Premiere Boss 1",
@@ -72,18 +57,18 @@ function stages.stage1_boss_intro_init()
premiere.healer_update)
load_tilemap( sf_mapa, stage1_boss_mapa )
set_actors_enabled_by_room(false, "boss", stage1_boss_mapa.r0.r, stage1_boss_mapa.r1.r)
viewp:fixed({l=8,r=44,u=0,d=0}, viewp.x, viewp.y-48)
viewp:fixed({l=24,r=28,u=0,d=0}, viewp.x, viewp.y-48)
boss.enabled=true
boss.reason=""
boss:fight()
load_boss_stage()
stages.boss_loaded = true
-- load_boss_stage()
stages.load_boss_stage()
states:next()
end
function stages.stage1_boss_intro_update()
if stage1_boss.time==0 then
start_scene(scenes.lluita_imp, nil, false)
-- start_scene(scenes.lluita_imp, nil, false)
stages.stage1_boss_ready()
end
@@ -96,26 +81,42 @@ function stages.stage1_boss_intro_update()
end
function stages.stage1_boss_intro_end()
stage1_boss.out_x = 0
stage1_boss.out_y = 0
stage1_boss.out_speed = 12
states:finish()
end
-- OUTRO FUNCTION
function stages.stage1_boss_outro_update()
stage1_boss.time = stage1_boss.time + 1
-- black out
if stage1_boss.time%stage1_boss.out_speed==0 then
if stage1_boss.out_x==8 then
stage1_boss.out_x = 0
stage1_boss.out_y = stage1_boss.out_y+1
end
draw.rectf(stage1_boss.out_x*32,stage1_boss.out_y*32,32,32,16)
stage1_boss.out_x = stage1_boss.out_x +1
if stage1_boss.out_speed>1 then stage1_boss.out_speed = stage1_boss.out_speed -1 end
end
states:next()
if stage1_boss.out_y>=6 then
states:next()
end
end
function stages.stage1_boss_outro_end()
local abad_x, abad_y = coords.room_to_world ( 54, 9, 3 )
abad:move(abad_x, abad_y)
abad_make_safe( true )
stages.stage1_boss_finished()
remove_actor(boss)
unload_boss_stage()
stages.unload_boss_stage()
music.stop()
mapa_restore_backup()
set_actors_enabled_by_room(true, "boss", stage1_boss_mapa.r0.r, stage1_boss_mapa.r1.r)
stages.boss_ready = false
stages.boss_finished = false
stages.boss_loaded = false
viewp:free_move()
states:finish()
end
+3 -8
View File
@@ -42,18 +42,13 @@ function stage1_ending:update_scene()
premiere.update()
elseif self.time==400 then
premiere.stage1_ending_init3()
copter.hab=premiere.hab
copter.x=premiere.x
copter.y=premiere.y
-- copter.init()
copter.y=copter.y-16
copter.init(premiere)
table.insert( actors, copter)
music.play(audio_song_copter)
-- music.play(audio_song_copter)
music_player:play(audio_song_copter)
elseif self.time<720 then
-- sisena escena - premiere copter
premiere.update()
copter.x = premiere.x-32
copter.y = premiere.y-48
copter.update()
elseif self.time==720 then
start_scene(scenes.stage1_ending_3, nil, false)
-911
View File
@@ -1,911 +0,0 @@
stage1_mapa={
-- 1
{
256,256,256,18,19,21,20,21,20,21,20,21,
-- 64,68,256,16,72,256,256,256,256,256,256,256,
64,256,256,16,72,256,256,256,256,256,256,256,
256,256,66,256,88,256,256,70,71,256,256,256,
256,66,256,16,256,112,256,86,87,256,114,256,
66,256,256,16,256,256,256,256,256,256,256,256,
256,64,256,16,20,21,20,21,20,21,20,21,
},
-- 2
{
20,21,20,21,20,21,20,21,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,73,74,256,256,256,256,73,74,256,256,
256,256,89,90,256,256,256,256,89,90,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
-- 20,21,20,21,20,21,21,256,80,17,20,21,
20,21,20,21,20,21,21,256,256,0,20,21,
},
-- 3
{
20,21,20,21,20,21,20,21,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,256,256,
256,96,97,96,256,73,74,256,97,96,96,256,
256,99,256,100,256,89,90,256,99,256,100,256,
256,256,256,256,256,256,256,256,256,256,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 4
{
20,21,20,21,20,21,20,21,20,21,18,19,
256,256,256,256,256,256,256,256,256,256,77,17,
256,73,74,256,256,73,74,256,98,98,93,17,
256,89,90,256,256,89,90,256,99,100,256,256,
256,256,256,256,256,256,256,256,10,11,256,256,
20,21,20,21,20,21,20,21,10,11,20,21,
},
-- 5
{
66,256,256,67,256,65,256,64,256,256,256,66,
256,256,64,256,256,256,256,256,256,68,256,67,
18,19,18,19,18,19,18,19,256,256,65,256,
256,256,256,256,256,256,256,16,256,256,256,256,
256,256,256,256,256,256,256,16,256,64,256,66,
20,21,20,21,20,21,20,21,256,256,66,256,
},
-- 6
{
256,66,256,41,44,45,44,45,44,45,44,45,
64,256,256,41,256,256,256,256,256,256,256,256,
-- 68,256,66,256,256,256,96,97,256,256,256,256,
256,256,66,256,256,256,96,97,256,256,256,256,
256,67,256,41,256,256,99,100,256,256,256,256,
65,256,256,41,95,256,256,256,10,11,256,256,
256,65,42,43,44,45,44,45,10,11,44,45,
},
-- 7
{
42,43,256,256,256,256,65,256,256,256,256,64,
-- 256,41,256,67,256,256,256,256,68,256,256,256,
256,41,256,67,256,256,256,256,256,256,256,256,
256,41,256,256,256,66,256,256,256,256,256,256,
256,256,256,64,256,256,65,256,67,256,67,256,
256,256,256,256,256,256,256,256,256,256,256,256,
42,43,20,21,20,21,20,21,20,21,20,21,
},
-- 8
{
67,256,256,256,256,65,256,256,256,256,64,256,
256,256,67,256,256,256,256,68,256,256,256,256,
256,256,256,256,66,256,256,256,256,256,256,67,
256,256,64,256,256,65,256,67,256,67,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
20,21,20,21,17,256,256,17,20,21,20,21,
},
-- 9
{
256,256,256,256,65,256,256,256,256,64,17,17,
-- 256,67,256,256,256,256,68,256,256,256,17,256,
256,67,256,256,256,256,256,256,256,256,17,256,
256,256,256,66,256,256,256,256,256,256,17,256,
256,64,256,256,65,256,67,256,67,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 10
{
17,17,17,17,17,17,17,17,17,17,18,19,
256,256,256,256,256,256,256,256,256,256,17,17,
256,256,73,74,256,256,73,74,256,256,18,19,
256,256,89,90,256,256,89,90,256,256,17,17,
256,256,256,256,256,256,256,256,256,256,18,19,
-- 20,21,256,80,17,18,19,17,18,19,17,17,
20,21,256,256,0,18,19,17,18,19,17,17,
},
-- 11
{
256,66,26,27,28,29,28,29,26,27,28,29,
-- 256,256,256,24,256,256,256,256,15,25,256,256,
256,256,256,24,256,256,256,256,23,25,256,256,
-- 24,24,24,24,24,24,24,24,15,25,24,24,
64,68,256,256,256,256,256,256,256,25,256,256,
256,256,66,24,256,121,256,256,256,38,256,256,
256,66,256,24,101,102,103,256,256,38,256,256,
66,256,256,24,28,29,28,29,28,29,28,29,
},
-- 12
{
-- 28,29,28,29,28,29,29,256,256,256,26,27,
28, 29, 28, 29, 28, 29, 29, 1,256,256, 26, 27,
256,256,256,256,256,256,256,256,256, 25, 72,256,
-- 256,256, 73, 74,256,256,256,256, 1,256, 88,256,
256,256, 73, 74,256,256,256,256, 1,256,256,256,
256,256, 89, 90,256,256,256, 1,256,256,256,256,
256,256,256,256,256,256, 1,256,256,256,256,256,
28, 29, 28, 29, 28, 29, 28, 29, 28, 29, 28, 29,
},
-- 13
{
28, 29, 26, 27, 26, 27, 28, 29, 28, 29, 28, 29,
256,256,256, 26, 27,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256, 73, 74,256,256,
256,256,256, 98, 98,256,256,256, 89, 90,256,256,
256,256,104,101,102,103,256,256,256,256,256,256,
-- 28,29,28,29,28,29,29,256,81,25,28,29,
28, 29, 28, 29, 28, 29, 29,256,256, 1, 28, 29,
},
-- 14
{
28, 29, 28, 29, 28, 29, 28, 29, 10, 11, 28, 25,
256,256,256,256,256,256,256,256, 10, 11,256, 25,
-- 256, 73, 74,256,256,256,256,256, 10, 11,256,256,
256, 73, 74,256,256,256,256,256, 10, 11,256, 25,
256, 89, 90,256,256, 75, 76,256, 10, 11,256,256,
-- 256,256,256,256,256, 91, 92,256, 10, 11,256, 25,
256,256,256,256,256, 91, 92,256, 10, 11,256,256,
28, 29, 28, 29, 28, 29, 28, 29, 28, 29, 28, 29,
},
-- 15
{
26,27,26,27,28,29,28,29,26,27,26,27,
28,29,256,256,256,256,256,256,256,256,28,24,
256,256,256,256,256,73,74,256,256,256,256,24,
256,256,75,76,256,89,90,256,75,76,256,24,
256,256,91,92,256,256,256,256,91,92,256,24,
26,27,28,29,28,29,28,29,28,29,26,27,
},
-- 16
{
64,256,26,27,28,29,28,29,10,11,28,29,
-- 68,256,66,25,256,256,256,256,10,11,256,256,
256,256,66,25,256,256,256,256,10,11,256,256,
256,67,256,256,256,107,108,256,10,11,256,256,
65,256,256,25,256,109,110,256,10,11,256,256,
256,65,256,25,256,256,256,256,10,11,256,256,
256,256,26,27,28,29,28,29,10,11,28,29,
},
-- 17
{
28,29,28,29,25,41,44,45,44,45,44,45,
256,256,256,256,25,41,256,256,256,256,256,256,
256,73,74,256,25,41,256,256,73,74,256,256,
256,89,90,78,25,41,256,256,89,90,256,256,
256,256,95,94,25,41,256,256,10,11,256,256,
28,29,28,29,25,41,44,45,10,11,44,45,
},
-- 18
{
44,45,44,45,41,256,256,41,44,45,44,45,
256,256,256,256,256,69,256,256,256,256,256,256,
256,256,256,256,256,256,69,256,256,256,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
256,256,256,41,41,256,69,41,41,256,256,256,
45,44,45,42,43,256,256,42,43,44,45,44,
},
-- 19
{
44,45,44,45,42,43,42,43,44,45,44,45,
256,256,256,256,256,40,40,256,256,256,256,256,
256,97,98,97,256,40,40,256,98,97,96,256,
256,99,256,100,256,40,40,256,99,256,100,256,
256,256,256,256,256,40,40,256,256,256,256,256,
-- 3,41,83,256,44,45,44,45,44,45,44,45,
45,3,256,256,44,45,44,45,44,45,44,45,
},
-- 20
{
-- 44,45,256,256,256,42,43,41,42,43,41,41,
44,45,3,256,256,42,43,41,42,43,41,41,
256,256,256,256,41,41,256,256,256,77,42,43,
256,256,256,3,256,41,256,256,256,93,41,41,
256,256,3,256,256,39,256,256,256,256,42,43,
256,3,256,256,256,38,256,256,8,9,41,41,
44,45,44,45,44,45,44,45,8,9,42,43,
},
-- 21
{
34,35,36,37,36,37,36,37,36,37,36,37,
32,256,256,256,256,256,256,256,256,256,256,256,
32,256,97,97,98,256,256,256,97,96,97,256,
32,256,99,256,100,256,256,256,99,256,100,256,
32,256,8,9,256,104,101,102,103,256,256,256,
34,35,8,9,36,37,36,37,36,37,36,37,
},
-- 22
{
36,37,33,33,36,37,36,37,33,33,36,37,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,96,97,96,98,256,256,256,256,
256,256,113,256,99,256,256,100,256,114,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 23
{
-- 37,36,37,36,37,36,37,256,256,256,36,37,
37,36,37,36,37,36,37,2,256,256,36,37,
256,256,256,256,256,256,256,256,256,33,256,256,
256,97,98,97,256,256,112,256,2,256,256,256,
256,99,256,100,256,256,256,2,256,75,76,256,
256,256,256,256,256,256,2,256,256,91,92,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 24
{
34,35,256,256,256,256,256,256,256,256,34,35,
256,2,34,35,34,35,34,35,34,35,2,256,
256,256,113,256,256,112,114,256,256,114,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,104,101,102,256,101,102,256,101,102,103,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 25
{
36,37,36,37,36,37,36,37,36,37,34,35,
256,256,256,256,256,256,73,74,256,256,77,32,
256,96,97,96,256,256,89,90,256,256,93,32,
256,99,256,100,256,121,256,256,256,256,256,32,
256,256,256,256,256,101,102,103,8,9,256,32,
36,37,36,37,36,37,36,37,8,9,33,32,
},
-- 26
{
18,19,17,17,18,19,17,17,10,11,18,19,
17,256,256,256,256,256,256,256,10,11,256,256,
18,19,256,256,256,256,256,256,10,11,256,256,
256,17,256,256,256,75,76,256,10,11,256,256,
18,19,256,256,256,91,92,256,10,11,256,256,
20,21,256,256,18,19,17,17,18,19,17,17,
},
-- 27
{
17,17,18,19,17,17,18,19,10,11,18,19,
256,256,256,256,256,256,256,256,10,11,256,256,
256,73,74,256,256,73,74,256,10,11,256,256,
256,89,90,256,256,89,90,256,10,11,256,256,
256,256,256,256,256,256,256,256,10,11,256,256,
-- 17,17,18,19,17,256,80,17,18,19,17,17,
17,17,18,19,17,256,256,0,18,19,17,17,
},
-- 28
{
18,19,17,18,19,256,256,33,33,34,35,33,
256,256,256,17,17,256,69,34,35,72,256,256,
256,256,256,18,19,256,69,33,33,88,256,256,
256,256,256,17,16,256,256,34,35,256,256,256,
256,256,256,18,19,69,256,41,33,256,256,256,
17,18,19,17,17,69,256,34,35,33,33,34,
},
-- 29
{
-- 33,256,256,256,33,33,34,35,33,33,34,35,
33,256,256,2,33,33,34,35,33,33,34,35,
256,33,256,256,256,256,256,256,256,256,256,256,
256,256,2,256,256,256,256,256,256,256,256,256,
256,256,256,2,256,256,256,117,98,106,116,256,
256,256,256,256,2,256,104,101,102,101,102,256,
34,35,33,33,34,35,33,33,34,35,33,33,
},
-- 30
{
33,33,34,35,33,33,34,35,8,9,33,33,
256,256,256,256,256,256,33,33,8,9,34,35,
256,256,256,256,256,97,34,35,8,9,33,33,
256,256,256,256,115,100,33,33,8,9,34,35,
256,256,256,104,101,102,34,35,8,9,33,33,
34,35,33,33,34,35,33,33,8,9,34,35,
},
-- 31
{
40,40,8,9,40,40,40,40,40,40,40,40,
40,45,8,9,45,44,45,44,45,44,45,44,
40,256,8,9,256,256,256,256,256,256,256,256,
40,256,8,9,256,256,112,75,76,113,256,256,
40,256,8,9,256,256,256,91,92,256,256,256,
42,43,44,45,44,45,44,45,44,45,44,45,
},
-- 32
{
40,40,40,40,40,40,40,40,40,40,40,40,
44,45,41,45,44,41,44,45,44,45,44,45,
256,256,38,256,256,38,256,256,256,256,256,256,
256,112,38,256,113,38,256,256,114,256,256,113,
256,256,38,256,256,38,256,256,256,256,256,256,
-- 44,45,41,83,256,44,45,44,45,44,45,44,
44,45,3,256,256,44,45,44,45,44,45,44,
},
-- 33
{
40,40,40,40,40,40,40,40,40,40,40,40,
43,44,45,44,45,42,43,44,45,44,45,42,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,75,76,256,114,113,256,75,76,256,256,
256,256,91,92,256,256,256,256,91,92,256,256,
44,45,44,45,44,45,44,45,44,45,44,45,
},
-- 34
{
40,40,40,40,40,40,40,40,40,40,40,40,
45,44,45,44,45,44,45,44,45,44,45,40,
256,256,256,256,256,256,256,256,73,74,256,40,
256,256,113,256,256,114,256,121,89,90,256,40,
256,256,256,256,256,256,256,101,102,103,256,40,
-- 44,45,41,83,256,44,45,44,45,44,45,40,
44,45,3,256,256,44,45,44,45,44,45,40,
},
-- 35
{
26,27,28,29,28,29,28,29,8,9,26,27,
-- 24,15,256,256,256,256,256,256,8,9,256,24,
24,23,256,256,256,256,256,256,8,9,256,24,
24,256,256,256,256,256,256,256,8,9,256,24,
24,256,256,256,256,256,256,256,8,9,256,24,
24,256,256,256,256,256,256,256,8,9,256,24,
26,27,28,29,28,29,28,29,8,9,26,27,
},
-- 36
{
24,29,256,256,1,25,26,27,25,1,28,29,
24,256,256,256,256,256,25,26,27,256,256,256,
24,256,256,256,256,256,256,256,25,256,256,256,
24,256,106,116,256,256,256,256,38,256,256,256,
24,25,101,102,256,256,256,256,38,256,256,256,
-- 28,29,28,29,25,81,256,28,29,28,29,28,
28,29,28,29,1,256,256,28,29,28,29,28,
},
-- 37
{
-- 29,26,27,28,29,256,256,256,26,27,26,27,
29,26,27,28,29,1,256,256,26,27,26,27,
256,256,256,256,256,256,256,25,256,256,28,29,
256,256,256,256,256,256,1,256,256,256,256,256,
256,112,256,256,256,1,256,256,256,256,113,256,
256,256,256,256,1,256,101,102,103,256,256,256,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 38
{
27,26,27,28,29,256,256,28,29,26,27,26,
29,256,256,256,256,256,69,256,256,256,256,28,
256,256,98,96,98,256,256,98,98,96,256,256,
256,256,99,256,100,256,256,99,256,100,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
29,28,29,28,29,69,256,28,29,28,29,28,
},
-- 39
{
28, 29, 25, 25, 28, 29, 25, 25, 28, 29, 25, 25,
256,256, 25, 25,256,256,256,256,256,256,106, 24,
-- 256,256,15,256,256,256,256,256,256,256,95,24,
256,256, 23,256,256,256,256,256,256,256, 95, 24,
256,256,256,256, 78, 97,107,108,256,106,105, 24,
256,256,256,256, 94,101,102,110,103,105, 98, 24,
28, 29, 28, 29, 28, 29, 28, 29, 28, 29, 28, 29,
},
-- 40
{
24,29,28,29,28,29,28,29,8,9,26,27,
24,256,256,256,256,256,256,256,8,9,25,25,
24,256,114,256,256,256,112,256,8,9,26,27,
24,256,256,256,256,256,256,256,8,9,25,25,
24,256,256,256,105,256,256,256,8,9,26,27,
24,29,28,29,28,29,28,29,28,29,25,25,
},
-- 41
{
26,27,28,29,28,29,26,27,26,27,28,29,
24,72,256,256,256,256,256,28,29,256,256,256,
24,88,256,256,256,256,256,256,256,256,256,256,
24,256,256,256,112,256,256,256,256,256,114,256,
24,256,256,256,256,256,256,256,256,256,256,256,
-- 28,29,28,29,28,29,25,81,256,28,29,29,
28,29,28,29,28,29,1,256,256,28,29,29,
},
-- 42
{
-- 28,29,256,256,256,1,26,27,26,27,28,29,
28,29,256,256,1,1,26,27,26,27,28,29,
256,256,25,256,256,256,256,28,29,256,256,256,
256,256,256,1,256,256,256,256,256,256,256,256,
256,113,256,256,1,256,256,96,97,96,98,256,
256,256,256,256,256,1,256,101,256,256,102,256,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 43
{
28,29,28,29,26,27,26,27,28,29,26,27,
256,256,256,256,256,28,29,256,256,256,77,24,
256,256,256,256,256,256,256,256,256,256,93,24,
256,113,256,256,256,75,76,256,114,256,256,24,
256,256,10,11,256,91,92,256,256,256,256,24,
28,29,10,11,28,29,28,29,28,29,28,29,
},
-- 44
{
-- 33,37,256,256,256,36,37,36,37,36,37,2,
33,37,256,256,2,36,37,36,37,36,37,2,
32,256,33,256,256,256,256,256,256,256,256,256,
32,98,256,2,256,256,256,256,256,256,256,256,
32,99,256,256,2,256,256,256,75,76,256,256,
32,256,256,256,256,2,256,256,91,92,256,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 45
{
36,37,36,37,36,37,36,37,8,9,34,35,
256,256,256,256,256,256,256,256,8,9,256,32,
256,256,98,97,96,256,256,256,8,9,256,32,
256,256,99,256,100,256,256,256,8,9,256,32,
256,256,256,256,101,102,103,256,8,9,256,32,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 46
{
-- 18,19,18,19,256,256,256,20,21,20,21,20,
18,19,18,19,256,256,0,20,21,20,21,20,
18,19,72,256,17,256,256,256,256,256,256,256,
18,19,88,256,256,0,256,256,256,256,256,256,
18,19,256,75,76,78,0,256,256,116,256,256,
18,19,256,91,92,94,95,0,256,101,102,256,
18,19,18,19,18,19,18,19,18,19,18,19,
},
-- 47
{
20,21,20,21,20,21,20,21,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,256,256,
256,97,96,98,97,256,256,96,97,98,96,256,
114,99,256,256,100,114,114,99,256,256,100,114,
256,256,256,256,256,256,256,256,256,256,256,256,
18,19,18,19,18,19,18,19,18,19,18,19,
},
-- 48
{
20,21,20,21,17,256,256,17,20,21,20,21,
256,256,256,256,256,256,69,256,256,256,256,256,
256,256,96,97,256,256,69,256,256,256,256,256,
256,115,99,100,256,256,256,256,256,117,256,256,
256,101,102,103,256,111,111,256,101,102,103,256,
19,18,19,18,19,69,256,18,19,18,19,18,
},
-- 49
{
20,21,256,69,18,19,18,19,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,114,256,
256,256,69,256,256,256,114,256,256,256,256,256,
256,114,69,111,256,256,256,256,17,18,19,17,
256,256,111,256,18,19,18,19,18,19,18,19,
18,19,256,69,17,18,19,18,19,18,19,17,
},
-- 50
{
20,21,20,21,20,21,20,21,20,21,20,16,
256,114,256,256,256,256,256,256,256,256,98,16,
256,256,256,256,256,256,256,256,256,256,100,16,
17,19,256,256,256,114,256,256,256,256,78,16,
18,19,18,19,256,256,256,256,256,256,94,16,
-- 17,18,19,18,19,18,19,256,80,17,18,19,
17,18,19,18,19,18,19,256,256,0,18,19,
},
-- 51
{
-- 42,43,44,45,44,45,256,256,256,44,45,45,
42,43,44,45,44,45,256,256,3,44,45,45,
40,72,256,256,256,256,41,256,256,256,256,256,
40,96,256,256,256,256,256,3,256,256,256,256,
40,99,256,114,256,114,256,256,3,256,256,256,
40,256,256,256,256,256,256,256,256,3,256,256,
44,45,44,45,44,45,44,45,44,45,44,45,
},
-- 52
{
44,45,44,45,44,45,44,45,44,45,44,41,
256,256,256,256,256,256,256,256,256,256,256,40,
256,256,73,74,256,256,256,70,71,256,97,40,
256,256,89,90,256,256,256,86,87,256,100,40,
256,256,256,256,256,256,256,256,256,256,256,40,
-- 44,45,41,83,256,44,44,45,44,45,44,45,
44,45,3,256,256,44,44,45,44,45,44,45,
},
-- 53
{
18,19,10,11,18,19,17,17,20,21,20,21,
-- 16,15,10,11,256,256,256,256,256,256,256,256,
16,23,10,11,256,256,256,256,256,256,256,256,
16,256,10,11,256,256,75,76,256,256,256,256,
16,256,10,11,256,256,91,92,256,256,256,256,
16,256,10,11,256,256,18,19,256,256,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 54
{
20,21,20,21,21,17,18,19,67,256,256,256,
-- 256,256,256,256,256,17,18,19,256,65,68,64,
256,256,256,256,256,17,18,19,256,65,256,64,
256,256,256,256,256,256,18,19,256,256,256,256,
256,256,256,256,256,256,38,256,67,256,64,256,
256,256,256,256,256,256,38,256,256,256,256,256,
20,21,20,21,20,21,20,21,54,55,54,56,
},
-- 55
{
256,65,256,256,256,67,256,67,256,256,256,256,
256,256,256,64,256,256,256,256,65,68,64,256,
256,256,256,256,256,256,64,256,256,256,256,67,
256,256,65,67,256,256,64,256,256,64,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
54,55,54,56,56,55,54,56,54,56,55,54,
},
-- 56
{
65,256,256,256,67,256,67,256,256,256,256,64,
-- 256,256,64,256,256,256,256,65,68,64,256,256,
256,256,64,256,256,256,256,65,256,64,256,256,
256,256,256,256,256,64,256,256,256,256,67,256,
256,65,67,256,256,64,256,256,64,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
55,54,55,54,56,54,55,56,54,55,54,56,
},
-- 57
{
256,256,256,67,34,35,34,35,34,35,34,35,
256,64,256,256,34,35,72,256,256,256,256,256,
256,256,256,256,34,35,88,256,256,256,256,256,
65,67,256,256,256,38,256,256,75,76,256,256,
256,256,256,256,256,38,256,256,91,92,256,256,
54,55,56,54,36,37,36,37,36,37,36,37,
},
-- 58
{
35,34,35,34,35,69,256,34,35,34,35,34,
256,256,256,256,256,69,256,256,256,256,256,256,
256,113,70,71,114,256,256,112,107,108,113,256,
256,256,86,87,256,256,69,256,109,110,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
37,36,37,36,37,256,256,36,37,36,37,36,
},
-- 59
{
34,35,256,256,34,35,34,35,34,35,34,35,
256,256,256,69,256,256,256,256,256,256,256,256,
256,256,69,256,256,256,97,96,256,256,256,256,
256,256,111,111,256,256,99,100,256,256,256,256,
256,41,120,119,41,256,256,256,8,9,256,256,
3,41,46,47,41,3,36,37,8,9,36,37,
},
-- 60
{
-- 35,34,35,34,35,34,35,256,256,33,34,35,
35,34,35,34,35,34,35,2,256,256,34,35,
-- 256,256,36,37,256,256,256,256,256,33,34,35,
256,256,36,37,256,256,256,256,256,2,34,35,
256,256,256,256,256,256,256,256,2,77,34,35,
256,256,116,256,256,256,256,2,256,93,34,35,
256,256,101,102,103,256,2,256,256,256,34,35,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 61
{
18,19,21,20,21,20,21,20,21,17,18,19,
-- 16,15,256,256,256,256,256,256,256,77,18,19,
16,23,256,256,256,256,256,256,256,77,18,19,
16,256,256,256,256,256,256,256,256,93,18,19,
16,256,256,256,256,256,256,116,256,78,18,19,
16,256,10,11,256,256,101,102,256,94,18,19,
20,21,10,11,20,21,20,21,20,21,20,21,
},
-- 62
{
-- 18,19,256,256,256,20,20,21,20,21,20,21,
18,19,256,256,0,0,20,21,20,21,20,21,
16,72,17,256,256,256,256,256,256,256,256,256,
16,88,256,0,256,256,256,256,256,256,256,256,
16,256,256,78,0,256,256,114,75,76,256,256,
16,95,256,94,256,0,256,256,91,92,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 63
{
20,21,20,21,20,21,20,21,20,21,20,17,
256,256,256,256,256,256,256,256,256,256,256,16,
256,256,256,256,256,256,256,256,256,256,98,16,
256,256,256,256,256,256,117,97,96,256,100,16,
256,256,256,256,256,256,101,256,102,103,256,16,
-- 20,21,17,80,256,20,20,21,20,21,20,21,
20,21,0,256,256,20,20,21,20,21,20,21,
},
-- 64
{
41,48,49,48,50,49,48,49,48,50,49,48,
41,256,256,256,256,256,256,256,256,256,256,256,
41,256,256,256,256,256,256,256,256,256,256,256,
41,256,256,256,113,256,256,114,256,256,112,256,
41,256,8,9,256,256,256,256,256,256,256,256,
42,43,8,9,42,43,42,43,42,43,42,43,
},
-- 65
{
48,50,48,49,50,49,50,48,50,49,50,48,
256,256,256,256,256,256,256,256,256,256,112,256,
256,256,256,256,256,256,113,256,256,256,256,256,
256,256,114,256,256,256,256,256,42,43,42,43,
256,256,256,256,42,43,42,43,256,256,256,256,
42,43,42,43,256,256,256,256,256,256,256,256,
},
-- 66
{
48,49,48,48,50,49,48,50,49,48,48,50,
256,113,256,256,114,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
42,43,42,43,42,43,256,256,256,112,256,256,
256,256,256,256,42,43,3,256,256,256,256,256,
256,256,256,256,42,43,42,43,42,43,42,43,
},
-- 67
{
50,48,50,49,50,48,50,49,41,42,43,48,
256,256,256,256,256,256,256,256,77,42,43,256,
256,256,256,256,256,256,256,256,93,42,43,256,
256,256,114,256,256,113,256,256,256,42,43,256,
256,256,256,256,256,256,256,256,256,42,43,256,
-- 42,43,41,41,42,43,41,83,256,42,43,50,
42,43,41,41,42,43,3,256,256,42,43,50,
},
-- 68
{
25,28,29,26,27,256,69,26,27,28,29,28,
24,97,256,256,256,256,256,256,256,256,256,256,
24,99,256,256,256,69,256,256,256,256,256,256,
24,256,95,256,113,69,256,256,114,75,76,256,
24,101,102,103,256,111,111,256,256,91,92,256,
28,28,29,28,29,256,69,28,29,28,29,28,
},
-- 69
{
28,29,26,27,26,27,28,29,8,9,28,29,
256,256,256,28,29,256,256,256,8,9,256,256,
256,256,256,256,256,256,256,256,8,9,256,256,
75,76,75,76,75,76,75,76,8,9,256,256,
91,92,91,92,91,92,91,92,8,9,256,256,
28,29,1,26,27,1,28,29,8,9,28,29,
},
-- 70
{
28,29,26,27,25,25,256,256,65,256,256,256,
256,256,256,77,26,27,256,256,256,68,256,256,
256,256,256,93,25,25,256,256,256,256,66,256,
256,256,256,78,26,27,256,66,256,256,256,67,
256,256,95,94,25,25,256,256,256,256,256,256,
28,29,28,29,26,27,54,56,54,56,55,54,
},
-- 71
{
46,47,10,11,46,47,46,47,46,47,46,47,
47,256,10,11,256,256,256,256,256,256,256,256,
47,98,10,11,256,256,256,256,256,256,256,256,
47,99,10,11,256,256,115,105,256,256,256,256,
47,256,10,11,256,256,101,102,103,256,256,256,
46,47,46,47,46,47,46,47,46,47,46,47,
},
-- 72
{
46,47,46,47,46,47,46,47,46,47,46,47,
256,256,256,256,256,256,26,27,26,27,28,29,
256,256,256,256,256,256,38,256,256,256,256,256,
256,256,256,116,256,256,38,256,256,256,256,256,
256,256,101,102,256,256,26,27,26,27,256,256,
46,47,46,47,46,47,46,47,46,47,28,29,
},
-- 73
{
-- 46,47,256,256,256,25,26,27,26,27,26,27,
46,47,256,256,1,25,26,27,26,27,26,27,
28,29,25,256,256,256,256,256,256,28,29,25,
256,256,256,1,256,256,256,116,96,96,256,256,
256,256,256,256,1,256,256,99,256,100,256,256,
256,25,256,256,256,1,256,256,256,256,256,256,
28,29,28,29,26,27,26,27,26,27,26,27,
},
-- 74
{
26,27,8,9,26,27,26,27,26,27,26,27,
25,256,8,9,1,25,28,29,28,29,25,1,
256,256,8,9,256,256,256,256,256,256,256,256,
256,256,8,9,256,256,256,116,106,256,256,256,
256,256,8,9,256,256,104,101,102,103,256,256,
26,27,26,27,26,27,26,27,26,27,26,27,
},
-- 75
{
26,27,26,27,26,27,26,27,26,27,26,27,
256,256,28,29,25,28,29,25,28,29,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,114,256,256,256,113,256,256,256,256,114,256,
256,256,256,256,256,256,256,256,256,256,256,256,
26,27,28,29,28,29,28,29,28,29,26,27,
},
-- 76
{
26,27,26,27,26,27,26,27,18,19,20,21,
-- 256,256,256,256,256,256,15,25,17,15,256,256,
256,256,256,256,256,256,23,25,17,23,256,256,
256,256,256,256,256,256,256,25,17,256,256,256,
256,256,256,114,256,256,78,25,17,256,256,256,
256,256,256,256,256,95,94,25,17,256,256,256,
26,27,26,27,26,27,26,27,51,53,52,51,
},
-- 77
{
-- 18,19,18,19,18,19,256,256,256,18,19,52,
18,19,18,19,18,19,256,256,0,18,19,52,
256,256,17,72,256,256,17,256,256,256,256,256,
-- 256,256,38,88,256,113,256,0,256,256,256,256,
256,256,38,256,256,113,256,0,256,256,256,256,
256,256,38,256,256,256,256,256,0,256,256,256,
256,256,38,256,256,256,256,256,256,0,256,256,
52,51,52,53,52,53,51,52,51,53,52,53,
},
-- 78
{
51,52,53,51,52,256,256,52,53,51,52,17,
256,256,256,256,256,256,69,256,256,256,256,17,
256,256,256,256,256,69,256,256,256,256,256,17,
256,256,256,256,256,111,111,106,256,256,78,17,
256,256,256,256,17,118,119,17,256,95,94,17,
51,52,53,53,51,53,52,53,51,52,51,17,
},
-- 79
{
256,256,256,256,42,43,42,43,8,9,42,43,
256,256,256,256,42,43,72,256,8,9,256,256,
-- 256,126,127,256,42,43,88,256,8,9,256,256,
256,126,127,256,42,43,256,256,8,9,256,256,
256,256,256,256,42,43,256,256,8,9,256,256,
256,256,256,256,42,43,256,256,8,9,256,256,
256,256,256,256,42,43,42,43,42,43,42,43,
},
-- 80
{
42,43,42,43,42,43,42,43,256,256,256,256,
-- 256,256,256,256,256,15,42,43,256,256,256,256,
256,256,256,256,256,23,42,43,256,256,256,256,
256,256,256,256,256,256,42,43,256,126,127,256,
256,256,256,256,256,256,42,43,256,256,256,256,
256,256,256,256,256,256,42,43,256,256,256,256,
42,43,42,43,42,43,42,43,256,256,256,256,
},
}
stage1_boss_mapa = {
map = {
-- 44
{
256,256,256, 17, 18, 19, 18, 19, 18, 19, 18, 19,
256,256,256, 17,256,256,256,256,256,256,256,256,
256,256,256, 17,256,256,256,256,256,256,256,256,
256,256,256, 17,256, 1,256,256,256,256,256,256,
256,256,256, 17,112,256, 1,256,256,256,256,112,
256,256,256, 17,256, 1,256,256,256,256,256,256,
},
-- 45
{
18, 19, 18, 19, 18, 19, 18, 19, 18, 19, 17,256,
69,256,256, 68,256, 67,256,256,256,256, 17,256,
256, 69, 64, 66,256,256,256,256,256,256, 17,256,
256, 69, 69, 69,256, 65,256,256, 2,256, 17,256,
256,256,112,256, 69, 69,256, 2,256,112, 17,256,
256,256,256,256,256,256,256,256, 2,256, 17,256,
},
-- 54
{
256,256,256, 17,112,256, 1,256,256,256,256, 4,
256,256,256, 17,256, 1,256,256,256,256,256,256,
256,256,256, 17,112,256, 1,256,256, 1,256,256,
256,256,256, 17,256, 1,256,256,256,256,256,256,
256,256,256, 17,256,256, 1,256,256,256,256,256,
20, 21, 20, 21, 54, 55, 54, 55, 54, 55, 54, 56,
},
-- 55
{
22, 22, 5,256,256,256,256, 2,256,112,17,256,
256,256,256,256,256,256,256,256, 2,256,17,256,
256,256,256,256, 2,256,256, 2,256,112,17,256,
256,256,256,256,256,256,256,256, 2,256,17,256,
256,256,256,256,256,256,256, 2,256,256,17,256,
54, 55, 54, 56, 56, 55, 54, 56, 54, 56,55, 54,
},
-- 64
{
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 65
{
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
},
r0 = {r=44, x=1, y=1},
r1 = {r=65, x=12, y=6}
}
@@ -1,722 +0,0 @@
stage1_mapa={
-- 1
{
256,256,256,18,19,21,20,21,20,21,20,21,
64,256,256,16,72,256,256,256,256,256,256,256,
256,256,66,256,88,256,256,70,71,256,256,256,
256,66,256,16,256,112,256,86,87,256,114,256,
66,256,256,16,256,256,256,256,256,256,256,256,
256,64,256,16,20,21,20,21,20,21,20,21,
},
-- 2
{
20,21,20,21,20,21,20,21,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,73,74,256,256,256,256,73,74,256,256,
256,256,89,90,256,256,256,256,89,90,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
20,21,20,21,18,19,20,21,0,256,256,17,
},
-- 3
{
20,21,20,21,20,21,20,21,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,256,256,
256,96,97,96,256,73,74,256,97,96,96,256,
256,99,256,100,256,89,90,256,99,256,100,256,
256,256,256,256,256,256,256,256,256,256,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 4
{
20,21,20,21,20,21,20,21,20,21,18,19,
256,256,256,256,256,256,256,256,256,256,77,17,
256,73,74,256,256,73,74,256,98,98,93,17,
256,89,90,256,256,89,90,256,99,100,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
20,21,20,21,20,21,20,21,10,11,20,21,
},
-- 5
{
66,256,256,67,256,65,256,64,256,256,256,66,
256,256,64,256,256,256,256,256,256,68,256,67,
18,19,18,19,18,19,18,19,256,256,65,256,
256,256,256,256,256,256,256,16,256,256,256,256,
256,256,256,256,256,256,256,16,256,64,256,66,
20,21,20,21,20,21,20,21,256,256,66,256,
},
-- 6
{
256,66,256,41,44,45,44,45,44,45,44,45,
64,256,256,41,256,256,256,256,256,256,256,256,
256,256,66,256,256,256,96,97,256,256,256,256,
256,67,256,41,256,256,99,100,256,256,256,256,
65,256,256,41,95,256,256,256,256,256,256,256,
256,65,42,43,44,45,44,45,10,11,44,45,
},
-- 7
{
42,43,256,256,256,256,65,256,256,256,256,64,
256,41,256,67,256,256,256,256,256,256,256,256,
256,41,256,256,256,66,256,256,256,256,256,256,
256,256,256,64,256,256,65,256,67,256,67,256,
256,256,256,256,256,256,256,256,256,256,256,256,
42,43,20,21,20,21,20,21,20,21,20,21,
},
-- 8
{
67,256,256,256,256,65,256,256,256,256,64,256,
256,256,67,256,256,256,256,68,256,256,256,256,
256,256,256,256,66,256,256,256,256,256,256,67,
256,256,64,256,256,65,256,67,256,67,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
20,21,20,21,17,256,256,17,20,21,20,21,
},
-- 9
{
256,256,256,256,65,256,256,256,256,64,17,17,
256,67,256,256,256,256,256,256,256,256,17,256,
256,256,256,66,256,256,256,256,256,256,17,256,
256,64,256,256,65,256,67,256,67,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 10
{
17,17,17,17,17,17,17,17,17,17,18,19,
256,256,256,256,256,256,256,256,256,256,17,17,
256,256,73,74,256,256,73,74,256,256,18,19,
256,256,89,90,256,256,89,90,256,256,17,17,
256,256,256,256,256,256,256,256,256,256,18,19,
18,19,0,0,256,256,18,19,18,19,17,17,
},
-- 11
{
256,66,26,27,28,29,28,29,26,27,28,29,
256,256,256,24,256,256,256,256,23,25,256,256,
64,68,256,256,256,256,256,256,256,25,256,256,
256,256,66,24,256,121,256,256,256,38,256,256,
256,66,256,24,101,102,103,256,256,38,256,256,
66,256,256,24,28,29,28,29,28,29,28,29,
},
-- 12
{
28,29,28,29,28,29,256,256,256,256,26,27,
256,256,256,256,256,256,256,256,256,1,256,256,
256,256,73,74,256,256,256,256,1,256,256,256,
256,256,89,90,256,256,256,1,256,256,256,256,
256,256,256,256,256,256,1,256,256,256,256,256,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 13
{
28,29,26,27,26,27,28,29,28,29,28,29,
256,256,256,26,27,72,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,73,74,256,256,
256,256,256,98,98,256,256,256,89,90,256,256,
256,256,104,101,102,103,256,256,256,256,256,256,
28,29,28,29,28,29,28,29,1,256,256,25,
},
-- 14
{
28,29,28,29,28,29,28,29,10,11,28,25,
256,256,256,256,256,256,256,256,10,11,256,25,
256,73,74,256,256,256,256,256,10,11,256,25,
256,89,90,256,256,75,76,256,10,11,256,256,
256,256,256,256,256,91,92,256,10,11,256,256,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 15
{
26,27,26,27,28,29,28,29,26,27,26,27,
28,29,256,256,256,256,256,256,256,256,28,24,
256,256,256,256,256,73,74,256,256,256,256,24,
256,256,75,76,256,89,90,256,75,76,256,24,
256,256,91,92,256,256,256,256,91,92,256,24,
26,27,28,29,28,29,28,29,28,29,26,27,
},
-- 16
{
64,256,26,27,28,29,28,29,10,11,28,29,
256,256,66,25,256,256,256,256,10,11,256,256,
256,67,256,256,256,107,108,256,10,11,256,256,
65,256,256,25,256,109,110,256,10,11,256,256,
256,65,256,25,256,256,256,256,10,11,256,256,
256,256,26,27,28,29,28,29,10,11,28,29,
},
-- 17
{
28,29,28,29,25,41,44,45,44,45,44,45,
256,256,256,256,25,41,256,256,256,256,256,256,
256,73,74,256,25,41,256,256,73,74,256,256,
256,89,90,78,25,41,256,256,89,90,256,256,
256,256,95,94,25,41,256,256,256,256,256,256,
28,29,28,29,25,41,44,45,10,11,44,45,
},
-- 18
{
44,45,44,45,41,256,256,41,44,45,44,45,
256,256,256,256,256,69,256,256,256,256,256,256,
256,256,256,256,256,256,69,256,256,256,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
256,256,256,41,41,256,69,41,41,256,256,256,
45,44,45,42,43,256,256,42,43,44,45,41,
},
-- 19
{
44,45,44,45,42,43,41,3,44,45,44,45,
256,256,256,256,256,40,40,256,256,256,256,256,
256,97,98,97,256,40,40,256,98,97,96,256,
256,99,256,100,256,40,40,256,99,256,100,256,
256,256,256,256,256,40,40,256,256,256,256,256,
256,256,3,45,42,43,44,45,44,45,44,45,
},
-- 20
{
41,256,256,256,256,42,43,42,43,41,41,41,
256,256,256,256,3,41,256,256,256,77,42,43,
256,256,256,3,256,41,256,256,256,93,41,41,
256,256,3,256,256,39,256,256,256,256,42,43,
256,3,256,256,256,38,256,256,256,256,41,41,
44,45,44,45,44,45,44,45,8,9,42,43,
},
-- 21
{
34,35,36,37,36,37,36,37,36,37,36,37,
32,256,256,256,256,256,256,256,256,256,256,256,
32,256,97,97,98,256,256,256,97,96,97,256,
32,256,99,256,100,256,256,256,99,256,100,256,
32,256,256,256,256,104,101,102,103,256,256,256,
34,35,8,9,36,37,36,37,36,37,36,37,
},
-- 22
{
36,37,33,33,36,37,36,37,33,33,36,37,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,96,97,96,98,256,256,256,256,
256,256,113,256,99,256,256,100,256,114,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 23
{
36,37,36,37,36,37,256,256,256,256,34,35,
256,256,256,256,256,256,256,256,256,2,37,256,
256,97,98,97,256,256,112,256,2,256,256,256,
256,99,256,100,256,256,256,2,256,75,76,256,
256,256,256,256,256,256,2,256,256,91,92,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 24
{
34,35,256,256,256,256,256,256,256,256,34,35,
256,2,34,35,34,35,34,35,34,35,2,256,
256,256,113,256,256,112,114,256,256,114,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,104,101,102,256,101,102,256,101,102,103,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 25
{
36,37,36,37,36,37,36,37,36,37,34,35,
256,256,256,256,256,256,73,74,256,256,77,32,
256,96,97,96,256,256,89,90,256,256,93,32,
256,99,256,100,256,121,256,256,256,256,256,32,
256,256,256,256,256,101,102,103,256,256,256,32,
36,37,36,37,36,37,36,37,8,9,33,32,
},
-- 26
{
18,19,17,17,18,19,17,17,10,11,18,19,
17,256,256,256,256,256,256,256,10,11,256,256,
18,19,256,256,256,256,256,256,10,11,256,256,
256,17,256,256,256,75,76,256,10,11,256,256,
18,19,256,256,256,91,92,256,10,11,256,256,
20,21,256,256,18,19,17,17,18,19,17,17,
},
-- 27
{
17,17,18,19,17,17,18,19,10,11,18,19,
256,256,256,256,256,256,256,256,10,11,256,256,
256,73,74,256,256,73,74,256,10,11,256,256,
256,89,90,256,256,89,90,256,10,11,256,256,
256,256,256,256,256,256,256,256,10,11,256,256,
17,17,18,19,0,0,256,256,18,19,17,17,
},
-- 28
{
18,19,17,18,19,256,256,33,33,34,35,33,
256,256,256,17,17,256,69,34,35,72,256,256,
256,256,256,18,19,256,69,33,33,88,256,256,
256,256,256,17,16,256,256,34,35,256,256,256,
256,256,256,18,19,69,256,41,33,256,256,256,
17,18,19,17,17,69,256,34,35,33,33,34,
},
-- 29
{
33,256,256,256,256,33,34,35,33,33,34,35,
256,2,256,256,256,256,256,256,256,256,256,256,
256,256,2,256,256,256,256,256,256,256,256,256,
256,256,256,2,256,256,256,117,98,106,116,256,
256,256,256,256,2,256,104,101,102,101,102,256,
34,35,33,33,34,35,33,33,34,35,33,33,
},
-- 30
{
33,33,34,35,33,33,34,35,8,9,33,33,
256,256,256,256,256,256,33,33,8,9,34,35,
256,256,256,256,256,97,34,35,8,9,33,33,
256,256,256,256,115,100,33,33,8,9,34,35,
256,256,256,104,101,102,34,35,8,9,33,33,
34,35,33,33,34,35,33,33,8,9,34,35,
},
-- 31
{
40,40,8,9,40,40,40,40,40,40,40,40,
40,45,8,9,45,44,45,44,45,44,45,44,
40,256,8,9,256,256,256,256,256,256,256,256,
40,256,8,9,256,256,112,75,76,113,256,256,
40,256,8,9,256,256,256,91,92,256,256,256,
42,43,44,45,44,45,44,45,44,45,44,45,
},
-- 32
{
40,40,40,40,40,40,40,40,40,40,40,40,
44,45,41,45,44,41,44,45,44,45,44,45,
256,256,38,256,256,38,256,256,256,256,256,256,
256,112,38,256,113,38,256,256,114,256,256,113,
256,256,38,256,256,38,256,256,256,256,256,256,
44,45,3,10,11,44,45,44,45,44,45,44,
},
-- 33
{
40,40,40,40,40,40,40,40,40,40,40,40,
43,44,45,44,45,42,43,44,45,44,45,42,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,75,76,256,114,113,256,75,76,256,256,
256,256,91,92,256,256,256,256,91,92,256,256,
44,45,44,45,44,45,44,45,44,45,44,45,
},
-- 34
{
40,40,40,40,40,40,40,40,40,40,40,40,
45,44,45,44,45,44,45,44,45,44,45,40,
256,256,256,256,256,256,256,256,73,74,256,40,
256,256,113,256,256,114,256,121,89,90,256,40,
256,256,256,256,256,256,256,101,102,103,256,40,
42,43,256,256,3,44,45,41,42,43,41,40,
},
-- 35
{
26,27,28,29,28,29,28,29,8,9,26,27,
24,23,256,256,256,256,256,256,8,9,256,24,
24,256,256,256,256,256,256,256,8,9,256,24,
24,256,256,256,256,256,256,256,8,9,256,24,
24,256,256,256,256,256,256,256,8,9,256,24,
26,27,28,29,28,29,28,29,8,9,26,27,
},
-- 36
{
24,29,256,256,1,25,26,27,25,1,28,29,
24,256,256,256,256,256,25,26,27,256,256,256,
24,256,256,256,256,256,256,256,25,256,256,256,
24,256,106,116,256,256,256,256,38,256,256,256,
24,25,101,102,256,256,256,256,38,256,256,256,
28,29,25,25,256,256,1,28,29,28,29,28,
},
-- 37
{
29,26,27,29,256,256,256,25,26,27,26,27,
256,256,256,256,256,256,1,256,256,256,28,29,
256,256,256,256,256,1,256,256,256,256,256,256,
256,112,256,256,1,256,256,256,256,256,113,256,
256,256,256,1,256,256,101,102,103,256,256,256,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 38
{
27,26,27,28,29,256,256,28,29,26,27,26,
29,256,256,256,256,256,69,256,256,256,256,28,
256,256,98,96,98,256,256,98,98,96,256,256,
256,256,99,256,100,256,256,99,256,100,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
29,28,29,28,29,69,256,28,29,28,29,28,
},
-- 39
{
28,29,25,25,28,29,25,25,28,29,25,25,
256,256,25,25,256,256,256,256,256,256,106,24,
256,256,23,256,256,256,256,256,256,256,95,24,
256,256,256,256,78,97,107,108,256,106,105,24,
256,256,256,256,94,101,102,110,103,105,98,24,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 40
{
24,29,28,29,28,29,28,29,8,9,26,27,
24,256,256,256,256,256,256,256,8,9,25,25,
24,256,114,256,256,256,112,256,8,9,26,27,
24,256,256,256,256,256,256,256,8,9,25,25,
24,256,256,256,105,256,256,256,8,9,26,27,
24,29,28,29,28,29,28,29,28,29,25,25,
},
-- 41
{
26,27,28,29,28,29,26,27,26,27,28,29,
24,72,256,256,256,256,256,28,29,256,256,256,
24,88,256,256,256,256,256,256,256,256,256,256,
24,256,256,256,112,256,256,256,256,256,114,256,
24,256,256,256,256,256,256,256,256,256,256,256,
28,29,28,29,25,256,256,1,28,29,28,29,
},
-- 42
{
28,29,25,10,11,1,26,27,26,27,28,29,
256,256,256,10,11,256,256,28,29,256,256,256,
256,256,256,10,11,256,256,256,256,256,256,256,
256,113,256,10,11,256,256,96,97,96,98,256,
256,256,256,10,11,256,256,101,256,256,102,256,
28,29,28,29,28,29,28,29,28,29,28,29,
},
-- 43
{
28,29,28,29,26,27,26,27,28,29,26,27,
256,256,256,256,256,28,29,256,256,256,77,24,
256,256,256,256,256,256,256,256,256,256,93,24,
256,113,256,256,256,75,76,256,114,256,256,24,
256,256,256,256,256,91,92,256,256,256,256,24,
28,29,10,11,28,29,28,29,28,29,28,29,
},
-- 44
{
33,33,33,256,256,256,256,36,37,36,37,2,
32,256,256,2,256,256,256,256,256,256,256,256,
32,98,256,256,2,256,256,256,256,256,256,256,
32,99,256,256,256,2,256,256,75,76,256,256,
32,256,256,256,256,256,2,256,91,92,256,256,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 45
{
36,37,36,37,36,37,36,37,8,9,34,35,
256,256,256,256,256,256,256,256,8,9,256,32,
256,256,98,97,96,256,256,256,8,9,256,32,
256,256,99,256,100,256,256,256,8,9,256,32,
256,256,256,256,101,102,103,256,8,9,256,32,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 46
{
18,19,18,19,17,256,256,256,256,0,20,21,
18,19,72,256,256,0,256,256,256,256,256,256,
18,19,88,256,256,256,0,256,256,256,256,256,
18,19,256,75,76,78,256,0,256,116,256,256,
18,19,256,91,92,94,95,256,0,101,102,256,
18,19,18,19,18,19,18,19,18,19,18,19,
},
-- 47
{
20,21,20,21,20,21,20,21,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,256,256,
256,97,96,98,97,256,256,96,97,98,96,256,
114,99,256,256,100,114,114,99,256,256,100,114,
256,256,256,256,256,256,256,256,256,256,256,256,
18,19,18,19,18,19,18,19,18,19,18,19,
},
-- 48
{
20,21,20,21,17,256,256,17,20,21,20,21,
256,256,256,256,256,256,69,256,256,256,256,256,
256,256,96,97,256,256,69,256,256,256,256,256,
256,115,99,100,256,256,256,256,256,117,256,256,
256,101,102,103,256,111,111,256,101,102,103,256,
19,18,19,18,19,69,256,18,19,18,19,18,
},
-- 49
{
20,21,256,69,18,19,18,19,20,21,20,21,
256,256,256,256,256,256,256,256,256,256,114,256,
256,256,69,256,256,256,114,256,256,256,256,256,
256,114,69,111,256,256,256,256,17,18,19,17,
256,256,111,256,18,19,18,19,18,19,18,19,
18,19,256,69,17,18,19,18,19,18,19,17,
},
-- 50
{
20,21,20,21,20,21,20,21,20,21,20,16,
256,114,256,256,256,256,256,256,256,256,98,16,
256,256,256,256,256,256,256,256,256,256,100,16,
17,19,256,256,256,114,256,256,256,256,78,16,
18,19,18,19,256,256,256,256,256,256,94,16,
17,18,19,18,19,18,19,256,256,0,18,19,
},
-- 51
{
42,43,44,45,41,41,256,256,256,256,44,45,
40,72,256,256,256,256,3,256,256,256,256,256,
40,96,256,256,256,256,256,3,256,256,256,256,
40,99,256,114,256,114,256,256,3,256,256,256,
40,256,256,256,256,256,256,256,256,3,256,256,
44,45,44,45,44,45,44,45,44,45,44,45,
},
-- 52
{
44,45,44,45,44,45,44,45,44,45,44,41,
256,256,256,256,256,256,256,256,256,256,256,40,
256,256,73,74,256,256,256,70,71,256,97,40,
256,256,89,90,256,256,256,86,87,256,100,40,
256,256,256,256,256,256,256,256,256,256,256,40,
41,41,256,256,3,45,42,43,44,45,44,45,
},
-- 53
{
18,19,10,11,18,19,17,17,20,21,20,21,
16,23,10,11,256,256,256,256,256,256,256,256,
16,256,10,11,256,256,75,76,256,256,256,256,
16,256,10,11,256,256,91,92,256,256,256,256,
16,256,10,11,256,256,18,19,256,256,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 54
{
20,21,20,21,21,17,18,19,67,256,256,256,
256,256,256,256,256,17,18,19,256,65,256,64,
256,256,256,256,256,256,18,19,256,256,256,256,
256,256,256,256,256,256,38,256,67,256,64,256,
256,256,256,256,256,256,38,256,256,256,256,256,
20,21,20,21,20,21,20,21,54,55,54,56,
},
-- 55
{
256,65,256,256,256,67,256,67,256,256,256,256,
256,256,256,64,256,256,256,256,65,68,64,256,
256,256,256,256,256,256,64,256,256,256,256,67,
256,256,65,67,256,256,64,256,256,64,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
54,55,54,56,56,55,54,56,54,56,55,54,
},
-- 56
{
65,256,256,256,67,256,67,256,256,256,256,64,
256,256,64,256,256,256,256,65,256,64,256,256,
256,256,256,256,256,64,256,256,256,256,67,256,
256,65,67,256,256,64,256,256,64,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
55,54,55,54,56,54,55,56,54,55,54,56,
},
-- 57
{
256,256,256,67,34,35,34,35,34,35,34,35,
256,64,256,256,34,35,72,256,256,256,256,256,
256,256,256,256,34,35,88,256,256,256,256,256,
65,67,256,256,256,38,256,256,75,76,256,256,
256,256,256,256,256,38,256,256,91,92,256,256,
54,55,56,54,36,37,36,37,36,37,36,37,
},
-- 58
{
35,34,35,34,35,69,256,34,35,34,35,34,
256,256,256,256,256,69,256,256,256,256,256,256,
256,113,70,71,114,256,256,112,107,108,113,256,
256,256,86,87,256,256,69,256,109,110,256,256,
256,256,256,256,256,111,111,256,256,256,256,256,
37,36,37,36,37,256,256,36,37,36,37,36,
},
-- 59
{
34,35,256,256,34,35,34,35,34,35,34,35,
256,256,256,69,256,256,256,256,256,256,256,256,
256,256,69,256,256,256,97,96,256,256,256,256,
256,256,111,111,256,256,99,100,256,256,256,256,
256,41,120,119,41,256,256,256,256,256,256,256,
3,41,46,47,41,3,36,37,8,9,36,37,
},
-- 60
{
35,34,35,34,35,33,36,2,256,256,34,35,
256,256,36,37,256,256,256,256,256,2,34,35,
256,256,256,256,256,256,256,256,2,33,34,35,
256,256,116,256,256,256,256,2,256,77,34,35,
256,256,101,102,103,256,2,256,256,93,34,35,
36,37,36,37,36,37,36,37,36,37,36,37,
},
-- 61
{
18,19,21,20,21,20,21,20,21,17,18,19,
16,23,256,256,256,256,256,256,256,77,18,19,
16,256,256,256,256,256,256,256,256,93,18,19,
16,256,256,256,256,256,256,116,256,78,18,19,
16,256,256,256,256,256,101,102,256,94,18,19,
20,21,10,11,20,21,20,21,20,21,20,21,
},
-- 62
{
18,19,17,256,256,256,256,20,21,21,20,21,
16,72,256,0,256,256,256,256,256,256,256,256,
16,88,256,256,0,256,256,256,256,256,256,256,
16,256,256,78,256,0,256,114,75,76,256,256,
16,95,256,94,256,256,0,256,91,92,256,256,
20,21,20,21,20,21,20,21,20,21,20,21,
},
-- 63
{
20,21,20,21,20,21,20,21,20,21,20,17,
256,256,256,256,256,256,256,256,256,256,256,16,
256,256,256,256,256,256,256,256,256,256,98,16,
256,256,256,256,256,256,117,97,96,256,100,16,
256,256,256,256,256,256,101,256,102,103,256,16,
17,256,256,0,21,17,20,21,20,21,20,21,
},
-- 64
{
41,48,49,48,50,49,48,49,48,50,49,48,
41,256,256,256,256,256,256,256,256,256,256,256,
41,256,256,256,256,256,256,256,256,256,256,256,
41,256,256,256,113,256,256,114,256,256,112,256,
41,256,256,256,256,256,256,256,256,256,256,256,
42,43,8,9,42,43,42,43,42,43,42,43,
},
-- 65
{
48,50,48,49,50,49,50,48,50,49,50,48,
256,256,256,256,256,256,256,256,256,256,112,256,
256,256,256,256,256,256,113,256,256,256,256,256,
256,256,114,256,256,256,256,256,42,43,42,43,
256,256,256,256,42,43,42,43,256,256,256,256,
42,43,42,43,256,256,256,256,256,256,256,256,
},
-- 66
{
48,49,48,48,50,49,48,50,49,48,48,50,
256,113,256,256,114,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
42,43,42,43,42,43,256,256,256,112,256,256,
256,256,256,256,42,43,3,256,256,256,256,256,
256,256,256,256,42,43,42,43,42,43,42,43,
},
-- 67
{
50,48,50,49,50,48,50,49,41,42,43,41,
256,256,256,256,256,256,256,256,77,42,43,40,
256,256,256,256,256,256,256,256,93,34,35,32,
256,256,114,256,256,113,256,256,256,33,14,116,
256,256,256,256,256,256,256,256,256,34,35,33,
42,43,41,42,43,256,256,256,3,42,43,28,
},
-- 68
{
25,28,29,26,27,256,69,26,27,28,29,28,
24,97,256,256,256,256,256,256,256,256,256,256,
24,99,256,256,256,69,256,256,256,256,256,256,
38,256,95,256,113,69,256,256,114,75,76,256,
38,101,102,103,256,111,111,256,256,91,92,256,
29,28,29,28,29,256,69,28,29,28,29,28,
},
-- 69
{
28,29,26,27,26,27,28,29,8,9,28,29,
256,256,256,28,29,256,256,256,8,9,256,256,
256,256,256,256,256,256,256,256,8,9,256,256,
75,76,75,76,75,76,75,76,8,9,256,256,
91,92,91,92,91,92,91,92,8,9,256,256,
28,29,1,26,27,1,28,29,8,9,28,29,
},
-- 70
{
28,29,26,27,25,25,51,53,53,51,53,24,
256,256,256,77,26,27,65,64,256,68,256,38,
256,256,256,93,256,256,256,256,256,256,66,24,
256,256,256,78,256,256,256,66,256,256,256,24,
256,256,95,94,25,25,256,256,101,102,103,24,
28,29,28,29,26,27,54,56,54,56,55,54,
},
-- 71
{
46,47,10,11,46,47,46,47,46,47,46,47,
47,256,10,11,256,256,256,256,256,256,256,256,
47,98,10,11,256,256,256,256,256,256,256,256,
47,99,10,11,256,256,115,105,256,256,256,256,
47,256,10,11,256,256,101,102,103,256,256,256,
46,47,46,47,46,47,46,47,46,47,46,47,
},
-- 72
{
46,47,46,47,46,47,46,47,46,47,46,47,
256,256,256,256,256,256,26,27,26,27,28,29,
256,256,256,256,256,256,38,256,256,256,256,256,
256,256,256,116,256,256,38,256,256,256,256,256,
256,256,101,102,256,256,26,27,26,27,256,256,
46,47,46,47,46,47,46,47,46,47,28,29,
},
-- 73
{
46,47,256,256,256,1,26,27,26,27,26,27,
28,29,1,256,256,256,256,256,256,28,29,25,
256,256,256,1,256,256,256,116,96,96,256,256,
256,256,256,256,1,256,256,99,256,100,256,256,
256,25,256,256,256,1,256,256,256,256,256,256,
28,29,28,29,26,27,26,27,26,27,26,27,
},
-- 74
{
26,27,8,9,26,27,26,27,26,27,26,27,
25,256,8,9,1,25,28,29,28,29,25,1,
256,256,8,9,256,256,256,256,256,256,256,256,
256,256,8,9,256,256,256,116,106,256,256,256,
256,256,8,9,256,256,104,101,102,103,256,256,
26,27,26,27,26,27,26,27,26,27,26,27,
},
-- 75
{
26,27,26,27,26,27,26,27,26,27,26,27,
256,256,28,29,25,28,29,25,28,29,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,114,256,256,256,113,256,256,256,256,114,256,
256,256,256,256,256,256,256,256,256,256,256,256,
26,27,28,29,28,29,28,29,28,29,26,27,
},
-- 76
{
26,27,26,27,26,27,26,27,18,19,20,21,
256,256,256,256,256,256,23,25,17,23,256,256,
256,256,256,256,256,256,256,25,17,256,256,256,
256,256,256,114,256,256,78,25,17,256,256,256,
256,256,256,256,256,95,94,25,17,256,256,256,
26,27,26,27,26,27,26,27,51,53,52,51,
},
-- 77
{
18,19,18,19,18,19,256,256,256,0,17,52,
256,256,17,72,256,256,0,256,256,256,256,256,
256,256,38,256,256,113,256,0,256,256,256,256,
256,256,38,256,256,256,256,256,0,256,256,256,
256,256,38,256,256,256,256,256,256,0,256,256,
52,51,52,53,52,53,51,52,51,53,52,53,
},
-- 78
{
51,52,53,51,52,256,256,52,53,51,52,17,
256,256,256,256,256,256,69,256,256,256,256,17,
256,256,256,256,256,69,256,256,256,256,256,17,
256,256,256,256,256,111,111,106,256,256,78,17,
256,256,256,256,17,118,119,17,256,95,94,17,
51,52,53,53,51,53,52,53,51,52,51,17,
},
-- 79
{
256,256,256,256,42,43,42,43,8,9,42,43,
256,256,256,256,42,43,72,256,8,9,256,256,
256,126,127,256,42,43,256,256,8,9,256,256,
256,256,256,256,42,43,256,256,8,9,256,256,
256,256,256,256,42,43,256,256,8,9,256,256,
256,256,256,256,42,43,42,43,42,43,42,43,
},
-- 80
{
42,43,42,43,42,43,42,43,256,256,256,256,
256,256,256,256,256,23,42,43,256,256,256,256,
256,256,256,256,256,256,42,43,256,126,127,256,
256,256,256,256,256,256,42,43,256,256,256,256,
256,256,256,256,256,256,42,43,256,256,256,256,
42,43,42,43,42,43,42,43,256,256,256,256,
},
}
+6
View File
@@ -1,3 +1,9 @@
s01_mapa_room_cols = 12; -- en quantitat de tiles
s01_mapa_room_rows = 6; -- en quantitat de tiles
s01_mapa_rooms_per_piso = 10
s01_mapa_pisos = 8
s01_mapa_empty_tile = 256
stage1_mapa={
-- 1
{
+100
View File
@@ -0,0 +1,100 @@
function stages.stage2_init()
-- stagemgr init
stages.actors={}
stages.boss_loaded = false
stages.boss_ready = false
stages.boss_finished = false
boss = nil
actors={}
-- mapa init
mapa = stage2_mapa
mapa_room_cols = s02_mapa_room_cols
mapa_room_rows = s02_mapa_room_rows
mapa_rooms_per_piso = s02_mapa_rooms_per_piso
mapa_pisos = s02_mapa_pisos
mapa_empty_tile = s02_mapa_empty_tile
tiletype={void=0,nonpc=1,stair=2,switch=3,half=4,block=5}
mapa.wait=0
mapa.step=0
mapa_surface_init()
load_tilemap( sf_mapa )
coords.set_config({
tiles_width = arcade_config.tiles_width,
tiles_height = arcade_config.tiles_height,
room_cols = mapa_room_cols,
room_rows = mapa_room_rows,
rooms_per_floor = mapa_rooms_per_piso,
})
-- actors init
batvio.init()
table.insert(actors,batvio)
-- abad init
abad.vehicle = "copter"
local abad_x, abad_y = coords.room_to_world ( 1, 4, 3 )
abad:move(abad_x, abad_y)
abad_make_safe( true )
table.insert(actors,copter)
copter.init(abad)
-- viewport init
local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
viewp:free_move()
end
function stages.stage2_update()
for key,actor in pairs(stages.actors) do
if viewp:inside(actor.x, actor.y, actor.w, actor.h) and actor~=abad then
actor:update()
end
end
end
function stages.stage2_draw_back()
for key,actor in pairs(stages.actors) do
if viewp:inside(actor.x, actor.y, actor.w, actor.h) and actor~=abad then
actor:draw()
end
end
end
function stages.stage2_draw_middle()
end
function stages.stage2_draw_front()
end
function stages.stage2_bg_music()
music_player:play(audio_song_premiere)
end
function stages.stage2_viewport_update()
-- Moure el viewport
local vp_x = viewp.x
local vp_y = viewp.y
local vp_center_offset_x = (viewp.width // 2)
local vp_center_offset_y = (viewp.height // 2)
vp_x = abad.x+(abad.w/2) - vp_center_offset_x
if vp_x < 0 then vp_x = 0 end
vp_y = abad.y - vp_center_offset_y
if vp_y < 0 then vp_y = 0 end
viewp:position(vp_x, vp_y)
end
require "stage2_world_map"
require "stage2_boss_map"
require "stage2_boss"
require "stage2_ending"
+129
View File
@@ -0,0 +1,129 @@
stage2_boss ={
time = 0,
out_x = 0,
out_y = 0,
out_speed = 8,
}
function stages.stage2_boss_ready()
print("READY")
stages.boss_ready = true
stages.boss_finished = false
end
function stages.stage2_boss_update()
-- print("stage2_update")
fireball.update()
-- if (abad.energia<=abad.max_energia/2) then
-- -- Requeriment: tindre mitja clau
-- premiere.healer_init()
-- end
end
function stages.stage2_boss_draw_back()
-- print("stage2_draw_back")
end
function stages.stage2_boss_draw_middle()
-- print("stage2_draw_middle")
end
function stages.stage2_boss_draw_front()
-- print("stage2_draw_front")
fireball.draw()
boss_meter:draw()
end
function stages.stage2_boss_finished()
stages.boss_ready = true
stages.boss_finished = true
end
-- INTRO FUNCTIONS
function stages.stage2_boss_intro_init()
trigger_event.new("Premiere Boss 1",
trigger_ev.premiere_boss1_trigger,
trigger_ev.premiere_healer_init,
premiere.healer_update)
load_tilemap( sf_mapa, stage2_boss_mapa )
set_actors_enabled_by_room(false, "boss", stage2_boss_mapa.r0.r, stage2_boss_mapa.r1.r)
viewp:fixed({l=8,r=44,u=0,d=0}, viewp.x, viewp.y-48)
boss.enabled=true
boss.reason=""
boss:fight()
load_boss_stage()
stages.boss_loaded = true
states:next()
end
function stages.stage2_boss_intro_update()
if stage2_boss.time==0 then
start_scene(scenes.lluita_imp, nil, false)
stages.stage2_boss_ready()
end
-- Acabar
if stage2_boss.time>=1 then
states:next()
end
stage2_boss.time = stage2_boss.time + 1
end
function stages.stage2_boss_intro_end()
stage2_boss.out_x = 0
stage2_boss.out_y = 0
stage2_boss.out_speed = 12
states:finish()
end
-- OUTRO FUNCTION
function stages.stage2_boss_outro_update()
stage2_boss.time = stage2_boss.time + 1
-- black out
if stage2_boss.time%stage2_boss.out_speed==0 then
if stage2_boss.out_x==8 then
stage2_boss.out_x = 0
stage2_boss.out_y = stage2_boss.out_y+1
end
draw.rectf(stage2_boss.out_x*32,stage2_boss.out_y*32,32,32,16)
stage2_boss.out_x = stage2_boss.out_x +1
if stage2_boss.out_speed>1 then stage2_boss.out_speed = stage2_boss.out_speed -1 end
end
if stage2_boss.out_y>=6 then
states:next()
end
end
function stages.stage2_boss_outro_end()
local abad_x, abad_y = coords.room_to_world ( 54, 9, 3 )
abad:move(abad_x, abad_y)
abad_make_safe( true )
stages.stage2_boss_finished()
remove_actor(boss)
unload_boss_stage()
music.stop()
mapa_restore_backup()
set_actors_enabled_by_room(true, "boss", stage2_boss_mapa.r0.r, stage2_boss_mapa.r1.r)
stages.boss_ready = false
stages.boss_finished = false
stages.boss_loaded = false
viewp:free_move()
states:finish()
end
-- STATES REGISTRY
states:registrar("stage2_boss_intro",{
stages.stage2_boss_intro_init,
stages.stage2_boss_intro_update,
stages.stage2_boss_intro_end
})
states:registrar("stage2_boss_outro",{
stages.stage2_boss_outro_update,
stages.stage2_boss_outro_end
})
+62
View File
@@ -0,0 +1,62 @@
stage1_boss_mapa = {
map = {
-- 44
{
256,256,256, 17, 18, 19, 18, 19, 18, 19, 18, 19,
256,256,256, 17,256,256,256,256,256,256,256,256,
256,256,256, 17,256,256,256,256,256,256,256,256,
256,256,256, 17,256, 1,256,256,256,256,256,256,
256,256,256, 17,112,256, 1,256,256,256,256,112,
256,256,256, 17,256, 1,256,256,256,256,256,256,
},
-- 45
{
18, 19, 18, 19, 18, 19, 18, 19, 18, 19, 17,256,
69,256,256, 68,256, 67,256,256,256,256, 17,256,
256, 69, 64, 66,256,256,256,256,256,256, 17,256,
256, 69, 69, 69,256, 65,256,256, 2,256, 17,256,
256,256,112,256, 69, 69,256, 2,256,112, 17,256,
256,256,256,256,256,256,256,256, 2,256, 17,256,
},
-- 54
{
256,256,256, 17,112,256, 1,256,256,256,256, 4,
256,256,256, 17,256, 1,256,256,256,256,256,256,
256,256,256, 17,112,256, 1,256,256, 1,256,256,
256,256,256, 17,256, 1,256,256,256,256,256,256,
256,256,256, 17,256,256, 1,256,256,256,256,256,
20, 21, 20, 21, 54, 55, 54, 55, 54, 55, 54, 56,
},
-- 55
{
22, 22, 5,256,256,256,256, 2,256,112,17,256,
256,256,256,256,256,256,256,256, 2,256,17,256,
256,256,256,256, 2,256,256, 2,256,112,17,256,
256,256,256,256,256,256,256,256, 2,256,17,256,
256,256,256,256,256,256,256, 2,256,256,17,256,
54, 55, 54, 56, 56, 55, 54, 56, 54, 56,55, 54,
},
-- 64
{
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 65
{
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
26, 27, 26, 27, 26, 27, 26, 27, 26, 27, 26, 27,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
},
r0 = {r=44, x=1, y=1},
r1 = {r=65, x=12, y=6}
}
+108
View File
@@ -0,0 +1,108 @@
stage2_ending ={
time = 0,
batvio_vx = 1,
update = function(self)
stage2_ending:update_scene()
end,
ended = function(self)
stage2_ending:end_scene()
end
}
function stage2_ending:update_scene()
-- print("UPDATING "..self.time)
if self.time==0 then
start_scene(scenes.stage2_ending, nil, false)
-- segona escena - batman escapa
elseif self.time<70 then
batvio.x = batvio.x - self.batvio_vx
if self.time % 6 == 0 then
self.batvio_vx= self.batvio_vx+1
end
batvio.update()
elseif self.time==70 then
batvio.enabled = false
premiere.stage2_ending_init()
elalien.stage2_ending_init()
elseif self.time<200 then
-- tercera escena - Aparició de elalien i premiere
-- elalien 9,1,3 -> 8,6,3
-- premiere 7,6,3 -> 8,1,3
premiere.update()
elalien.update()
elseif self.time==200 then
music.stop()
-- quarta escena - dialeg entre els 3
start_scene(scenes.stage2_ending_2, nil, false)
elseif self.time==201 then
premiere.stage2_ending_init2()
elseif self.time<400 then
-- quinta escena - premiere se'n va (vore dialegs draw)
premiere.update()
elseif self.time==400 then
premiere.stage2_ending_init3()
copter.hab=premiere.hab
copter.x=premiere.x
copter.y=premiere.y
-- copter.init()
copter.y=copter.y-16
table.insert( actors, copter)
-- music.play(audio_song_copter)
music_player:play(audio_song_copter)
elseif self.time<720 then
-- sisena escena - premiere copter
premiere.update()
copter.x = premiere.x-32
copter.y = premiere.y-48
copter.update()
elseif self.time==720 then
start_scene(scenes.stage2_ending_3, nil, false)
elseif self.time==721 then
fade.fadeoutin()
end
surf.target(0)
surf.cls(16)
world_draw()
-- dialegs draw
if self.time>201 and self.time<300 then
-- bocadillo quinta escena (1)
dialeg.show(premiere.x, premiere.y,
premiere.w, false,
"Volare uoh oh...", true)
elseif self.time>=300 and self.time<400 then
-- bocadillo quinta escena (2)
dialeg.show(premiere.x, premiere.y,
premiere.w, false,
"Cantare uoh oh oh oh...", true)
end
score.draw()
self.time = self.time + 1
-- Acabar ending
if self.time>=730 then
self.time = 0
states:next()
end
end
function stage2_ending:end_scene()
-- print("END")
if self.time==0 then fade.fadein() end
surf.target(0)
surf.cls(16)
font.current(font_sf)
draw.text("Gracies per jugar!",20,100,2)
self.time = self.time + 1
if self.time == 200 then
-- states:finish()
states:executar("title",false)
end
end
states:registrar("stage2_ending",{
stage2_ending.update,
stage2_ending.ended
})
+187
View File
@@ -0,0 +1,187 @@
s02_mapa_room_cols = 12; -- en quantitat de tiles
s02_mapa_room_rows = 6; -- en quantitat de tiles
s02_mapa_rooms_per_piso = 16
s02_mapa_pisos = 1
mapa_empty_tile = 256
-- Nuvols
-- 3x4
-- . 8 9 .
-- 5 6 6 7
-- 1 2 3 4
--
-- . 5 9 .
-- 8 1 7 7
-- 1 4 4 4
--
-- 3x3
-- . 8 9
-- 5 7 3
-- 1 4 .
--
-- 4x2
-- 10 11 12 13
-- 1 2 3 4
--
-- 2x2
-- 10 13
-- 1 4
--
-- 5 7
-- 1 4
--
-- 8 9
-- 1 4
--
-- 8 7
-- 1 4
--
-- 10 13
-- 2 3
stage2_mapa={
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
-- 1
{
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
256,256,256,256,256,256,256,256,256,256,256,256,
},
}
+64
View File
@@ -0,0 +1,64 @@
stages = {}
stages.stage = 2
stages.stage_loaded = 0
stages.last_stage = 2
stages.actors={}
stages.boss_loaded = false
stages.boss_ready = false
stages.boss_finished = false
boss = nil
stages.stage_init = nil
stages.stage_update = nil
stages.stage_draw_back = nil
stages.stage_draw_middle = nil
stages.stage_draw_front = nil
stages.stage_bg_music = nil
function stages.load_stage( init )
print("Loading stage "..stages.stage)
init = init or false
stages.stage_init = stages["stage"..stages.stage.."_init"]
stages.stage_update = stages["stage"..stages.stage.."_update"]
stages.stage_draw_back = stages["stage"..stages.stage.."_draw_back"]
stages.stage_draw_middle = stages["stage"..stages.stage.."_draw_middle"]
stages.stage_draw_front = stages["stage"..stages.stage.."_draw_front"]
stages.stage_bg_music = stages["stage"..stages.stage.."_bg_music"]
stages.stage_viewport_update = stages["stage"..stages.stage.."_viewport_update"]
stages.stage_loaded = stages.stage
stages.boss_ready = false
stages.boss_loaded = false
if init then stages.stage_init() end
end
function stages.load_boss_stage()
stages.stage_init = stages["stage"..stages.stage.."_boss_init"]
stages.stage_update = stages["stage"..stages.stage.."_boss_update"]
stages.stage_draw_back = stages["stage"..stages.stage.."_boss_draw_back"]
stages.stage_draw_middle = stages["stage"..stages.stage.."_boss_draw_middle"]
stages.stage_draw_front = stages["stage"..stages.stage.."_boss_draw_front"]
stages.stage_bg_music = stages["stage"..stages.stage.."_boss_bg_music"]
stages.stage_viewport_update = stages["stage"..stages.stage.."_boss_viewport_update"]
stages.boss_loaded = true
end
function stages.unload_boss_stage()
stages.boss_ready = false
stages.boss_finished = false
stages.boss_loaded = false
stages.load_stage(false)
end
function stages.next_stage()
stages.stage = stages.stage + 1
if stages.stage>stages.last_stage then
states:executar("title",false)
else
stages.load_stage(true)
end
end
require "stage1"
require "stage2"
+11 -30
View File
@@ -1,25 +1,3 @@
-- flow={
-- level=1,
-- step={0},
-- actiu="",
-- pila={},
-- paths={ {flow_safe} },
-- registre={}
-- -- sub_path_enable = false,
-- -- sub_step = 0,
-- -- sub_path={}
-- }
-- function flow:print()
-- print("> STEP= "..self.step.." / "..#self.path)
-- if self.sub_path_enable then
-- print("> SUB_PATH_ENABLE= TRUE")
-- else
-- print("> SUB_PATH_ENABLE= FALSE")
-- end
-- print("> SUB_STEP= "..self.sub_step.." / "..#self.sub_path)
-- print("")
-- end
states={
registre={}, -- {nom {ptr (a l'estat actual), path (llista de funcions ordenada)} ...}
@@ -40,7 +18,8 @@ end
function states:registrar(nom, _path)
print("[STATES] REGISTRAR => "..nom)
self.registre[nom]= {ptr=0, path=_path}
print(self.registre[nom].ptr)
-- print(" nom.ptr -> "..self.registre[nom].ptr)
-- print(" nom.path -> "..#self.registre[nom].path)
end
function states:borrar(nom)
@@ -68,22 +47,24 @@ function states:executar(nom, stacking)
end
self.actiu=nom
self.registre[self.actiu].ptr=0
-- Executar el primer pas
self:next()
end
function states:next()
print("[STATES] NEXT "..self.actiu);
local ptr = self.registre[self.actiu].ptr
local steps = #self.registre[self.actiu].path
-- print("STATES_NEXT= "..self.actiu..", "..ptr..", "..steps)
-- print("[STATES] NEXT "..self.actiu);
local estat = self.registre[self.actiu]
local ptr = estat.ptr
local steps = #estat.path
if ptr+1>steps then
self:finish()
else
self.registre[self.actiu].ptr = ptr+1
game_update = self.registre[self.actiu].path[self.registre[self.actiu].ptr]
estat.ptr = ptr+1
-- print("[STATES] NEXT "..self.actiu.." ("..estat.ptr.." / "..steps..")")
game_update = estat.path[estat.ptr]
end
return self.actiu, self.registre[self.actiu].ptr
return self.actiu, estat.ptr
end
function states:finish()
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

+4 -3
View File
@@ -32,7 +32,8 @@ local rect_wait = 0
function title_init()
title_sf=surf.load("title_tiles.gif")
surf.source(title_sf)
music.play(audio_main_song)
-- music.play(audio_main_song)
music_player:play(audio_main_song)
states:next()
end
@@ -143,8 +144,8 @@ end
function title_menu_draw()
draw_shiny_rect(56,120+(20*menu_sel)-4,146,18,14,15)
arc_text("JUGAR", 108, 120, 14)
arc_text("OPCIONS", 102, 140, 14)
arc_text("JUGAR", 111, 120, 14)
arc_text("OPCIONS", 104, 140, 14)
end
function title_menu_update()
+15 -2
View File
@@ -1,11 +1,12 @@
trigger={}
function trigger.new(_hab,_x,_y,_action,_escena,_id,_type,_doors,_linked_id)
function trigger.new(_hab,_x,_y,_action,_escena,_id,_type,_doors,_linked_id,_remote_view)
local world_x, world_y = coords.room_to_world(_hab,_x,_y)
_bb={x=0,y=0,w=16,h=16} --default
-- if _type=="switch" then _bb={x=0,y=0,w=16,h=17} end
-- if _id then print("NEW => ".._id) end
_type = _type or "invisible"
if _remote_view==nil then _remote_view=true end
return {
name="trigger",
type=_type,
@@ -18,6 +19,7 @@ function trigger.new(_hab,_x,_y,_action,_escena,_id,_type,_doors,_linked_id)
h=16,
fun=_action,
doors=_doors,
remote_view=_remote_view,
update=trigger.update,
draw=trigger.draw,
linked_id=_linked_id,
@@ -76,7 +78,7 @@ triggers={}
function triggers:open_door()
local hab= self.doors[1]-1
if hab~=abad.hab then
if hab~=abad.hab and self.remote_view then
remote_view(hab)
end
for i=2,#self.doors do
@@ -85,6 +87,17 @@ function triggers:open_door()
end
end
function triggers:add_1up()
local x, y = coords.room_to_world(38, 8, 1)
table.insert( actors, one_up.new(38, x, y, 1, 0, true) )
triggers.open_door(self)
end
function triggers:start_bg_music()
stages.stage_bg_music()
remove_actor(self)
end
function triggers:escena_abad_inici()
start_scene(scenes.abad_inici)
remove_actor(self)
+51 -33
View File
@@ -1,4 +1,4 @@
require "map"
-- require "map"
viewport={}
@@ -20,7 +20,8 @@ function viewport.new(_width, _height)
range = nil, -- rang de moviment quan està fixat {r= , l=, u=, d= }
fixed_coord = nil, -- coordenades fixades
smooth_adjust = nil,
adjust_speed = 2
adjust_speed = 2,
fixed_to_free_position = viewport.fixed_to_free_position
}
end
@@ -66,6 +67,52 @@ function viewport:coord2room ()
return coords.world_to_room(self.x, self.y)
end
function viewport:fixed_to_free_position(nx, ny)
local speed_x = self.adjust_speed
local speed_y = self.adjust_speed
local sm_x = self.smooth_adjust.x
local sm_y = self.smooth_adjust.y
-- print("FIXED TO FREE")
-- print(" nx,ny= "..nx.." , "..ny)
-- if sm_x~=nil then print(" sm_x= "..sm_x) else print(" sm_x= nil") end
-- if sm_y~=nil then print(" sm_y= "..sm_y) else print(" sm_y= nil") end
-- print(" sp_x,sp_y= "..speed_x.." , "..speed_y)
-- print("")
-- Ajustar eix X
self.x = nx
if sm_x~=nil then
if math.abs(nx-sm_x)<=speed_x then
sm_x = nil
else
if nx<sm_x-speed_x then speed_x = -speed_x end
self.x=sm_x+speed_x
sm_x =sm_x+speed_x
end
-- actualitzar eix smooth x
self.smooth_adjust.x = sm_x
end
-- Ajustar eix Y
self.y = ny
if sm_y~=nil then
if math.abs(ny-sm_y)<=speed_y then
sm_y = nil
else
if ny<sm_y-speed_y then speed_y = -speed_y end
self.y=sm_y+speed_y
sm_y =sm_y+speed_y
end
-- actualitzar eix smooth y
self.smooth_adjust.y = sm_y
end
if sm_x == nil and sm_y == nil then
self.smooth_adjust = nil
end
end
function viewport:position(x, y)
local nx = (x ~= nil) and x or self.x
local ny = (y ~= nil) and y or self.y
@@ -74,39 +121,10 @@ function viewport:position(x, y)
if self.smooth_adjust == nil then
self.x = nx
self.y = ny
self.range=nil
else
-- viewport lliure després de fixar-lo -> Ajustar suau
local speed_x = self.adjust_speed
local speed_y = self.adjust_speed
local sm_x = self.smooth_adjust.x
local sm_y = self.smooth_adjust.y
self.x = nx
if sm_x~=nil then
if math.abs(nx-sm_x)<speed_x then
sm_x = nil
else
if nx<sm_x-speed_x then speed_x = -speed_x end
self.x=sm_x+speed_x
sm_x =sm_x+speed_x
end
self.smooth_adjust.x = sm_x
end
self.y = ny
if sm_y~=nil then
if math.abs(ny-sm_y)<speed_y then
sm_y = nil
else
if ny<sm_y-speed_y then speed_y = -speed_y end
self.y=sm_y+speed_y
sm_y =sm_y+speed_y
end
self.smooth_adjust.y = sm_y
end
if sm_x == nil and sm_y == nil then
self.smooth_adjust = nil
end
self:fixed_to_free_position(nx, ny)
end
else
-- viewport fixe
+59
View File
@@ -99,3 +99,62 @@ function warp.update_all()
end
end
function actor_warp_draw(actor)
local shrink_w = actor.w*actor.shrink
local shrink_h = actor.h*actor.shrink
local offset_x = math.floor((actor.w-shrink_w)/2)
local offset_y = math.floor((actor.h-shrink_h)/2)
local scr_x, scr_y = viewp:screen_coords( actor.x+offset_x, actor.y+offset_y )
shrink_w = math.floor(shrink_w)
shrink_h = math.floor(shrink_h)
if shrink_w>0 and shrink_h>0 then
draw.surfrot((actor.frame&7)*cw, (actor.frame>>cxr2)*ch,
cw, ch,
scr_x, scr_y,
actor.angle,
shrink_w, shrink_h,
actor.flip)
end
end
function actor_warp_update(actor)
-- warp, wait, respawn
if actor.warping then
if actor.step<actor.death_time then
actor.shrink=actor.shrink-actor.d_shrink
actor.angle=actor.angle+actor.d_angle
if actor.angle>=360 then actor.angle = actor.angle % 360 end
if actor.shrink<=0 then
actor.shrink=1
actor.d_shrink=1
actor.angle=0
actor.d_angle=1
actor.warping = false
actor.frame = -1
actor.step = 0
if actor.energy~=nil then
actor.energy = actor.max_energy
end
end
end
elseif actor.step<actor.death_time/2 then
actor.frame = -1
elseif actor.step<actor.death_time then
if actor.step%2==0 then
actor.frame=actor.anim[#actor.anim]
else
actor.frame=-1
end
elseif actor.step>=actor.death_time then
actor.frame=actor.anim[1]
actor.step=0
actor.wait=0
if actor.name=="caco" then
actor.update=caco.update_normal
elseif actor.name=="zombie" then
actor.update=zombie.update_normal
end
actor.dying = false
end
end