User Tag List

Results 1 to 6 of 6

Thread: Plans & Proposals: Enemy / Weapon/ Item Defense / Classes (Ideas, too)

  1. #1
    ZC Contirbutor ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    917
    Mentioned
    81 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,315
    Level
    18
    vBActivity - Bars
    Lv. Percent
    52.86%
    Daily Activity
    0%
    Weekly Activity
    79.19%
    Monthly Activity
    54.91%

    Lightbulb Plans & Proposals: Enemy / Weapon/ Item Defense / Classes (Ideas, too)

    Status Colour Indicators:
    Pending
    Done, Not Perfected
    Done, Perfected
    Not Happening

    @Gleeok : There are many things in here that are ultimately up to you to decide upon. Yiou may want to scan this slowly, and digest it segment by segment, with some whiskey to hand. I find that helps.

    A while back, the concern that Saffith's planned weapons rewrite and my weapons and guys modifications would be mutually exclusive, were a kibosh to further discussion on the matter, but seeing as Saffith is out of this, I would like to bring this up.

    Here is what I've done, plan to do, and have considered.

    Working

    Script Weapons
    I have already implemented individual defences for script weapon types in the editor, for the existing ten. These work precisely as intended.They are located in a new array, for these ten weapon types.

    Dimentio, meanwhile, has defined an itembased on the wand, that can create lweapons of most types; including script types. Clearly, some types are prohibited.

    ->Range
    I had added a ScriptRange property to the weapons class, so that scripts may set the range or duration of weapons that are appropriate. I would like to add this to the item editor as a fixed value (not Attributes, but a new JWIN_TEXT_PROC) so that items that can have a range use a unified entry point for it from the user, rather than an Attributes[] point that might shift about based on the item class.

    Diagonal Hookshot
    I have partially implemented diagonal movement, which can be toggled with an item editor flag.

    Planned

    Weapon Types
    Ideally, I would like to expand the list of weapon types to include wFlame (fire, but with a step property, instead of distance), wIce, wLightning, wSound, and a few others. I would further, like to increase the number of user-defined types, and allow renaming them in ZQuest.

    Weapon and Item Classes
    I'm hoping to add the fire rod, ice rod, trowel, cape, and possibly the cane of somaria. I also wish to add an invincible flag to the cane of byrna, and I want to add an option to the item editor 'Magic Cost is in Seconds', as opposed to frames.

    I want to add a UseDefence property to items, so that the user can set a global defence outcome, that is applied to all npcs. This would be a default, if the npc defence is 'None'. In essence, the weapon would always have one of the effects of the standard npc editor defence outcomes (stun, block, and so forth; but bear in mind that this list is scheduled for expansion), but if the enemy is set to a defence other than 'None' the engine will use the npc setting instead.

    I further want to add some additional Attribute indices, and flags, to items, so that the item editor has more fields to use.

    Other per-item improvements, such as a swim speed setting for flippers (press button to go faster, as in Z3), or other small enhancements.

    I would also like to add some generic items, that produce a weapon, with the following properties set by the item editor attributes: Weapon type, ranged, distance-based, returning, diagonal. This would allow creating fully user-defined items without needing scripts, and using the planned item editor defence settings to define how these work; and the planned flag editor trigger flags, to allow triggers from them.

    It would greatly simplify the process of adding new and unusual, or even unique, items to a quest, that at present requires heavy scripting to accomplish, making these effects easily accessible tot he end-user.

    Animations
    I would like to add an in-built set of animations, that can be called by items, via the item itself, or via the planned flag editor, or as a defence outcome. For example, an explosion animation, a fire animation, bombos, ether, quake, and similar, could be included, called by the user when the item is used, when it hits a trigger, or when it hits an enemy. With the default enemy defence outcome, this animation could be set as the default outcome of the defence, and an animation ta in the item editor could determine its mechanical effects (e.g., damage).

    Obviously, scripts will also need to be able to generate animations, just as you would generate an lweapon. This can be something as simple as Screen->CreateAnimation(type, sprites[], damage, x, y), or more fancy, as its own object type. I might prefer the latter as a type, sprite , but I'm not particularly rigid on this.

    Guys
    I want to add a set of arrays to guys, for future defences, and for defences on a per-item basis. It would be interesting to implement a defence outcome, for each item i n he editor, eventually; without stripping the class outcomes. Essentially, this would have a default of 'off', and if off, the npc would use the class defence outcome. if this setting is enabled, the npc would check against the parentitem, and apply this result, instead of the class-based result.

    I re-wrote the npc defence checking system. It now uses a series fo checks that can be used to check the weapon level, and other object properties, and simplifies weapon damage handling.

    I would also like to expand the defence and scriptdefence arrays, reserving space for future expansion, so that we can add defences without needing a filepack change, and this introduce them whenever we wish. The 'scriptdefence' array is now obsolete. The main npc 'defense' array is now a size of 41.

    Editors
    I would like to add some pull-down lists to the item editor, and npc editor. The item editor pull-downs would set item->Properties[], a new array, with special properties inherent to the classes. The wand that @Dimentio made, as an example, uses a selectable weapon type. Other examples include a pulldown (JWIN_SELECT_PROC) to select a single item for item-specific defence, with a second pull-down next to it, for the outcome. This would be better IMO, than multiple tabs for 256 items. :)

    Obviously, the editor panels will need to include any other new features, involved.

    Link Class Objects

    I would like to add a Z3 sword, with a 180-degree slash to the standard inventory. his could be an overlay on slash, but I think it would be just as wide to make it a clean, new item.

    At the same time, I would like to add a system of creating what are now Link class objects by script. Clearly, creating them would require new functions, and not merely CreateLWeapon(), but it could be done. CreateLWeaponDx() is only the first tiny step toward this, and CreateMeleeWeapon() could be done.

    Other, Script
    Similarly, a script-only ->Defence property on lweapons, could change what type to which they are compared by Enemy::TakeHit/Hit. (This can be done with the new UseDefence member of weapons.

    I also wrote a preliminary function for ZScript to attempt to hit an npc with an arbitrrary, or dummy weapon. This allows setting a weapon type, parent item ID (-1 for none), weapon direction, and coordinates, and mimicing a collision. For example, ikf you fired a laser that was drawn with drawtile, instead fo spawning lweapons along its path, you could just check for intersection with an npc, and then if it intersects, call CollisionDx(L_WLASER, n->X, n->Y,laserdamage, laserdir, -1) and then allow the internal engine collision to check for shield blockage, enemy defences, apply damage, and set the npc invincibility frames.

    Anyway, what does everyone think of this? I think that all of this could work without a weapons rewrite, and that none of it ultimately spoils a rewrite if you wanted to do one in a few years down the line.
    Last edited by ZoriaRPG; 06-27-2017 at 10:18 PM.


    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..

  2. #2
    Gel
    Join Date
    Dec 2015
    Posts
    29
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    vBActivity - Stats
    Points
    169
    Level
    4
    vBActivity - Bars
    Lv. Percent
    80%
    Daily Activity
    0%
    Weekly Activity
    3.05%
    Monthly Activity
    2.18%
    I really like the idea of some new item classes as well as some reworks of hard coded items such as swords.
    I think that along with the Z3 sword you could add a Z4 shield as well.

    Guys could just be made more dynamic so they aren't so limited.
    This could allow Z4 or Z3 shops to possibly be made.

  3. #3
    ZC Contirbutor ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    917
    Mentioned
    81 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,315
    Level
    18
    vBActivity - Bars
    Lv. Percent
    52.86%
    Daily Activity
    0%
    Weekly Activity
    79.19%
    Monthly Activity
    54.91%
    Quote Originally Posted by Shadowblitz16 View Post
    I really like the idea of some new item classes as well as some reworks of hard coded items such as swords.
    I think that along with the Z3 sword you could add a Z4 shield as well.

    Guys could just be made more dynamic so they aren't so limited.
    This could allow Z4 or Z3 shops to possibly be made.
    I'm not in favour of working with Guys, but rather, I prefer to add some flags and vars to the npc class, some movement patterns, and ... a string field to the screen npc list, to allow the questmaking to create livelier towns, with strings attached to npcs, and guys that can move about as in Dragon Quest, or what-have-you.

    We have discussed the Z3 sword, but the Z4 shield. What does this need to do? Push enemies with a 'can push' flag? Add a shield lweapon? Allow shields to be equipment items that turn on and off?


    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..

  4. #4
    ZC Contirbutor ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    917
    Mentioned
    81 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,315
    Level
    18
    vBActivity - Bars
    Lv. Percent
    52.86%
    Daily Activity
    0%
    Weekly Activity
    79.19%
    Monthly Activity
    54.91%
    Update

    Thus far, I have implemented the basic form of the weapon editor. I added a set of variables to the itemdata struct, and to the weapon struct, and I set weapon::weapon to pair values to weapon class objects from the itemclass struct variables for the parentitem that generated the weapon. This means that it is now possible to forward item editor properties to weapons (whew).

    It also incidentally makes CreateLWeaponDx() even more potent, or the scripters.

    In the item editor, you can now set the default weapon defence, and the weapon type. These are evaluaed by guys.cpp, and both (partially) work. The present issues to resolve are as follows:

    Default defence overrides enemy editor. Although I designed this to use the enemy editor defence when it is not set to 'none', over the default imposed by the weapon, the evaluation is still giving the item editor default deence priority.

    Double evaluations: Items set to another type, may be evaluating as both types. As an example, an arrow with a fire type, seems to evaluate as both arrow, and fire. While this may be interesting, and even useful, it can also be confusing to the user.

    Link class weapons may not be evaluating with the set types and defences. I know that swords are not doing this, and I need to determine why.

    There seems to be an offset issue with defences, as script 2 in the enemy editor is matching up to script 1 in the item editor.

    Movement patters do nothing at present. I did prepare a way to forward a weapon script from itemdata to a weapon, but until we have running weapon scripts, this is unimportant. I also started working on a way to set item and weapon sizes in the editors; and enemy sizes in the enemy editor.


    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..

  5. #5
    ZC Contirbutor ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    917
    Mentioned
    81 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,315
    Level
    18
    vBActivity - Bars
    Lv. Percent
    52.86%
    Daily Activity
    0%
    Weekly Activity
    79.19%
    Monthly Activity
    54.91%
    The enemy editor settings for npc hitsize, and tilesize, now work as expected--except that I clearly do not know what to expect the arrangement of 4-frame 4-dir 2x2 enemy tiles to look like.

    HitZSize coming soon.



    Here is some footage for the item/weapon editor, too:



    Bonus Content Below

    Last edited by ZoriaRPG; 06-09-2017 at 03:58 PM.


    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..

  6. #6
    ZC Contirbutor ZoriaRPG's Avatar
    Join Date
    Oct 2006
    Location
    Prydon Academy
    Posts
    917
    Mentioned
    81 Post(s)
    Tagged
    1 Thread(s)
    vBActivity - Stats
    Points
    3,315
    Level
    18
    vBActivity - Bars
    Lv. Percent
    52.86%
    Daily Activity
    0%
    Weekly Activity
    79.19%
    Monthly Activity
    54.91%
    The weapon editor is now working! Using it, you can do the following:

    Set Weapon Type
    Setting this changes the type of the weapon, for use when determining the weapon type for npc defences. Thus, if you set an arrow to the type 'Sword', when an arrow made by this item strikes an npc, the npc defence for 'Swords' is used to evaluate the outcome.

    It should also be working for swords, so that you can set a sword to the defence 'Fire', but this is not proven.

    Set Default Defence
    If set to a type other than 'None', and item that acts as a weapon will use a specific defence outcome (e.g. double damage), when it strikes enemies. All enemies are globally effected by this setting, based on the item type, if their own defence setting for that weapon s set to 'None' in the enemy Editor.

    Example
    If you set a sword to a defence of 'stun', and you set the 'sword' defence for Blue octorocks in the enemy editor to 'double damage', when struck by a sword Blue Octorocks will take double damage, and all other enemies will be stunned. The Enemy Editor defences act as exceptions to a default defence.

    Combined
    If you set an item to a specific weapon type, and set a default defence for it, then it will act as that weapon type, for all enemy purposes. It will use the default defence that you provide, but it will look at the Enemy Editor settings for the weapon type that you select for determining defence exceptions. Thus, a sword item, set to a type of 'Arrow', and with a defence of 'stun', will stun all enemies with an arrow defence of none, and it will use the arrow defence type applied to enemies to determine its results, otherwise.

    This new magic brought to you by Insomnia and Company.

    video, t.b.a.


    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