Add new maps and tileset for the game world
- Created room1.tmx and room1.lua for the first room in the game, including tiles, collision objects, and NPCs. - Added room2.tmx and room2.lua for the second room, featuring tiles, collision objects, and an enemy. - Introduced a world template to manage map transitions and layout. - Implemented a new tileset (castle.tsx and castle.lua) for the castle theme, including tile properties and image references.
This commit is contained in:
96
scripts/battle/enemies/dummy.lua
Normal file
96
scripts/battle/enemies/dummy.lua
Normal file
@@ -0,0 +1,96 @@
|
||||
local Dummy, super = Class(EnemyBattler)
|
||||
|
||||
function Dummy:init()
|
||||
super.init(self)
|
||||
|
||||
-- Enemy name
|
||||
self.name = "Dummy"
|
||||
-- Sets the actor, which handles the enemy's sprites (see scripts/data/actors/dummy.lua)
|
||||
self:setActor("dummy")
|
||||
|
||||
-- Enemy health
|
||||
self.max_health = 450
|
||||
self.health = 450
|
||||
-- Enemy attack (determines bullet damage)
|
||||
self.attack = 4
|
||||
-- Enemy defense (usually 0)
|
||||
self.defense = 0
|
||||
-- Enemy reward
|
||||
self.money = 100
|
||||
|
||||
-- Mercy given when sparing this enemy before its spareable (20% for basic enemies)
|
||||
self.spare_points = 20
|
||||
|
||||
-- List of possible wave ids, randomly picked each turn
|
||||
self.waves = {
|
||||
"basic",
|
||||
"aiming",
|
||||
"movingarena"
|
||||
}
|
||||
|
||||
-- Dialogue randomly displayed in the enemy's speech bubble
|
||||
self.dialogue = {
|
||||
"..."
|
||||
}
|
||||
|
||||
-- Check text (automatically has "ENEMY NAME - " at the start)
|
||||
self.check = "AT 4 DF 0\n* Cotton heart and button eye\n* Looks just like a fluffy guy."
|
||||
|
||||
-- Text randomly displayed at the bottom of the screen each turn
|
||||
self.text = {
|
||||
"* The dummy gives you a soft\nsmile.",
|
||||
"* The power of fluffy boys is\nin the air.",
|
||||
"* Smells like cardboard.",
|
||||
}
|
||||
-- Text displayed at the bottom of the screen when the enemy has low health
|
||||
self.low_health_text = "* The dummy looks like it's\nabout to fall over."
|
||||
|
||||
-- Register act called "Smile"
|
||||
self:registerAct("Smile")
|
||||
-- Register party act with Ralsei called "Tell Story"
|
||||
-- (second argument is description, usually empty)
|
||||
self:registerAct("Tell Story", "", {"ralsei"})
|
||||
end
|
||||
|
||||
function Dummy:onAct(battler, name)
|
||||
if name == "Smile" then
|
||||
-- Give the enemy 100% mercy
|
||||
self:addMercy(100)
|
||||
-- Change this enemy's dialogue for 1 turn
|
||||
self.dialogue_override = "... ^^"
|
||||
-- Act text (since it's a list, multiple textboxes)
|
||||
return {
|
||||
"* You smile.[wait:5]\n* The dummy smiles back.",
|
||||
"* It seems the dummy just wanted\nto see you happy."
|
||||
}
|
||||
|
||||
elseif name == "Tell Story" then
|
||||
-- Loop through all enemies
|
||||
for _, enemy in ipairs(Game.battle.enemies) do
|
||||
-- Make the enemy tired
|
||||
enemy:setTired(true)
|
||||
end
|
||||
return "* You and Ralsei told the dummy\na bedtime story.\n* The enemies became [color:blue]TIRED[color:reset]..."
|
||||
|
||||
elseif name == "Standard" then --X-Action
|
||||
-- Give the enemy 50% mercy
|
||||
self:addMercy(50)
|
||||
if battler.chara.id == "ralsei" then
|
||||
-- R-Action text
|
||||
return "* Ralsei bowed politely.\n* The dummy spiritually bowed\nin return."
|
||||
elseif battler.chara.id == "susie" then
|
||||
-- S-Action: start a cutscene (see scripts/battle/cutscenes/dummy.lua)
|
||||
Game.battle:startActCutscene("dummy", "susie_punch")
|
||||
return
|
||||
else
|
||||
-- Text for any other character (like Noelle)
|
||||
return "* "..battler.chara:getName().." straightened the\ndummy's hat."
|
||||
end
|
||||
end
|
||||
|
||||
-- If the act is none of the above, run the base onAct function
|
||||
-- (this handles the Check act)
|
||||
return super.onAct(self, battler, name)
|
||||
end
|
||||
|
||||
return Dummy
|
||||
Reference in New Issue
Block a user