minmay wrote:You can look at the source if you really want to spoil yourself. But for people who want to try to find it themselves here's a hint:SpoilerShowTry out all of the different spells.
I'll see
minmay wrote:You can look at the source if you really want to spoil yourself. But for people who want to try to find it themselves here's a hint:SpoilerShowTry out all of the different spells.
Code: Select all
function d.intercept_die(...)
d.last_die_event = { ... }
local f = d.last_die_event[1].flags
d.last_die_event[1].flags = math.floor(f / 16) * 16 + 15
return d.saveMonsterDie(...)
end
function d.share_exp()
if Monster.die ~= d.intercept_die then
d.saveMonsterDie = Monster.die
Monster.die = d.intercept_die
end
end
Yes, and it resolves all the plot points. It'll also be quite a bit longer. I'm actually planning on posting a preview fairly soon once I have a few choice models and textures done.sapientCrow wrote:Will we see the sequel in LoG2 editor. I really really hope so.
I need to know more about the Drinn.
It's not pretty. Here's how it works:sapientCrow wrote:I am also curious how you deal with the exp sharing.
Code: Select all
-- XXX: be absolutely sure these are accurate to monsters.lua!
xpvals = {
["monster_herder"] = 50,
["monster_herder_small"] = 100,
["monster_crab"] = 150,
["monster_blue_slime"] = 250,
["monster_uggardian_ghost"] = 600,
["monster_willowhisper"] = 250,
["monster_guardian_red"] = 1000,
["uggardian"] = 0,
["uggardian_fake"] = 1000,
["monster_guardian_green"] = 1000,
["monster_guardian_cyan"] = 1000,
["monster_guardian_blue"] = 1000,
["monster_guardian_magenta"] = 1000,
["goromorg"] = 2000,
["monster_the_simulacrum"] = 2500,
}
-- give full xp to all party members from killing a monster
-- pass the real onDie here
-- note: will not work with monster groups, and would require
-- obvious modification to work with level >1 monsters!
--
-- the damageTile *must* be the hit that kills the monster, otherwise
-- you will still get no xp for monsters killed by no champion at all.
-- i don't see any way to kill the monster on the same frame because
-- of this.
--
-- XXX: i'm not sure of the exact reason but this
-- causes a crash with the "uggardian" id's flame effect.
-- therefore we spawn a fake one instead and kill that.
-- unfortunately this means that the particle effects will be in
-- the wrong place if the uggardian was killed while moving.
givingXp = false
removingMonster = {}
function giveFullXp(mon,onDie)
-- special case to prevent flame effect crash; real uggardian
-- should give 0 xp for this to work
if mon.name == "uggardian" then
onDie(mon)
local l,x,y,f = mon.level,mon.x,mon.y,mon.facing
mon:setPosition(1,1,1,1)
awardDeadXp(spawn("uggardian_fake",l,x,y,f):setHealth(1))
damageTile(l,x,y,f,0x7c,"poison",2)
return true
end
if findEntity("t"..mon.id) then return false end -- killed it twice on the same frame (or 2 consecutive frames?)
if removingMonster[mon.id] then removingMonster[mon.id] = nil return true end
if onDie and not onDie(mon) then return false end
spawn("timer",mon.level,mon.x,mon.y,mon.facing,"t"..mon.id)
:setTimerInterval(0.0001)
:addConnector("activate",ME,"killMonster")
:activate()
return false
end
function killMonster(t)
local mon = findEntity(t.id:sub(2))
t:destroy()
if mon then
awardDeadXp(mon)
removingMonster[mon.id] = true
mon:setHealth(1)
damageTile(mon.level,mon.x,mon.y,mon.facing,0x7c,"poison",2)
else game.bugPrint("NO_DEADMONSTER") end
end
function awardDeadXp(mon)
local xp = xpvals[mon.name]
if not xp then game.bugPrint("BADMONSTER") return true end
for i = 1, 4 do
local champ = party:getChampion(i)
if champ:getEnabled() and not champ:isAlive() then champ:gainExp(xp) end
end
end
Full spoiler:Batty wrote:but about the easter eggSpoilerShowI cast 18 spells & nothing happened, do I have to have thunderstruck_awakened also to get the easter egg? (or is that the egg?) I dug through the source too...