Most of the racial traits comes as either defaults for certain races, or can be chosen by all champions regardless of race. Most of the differences between races comes from their stats, but some of their traits also change things. For example, lizardmen start with 5 or 10 protection (haven't decided yet, might go with 7, lol) to represent their hard scales. They are also less likely to suffer injuries because of it. I'm still very much working on traits right now, because of the changes I've made there are only 16 chosen traits right now (that is until I add back in the Gift traits). Others I added to races or classes by default. All this is still open to change. If I (or any testers) feel like character creation is too limiting I will change things around.
I'm glad I'm not the only one who works on different things all the time. It makes me feel really inefficient, lol. But when things come together and you realize that you actually made a lot of progress by doing it, it all feels quite good in the end. Speaking about breaking things, I made a mage weapon early on that uses a certain spell for its special attack. Safe to say when I messed around with spells shortly after the staff broke, and for a moment I didn't know why, but then I realized. It was a very simple thing to fix, but its easy to see how bigger changes could break and ruin things. Honestly, if I was more knowledgeable about how to script things I'd probably try some much more outlandish stuff. But as I only really know the basics I can only really take the existing scripts and change them a little. It can be challenging for me to realize the logic behind how scripts are structured. Like the spell script minmay gave me a while back.
SpoilerShow
Code: Select all
onCast = function(champion, x, y, direction, elevation, skillLevel)
local spl = spawn("meteor",party.level,party.x,party.y,party.facing,party.elevation)
spl.projectile:setIgnoreEntity(party)
-- Set cast by champion so that experience is awarded for kills.
local ord = champion:getOrdinal()
spl.projectile:setCastByChampion(ord)
-- Simulate the position of a player-cast spell.
local left = nil -- No idea what this all means for example. Well, I know what it does, but
for i = 1,4 do -- I don't know how it works or why it works, or what script instances it
if party.party:getChampion(i):getOrdinal() == ord then -- is used for, etc.
left = i == 1 or i == 3
break
end
end
local wpos = party:getWorldPosition() -- I figured out all this stuff by adjusting the values and seeing what
local dx = nil -- happens, lol.
local dz = nil
if party.facing == 0 then
dx = left and -0.1 or 0.1
dz = -1
elseif party.facing == 1 then
dz = left and 0.1 or -0.1
dx = -1
elseif party.facing == 2 then
dx = left and 0.1 or -0.1
dz = 1
else -- party.facing == 3
dz = left and -0.1 or 0.1
dx = 1
end
spl:setWorldPosition(vec(wpos[1]+dx,wpos[2]+1.35,wpos[3]+dz))
end,
I'll put working on the dungeon itself on hold for now and try to get everything else into a fully working state so I can see about putting out a version for people to test it.
Cheers guys