147 lines
6.2 KiB
Lua
147 lines
6.2 KiB
Lua
local module = {}
|
|
local random = math.random
|
|
|
|
local texturePaths = {
|
|
aquatic0 = "assets/Characters/Aquatic0.png",
|
|
aquatic1 = "assets/Characters/Aquatic1.png",
|
|
avian0 = "assets/Characters/Avian0.png",
|
|
avian1 = "assets/Characters/Avian1.png",
|
|
cat0 = "assets/Characters/Cat0.png",
|
|
cat1 = "assets/Characters/Cat1.png",
|
|
demon0 = "assets/Characters/Demon0.png",
|
|
demon1 = "assets/Characters/Demon1.png",
|
|
dog0 = "assets/Characters/Dog0.png",
|
|
dog1 = "assets/Characters/Dog1.png",
|
|
elemental0 = "assets/Characters/Elemental0.png",
|
|
elemental1 = "assets/Characters/Elemental1.png",
|
|
humanoid0 = "assets/Characters/Humanoid0.png",
|
|
humanoid1 = "assets/Characters/Humanoid1.png",
|
|
misc0 = "assets/Characters/Misc0.png",
|
|
misc1 = "assets/Characters/Misc1.png",
|
|
pest0 = "assets/Characters/Pest0.png",
|
|
pest1 = "assets/Characters/Pest1.png",
|
|
pant0 = "assets/Characters/Plant0.png",
|
|
plant1 = "assets/Characters/Plant1.png",
|
|
player0 = "assets/Characters/Player0.png",
|
|
player1 = "assets/Characters/Player1.png",
|
|
quadroped0 = "assets/Characters/Quadraped0.png",
|
|
quadroped1 = "assets/Characters/Quadraped1.png",
|
|
reptile0 = "assets/Characters/Reptile0.png",
|
|
reptile1 = "assets/Characters/Reptile1.png",
|
|
rodent0 = "assets/Characters/Rodent0.png",
|
|
rodent1 = "assets/Characters/Rodent1.png",
|
|
slime0 = "assets/Characters/Slime0.png",
|
|
slime1 = "assets/Characters/Slime1.png",
|
|
undead0 = "assets/Characters/Undead0.png",
|
|
undead1 = "assets/Characters/Undead1.png",
|
|
}
|
|
|
|
|
|
local state = {
|
|
passive = 0,
|
|
agressive = 1,
|
|
scared = 2,
|
|
}
|
|
|
|
local enemies = {
|
|
|
|
-- PESTS
|
|
{ texturePaths.pest0, texturePaths.pest1, 0, 0 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 16, 0 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 32, 0 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 48, 0 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 64, 0 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 96, 0 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 112, 0 },
|
|
|
|
{ texturePaths.pest0, texturePaths.pest1, 0, 16 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 16, 16 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 32, 16 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 48, 16 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 64, 16 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 80, 16 },
|
|
|
|
{ texturePaths.pest0, texturePaths.pest1, 0, 32 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 16, 32 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 32, 32 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 48, 32 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 64, 32 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 80, 32 },
|
|
|
|
{ texturePaths.pest0, texturePaths.pest1, 0, 48 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 16, 48 },
|
|
--{ texturePaths.pest0, texturePaths.pest1, 32, 48 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 48, 48 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 64, 48 },
|
|
|
|
{ texturePaths.pest0, texturePaths.pest1, 0, 64 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 16, 64 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 32, 64 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 48, 64 },
|
|
|
|
{ texturePaths.pest0, texturePaths.pest1, 0, 80 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 16, 80 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 32, 80 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 48, 80 },
|
|
|
|
{ texturePaths.pest0, texturePaths.pest1, 0, 96 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 16, 96 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 32, 96 },
|
|
|
|
{ texturePaths.pest0, texturePaths.pest1, 0, 112 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 16, 112 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 32, 112 },
|
|
{ texturePaths.pest0, texturePaths.pest1, 48, 112 },
|
|
|
|
-- UNDEAD
|
|
{ texturePaths.undead0, texturePaths.undead1, 0, 0, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 16, 0, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 32, 0, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 48, 0, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 64, 0, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 80, 0, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 96, 0, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 112, 0, state.passive, state.agressive };
|
|
|
|
{ texturePaths.undead0, texturePaths.undead1, 0, 16, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 16, 16, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 32, 16, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 48, 16, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 64, 16, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 80, 16, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 96, 16, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 112, 16, state.passive, state.agressive };
|
|
|
|
{ texturePaths.undead0, texturePaths.undead1, 0, 32, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 16, 32, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 32, 32, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 48, 32, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 64, 32, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 80, 32, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 96, 32, state.passive, state.agressive };
|
|
{ texturePaths.undead0, texturePaths.undead1, 112, 32,
|
|
state.passive, state.scared };
|
|
}
|
|
|
|
local function repack(data)
|
|
return {
|
|
texturePath1 = data[1],
|
|
texturePath2 = data[2],
|
|
clipX = data[3],
|
|
clipY = data[4],
|
|
nstate = data[5] or state.passive,
|
|
cstate = data[6] or state.scared
|
|
}
|
|
end
|
|
|
|
function module.add_monster_to_room(map, roomx, roomy)
|
|
local count = random(3)
|
|
for i=0,count do
|
|
local x = (roomx * 512) + (random(13) + 1) * 32
|
|
local y = (roomy * 384) + (random(9) + 1) * 32
|
|
add_monster(map, x, y, repack(enemies[random(#enemies)]));
|
|
end
|
|
end
|
|
|
|
return module
|