Page 1 of 1

Posted: Fri Feb 17, 2006 11:28 am
by ShadeOfWar
Hullo again...

Ok, I came across this... thing. Let's say I wanted to make a peasant that could change itself into a berserk or a warlock. So I do it using artifacts, 'Metamorf - Berserk' and 'Metamorf - Warlock.' After a while, I had it working - sort of.

When I selected, say, 'Metamorf - Warlock' from the inventory, it would make some kind of movement and then remain - apparently - a peasant. It had mana, yes, it could shoot fireballs, yes - it would make a dying noise, fall down, produce a fireball, vanish and reappear standing. If it moved, it would leap around, fidgeting slightly. Not quite there!

So I realize it changed the monster tag as it was supposed to, but retained the original collection, and used corresponding sequences - which didn't prove to be good matches, seeing it used soft_death for the attack and a stand transition for moving. I could make them all match - after a fashion - but it wouldn't be what I wanted.

OK, a lengthy workaround comes to mind - employing Amber and supplying the peasant collection with neccessary sequences from the berserk and warlock collections, having to fend off color table problems all the while. But first I wanted to ask you, is there a way to avoid this? Can the artifact be made to change the collection as well when overriding the monster tag? And if it can't, could the possibility be added to the upcoming 1.5.2?

Thanks in advance :D

[edit] Oh, and since I already started making requests... could the inventory feature also be enlarged, possibly forming a second row of choices beside the first (ingame)? 9 - as it presently is - sounds generally sufficient, but the more forms my Universal Animal can have, the better :P

Posted: Fri Feb 17, 2006 12:16 pm
by ozone
I really doubt either of these will happen. At least not for 1.5.2. I believe at this point in time there will be no more changes to this myth update.

Posted: Fri Feb 17, 2006 1:07 pm
by ChrisP
Shade, there's no way to switch monsters with different collections, so yeah, your only solution is the messy task of combining collections in Amber.

Posted: Fri Feb 17, 2006 6:34 pm
by haravikk
There is the slower alternative of using scripting, but it would likely depend upon the application you require it for.

The problem with combining collections is that all the images must have the same 256 colour table, which won't be pretty as the peasant, beserk and warlock collections do not have the same 256 colours, and likely do not share very many colours between them. So combining them is very likely to look quite nasty unless you're willing to spend ages tweaking all the images in Photoshop so they look okay.

Posted: Fri Feb 17, 2006 7:18 pm
by carlinho
hey chris, have you made your avatar as a unit yet?
it looks cool

Posted: Sun Feb 19, 2006 10:10 am
by ShadeOfWar
haravikk wrote:There is the slower alternative of using scripting, but it would likely depend upon the application you require it for.

If its doable, tell me how. I haven't gotten into Loathing yet much. Map actions. Which ones?

I frankly loathe messing around with colour tables anyway, even if they're not as far-fetched combinations.

Posted: Sun Feb 19, 2006 10:40 am
by haravikk
Hrm, it's probably not the best thing to get into if you've not done scripting before, you need to use unit tests to check if the unit is say...taunting (and thus wants to change form), then use a geometry filter to switch find its current location on the map and place the next unit in line there, making it visible and making the current unit invisible.

The actions would look something like:

TUNI - are any of the units taunting?
GEOM - find the taunting unit's location
TUNI - check if it is a peasant (and change to beserk)
TUNI - check if it is a beserk (and change to warlock)
TUNI - check if it is a warlock (and change to peasant)
MOMA - move beserk
MOMA - move warlock
MOMA - move peasant
UNIT - make beserk visible
UNIT - make warlock visible
UNIT - make peasant visible
UNIT - make unit invisible

Basically the first test checks for a taunting unit among the shape-shifters various forms (all of which would be placed on the map, but only one made visible at a time).
The GEOM finds the unit (you can technically do JUST this action, but it is more intensive than a unit test action), it checks all different forms for a taunting unit and returns the monster and it's location.
You then run through another set of TUNI's to decide which unit is currently taunting. ie if it isn't the peasant, then check the beserk, then the warlock.
Once we know which unit we are, we first move it (using the MOMA action, which can use the output from the GEOM action) and make the appropriate next unit visible (e.g beserk after peasant), then we make the unit who was taunting invisible.
The invisible action only requires one version as it can use the result of the GEOM as the subject to make invisible.

I'll give a more detailed version (or even the script itself if I have time) later if you have trouble.

Notes:
Each unit has its own independant health, if one is killed then that's it done with. So if you are low on health with one unit it is a good idea to flee and switch to one with more health.
Each unit has individual experience as a result, so the warlock might get twelve kills, but the beserk will not. You could in theory use a set of tests to change a unit's kills when you switch, but it might be more work than it's worth.

In this way though you'll have a unit that can switch to distinctly different units, which is interesting in its own way! It also gets around your collection trouble if the script can be made to run dependably enough.