I' a little confused on how exactly to use the Weakness Display or set it up
Hey there. Been... some time since I made it. I'd probably make it different nowadays.
(been some time since I actually visited the forums instead of just leaving an open tab from something shown on RPG Maker News to "check later" too...)
It had been inspired by Olivia's version, but while hers is based on Octopath Battler and shows the weaknesses, mine is inspired by SMT and Persona.
It shows not just the enemy's weaknesses but also any discovered resistances, immunities, when an enemy absorbs the element...
It is in two lines, the first is icons for the elements and the second are discovered results.
It kinda needs the use of Yanfly's Elemental Core, since absorption and reflection were not allowed by default when I made it. At the time at least it was still free, in fact ALL Yanfly plugins were still free, so it was rare for people to make their own versions of things his plugins had and just used them as requirements for their own plugins.
Anyway.
To set it up, you have:
The Show Elements list, where you set the elements to appear, in the order they appear. The numbers are as listed on your database. Put a "0" in one of them to leave an empty space there, I use it to put a division between physical and magical elements (as mentioned it was based on SMT/Persona, and in some games there were three physical elements, blunt cut and pierce, in others hit and shot like in P5...).
The Element Icons list, where... you set the icons for the plugin to use for the elements. If you set an icon for a "0" element, it will have a divisor icon on the top line, but not on the bottom one.
Weak Threshold, where you can set after which level of elemental rate it counts as the enemy being "weak" to it. Just remember that the value is a multiplier in percent, so 100 is neutral, 150 is 50% more damage and the like. Thus the default value being 101.
Strong Threshold is the same thing, but with damage resistance - that is, the element gives less damage than if neutral.
Substitute or Split.
When I made this, it uses the enemy name window to show the weakness. But while it is usually just the enemy's name, Yanfly's State Buff Core for example allowed you to show them there.
Thus someone requested to give the option of either keeping substituting like I was doing, or splitting the window in two and the left half is the normal window and the right is the weakness display.
Nowadays, if I remade it I'd also add the option of making it blink between the normal window and the weakness display, or keep it a separate window and allow the user of the plugin to set its position (like above the enemy, for example).
Icon or Text is for what to show in the second line. If you want the results to show as an icon, or as a text. To show an icon of weakness or have it written as "Weak" or "Wk".
And from here it is just... icons or texts for each of the possible results.
If I remade this, I'd make it a struct and all but the Unrevealed and Neutral would be on a list the user would be able to set, also allowing them to set the conditions (like the Strong and Weak Thresholds earlier).
Icon is the icon to be used for when Icon is set on Icon or Text.
Text and Color are what text to show, and what color it is supposed to be, when that would be the result.
Unrevealed is for when the result of using that element on the enemy is unknown. Thus why the text for it is an ?
Neutral is for when... there is no other result. It just changes nothing. Thus the text is just empty, it shows nothing.
Weak is for when elemental rate is above the Weak Threshold, meaning more damage from that element. And Strong is when it is bellow the Strong Threshold, meaning less.
Drain is for when elemental rate is negative, meaning damage heals instead of actual damage.
Repel is for when damage is sent back to the attacker.
And Null is for when elemental rate is 0, thus damage just... doesn't happen.
Just like in the SMT games, you need to try to attack the enemies with the element at least once for it to show... so I aded a few things that allow you to change it in-game.
Two notetags for skills and items, and a script call. Now I think Iprobably should have put one on the enemies too so they could start with it shown, but...
<Analyze Element: x>, with x an element number, will make the targeted enemy type show the element as if it had already been seen on it.
<Analyze Random Elements: x>, x a number of elements, will make x elements on the weakness display be seen as if already analyzed for that enemy, but you won't be able to control which.
and the script call $gameSystem.addEnemyWeaknessElement(enemyId, elementId); lets you set the element "elementId" as if analyzed for the enemy type "enemyId".
Can someone confirm that YR_DB_BattlerChange_X.js still works? I have been trying it and it switches my dragonbone battler, but the new battlers has no animation when I use transform enemy.
I
think that was a common issue since I made it, and you need to tell the new battler to start an animation by hand. But after that it should work as usual.
I'll be honest, I didn't touch DB for... a while.
I remember that even at the time I only touched it to make these small plugins, most of them by request to fix an issue or add something the original is missing.
I remember I started doing these when it was still new because at the time DB could not flash or change color (and I was not that good yet so I used webgl filters), and DB kept being this way for years, until after Yanfly went paid, not long before Irina made her paid plugins to use them as images or map chars. Would not be surprised if she was the one to make the fix, so there would not be this issue when her plugins were released.
Good for her if so. I myself thought, when I still messed with it, that the DB plugin needed a kind of refactoring rewrite.
No offense to TheGreenKel, he made a big thing even creating it, but improvement
could be made. A major annoyance of when I made my fix plugins were due to the code for actor and enemy armature battlers being repeated save for some places an "if" would suffice, but since my patches were only extensions I
had to copy this instead of making a more encompassing object. Else any updates to the YEP plugin could break them.