User Tag List

Results 1 to 4 of 4

Thread: Enemy Editor Plans (To-Do)

  1. #1
    The Timelord
    QDB Manager
    ZC Developer

    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,396
    Mentioned
    112 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,760
    Level
    21
    vBActivity - Bars
    Lv. Percent
    68.72%

    Enemy Editor Plans (To-Do)

    @DarkDragon inquired as to my plans for the enemy editor, so I'm posting this thread exists both as an announcement to everyone, and as a self-reminder for planned improvements tot he enemy editor.

    This is in parallel with the items and weapons editor improvements.

    As always, green means implemented, bold green means implemented and working properly, blue means work-in-progress, and red means abandoned.



    Enemy Sizing
    Add the ability to set the size and hit/draw offsets for npcs.
    Add an override flag that is mandatory to make the values entered apply to the npc. The values are still retained, but the npc is only drawn to this size of the flags are set true.


    Death Effects
    Correct the death sprite so that it either swcales based on the enemy size, or so that it is drawn from a number of tiles equal to the enemy size, rather than drawing one tile per tilespace of the npc.
    Add a deathsprite variable, to set the sprite on a per-npc basis.
    Add additional death effect types, and animations.


    Weapon Settings
    Add the ability to edit the sprite of enemy weapons.
    Add the ability to change the size, and other offsets for enemy weapons, including hitwidth, higheight, draw and hit offsets.
    Add a method to scale the sprite of enemy weapons.
    If we add a set of movement patterns to all weapons, then we could give npcs a weapon pattern set based on these, in addition to the extant patterns. In fact, we could also port over the eweapon patterns to lweapons.


    Enemy Flags
    Add true invisibility, with a field for an item to cancel it. Perhaps an item class, or specific level, too? i can see a 'reveal by; flag, and three fields for specific item, item class, and minimum level.
    Add reveal by fields for cloaked enemies.


    New Enemy Variables
    Frozen CSet, and Frozen Sprite. These are for the defence status edefFROZEN/edefFREEZE, such as the ice rod would accomplish. Adding the ability for Link to life and throw frozen enemies could follow, if we add this in general.
    CreatedBy: A variable that allows a script to report if the enemy was created by the screen, or a script. if by a script, it could report the script ID or other metadata.
    Link: The npc is linked to another npc on the screen. This may not be viable, as enemy indices on the screen change, but it would be interesting to Link npcs to other npcs, and for example, have them mirror movement.


    Defences
    Additional defence types: all script weapons, electricity, sonic, and others for all lweapons, including unimplemented (planned) lweapon types.
    New defence outcomes, such as double damage, triple damage, quadruple damage, heal npc, trigger secrets, 'shock Link', freeze, explode, and others.

    Defence Type List
    Spoiler: show

    Boomerang, Bomb, Super Bomb, Arrow, Fire, Wand, Magic, Hookshot, Hammer, Sword, Sword Beam, Reflected Sword Beam,
    Reflected Magic, Reflected Fireball, Reflected Rock, Stomp Boots, Byrna Orbiters, Script (Generic), Script 1,
    Script 2, Script 3, Script 4, Script 5, Script 6, Script 7, Script 8, Script 9, Script 10, ice, Bait, Wind, Sparkle, Sonic,
    RESERVED, RESERVED, RESERVED, RESERVED, RESERVED, RESERVED, n/a, RESERVED, Ether, Bombos, THrown Pot, Thrown Rock, Electricity,
    Shield Bash, Shovel, Spin Attack, Z3 Sword, Gameboy Sword


    Note that it is now possible to set Link;s items to generate weapons that use types such as reflected rock.


    Planned Enemy Defence Outcomes
    Spoiler: show

    edNORMAL, // Take damage (or stun)
    edHALFDAMAGE, // Take half damage
    edQUARTDAMAGE, // Take 0.25 damage
    edSTUNONLY, // Stun instead of taking damage.
    edSTUNORCHINK, // If damage > 0, stun instead. Else, bounce off.
    edSTUNORIGNORE, // If damage > 0, stun instead. Else, ignore.
    edCHINKL1, // Bounces off, plays SFX_CHINK
    edCHINKL2, // Bounce off unless damage >= 2
    edCHINKL4, // Bounce off unless damage >= 4
    edCHINKL6, // Bounce off unless damage >= 6
    edCHINKL8, // Bounce off unless damage >= 8
    edCHINK, // Bounces off, plays SFX_CHINK
    edIGNOREL1, // Ignore unless damage > 1.
    edIGNORE, // Do Nothing
    ed1HKO, // One-hit knock-out
    edCHINKL10, //If damage is less than 10 : IMPLEMENTED -Z
    ed2x, //Double damage : IMPLEMENTED -Z
    ed3x, //Triple Damage : IMPLEMENTED -Z
    ed4x, //4x damage : IMPLEMENTED -Z
    edHEAL, //recover the weapon damage in HP : IMPLEMENTED -Z
    edTRIGGERSECRETS, //Triggers screen secrets. : IMPLEMENTED -Z
    edMSG_NOT_ENABLED, //A message for 'The following are not yet enabled.
    edMSG_LINE, //An entry for the hiriz line in THE zq PULLDOWN
    edLEVELDAMAGE, //Damage * item level
    edLEVELREDUCTION, //Damage / item level
    edFREEZE, //Freeze solid
    edSPLIT, //causes the enemy to split if it has a split attribute
    edREPLACE, //replaced by next in list?
    edLEVELCHINK2, //If item level is < 2: This needs a weapon variable that is set by
    edLEVELCHINK3, //If item level is < 3: the item that generates it (itemdata::level stored to
    edLEVELCHINK4, //If item level is < 4: weapon::level, or something similar; then a check to
    edLEVELCHINK5, //If item level is < 5: read weapon::level in hit detection.
    edSHOCK, //buzz blob
    edEXPLODESMALL, //ew bombblast
    edEXPLODELARGE, //super bomb blast
    edSTONE, //deadrock
    edBREAKSHIELD, //break the enemy shield
    edRESTORESHIELD, //if the enemy had a shield, reset it
    edSPECIALDROP, //but where to define it?
    edINCREASECOUNTER, //but where to define the counter
    edREDUCECOUNTER, //same problem
    edEXPLODEHARMLESS, //boss death explosion
    edKILLNOSPLIT, //If sufficient damage to kill it, a splitting enemy just dies.
    edTRIBBLE, //Tribbles on hit.
    edFIREBALL, //Makes a 1x1 fireball
    edFIREBALLLARGE, //Makes a 3x3 fireball
    edSUMMON, //Summons a number of enemies as defined by the summon properties of the npc.
    //edSAVE, edRETRY // Real life, sanity Check Required.
    edWINGAME, //Wand of Gamelon.
    edJUMP, //Z3 stalfos
    edEATLINK, //-G //Is this practical? We need specisal npc mvoement for it. -Z


    Note: I completely rewrote the enemy defend routines, and they now evaluate weapons based on the weapon pointer. This has the benefit of better overall handling, and the ability to read the weaon's parentitem information, to determine the level of the item that created it.

    Death Types
    Add new death types, explode, explode (large ), explode (harmless), explode (large, harmless), fireball, fireball large, fireball (harmless), fireball (large, harmless), and a damage variable for these.

    It should not be too terribly difficult to port these over to npc scripts, once we have those working.

    Feel free to make suggestions, or to provide feedback. I surely expect @Tamamo to tell me that this is all impossible, despite already implementing some of it.

  2. #2
    Here lies mero. Died by his own dumbassitude.
    Join Date
    May 2011
    Posts
    929
    Mentioned
    102 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,527
    Level
    23
    vBActivity - Bars
    Lv. Percent
    13.96%
    It's perfectly possible, not that I appreciate the teasing.

  3. #3
    The Timelord
    QDB Manager
    ZC Developer

    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    1,396
    Mentioned
    112 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    4,760
    Level
    21
    vBActivity - Bars
    Lv. Percent
    68.72%
    Quote Originally Posted by Tamamo View Post
    It's perfectly possible, not that I appreciate the teasing.


    Sorry, I thought we were on friendly-enough terms that I could give you a little jab now and then, as you do to me. I didn't mean it to be spiteful, or anything serious. You did say, that the last few things that I had discussed were impossible, and I managed to do them all the same. ::

  4. #4
    Here lies mero. Died by his own dumbassitude.
    Join Date
    May 2011
    Posts
    929
    Mentioned
    102 Post(s)
    Tagged
    2 Thread(s)
    vBActivity - Stats
    Points
    5,527
    Level
    23
    vBActivity - Bars
    Lv. Percent
    13.96%
    Yeah, you're pretty much know what your doing now. I may be stubbon but i'm not oblivious.
    When I say something is impossible, it clearly means it's only impossible for me.

    Also, have you tried looking at the unimplemented enemies to see what can be done with them.
    As far as I'm concerned. We can just swap out NPC_WALKING and NPC_STANDING. But it would be nice to see about adding the others, since sprites for those do exist in the classic tileset, and other tilesets as well.
    Last edited by Tamamo; 07-02-2017 at 10:03 AM.

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