Jump to content

Photo

Limiting SummonRobes

Wizzrobe Summoner SummonRobe

  • Please log in to reply
3 replies to this topic

#1 Lüt

Lüt

    Germanize

  • Members
  • Real Name:Steve
  • Location:Chicago

Posted 11 October 2016 - 05:29 PM

I like Wizzrobe Summoners. They provide one of the most customizable and versatile enemies in the entire ZC lineup, and can easily be fit into nearly any role - common enemies, treasure guardians, mini-bosses, maybe even final bosses - all based on how you set them up.

 

However, they have no restraint whatsoever. They can flood a room to the full (500?) enemy limit in a matter of minutes, and even bring the program to its crashing point depending on the enemies they summon (i.e. splitters, heavy-projectile shooters like Fire Octoroks, or multi-part enemies like Moldorms or Patras). It's one of the most absurd things in the game.

 

By contrast, the BatRobes can summon up to 40 (39?) enemies, and that's it. No matter if you put 1 or 10 in a room, 40 Bats is the limit. So why the SummonRobes can use up the entire enemy limit, especially when they can summon much stronger enemies, is a bit confounding.

 

When I updated my last quest, I came up with a hack: I created a whole lineup of BatRobes, changed their sprites to the original SummonRobe sprites, then changed the summoned enemy IDs from Bats to every different enemy I wanted to summon. Therefore I enforced a 40-enemy limit on every summon, but ended up with 66 different "SummonRobe" variations in my enemy list.

 

Still, there has to be a better way to enforce limits than an overbearing hack job that clutters the enemy list and still results in a significant enemy flood.

 

So I thought through 3 possible options. The first 2 are quick fixes - the 3rd is significantly more complicated, but also what I consider ideal.

 

Method 1 - Enemy Editor: Add a "Summoned Enemy Limit" option in the enemy editor. Under the "Data 2" tab for "Wizzrobe (Summoner)", the first 5 attributes are already set to configure summoner-specific options, while attributes 6-12 are open. Change "Misc. Attr. 6" to "Summoned Enemy Limit," and let the user decide the maximum number of summons that can be summoned by "Wizzrobe (Summoner)," or even "Wizzrobe (Bat)."

 

Method 2 - Screen Data: Add a "Summoned Enemy Limit" option under the "E.Flags" tab. This way the user can decide the maximum number of summons on a per-screen basis, and adjust it accordingly depending on the enemies being summoned.

 

Method 3 - Summon Sets: This is my preferred option.

 

In the main menus, under "Quest" -> "Misc Data," then below "Item Drop Sets," add a "Summon Sets" menu.

 

This would work extremely similar to "Item Drop Sets."

 

First, you get a list of 256 summon sets that you can name.

 

Second, you can open each set and get 2 tabs offering 10 total drop-down boxes in which you can select what enemies you want to be summoned.

 

Third, you decide the proportions of enemies you want to be summoned. This can work in 2 different ways. First, a percentage-based "chance" option like the Item Drop Sets already use. This would work within a 100-percentage basis, since there wouldn't be a "Nothing Chance" option like the Item Drop Sets have. Second, they can use absolute enemy limits, meaning that once the specified number of Enemy X has been summoned, no more can be summoned until 1 or more Enemy X's are killed. This would force summons of Enemy Y until Enemy Y's limits are met, then Enemy Z, etc.

 

Fourth, you choose an overall enemy summon limit for the entire set. Could be used to replace the "Nothing Chance" option from Item Drop Sets. This would be necessary with the percentage-based "chance" option, but not so much with the absolute enemy limits option.

 

Fifth (possibly optional), you set a "Summoned Enemy" range. This lets the user decide how many enemies will be summoned with each summon attack.

 

Then, once your sets are configured, go to the room in which you placed the summoners, bring up the "Screen Data" -> "E.Flags" tab, then select which Summon Set you want the room to use.

 

So, here's how a possible setup would look:

 

* Set Name: Dungeon #2 Mini-Boss Room

 

* Enemy 1: Goriya / Summon Limit: 8

* Enemy 2: Keese / Summon Limit: 12

* Enemy 3: Stalfos / Summon Limit: 10

* Enemy 4: Zol / Summon Limit: 7

* Enemy 5: Manhandla / Summon Limit: 3

 

* Total Enemy Limit: 40

 

* Summon Range: 1 - 5

 

In this scenario, the summoners would randomly grab any of the 5 enemy options from the list until 1 particular enemy's limit is met. After that, they'd move on to summoning the remaining enemies until the maximum number of 40 enemies has been summoned. And for each summon attack, anywhere from 1 to 5 enemies can be summoned by each summoner.

 

It could happen that the very first summon attack brings out all 3 Manhandlas, in which case no more Mandhandlas would be summoned until 1 is taken down - and if the player decides to leave them alone, no more will be summoned, even if there's only 1 other summon in the room.

 

(The above setup uses absolute enemy limits. The percentage-based option would play out the same.)

 

Here's another possible setup:

 

* Set Name: Red Ring Trial Cave Final-Boss Challenge

 

* Enemy 1: Lynel / Summon Limit: 6

* Enemy 2: Fire Zol / Summon Limit: 8

* Enemy 3: Wizzrobe (Fire) / Summon Limit: 4

* Enemy 4: Ham Sandwich / Summon Limit: 6

 

* Total Enemy Limit: 16

 

* Summon Range: 2 - 3

 

The difference in this scenario is the per-enemy summon limit vs. the total-enemy summon limit. The possible per-enemy summons add up to 24, yet the total-enemy limit cuts off at 16. This means that all 6 Lynels, all 8 Fire Zols, all 4 FireRobes, or all 6 Ham Sandwiches could be summoned - however, all summoning would stop when the on-screen enemy count reaches 16. So you could have all 6 Lynels and all 8 Fire Zols, but only 1 FireRobe and 1 Ham Sandwich. Or you could have all 4 FireRobes and all 8 Fire Zols, but only 1 Lynel and 3 Ham Sandwiches.

 

And for each summon attack, anywhere from 2 - 3 enemies can be summoned by each summoner.

 

Side note: if possible, splitting enemies should have each individual split counted as a summoned enemy, rather than disappearing from the summon count entirely.

 

(Again, the above setup uses absolute enemy limits. The percentage-based option would play out differently due to the difference between per-enemy and total-enemy limits.)

 

Finally, one more possible setup:

 

* Set Name: Dungeon #8 Item Guards

 

* Enemy 1: Dodongo / Summon Limit: 6

 

* Total Enemy Limit: 6

 

* Summon Range: 2 - 2

 

In this scenario, only Dodongos would be summoned, and only up to 5 total. And by setting the summon range to the same number, every single summon attack would bring forth 2 enemies.

 

(Once more, the above setup uses absolute enemy limits. The percentage-based option would play out the same.)

 

Well, that's my thoughts.

 

How about yours?


  • Anthus, Avaro and KingPridenia like this

#2 Jamian

Jamian

    ZC enthusiast

  • Members

Posted 12 October 2016 - 01:46 PM

I'd just use a script to summon enemies manually. This way you can count the enemies in the room and only summon if the enemy cap hasn't been reached.


  • Lüt likes this

#3 grayswandir

grayswandir

    semi-genius

  • Members

Posted 12 October 2016 - 02:09 PM

All that would certainly be nice to have, and I think it's a good way to go about doing so. It'd just take quite a bit of work, and I'm not sure that focusing on this one enemy type is such a good idea? I dunno.

 

As far as scripts, it'd be pretty easy to just silently kill every enemy of a type past n. So new enemies will just go *poof* the same frame they show up.

 

Also, you do know about the thing with summoning by layer, right? I'm not too sure how it works, but you didn't mention it.


  • Lüt likes this

#4 Lüt

Lüt

    Germanize

  • Members
  • Real Name:Steve
  • Location:Chicago

Posted 13 October 2016 - 12:50 PM

I'd just use a script to summon enemies manually. This way you can count the enemies in the room and only summon if the enemy cap hasn't been reached.

Heh, I knew a programmer would come along to suggest a script :P

I suppose you could probably do something similar with an FFC script, where you can use arguments to select... say, 5 enemies to be summoned (D0 - D4), then enter number of summons per attack (D5), maximum enemy limit (D6), and... whatever else D7 might be useful for (perhaps D6 for minimum summon attack number and D7 for maximum summon attack number). That would probably be the most versatile script option.

But, for most of us who can't code, or even get most scripts to work at all, some kind of in-game option should be available, even if it's only the per-enemy or per-room limits.

All that would certainly be nice to have, and I think it's a good way to go about doing so. It'd just take quite a bit of work, and I'm not sure that focusing on this one enemy type is such a good idea? I dunno.

It may seem like it, but that's why I based it off Item Drop Sets. I figured, if it worked in a similar manner, then perhaps a certain amount of the similar code could be cut+paste from the Item Drop Sets to the Summon Sets - if only their interface in ZQuest.

I mean, I'm not a programmer, so I don't know for sure. It's not like I think there has to be 256 sets or 10 enemies or specific ratios - I just pulled the idea from the Item Drop Sets, with the hope that a certain amount of existing code could be re-used rather than a whole new system done completely from scratch, and that a seemingly complicated thing could be considerably easier in that way.

As far as scripts, it'd be pretty easy to just silently kill every enemy of a type past n. So new enemies will just go *poof* the same frame they show up.

Seems a bit hack-ish, but better than the no-control we have at the moment.

Also, you do know about the thing with summoning by layer, right? I'm not too sure how it works, but you didn't mention it.

Yeah, I actually wrote the entire post with the current layer system in mind. The BatRobe's single-enemy ID configuration of the summon attack, with the 40-summon limit, is the one I presented as the exception; the enemy-flood situation comes from the Layer 1 configuration of the summon attack.





Also tagged with one or more of these keywords: Wizzrobe, Summoner, SummonRobe

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users