Skip to content
Snippets Groups Projects
Commit b84b489c authored by dg's avatar dg
Browse files

Stores refresh based on player level

git-svn-id: http://svn.net-core.org/repos/t-engine4@2729 51575b47-30f0-44d4-a5cc-537603b46e54
parent 69e8561b
No related branches found
No related tags found
No related merge requests found
Showing
with 404 additions and 23 deletions
...@@ -37,16 +37,24 @@ function _M:init(t, no_default) ...@@ -37,16 +37,24 @@ function _M:init(t, no_default)
Inventory.init(self, t, no_default) Inventory.init(self, t, no_default)
end end
--- Default restock checking method
-- Checks based on turns elapsed, you may overload it to do your own checks
function _M:canRestock()
local s = self.store
if self.last_filled and game.turn and self.last_filled >= game.turn - s.restock_after then
print("[STORE] not restocking yet", game.turn, s.restock_after, self.last_filled)
return false
end
return true
end
--- Fill the store with goods --- Fill the store with goods
-- @param level the level to generate for (instance of type engine.Level) -- @param level the level to generate for (instance of type engine.Level)
-- @param zone the zone to generate for -- @param zone the zone to generate for
function _M:loadup(level, zone) function _M:loadup(level, zone)
local s = self.store local s = self.store
if not s then error("Store without a store field") end if not s then error("Store without a store field") end
if self.last_filled and game.turn and self.last_filled >= game.turn - s.restock_after then if not self:canRestock() then return end
print("[STORE] not restocking yet", game.turn, s.restock_after, self.last_filled)
return
end
local inven = self:getInven("INVEN") local inven = self:getInven("INVEN")
if s.empty_before_restock then if s.empty_before_restock then
...@@ -70,6 +78,7 @@ function _M:loadup(level, zone) ...@@ -70,6 +78,7 @@ function _M:loadup(level, zone)
if filter.id then e:identify(filter.id) end if filter.id then e:identify(filter.id) end
self:addObject(inven, e) self:addObject(inven, e)
zone:addEntity(level, e, "object") zone:addEntity(level, e, "object")
self:check("stocked_object", e)
print("[STORE] stocking up: ", e.name) print("[STORE] stocking up: ", e.name)
i = i + 1 i = i + 1
end end
...@@ -87,6 +96,7 @@ function _M:loadup(level, zone) ...@@ -87,6 +96,7 @@ function _M:loadup(level, zone)
if filter.id then e:identify(filter.id) end if filter.id then e:identify(filter.id) end
self:addObject(inven, e) self:addObject(inven, e)
zone:addEntity(level, e, "object") zone:addEntity(level, e, "object")
self:check("stocked_object", e)
print("[STORE] stocking up: ", e.name) print("[STORE] stocking up: ", e.name)
end end
end end
......
...@@ -31,14 +31,12 @@ end ...@@ -31,14 +31,12 @@ end
function _M:init(t, no_default) function _M:init(t, no_default)
t.store.buy_percent = t.store.buy_percent or function(self, o) if o.type == "gem" then return 40 else return 15 end end t.store.buy_percent = t.store.buy_percent or function(self, o) if o.type == "gem" then return 40 else return 15 end end
t.store.sell_percent = t.store.sell_percent or 100 t.store.sell_percent = t.store.sell_percent or function(self, o) return 100 + 2 * (o.__store_level or 0) end
t.store.purse = t.store.purse or 20 t.store.purse = t.store.purse or 20
Store.init(self, t, no_default) Store.init(self, t, no_default)
self.name = self.name .. (" (Max buy %0.2f gold)"):format(self.store.purse) self.name = self.name .. (" (Max buy %0.2f gold)"):format(self.store.purse)
if self.store and self.store.restock_after then self.store.restock_after = self.store.restock_after * 10 end
if not self.store.actor_filter then if not self.store.actor_filter then
self.store.actor_filter = function(o) self.store.actor_filter = function(o)
return not o.quest and not o.lore and o.cost and o.cost > 0 return not o.quest and not o.lore and o.cost and o.cost > 0
...@@ -46,6 +44,22 @@ function _M:init(t, no_default) ...@@ -46,6 +44,22 @@ function _M:init(t, no_default)
end end
end end
--- Caleld when a new object is stocked
function _M:stocked_object(o)
o.__store_level = game.zone.base_level + game.level.level - 1
end
--- Restock based on player level
function _M:canRestock()
local s = self.store
local p = game.party:findMember{main=true}
if self.last_filled and p and self.last_filled >= p.level - s.restock_every then
print("[STORE] not restocking yet [player level]", p.level, s.restock_every, self.last_filled)
return false
end
return true
end
--- Called on object purchase try --- Called on object purchase try
-- @param who the actor buying -- @param who the actor buying
-- @param o the object trying to be purchased -- @param o the object trying to be purchased
......
...@@ -301,7 +301,7 @@ newEntity{ base = "BASE_WAND", ...@@ -301,7 +301,7 @@ newEntity{ base = "BASE_WAND",
unided_name = "unstable wand", identified=true, force_lore_artifact=true, unided_name = "unstable wand", identified=true, force_lore_artifact=true,
name = "Rod of Recall", color=colors.LIGHT_BLUE, unique=true, name = "Rod of Recall", color=colors.LIGHT_BLUE, unique=true,
desc = [[This rod is made entirely of voratun, infused with raw magical energies it can bend space itself. desc = [[This rod is made entirely of voratun, infused with raw magical energies it can bend space itself.
This seems to be what the troll was keeping as "treasure". You have heard of such items before, they are very useful to adventurers, allowing faster travel.]], You have heard of such items before, they are very useful to adventurers, allowing faster travel.]],
cost = 0, quest=true, cost = 0, quest=true,
elec_proof = true, elec_proof = true,
......
...@@ -373,7 +373,7 @@ newEntity{ ...@@ -373,7 +373,7 @@ newEntity{
desc = [[The Blood of Life! It can let a living being resurrect in case of an untimely demise. But only once!]], desc = [[The Blood of Life! It can let a living being resurrect in case of an untimely demise. But only once!]],
cost = 1000, cost = 1000,
use_simple = { name = "quaff the Blood of Life", use = function(self, who) use_simple = { name = "quaff the Blood of Life to grant an extra life", use = function(self, who)
game.logSeen(who, "%s quaffs the %s!", who.name:capitalize(), self:getName()) game.logSeen(who, "%s quaffs the %s!", who.name:capitalize(), self:getName())
if not who:attr("undead") then if not who:attr("undead") then
who.blood_life = true who.blood_life = true
......
...@@ -23,7 +23,7 @@ newEntity{ ...@@ -23,7 +23,7 @@ newEntity{
display = '2', color=colors.UMBER, display = '2', color=colors.UMBER,
store = { store = {
purse = 25, purse = 25,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 10, min_fill = 10,
max_fill = 20, max_fill = 20,
...@@ -39,7 +39,7 @@ newEntity{ ...@@ -39,7 +39,7 @@ newEntity{
display = '3', color=colors.UMBER, display = '3', color=colors.UMBER,
store = { store = {
purse = 25, purse = 25,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 10, min_fill = 10,
max_fill = 20, max_fill = 20,
...@@ -55,7 +55,7 @@ newEntity{ ...@@ -55,7 +55,7 @@ newEntity{
display = '4', color=colors.LIGHT_BLUE, display = '4', color=colors.LIGHT_BLUE,
store = { store = {
purse = 10, purse = 10,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 4, min_fill = 4,
max_fill = 7, max_fill = 7,
...@@ -71,7 +71,7 @@ newEntity{ ...@@ -71,7 +71,7 @@ newEntity{
display = '5', color=colors.WHITE, display = '5', color=colors.WHITE,
store = { store = {
purse = 10, purse = 10,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 4, min_fill = 4,
max_fill = 7, max_fill = 7,
...@@ -87,7 +87,7 @@ newEntity{ ...@@ -87,7 +87,7 @@ newEntity{
display = '9', color=colors.BLUE, display = '9', color=colors.BLUE,
store = { store = {
purse = 30, purse = 30,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 20, min_fill = 20,
max_fill = 30, max_fill = 30,
...@@ -107,7 +107,7 @@ newEntity{ ...@@ -107,7 +107,7 @@ newEntity{
display = '6', color=colors.RED, display = '6', color=colors.RED,
store = { store = {
purse = 25, purse = 25,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 15, min_fill = 15,
max_fill = 25, max_fill = 25,
...@@ -128,7 +128,7 @@ newEntity{ ...@@ -128,7 +128,7 @@ newEntity{
display = '2', color=colors.BLUE, display = '2', color=colors.BLUE,
store = { store = {
purse = 20, purse = 20,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 15, min_fill = 15,
max_fill = 25, max_fill = 25,
...@@ -152,7 +152,7 @@ newEntity{ ...@@ -152,7 +152,7 @@ newEntity{
display = '5', color=colors.WHITE, display = '5', color=colors.WHITE,
store = { store = {
purse = 10, purse = 10,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 5, min_fill = 5,
max_fill = 9, max_fill = 9,
...@@ -174,7 +174,7 @@ newEntity{ ...@@ -174,7 +174,7 @@ newEntity{
display = '7', color=colors.BLUE, display = '7', color=colors.BLUE,
store = { store = {
purse = 35, purse = 35,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
sell_percent = 140, sell_percent = 140,
min_fill = 10, min_fill = 10,
...@@ -191,7 +191,7 @@ newEntity{ ...@@ -191,7 +191,7 @@ newEntity{
display = '*', color=colors.LIGHT_RED, display = '*', color=colors.LIGHT_RED,
store = { store = {
purse = 5, purse = 5,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 40, min_fill = 40,
max_fill = 40, max_fill = 40,
...@@ -215,7 +215,7 @@ newEntity{ ...@@ -215,7 +215,7 @@ newEntity{
display = '*', color=colors.LIGHT_RED, display = '*', color=colors.LIGHT_RED,
store = { store = {
purse = 5, purse = 5,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 40, min_fill = 40,
max_fill = 40, max_fill = 40,
...@@ -231,7 +231,7 @@ newEntity{ ...@@ -231,7 +231,7 @@ newEntity{
display = '2', color=colors.UMBER, display = '2', color=colors.UMBER,
store = { store = {
purse = 25, purse = 25,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 20, min_fill = 20,
max_fill = 30, max_fill = 30,
...@@ -251,7 +251,7 @@ newEntity{ ...@@ -251,7 +251,7 @@ newEntity{
display = '3', color=colors.UMBER, display = '3', color=colors.UMBER,
store = { store = {
purse = 25, purse = 25,
restock_after = 1000, restock_every = 5,
empty_before_restock = true, empty_before_restock = true,
min_fill = 20, min_fill = 20,
max_fill = 30, max_fill = 30,
......
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009, 2010 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
defineTile("#", "WALL")
defineTile("+", "LOCK")
defineTile("1", "WALL_SEE")
defineTile(".", "SAND")
defineTile("-", "FLOOR")
startx = 23
starty = 0
endx = 33
endy = 49
-- defineTile section
defineTile("#", "WALL")
defineTile("<", "UP")
defineTile("o", "FLOOR", nil, "ORC_GUARD")
defineTile("O", "FLOOR", nil, "BROTOQ")
defineTile(">", "IRON_COUNCIL")
defineTile(".", "FLOOR")
-- addSpot section
-- addZone section
-- ASCII map section
return [[
######################.<.#########################
######################...#########################
######################...#########################
######################...#########################
######################.#.#########################
######################.#.#########################
######################...#########################
######################...#########################
######################...#########################
######################.#.#########################
######################.#.#########################
######################...#########################
######################...#########################
##################...........#####################
##################...........#####################
##################..##...##..#####################
##################..##...##..#####################
##################...........#####################
##################....oOo....#####################
##################...........#####################
##################..##...##..#####################
##################..##...##..#####################
##################...........#####################
##################...........#####################
######################...#########################
######################...#########################
######################...#########################
######################.#.#########################
######################...#########################
######################...#########################
######################...#########################
######################.#.#########################
######################.#...........###############
######################.###.....#...###############
######################.............###############
################################...###############
################################...###############
################################...###############
################################...###############
################################.#.###############
################################.#.###############
################################...###############
################################...###############
################################...###############
################################...###############
################################...###############
################################.#.###############
################################.#.###############
################################...###############
################################.>.###############]]
\ No newline at end of file
...@@ -28,7 +28,7 @@ desc = function(self, who) ...@@ -28,7 +28,7 @@ desc = function(self, who)
desc[#desc+1] = "#SLATE#* You must explore the scintillating caves.#WHITE#" desc[#desc+1] = "#SLATE#* You must explore the scintillating caves.#WHITE#"
end end
if self:isCompleted("rhaloren") then if self:isCompleted("rhaloren") then
desc[#desc+1] = "#LIGHT_GREEN#* You have explored the Rhaloren camp and kill the Inquisitor.#WHITE#" desc[#desc+1] = "#LIGHT_GREEN#* You have explored the Rhaloren camp and killed the Inquisitor.#WHITE#"
else else
desc[#desc+1] = "#SLATE#* You must explore the Rhaloren camp.#WHITE#" desc[#desc+1] = "#SLATE#* You must explore the Rhaloren camp.#WHITE#"
end end
......
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009, 2010 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
name = "In the void, no one can hear you scream"
desc = function(self, who)
local desc = {}
desc[#desc+1] = "You have destroyed the sorcerers, sadly the portal to the Void remains open: the Creator is coming."
desc[#desc+1] = "This can not be allowed to happen, after thousands of years trapped in the void between the stars Gerlyk is mad with rage."
desc[#desc+1] = "You must now finish what the Sher'tuls started, take the Staff of Absorption and become a Godslayer yourself."
return table.concat(desc, "\n")
end
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009, 2010 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
load("/data/general/grids/basic.lua")
load("/data/general/grids/forest.lua")
load("/data/general/grids/water.lua")
load("/data/general/grids/mountain.lua")
load("/data/general/grids/sand.lua")
load("/data/general/grids/void.lua")
-- Override exits
newEntity { base = "GRASS", define_as = "GRASS_UP_WILDERNESS" }
newEntity { base = "DEEP_OCEAN_WATER", define_as = "WATER_DOWN" }
newEntity { base = "GRASS", define_as = "OLD_FOREST" }
newEntity{
define_as = "RIFT",
name = "Temporal Rift", image="terrain/demon_portal2.png",
display = '&', color_r=255, color_g=0, color_b=220, back_color=colors.VIOLET,
notice = true,
always_remember = true,
show_tooltip = true,
desc = [[The rift leads somewhere ..]],
change_level = 1,
change_level_check = function()
if game.level.level > 1 then return end
local p = game.party:findMember{main=true}
local Chat = require "engine.Chat"
local chat = Chat.new("temporal-rift-start", {name="Temporal Warden"}, p)
chat:invoke()
return true
end,
}
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009, 2010 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
--load("/data/general/npcs/telugoroth.lua", rarity(0))
--load("/data/general/npcs/horror.lua", function(e) if e.rarity then e.horror_rarity, e.rarity = e.rarity, nil end end)
local Talents = require("engine.interface.ActorTalents")
newEntity{ define_as = "GOD_GERLYK",
type = "god", subtype = "god", unique = true,
name = "Gerlyk, the Creator",
display = "P", color=colors.VIOLET,
desc = [[During the Age of Haze nearly all gods were destroyed by the Sher'tuls Godslayers. yet a few escaped.
Gerlyk, the creator of the human race, prefered to flee into the void between the stars than to face death. He has been trapped ever since.
The sorcerers tried to bring him back and nearly succeeded.
Now you have come to finish what the Sher'tul began. Become a Godslayer yourself.]],
level_range = {100, nil}, exp_worth = 3,
max_life = 900, life_rating = 80, fixed_rating = true,
life_regen = 25,
max_stamina = 10000,
max_mana = 10000,
max_positive = 10000,
max_negative = 10000,
max_vim = 10000,
stats = { str=100, dex=100, con=100, mag=100, wil=100, cun=100 },
inc_stats = { str=80, dex=80, con=80, mag=80, wil=80, cun=80 },
rank = 5,
size_category = 5,
infravision = 20,
instakill_immune = 1,
stun_immune = 1,
blind_immune = 1,
confusion_immune = 1,
move_others=true,
see_invisible = 150,
body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
resolvers.equip{
},
resolvers.drops{chance=100, nb=1, {ego_chance=100} },
-- give him a special shield talent that only the staff of absorption can remove
resolvers.talents{
[Talents.T_GLOOM]=3,
[Talents.T_WEAKNESS]=3,
[Talents.T_TORMENT]=3,
[Talents.T_UNNATURAL_BODY]=4,
[Talents.T_DOMINATE]=1,
[Talents.T_BLINDSIDE]=3,
[Talents.T_SLASH]=3,
[Talents.T_RECKLESS_CHARGE]=1,
[Talents.T_DAMAGE_SMEARING]=5,
[Talents.T_HASTE]=3,
[Talents.T_BORROWED_TIME]=3,
},
resolvers.sustains_at_birth(),
ai = "tactical", ai_state = { talent_in=1, ai_move="move_astar", },
-- ai_tactic = resolvers.tactic"melee",
resolvers.inscriptions(6, {"healing infusion", "regeneration infusion", "shielding rune", "invisibility rune", "movement infusion", "wild infusion"}),
on_die = function(self, who)
game.player:resolveSource():setQuestStatus("void-gerlyk", engine.Quest.COMPLETED)
end,
}
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009, 2010 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
load("/data/general/objects/objects.lua")
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009, 2010 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
load("/data/general/traps/elemental.lua")
load("/data/general/traps/alarm.lua")
-- ToME - Tales of Maj'Eyal
-- Copyright (C) 2009, 2010 Nicolas Casalini
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
--
-- Nicolas Casalini "DarkGod"
-- darkgod@te4.org
return {
name = "Void between worlds",
display_name = function(x, y)
return "Void between worlds"
end,
variable_zone_name = true,
level_range = {100, 100},
level_scheme = "player",
max_level = 1,
decay = {300, 800},
actor_adjust_level = function(zone, level, e) return zone.base_level + e:getRankLevelAdjust() + level.level-1 + rng.range(-1,2) end,
width = 60, height = 25,
-- all_remembered = true,
all_lited = true,
no_worldport = true,
persistent = "zone",
color_shown = {0.7, 0.6, 0.8, 1},
color_obscure = {0.7*0.6, 0.6*0.6, 0.8*0.6, 0.6},
ambient_music = "Through the Dark Portal.ogg",
generator = {
map = {
class = "engine.generator.map.Forest",
floor = "VOID",
wall = {"SPACE_TURBULENCE1","SPACE_TURBULENCE2"},
up = "VOID",
down = "VOID",
edge_entrances = {4,6},
},
actor = {
class = "engine.generator.actor.Random",
nb_npc = {15, 25},
},
},
post_process = function(level)
local Map = require "engine.Map"
level.background_particle = require("engine.Particles").new("starfield", 1, {width=Map.viewport.width, height=Map.viewport.height})
end,
background = function(level, x, y, nb_keyframes)
local Map = require "engine.Map"
level.background_particle.ps:toScreen(x, y, true, 1)
end,
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment