So I was taking a look at the guy code again. And said to myself, why the hell not. Might as well make a contribution. Here's what I've got planned.
Here's the list of all the Unimplemented Enemies in ZC. Note that some are marked as low priority either because their's really no use for it (npcs) or dont currently use an NPC id (bs aquamentus).
Enemy List
Ceiling Master (falls from ceiling like the ones in lttp)
Floor Master (comes out of ground, moves in 4 directions grabs link and pulls him into ground warping him)
Dodongo Fire (most likely either breathes fire like a walker or shoots flame 2s with a trails.)
Diagonal Traps (buggy)
Ice Wizzrobe (shoots ice magic)
Tektite 3 (who the hell knows)
Lynel 3 (who the hell knows)
Fire Peahat (Most likely shoots flame 2s with trails occasionally)
Whistle Polsvoice (Dies to the whistle, but uses 4 rows hmm...)
Mirror Darknut (reflects projectiles)
Fire Ghini 2 (Invincible to all but fire, (stunnable by damaging boomerangs) )
Magic Ghini 2 (Invinicible to all but magic (stunnable by damaging boomerangs) )
Low Priority
NPC Standing (...)
NPC Walking (...)
Batrobe King (Shapeshifter...)
Circular Traps (Hell of a lot of work)
HP Grappler Bug (No Type)
MP Grappler Bug (No Type)
BS Aquamentus L/R (No ID)
BS Aquamentus 2 L/R (No ID)
Z3 Moldorm (No ID), unsure if this is z3 minimoldorm movement or what.
Floor Master Kid? (No ID)
Weapons
So there are two eweapons that are unimplemented as well. Both of these actually do have a problem.
WPN_ENEMY_FLAME2TRAIL: Making WPN_ENEMY_FLAME2 create trails would break old quest. We have two options.
Option 1: Backwards Compatibility Rule that prevents this.
Option 2: Create new eweapon WPN_ENEMY_FLAME2NEW which has the trails.
My personal pick is option 2 so quest makers can have both.
WPN_ENEMY_ICEMAGIC: Freezing link would involve a lot of problems a break if his tiles uses 8-bit mode. As well as sprites and tiles using Cset 6 and 8-bit mode as well. I've always been against this. Drawing a translucencent block of ice on top of link should work fine.
Bug Fixes
Diagonal Traps: Their are Two types of traps, LOS and Constant both use different code. eTrap and eTrap2 respectively.
LOS traps are too sensitive, Constant traps need their direction XORED by 3.
edit: it appears the culprit for LOS traps may actually be enemy::lined_up specifically this line.
Code:
if(abs(lx-x)-abs(ly-y)<=range)
Let me explain why. This will always result in a negative number if link is far away on the y axis but close on the x axis, and a positive number if he is far away on the x axis but close on the y axis. So fixing that bug should fix diagonal traps.
New Features
Mirror Shielding: The problem here is that enemies can reflect weapons it's possible, but there is no way for us to tell if they reflected that weapon like we can with link. One way to do that would be to add another variable to weapons which is a npc pointer that points to the npc that reflected it and sets it to null if link did so and on creation.
Whistle Can Kill Flag: This flag makes the enemy die if the whistle is used. Might have to experiment to make sure I don't break digdogger. But should be able to get it working.
Rage Step (fire dodongos): when a dodongo is hurt it rages and begins to move faster or slower (quest designers choice) and rapid fires a weapon of the quest designers choice. Fire Dodongos rapid fire flame 2s with trails would be the default.
Charger Walking Style (Lynel 3): Basically GB Lynels, the difference is that they can halt and shoot stuff but switch to new fire type while charging.
Tektite 3 (lttp): Basically lttp tektikes?
Magic/Fire Ghini 2: Already possible, only thing different is that they're weak to fire and magic rather then superbombs.
@
ZoriaRPG
Where can I find the 2.6 branch?