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

Randarts are now created by combining egos + random powers

git-svn-id: http://svn.net-core.org/repos/t-engine4@2364 51575b47-30f0-44d4-a5cc-537603b46e54
parent 3f90e194
No related branches found
No related tags found
No related merge requests found
Showing
with 37 additions and 4 deletions
......@@ -366,7 +366,9 @@ function _M:finishEntity(level, type, e, ego_filter)
-- Re-resolve with the (possibly) new resolvers
e:resolve()
end
e.egos = nil e.egos_chance = nil e.force_ego = nil
if not ego_filter or not ego_filter.keep_egos then
e.egos = nil e.egos_chance = nil e.force_ego = nil
end
end
-- Generate a stack ?
......
......@@ -162,7 +162,7 @@ function _M:generateRandart(add, base, lev)
game.level.level = lev
-- Get a base object
base = base or game.zone:makeEntity(game.level, "object", {ego_chance=-1000, special=function(e)
base = base or game.zone:makeEntity(game.level, "object", {ego_filter={keep_egos=true, ego_chance=-1000}, special=function(e)
return (not e.unique and e.randart_able) and (not e.material_level or e.material_level >= 2) and true or false
end}, nil, true)
if not base then game.level.level = oldlev return end
......@@ -180,8 +180,8 @@ function _M:generateRandart(add, base, lev)
-----------------------------------------------------------
-- Determine power
-----------------------------------------------------------
local points = lev * 0.7 + rng.range(5, 15)
local nb_powers = 2 + rng.dice(math.max(1, lev / 10), 2)
local points = math.ceil((lev * 0.7 + rng.range(5, 15)) / 2)
local nb_powers = 1 + rng.dice(math.max(1, lev / 17), 2)
local powers = {}
o.cost = o.cost + points * 7
......@@ -229,6 +229,37 @@ function _M:generateRandart(add, base, lev)
print("Creating randart "..name.."("..o.unided_name..") with "..(themename or "nil").." with level "..lev)
print(" * using themes", table.concat(table.keys(themes), ','))
-----------------------------------------------------------
-- Add ego properties
-----------------------------------------------------------
if o.egos then
local legos = {}
local been_greater = false
table.insert(legos, game.level:getEntitiesList("object/"..o.egos..":prefix"))
table.insert(legos, game.level:getEntitiesList("object/"..o.egos..":suffix"))
table.insert(legos, game.level:getEntitiesList("object/"..o.egos..":"))
for i = 1, 2 do
local egos = rng.table(legos)
local list = {}
local filter = nil
if rng.percent(lev) and not been_greater then been_greater = true filter = function(e) return e.greater_ego end end
for z = 1, #egos do list[#list+1] = egos[z].e end
local pick_egos = game.zone:computeRarities("object", list, game.level, filter, nil, nil)
local ego = game.zone:pickEntity(pick_egos)
if ego then
print(" ** selected ego", ego.name)
ego = ego:clone()
ego.name = nil
ego.unided_name = nil
if ego.instant_resolve then ego:resolve(nil, nil, o) end
ego.instant_resolve = nil
ego.uid = nil
table.mergeAddAppendArray(o, ego, true)
end
end
o.egos = nil o.egos_chance = nil o.force_ego = nil
end
-----------------------------------------------------------
-- Imbue powers in the randart
-----------------------------------------------------------
......
game/modules/tome/data/gfx/shockbolt/npc/GWMouse01.png

7.32 KiB

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

6.64 KiB

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

7.32 KiB

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

8.99 KiB

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

8.36 KiB

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

7.5 KiB

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

11.3 KiB | W: | H:

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

11.3 KiB | W: | H:

game/modules/tome/data/gfx/shockbolt/npc/canine_rungof.png
game/modules/tome/data/gfx/shockbolt/npc/canine_rungof.png
game/modules/tome/data/gfx/shockbolt/npc/canine_rungof.png
game/modules/tome/data/gfx/shockbolt/npc/canine_rungof.png
  • 2-up
  • Swipe
  • Onion skin
game/modules/tome/data/gfx/shockbolt/npc/canine_w.png

6.73 KiB | W: | H:

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

7.45 KiB | W: | H:

game/modules/tome/data/gfx/shockbolt/npc/canine_w.png
game/modules/tome/data/gfx/shockbolt/npc/canine_w.png
game/modules/tome/data/gfx/shockbolt/npc/canine_w.png
game/modules/tome/data/gfx/shockbolt/npc/canine_w.png
  • 2-up
  • Swipe
  • Onion skin
game/modules/tome/data/gfx/shockbolt/npc/canine_warg.png

8.67 KiB

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

8.68 KiB

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

8.42 KiB

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

8.6 KiB

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

7.7 KiB

game/modules/tome/data/gfx/shockbolt/npc/jelly-blue.png

7.64 KiB

game/modules/tome/data/gfx/shockbolt/npc/jelly-darkgrey.png

6.01 KiB

game/modules/tome/data/gfx/shockbolt/npc/jelly-green.png

7.62 KiB

game/modules/tome/data/gfx/shockbolt/npc/jelly-red.png

7.63 KiB

game/modules/tome/data/gfx/shockbolt/npc/jelly-white.png

5.5 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