Page 1 of 1
So I wanted to be a parasite...
Posted: Wed Apr 24, 2013 8:18 pm
by Earwicker
Hi. I'm fairly new to ToME (a few weeks), and totally new to Lua (although I've been a professional programmer - mostly C & Java - for about 15 years.)
At the moment I'm trying to create small addons - new races, classes, talents, that sort of stuff - to get an idea of how ToME works. And I've got an idea for a new race, but I don't know if it's feasible at all.
Suppose you're a parasite (a no-class race, like the Runic Golem), with the unique ability to 'mark' a creature (only one at a time) you want to be your future host. When you kill said creature, instead of dying it gets a partial heal and status cure, and you take full control of it... while your former host crumbles and drops all its equipment. You gain your new host's stats, talents, abilities, etc. while losing the former's, except -of course- you retain your racial (parasitic) powers and your stats increases, as well as prodigies (and maybe a few other things.)
After a while (the duration of which could depend on another racial talent), your new body would start to decay and you'll have to find a new host.
So this parasitic race would have no real body to speak of - but I suppose you could start as a parasited ghoul in the Blighted Ruins. Not only is it thematic - since a festering, rotting corpse that's just been tinkered with by a careless necromancer is probably the most likely place where a germ or virus could mutate enough to gain sentience

- but the Cloak of Deception would be of great help to hide your true self from prying eyes, since (assuming that's possible) I think inheriting the hosts' faction as well as their other attributes could be really really fun (just think about infiltrating Zigur even though one of your former selves was an archmage, or having the Master's surviving minions bow to you as you take control of him.)
So, what do you think? Feasible, or not?
By the way (on a more general note), is there a simple way to 'inherit' functions such as levelup() (/mod/class/Actor.lua) at the race/class level? The best I can do at the moment is to use a custom levelup() that's used by everyone, with a truckload of
if statements I'd feel much better without.
Re: So I wanted to be a parasite...
Posted: Wed Apr 24, 2013 9:10 pm
by catwhowalksbyhimself
The sounds similar to the Possessor, a class from ToME 2 that DG may bring into ToME 4 at some point.
Re: So I wanted to be a parasite...
Posted: Wed Apr 24, 2013 9:11 pm
by nate
It's feasible in at least one sense-- that you could do that.
From a balance perspective, you've got a problem where basically no NPCs come close to PCs in terms of how many talents they have-- except for bosses and rares, which can have some pretty crazy combos. But ToME is balanced to just about the point where you can complete the game on Roguelike without even having a class. Just barely.
Lua's a great language in that you can do anything with a function that you can do with any other variable. Not sure exactly what you're talking about doing, but you can certainly say "if x then self.levelup = myLevelUp end"; you can even do "local myLevelup = function(base) return function(self) base(self); otherStuff(self); end; end; if x then self.levelup = myLevelUp(self.levelup) end" which would make a unique instance of myLevelUp for each critter you attached it to, one that called any preexisting levelup() before doing its own thing. With that, all you have to do is figure out when to replace the function.
Re: So I wanted to be a parasite...
Posted: Wed Apr 24, 2013 10:24 pm
by Earwicker
catwhowalksbyhimself wrote:The sounds similar to the Possessor, a class from ToME 2 that DG may bring into ToME 4 at some point.
Oh well. Not the first time I've got a brilliant idea another zillion people stumbled upon before.
nate wrote:From a balance perspective, you've got a problem where basically no NPCs come close to PCs in terms of how many talents they have-- except for bosses and rares, which can have some pretty crazy combos.
Yep, I thought about that - but as long as it's not PvP, this kind of balance problems are more than OK in my view. I just call them 'challenges to overcome'.
Thanks a lot for the levelup() tips btw.
Re: So I wanted to be a parasite...
Posted: Sun Apr 28, 2013 5:44 pm
by Parcae2
Just popping in to say that, as someone who has been waiting for Possessor for quite a while, I would love it if you made this class.
Re: So I wanted to be a parasite...
Posted: Thu May 02, 2013 12:34 am
by Earwicker
Parcae2 wrote:Just popping in to say that, as someone who has been waiting for Possessor for quite a while, I would love it if you made this class.
Then I have good news for you, I'm working on it already. And also bad news, as I'm afraid it'll take quite some time.
At the moment, my Parasite class has no 'body' of its own (starts as classless ghoul in the Blighted Ruins), uses WIL and CUN as its main stats, equilibrium as its main resource (although that will probably change), and a racial talent tree that
- 1) -passive- extends the longevity of its hosts;
2) -passive- increases the host's resistances to nature and blight;
3) -passive- makes the host exsude spores when seriously hit (chance proportional to the damage received/remaining health ratio), these spores affect a few random contiguous tiles around for a few turns, and force a confusion check to anyone but the host, plus a bindness check at raw talent level 3, plus a rotting disease check at level 5. The number of tiles affected and the duration of the effect also depend on level.
4) -activated- supercharge the host for a few turns (stats, powers, saves and a regen boost), but the host will start to deteriorate at a rapid rate once the effect ends.
There's also an innate talent (like, say, the Chronomancer's Spacetime Tuning) which purpose is to mark a creature for 'hosting'. This is a resource-free sustain so only one creature can be targeted, but it can be deactivated and retargeted at any moment.
There's also 3 other trees that are just barely implemented. Think about spreading diseases, taints, and mind control (my favourite in the latter being 'Treason': fail your save, change your loyalty to a random faction - I can't wait to test that one on large crowds.)
Every new host will last X hours of game time, then every turn there will be a 1% chance that decay occurs, then a cumulative 1% chance per turn that the decaying condition worsens (cumulative here means that a failed check makes the 1% a 2%, then a 3%, and so on.) Each failed check will decreases your life regen by 1, so you still can last a while while the decaying factor remains low, but if you let it snowball too far you'd be in serious trouble.
Although I've already written quite a bit of code, I haven't been able to really test any of it, yet. The main problem I have at the moment is 'dolling out' hosts. Maybe I missed it, but it seems nothing has been done in the main code to handle equipment slots for non-player critters. And I just can't allow to, say, let snake hosts to use swords or boots (although a small snake could probably use about a dozen rings - and a worm mass a dozen hundreds rings

)
In the meantime, I'm open to suggestions.
Re: So I wanted to be a parasite...
Posted: Sat Jun 29, 2013 9:17 am
by Suslik
> Yep, I thought about that - but as long as it's not PvP, this kind of balance problems are more than OK in my view.
It I'm afraid it's not ok from most other players' point of view. Reason is that Tome has very ambitious(it means instead of +3% str per ability like some RPGS have you can travel in time), but yet overall difficulty for most classes is tried really hard to be made roughly the same. And there are a lot of different areas specifically dangerous for some classes, still DG makes his best to keep it overall comparable chronomancers and bulwarks with their completely different playstyles. Additions you suggest can be fun to play as an option, maybe as in-game quest(imagine you lost your body and trying to find it again), or maybe an addon for enthusiasts, but making it another stock class would require balancing it really, really hard.
Re: So I wanted to be a parasite...
Posted: Thu Aug 22, 2013 12:03 am
by Sirrocco
This is a cool idea in a number of ways, but as described, it inherently involves a critical and decaying resource - much like Hate, except vastly more important. The thing we notice with Hate is that people will want to visit towns, and they'll want to travel on the overland map, and they'll occasionally want to revisit dungeons they've been in before, and while there, they'll want to take their time. If you decide that corpse decay means that you lose all your stuff and become effectively incapable of fighting and/or die, you've made the character near-unplayable. In order for a class to be workable, it has to be able to rest for an indefinite period of time, come back to a dungeon of appropriate level, and reboot its resource economy relatively simply. (mind you, this can add danger - taking on an adventurer party as a doomed when you've let your hate decay is a whole lot more likley to get you killed than doing so with a full tank. It just has to be *feasible*).
Additionally, if the skills of the player are in any way dependent on the skills of the host, and you include the extra rare skills in this, you've suddenly made things far easier for any Insane players out there. I do not believe this is what you want..
Re: So I wanted to be a parasite...
Posted: Thu Aug 22, 2013 5:56 pm
by Zireael
I absolutely love the idea.
Maybe I missed it, but it seems nothing has been done in the main code to handle equipment slots for non-player critters.
NPCs have all slots so that they can drop all manner of stuff.
Re: So I wanted to be a parasite...
Posted: Thu Aug 22, 2013 10:24 pm
by Doctornull
This is a very cool idea.
Suggestions:
-> Initially limit the body-stealing to Humanoids. There are plenty of these in the game, and doing this avoids the body-slot issues, until you get those worked out.
-> Look at the Cursed / Predator tree, specifically the Mimic talent. Might give you some ideas on how to steal stats from kills.
-> Instead of slowly decaying the body over time, just say NO HEALING EVER. Healmod goes to Mana regeneration instead, and when you're out of Life, you suffer Mana damage (and you die at 0 Life / 0 Mana). Killing a Humanoid gives you stats and Life, so you're a bit like a Cursed.
-> You could have messages about which parts of your kills you steal / ingest / integrate, and the stat bonus effect those parts have. MMMMMM DELICIOUS BRAAAAAAAAINS.
Re: So I wanted to be a parasite...
Posted: Thu Aug 22, 2013 11:25 pm
by HousePet
Many npcs don't have the equipment slots set, you need to enable them if you want to use them.
Re: So I wanted to be a parasite...
Posted: Sun Nov 17, 2013 3:48 pm
by Nagyhal
No criticisms, as I hardly think you're going to code this and say "Well, I designed and coded this fully-featured class but I'm sorry because you can't actually get through levels with it."
I humbly request for the race's physical form to be some kind of sci-fi thriller crustacean monstrosity.
Abilities would include: Chestbursting, Facehugging and Gestate Larvae.
And I'd really love to see a number of telepathy trees so there is the option to again to become some kind of true sci-fi thriller symbiont horror.
Do hope you can get back in the flow with the coding.
Re: So I wanted to be a parasite...
Posted: Fri Dec 27, 2013 3:19 pm
by Mewtarthio
Zireael wrote:NPCs have all slots so that they can drop all manner of stuff.
Randelites get all slots so they can equip whatever their class needs.