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

hum

git-svn-id: http://svn.net-core.org/repos/t-engine4@3270 51575b47-30f0-44d4-a5cc-537603b46e54
parent f7f547fc
No related branches found
No related tags found
No related merge requests found
......@@ -59,22 +59,15 @@ function _M:tick()
-- Give some energy to entities
if self.level then
local i, e
local arr = self.level.e_array
for i = 1, #arr do
e = arr[i]
if e and e.act and e.energy then
-- print("<ENERGY", e.name, e.uid, "::", e.energy.value, self.paused, "::", e.player)
if e.energy.value < self.energy_to_act then
e.energy.value = (e.energy.value or 0) + self.energy_per_tick * (e.energy.mod or 1) * (e.global_speed or 1)
end
if e.energy.value >= self.energy_to_act then
e.energy.used = false
e:act(self)
end
-- print(">ENERGY", e.name, e.uid, "::", e.energy.value, self.paused, "::", e.player)
end
self:tickLevel(self.level)
local mainlev = self.level
for name, level in pairs(self.level.sublevels) do
self.level = level
self:tickLevel(level)
if self.level ~= level then mainlev = self.level end
end
self.level = mainlev
end
local arr = self.entities
......@@ -100,6 +93,26 @@ function _M:tick()
end
end
--- Run tick on a level
function _M:tickLevel(level)
local i, e
local arr = level.e_array
for i = 1, #arr do
e = arr[i]
if e and e.act and e.energy then
-- print("<ENERGY", e.name, e.uid, "::", e.energy.value, self.paused, "::", e.player)
if e.energy.value < self.energy_to_act then
e.energy.value = (e.energy.value or 0) + self.energy_per_tick * (e.energy.mod or 1) * (e.global_speed or 1)
end
if e.energy.value >= self.energy_to_act then
e.energy.used = false
e:act(self)
end
-- print(">ENERGY", e.name, e.uid, "::", e.energy.value, self.paused, "::", e.player)
end
end
end
--- Called every game turns
-- Does nothing, you can override it
function _M:onTurn()
......
......@@ -31,6 +31,39 @@ function _M:init(level, map)
self.entities = {}
self.entities_list = {}
self.perm_entities_list = {}
self.sublevels = {}
self.sublevel_id = "__main__"
self.data = {}
end
--- Adds a sublevel
function _M:addSublevel(name, level)
if self.sublevels[name] then error("Sublevel already exists: "..name) end
self.sublevels[name] = level
level.sublevel_id = name
print("[LEVEL] new sublevel", name)
end
--- Removes a sublevel
function _M:removeSublevel(name)
self.sublevels[name] = nil
print("[LEVEL] del sublevel", name)
end
--- Activate the given sublevel to become the new main one
function _M:selectSublevel(name)
if not self.sublevels[name] then error("Sublevel does not exist, cant switch: "..name) end
if game.level ~= self then error("Switching sublevel on a level that is not active") end
local level = self.sublevels[name]
game.level = level
level.sublevels = self.sublevels
self.sublevels = {}
level.sublevels[level.sublevel_id] = nil
level.sublevels[self.sublevel_id] = self
print("[LEVEL] switch to sublevel", level.sublevel_id, "from", self.sublevel_id)
end
--- Adds an entity to the level
......
game/modules/tome/data/gfx/shockbolt/npc/dragon_cold_cold_drake.png

11.5 KiB

game/modules/tome/data/gfx/shockbolt/npc/dragon_fire_fire_drake.png

8.04 KiB

game/modules/tome/data/gfx/shockbolt/npc/dragon_fire_fire_drake_hatchling.png

7.8 KiB

game/modules/tome/data/gfx/shockbolt/npc/insect_ritch_ritch_larva.png

5.28 KiB

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