User Tag List

Results 1 to 3 of 3

Thread: Unimplemented Enemies

  1. #1
    Nine-Tailed Goddess Tamamo's Avatar
    Join Date
    May 2011
    Location
    Kobe
    Age
    29
    Posts
    838
    Mentioned
    95 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,182
    Level
    22
    vBActivity - Bars
    Lv. Percent
    50.02%
    Daily Activity
    0%
    Weekly Activity
    60%
    Monthly Activity
    47.4%

    Unimplemented Enemies

    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?
    Last edited by Tamamo; 03-18-2018 at 03:23 PM.

  2. #2
    The Timelord
    ZC Developer
    ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,158
    Mentioned
    104 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,966
    Level
    20
    vBActivity - Bars
    Lv. Percent
    4.01%
    Daily Activity
    0%
    Weekly Activity
    60%
    Monthly Activity
    92.55%
    Quote Originally Posted by Tamamo View Post
    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?
    Welcome back!
    You want to use the 2.54 branch. The master branch is a clusterfuck of DD's half/partial-implemented stuff that I'll review after 2.54 is done.

    Please make a fork of 2.54 and work with that.

    Here's the [url=http://timelord.insomnia247.nl/zc/zc_dev/2.54_Win_Alpha_22r2.zipflatest 2.54 Win build[/url]. The changelog is with it, and I advise getting a feel for the new ZQ stuff, and new script features, before you start editing enemies, so that you know what direction I'm taking with this.

    See also todo.txt in the ZIP or the 2.54 branch repo. Lots of enemy stuff in there.

    As an example, you can skip 'whistle can kill'. I'm going to be adding a npc defence for the whistle lweapon, plus defence results (split, summon, tribble). This will further, supplant digdogger enemies.

    You might want to hop on the Official ZC Dev Discord Server to discuss these things.

    Ice Magic: You may want to wait until I fully-implement Link->Defense[]
    That will have a 'freeze solid' option, which I have partially added to the EE as an npc defence result.

    It's rubbish now, and I need to rewrite how frozen npcs work. I used a BPal, and I realised too late that a BPal would clash with on-screen bosses, so I'll need to add a frozen tile to npcs, that will be used when blitting them to the screen if they are frozen. This allows the user to set up precisely how each npc looks, in all directions, when frozen.

    Link->Defense, for a frozen status, would probably do the same thing: Change his tile and CSet. This seems the most reasonable approach, as it avoids hardcoded engine junk and allows the user to pick a specific aesthetic. Unfortunately, it also means adding more Link sprites. :/

    At least Link->ScriptTile and Link->ScriptFlip are in the codebase, and fully-working, so, you can fake a frozen status with Link->Stun, and ScriptTile for now, to test it, if needed.

    Link->Stun is in 2.54 though.

    Have a look at the 2.54 changelog, and try the latest build, so that you can see what's already in there. The enemy editor, and item editor have some massive improvements, and you might want to work with me on the EE stuff in the process of adding these things.

    Stuff like floormasters and ceilingmasters could probably be a new spawn type.

    Enemy weapons are already undergoing a partial overhaul, and Link->Defense will play a part in that.

    New weapon types have priority over rules. QRs are slowly going away, and migrating to flags/settings in the various editor dialogues.

    I also advise looking at the 2.54 quest save/load code. I'll be moving the stuff for enemy weapon sprites over to there, soon. (IDK why I stupidly put it in the EE.)

    Anyway, master is so bent over that porting all of the 2.54 stuff to it is a nightmare, and I'll end up ripping out a bunch of stuff in master anyway, so the plan is, after 2.54 goes beta, I'll make a 2.55 or 2.60 branch, archive 'master', and start cherry-picking changes that still make sense. From that point, our git branches will be version-based. That's far more sane, IMO.

    The dev server has long lists of planned features, and ideas, split into channels on a categorical basis under 'Features'.

    Glad to have you back on board, and GL. LMK if you have any problems.

    P.S. When you clone branch 2.54, before you make channges, do git checkout -b 2.54-new-enemies , creating a branch with your new code. I'm trying to keep git management in place, so that new/experimental stuff goes into a temp branch first, is tested, then pulled into the main branch (for that version).

    I'm going to request the missing BSZ enemies. We need BS Patra 2.
    Last edited by ZoriaRPG; 03-19-2018 at 05:39 AM.


    Featured Scripts & Headers: RPG.zh ( v. a0.97.1 ) ( RPG.zh Thread ) | Zelda 3 Thief's Town Treasure Chest Minigame (ffc) | Bobomb (enemy)
    ZScript & ZC-Related Pastebin | Quests and ZScript Repository | ZC Dev & Betas | Latest ZC 2.54 Beta | YouTube Channel
    All of the code that I create and publish here is free for use, modification and distribution under the GPL v2.0, or v3.0 where applicable..

  3. #3
    The Timelord
    ZC Developer
    ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,158
    Mentioned
    104 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,966
    Level
    20
    vBActivity - Bars
    Lv. Percent
    4.01%
    Daily Activity
    0%
    Weekly Activity
    60%
    Monthly Activity
    92.55%
    P.P.S. Tektite 3, Lynel 3, and Whistle Pols Voice, you can, and should skip. The L3 stuff was replaced by the EE in general, and is a remnant of unfinished pre-EE (2.10) plans, and Whistle Pols Voice is going to be pointless, as there will soon be a whistle lweapon def type, where the user can set OHKO.

    Adding Z3 Tektites, Lynels, and so forth is probably the way to go, if you want to do that.

    One major thing that I want to add to the EE is a series of movement types and variables. Stuff that would allow the user to give npcs 8-way movement, circular patterns, sine waves, and the like. I also want to add a 'solid' flag to the npc class, which when true treats the npc as solid. (This is needed for frozen npcs.)

    I also want to add a string to npcs (on the spawn type dialogue on the screen), so that the player can give npcs on the screen a string, and some other stuff of that sort, to add mobile friendly npcs (guys), and expandable static guys.

    ...so...aye, lots of stuff for the next few versions.
    Last edited by ZoriaRPG; 03-19-2018 at 05:40 AM.


    Featured Scripts & Headers: RPG.zh ( v. a0.97.1 ) ( RPG.zh Thread ) | Zelda 3 Thief's Town Treasure Chest Minigame (ffc) | Bobomb (enemy)
    ZScript & ZC-Related Pastebin | Quests and ZScript Repository | ZC Dev & Betas | Latest ZC 2.54 Beta | YouTube Channel
    All of the code that I create and publish here is free for use, modification and distribution under the GPL v2.0, or v3.0 where applicable..

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
About us
Armageddon Games is a game development group founded in 1997. We are extremely passionate about our work and our inspirations are mostly drawn from games of the 8-bit and 16-bit era.
Social