Fixes to all of the new stuff.

develop
Warmist 2012-04-04 19:06:56 +03:00
parent 9707939f2c
commit aaffdd56d8
3 changed files with 16 additions and 23 deletions

@ -1,7 +1,7 @@
adv_tools= {} adv_tools= {}
adv_tools.menu=MakeMenu() adv_tools.menu=MakeMenu()
--TODO make every tool generic (work for both modes) --TODO make every tool generic (work for both modes)
function adv_tools.reincarnate(swap_soul) --only for adventurer i guess, TODO soul swap... function adv_tools.reincarnate(swap_soul) --only for adventurer i guess
if swap_soul==nil then if swap_soul==nil then
swap_soul=true swap_soul=true
end end
@ -15,12 +15,15 @@ function adv_tools.reincarnate(swap_soul) --only for adventurer i guess, TODO so
end end
local events=df.global.world.history.events local events=df.global.world.history.events
local trg_hist_fig local trg_hist_fig
for i=#events-1,0,-1 do for i=#events-1,0,-1 do -- reverse search because almost always it will be last entry
if df.history_event_hist_figure_diedst:is_instance(events[i]) then if df.history_event_hist_figure_diedst:is_instance(events[i]) then
--print("is instance:"..i) --print("is instance:"..i)
if events[i].hfid==hist_fig.id then if events[i].hfid==hist_fig.id then
--print("Is same id:"..i) --print("Is same id:"..i)
trg_hist_fig=events[i].slayer trg_hist_fig=events[i].slayer
if trg_hist_fig then
trg_hist_fig=df.historical_figure.find(trg_hist_fig)
end
break break
end end
end end
@ -28,23 +31,13 @@ function adv_tools.reincarnate(swap_soul) --only for adventurer i guess, TODO so
if trg_hist_fig ==nil then if trg_hist_fig ==nil then
error("Slayer not found") error("Slayer not found")
end end
local trg_unit
for k,v in pairs(df.global.world.history.figures) do --maybe getting it by [] would be enought? local trg_unit=trg_hist_fig.unit_id
if v.id==trg_hist_fig then
trg_unit=v.unit_id
break
end
end
if trg_unit==nil then if trg_unit==nil then
error("Unit id not found!") error("Unit id not found!")
end end
local trg_unit_final local trg_unit_final=df.unit.find(trg_unit)
for k,v in pairs(df.global.world.units.all) do
if v.id==trg_unit then
trg_unit_final=v
break
end
end
tools.change_adv(trg_unit_final) tools.change_adv(trg_unit_final)
if swap_soul then --actually add a soul... if swap_soul then --actually add a soul...
t_soul=adv.status.current_soul t_soul=adv.status.current_soul

@ -513,7 +513,7 @@ function getCreature()
end end
function getNemesisId(unit) function getNemesisId(unit)
for k,v in pairs(unit.refs) do for k,v in pairs(unit.refs) do
if tostring(v._type)=="<type: general_ref_is_nemesisst>" then if df.general_ref_is_nemesisst:is_instance(v) then
return v.nemesis_id return v.nemesis_id
end end
end end
@ -521,11 +521,7 @@ end
function getNemesis(unit) function getNemesis(unit)
local id=getNemesisId(unit) local id=getNemesisId(unit)
if id then if id then
for k,v in pairs(df.global.world.nemesis.all) do return df.nemesis_record.find(id)
if id==v.id then
return v
end
end
end end
end end
function Allocate(size) function Allocate(size)

@ -136,7 +136,11 @@ function tools.change_adv(unit,nemesis)
if nem then if nem then
nem.flags[0]=true nem.flags[0]=true
nem.flags[2]=true nem.flags[2]=true
df.global.ui_advmode.player_id=nem.id for k,v in pairs(df.global.world.nemesis.all) do
if v.id==nem.id then
df.global.ui_advmode.player_id=k
end
end
else else
error("Current unit does not have nemesis record, further working not guaranteed") error("Current unit does not have nemesis record, further working not guaranteed")
end end