New account registration is temporarily disabled.

[RM2K3] XENOMIC'S HELP TOPIC

Posts

So I don't make a bajillion threads, I'm going to condense them all into one thread as I did long ago.

So, while I haven't messed with the doublecast stuff yet, I have been messing with another thing. So hear me out before I ask the question.

The ability, known as Rain Dance, originally just healed the party. For...crap HP really (40 at level 1, 1260 at level 6. Which is 260 more than the single-target heal so it's still better, but the healing is still really low, which I'm fine with). However, I am trying to make it even more interesting, and so I decided to make it give the party Reimu's passive, in which they gain a 20% chance each turn to instantly recover from all negative statuses (Reimu's passive gives her a 10% chance each turn, but this will bump her up to 40%), starting at 10 turns at level 1 and up to 60 turns at level 6.

Now, I have the coding set for Marisa right now as my test character. However, I'm...a bit stumped as to what I really want to do. Originally, I was just going to have a common event for each character that removes all negative status from one character and then link to the common event that way. However, that would require at least 30 common events to do that, and a lot of free time to get all of that done. So, I tried to do an alternative to this in which I made a status (named Resist but it's not really FFVII's Resist), which has a priority of 68 (note that most of my statuses have a priority of 49-55) and set to 1 turn at 100% chance to recover so that it would instantly cure all negative statuses. However, this ALSO in turns removes all buffs, including the buff specifically made for Rain Dance to ensure that the passive buff stays.

In any event, here's the coding if you're wondering what I'm rambling on about:




Rinse and repeat up to Med6. The way it's set up, I had it originally check to see if Marisa was in the party (check) and if she had the status from the appropriate level of Rain Dance on. If she did, then it would give her a 20% chance each turn for Resist to kick in and remove all statuses on her (having a drawback to Rain Dance isn't a bad thing I guess? I dunno...though Reimu's passive doesn't have that so...). However, it also removes the Med statuses, so I tried to set it so that it would put it back on if a variable is set to 1, which would be set to 1 if a hidden timer for when the character has the status is greater than 0 (yes, I have the variable names reversed, and it confuses the crap out of me too). However, if I do it this way, I'd then have to find a way to make it so that it doesn't infinitely reset the timer each turn.

So the question is, is there a better way of doing this that doesn't involve having to do some convoluted coding or having to have 30 common events for the characters that can be affected by Rain Dance with the statuses removed?

(Why 2k3 doesn't give you the option to remove all statuses is beyond me...that would've worked fine for this although even then that'd mean I'd have to lose all buffs anyways. >_< )


Expect more things to come up in here as I get around to actually doing them for my game. Really trying to push beta5 forward, since when that's done that's about 71-80% of my game finally done storyline wise. >_<
This is fortunately not that difficult because conditions, unlike virtually everything else that deals with characters, can reference characters by variable. Thus the majority of the code is just a simple code, like so:


Var [0189:Character Variable] = 1
Var [0190:Condition Reference] = 2501
Label: 1
Variable Oper: [0188] Set, Var [V[0190]] Value
Branch if Var [0188:Temporary Number] is 1
<> Var [0187:Random] = 1...100
<> Branch if Var [0187:Random] is 80 or more
<> <> Change Cond: V[0189] Poison Remove
<> <> Change Cond: V[0189] Blind Remove
<> <> Change Cond: V[0189] Silence Remove
<> <> Change Cond: V[0189] Slow Remove
<> <> etc.
<> End
End
Branch if Var [0188] is 10 or more
<> Jump to Label: 2
Else Handler
<> Var [0189:Character Variable] + 1
<> Var [0190:Condition Reference] + 1
<> Jump to Label: 1
End
Label: 2



Variable #2501 - 2510 in this case represent variables for 10 characters (I don't know how many characters are in your game, but I'm just choosing 10 for this example). If the variable is 1 then the character is inflicted with Rain Dance. If 0 they are not. I'll call these 10 variables the "condition variables" just to make it easier to talk about.

Variable #190, the "Condition Reference," stores a number corresponding to 10 condition variables. Basically, this is what allows the loop to know what variable to reference to check to see if the character is inflicted with Rain Dance or not.

However, you can't use variable references in conditional branches. So first thing I do after Label 1 is to assign a temporary variable the value of variable # stored in "Condition Reference."

Hopefully that makes sense. It's the most complicated part, but extremely powerful when you're dealing with loops.

So to walk through the above script:

At Label 1, it stores the value of the correct "condition variable" into a temporary variable so that it can be used in the conditional branch to check to see if the given character has the Rain Dance condition or not.

If the Temporary Variable = 1, then it means the character has Rain Dance. Next we have our 20% chance that all of their negative conditions will be cured. Since this is the only time we'll need to list the conditions, it's easy to list just the ones you want curable by Rain Dance. As mentioned before, conditional changes can reference a character by variable, which is what allows this whole loop to function. In this case we reference the character ID by the Variable #189, which I named "Character Variable."

Afterward we check if the Character Variable is greater than or equal to 10. If it is that means we've already checked through all of the characters and need to leave the loop. We do so by going to Label 2.

However, if the Character Variable is less than 10 we still have some characters to check. In this case we need to add one to each of our reference variables so that the proper characters and variables are referenced during the next loop.


At this point there are two things left for you to do. First, you need to somehow populate the condition variables #2501 - 2510. These could either be populated by the Rain Dance spell or by checking conditions. You'll need to write this script for each character manually because you can't check for condition by variable reference.

Branch if Character1 has RainDnce Condition
<> Var [2501:Char1 inflicted with Rain Dance] = 1
Else Handler
<> Var [2501:Char1 inflicted with Rain Dance] = 0
End


The final thing is to figure out how to give Reimu a 40% chance to remove the conditions rather than 20%. There are two ways you could accomplish this. One option is to write a completely separate script just for Reimu. The other option is to write the main script to have a variable percentage chance. Because I don't like using extra variables when I don't have to, I'm instead altering the random number. Changes from the script above are in blue below.


Var [0189:Character Variable] = 1
Var [0190:Condition Reference] = 2501
Label: 1
Variable Oper: [0188] Set, Var [V[0190]] Value
Branch if Var [0188:Temporary Number] is 1

<> Branch if Var [0189:Character Variable] is 4 (I'm assuming this is Reimu)
<> <> Var [0187:Random] = 1...50
<> Else Handler
<> <> Var [0187:Random] = 1...100
<> End
<> Branch if Var [0187:Random] is 20 or less

<> <> Change Cond: V[0189] Poison Remove
<> <> Change Cond: V[0189] Blind Remove
<> <> Change Cond: V[0189] Silence Remove
<> <> Change Cond: V[0189] Slow Remove
<> <> etc.
<> End
End
Branch if Var [0188] is 10 or more
<> Jump to Label: 2
Else Handler
<> Var [0189:Character Variable] + 1
<> Var [0190:Condition Reference] + 1
<> Jump to Label: 1
End
Label: 2


Hopefully this helps you understand a bit how you can use loops and variable references to make some these custom scripts easier to manage.
Ah, that'll be easy to use the "X Auto-Med" variables for the character variables, so that part would already be taken care of. And I think I see how this works, meaning it'd be super easy to just have one Common Event just for curing statuses with Esuna instead of 30. Does this take the different turn variations into account for the 6 levels of Rain Dance?


EDIT - Nvm, I see the Rain Dance condition. Dunno how I missed that. I could probably stick that in the Rain Dance common event at the top, right?? If so, that's what I was attempting to do initially, though I guess with this method I can opt out of the crazy method I was trying heh. ^^;
Yes, you can put the logic that handles checking for the Rain Dance condition at the top of the common event. I separated it out because the condition check needs to be repeated once for each character, whereas the rest of the script only needs to be written once. But I do think putting them together is the best idea.

Got it. That'll prevent having too many events going at once that way then. Much obliged for your help on this as well as the other topic! If there are anymore questions that I may have concerning ability coding or the like, I'll be sure to ask here. ^^
EDIT - Nvm most of that. I figured out how the coding works and got it going I believe. However, here's a funny little issue. While this WOULD work normally since it's checking for character IDs in order, there's...a bit of a problem here. You see, some of the characters AREN'T directly one after another that can be checked with this:

Let's take this for example:



Here, 0001-0024 is fine because they're characters that can be with Reimu at all times that she's around (except 0018: Yukari doesn't need it because she is immune to all negative statuses innately). However, 0025, 0028-0035, 0037-0038, and 0040-0041 are not around for Reimu to give the buff to as she's never in the party when they're around (26-27, 36, and 39 are around when Reimu is). That's not the full list either, so...how to deal with this sticky situation?

(I also have to rename variables and the like because didn't realize it did things in order of character ID, and my variables aren't in order of character ID...>_<)
Trihan
"It's more like a big ball of wibbly wobbly...timey wimey...stuff."
3359
Just have branches in the code that increments the variable checking if the ID is one of the ones it can't be, and if it is add the value that would take it to the next one in line instead of 1.
Oh...yeah, I guess that WOULD solve it, wouldn't it? Sometimes I just don't think right methinks. Thanks for the help. ^^;
Is there a reason any of the other characters would ever have the Rain Dance condition if they're not in the party? Trihan gives you the correct way to get around your problem, but I'm not sure if I follow why it is a problem in the first place, since only those characters with the given condition should ever be affected.
That's not the problem in itself. It's moreso the way my database has it ordered that's the problem, because if you noticed, Variable 189 specifically calls for the character who is in that slot. As noted in my previous message, some characters are never around for Rain Dance to ever be applied to them specifically (hence, they wouldn't need any coding for Rain Dance at all). Trihan already nailed it on the head (I just need to have conditional branches to check to make sure if the variable is currently on the ID for the character that doesn't need it (for instance, if Var189 is at 24, I'd have a conditional branch to make that go to 26 to skip 25 as that character can never get the Rain Dance buff anyways).

(Of course you'd notice that though, because you're the one that came up with it heh. But yeah...maybe I'm just misreading the coding again, but it seems it checks the characters in order, yes??)


Just to show that I did indeed do this right I believe:

1) Rinse and repeat for each character at the top. Each of them has different variables so they don't use the same variable. Of course, I have to put the variables in order of the order the characters are in my database I feel)




2) Set the coding up. The only one I'm not really sure on is the second line of coding (the one with Var2504) as I don't know if you meant the VARIABLE for that, or for it to be SET to the first variable that it would use??




3) Else handler for for the above just for Reimu without Rain Dance, as the above would never take into account Reimu not having Rain Dance, and thus wouldn't allow for her passive to work normally.




4) And then the final bit of coding. If it works as I think it does (checking in order of the character ID in the Heroes database), I may need to adjust the Var2505 to be set to the last character that can be checked in the database.





So yeah! Is that all correct? Am I just misreading like a goober? @_@;



EDIT - After finding out I did some errors (I didn't see the "Var (V(0190) Value" part (missed the (V(xxx)) part of the whole thing herp) and fixing up a bit of other coding, I have now gotten this to work as planned! Just have to test it with other characters and make sure it works with them! Should I post the code that I have right now for further inspecting??
If you want me to read through it, sure. I haven't read what you've posted already since you've already said you've changed it.

As for what I was saying with not having the checks for characters that will never be inflicted with Rain Dance:

First off, if they'll never be inflicted with Rain Dance, then the rest of the code will never trigger and the only cost is the variable you'll never use. I don't see a major downside to that. Running out of variables could be a problem, but the English release gives you 9999 variables, and if you're using the older version you can use a patch to get 9999 variables, which I hope would be sufficient. You won't include the big list of checks to see if someone is inflicted with the Med1 - Med6 condition for these people either, so literally only the unused variable matters.

More importantly, though, if you skip the extra checks for missing characters you'll speed up the code overall, which will matter if it's running every turn in battle. And finally, it'll keep your overall code more to a minimum and easier to read, which is really nice. All in all, I see it as a better way to manage it.





Doing this seems to make it work as intended (I had a lot of issues getting the thing to work as it was. Mostly because I kept messing up some coding here and there). But yeah, I know what you're talking about. It was mostly due to the character variable in this case, as mentioned before that links to the character's ID in the Hero tab. So all I did was add the part at the bottom so that it would go to the right number for that ID so that it points to the correct character and not to the wrong character outright. That's all. But it's working as far as I can tell. Though as you mentioned, it could probably be slimmed down for optimal coding (I have a lot of things that might need slimmed down and honestly needs someone to look at, but that's a lot to look at ehehehe...^^;; ).


Trihan
"It's more like a big ball of wibbly wobbly...timey wimey...stuff."
3359
Edit: Forgot you were using 2k3, ignore this.
Yeah, was about to say don't think I can do arrays here heh. So I have to hack my way through this engine as much as possible (I doubt I'll be making anymore games after this massive behemoth too. But we'll see...we'll see). ^^;
You don't need to duplicate the code for Reimu's passive. You could try something like the following instead:


Var [2503:Character Variable] = 1
Var [2504:Condition Reference] = 2472
Label: 1
Variable Oper: [2505] Set, Var [V[2504]] Value
Var [0187:Random] = 100
Branch if Var [2503:Character Variable] is 1
<> Var [0187:Random] = 1...100
End
Branch if Var [2505:Temp Variable Auto-Med] is 1
<> Branch if Var [2503:Character Variable] is 1
<> <> Var [0187:Random] / 2
<> Else Handler
<> <> Var [0187:Random] = 1...100
<> End
End

Branch if Var [0187:Random] is 20 or less
<> Change Cond: V[2503] Poison Remove
<> Change Cond: V[2503] Blind Remove
<> Change Cond: V[2503] Silence Remove
<> Change Cond: V[2503] Slow Remove
<> etc.
End



Notice that the green section is now NOT under the conditional branch checking if the character has Auto-Med. This allows it to be used both for Reimu's passive and the Auto-Med condition. To ensure it doesn't get triggered erroneously, I've added in the orange line which sets Random = 100, or large enough so that the green branch which checks if Random < 20 never triggers by default.

What I'm doing in blue is to first set random to 1...100 for Reimu in all cases (whether or not Reimu has Auto-Med). This sets the passive to 20%, like you had in the code above. If you wanted it to be 10% like you originally said, just set the random to 1...200 instead.

Next you'll notice that I divide Random by 2 if Reimu has Auto-Med. This in essence doubles the chance for the Auto-Med passive to trigger. If again you originally want the passive to be 10% instead of 20%, you'll need to divide by 4 instead.

This won't make the code run any faster, but it'll allow you to not need to duplicate the Change Cond. At the very least it'll give you some more information on how you can manipulate your code to make it easier for you to write.

Otherwise it looks good. I still recommend you increasing the number of variables you dedicate to this and then check every one rather than jump over them like you're doing, but what you're doing right now should work regardless.

Out of curiosity, how large is this game? 50 characters is MASSIVE!
Oh nice. That'll help cut down on how much I need to have for the coding for sure. Thanks for that!

Half of those characters are temporary characters (and a good half of those you see only in the later half of the game). But yeah, game's only 50%-65% done, but will run 20-30 game hours, if that tells you how big it is. Give or take a few hours depending on how each player plays. I'm not going to be going over beta1-4 stuff until after the main story is finished, unless there's some really weird bugs happening. But yeah! Without the music it's about 60-90 MB big? With the music...it's very big (300 MB with just vanilla, add about 300 more with the extended? Something like that?)


Oh yes! Here's another issue that I asked about sometime in the past: In my dungeon, Hollowed Caverns, Magic is supposed to be sealed. So, I have a status called Permanent Silence that's inflicted on the party every turn in battle via the Turns Elapsed x1 battle event. However, this causes turns to get interrupted (either the character never attacks, is in the process of attacking but the damage is never inflicted, or is doing a double attack and only one attack gets through) and causes the character to get stuck in the position their in instead of returning to their original position, even upon dying and reviving. I have tried the StatusAnimationFix patch but that didn't fix it at all, so wondering if there's another way to deal with this? I'd rather not have to dump the gimmick of the dungeon outright but...
Changing conditions or equipment in battle will make your battlers get stuck in their movement. There is no fix to this. There are four ways to try to mitigate it:

1. Don't have battle movement. So no "move forward" or "move to enemy" or what-not. No movement means no one gets stuck.

2. Don't use "Turns Elapsed" but instead use another event. I don't remember off hand which one works, but basically there are events that triggers before a character takes their turn (like Turns Elapsed) as others afterward. If you choose an after one then you guarantee that the character will deal damage to the intended target, even though they may sometimes get stuck in the middle of the map. In other words, you can get it to function correctly in terms of game play but it will still have the graphical glitches.

3. Do your best to have it happen as rarely as possible. So in your Hollowed Caverns example, check if the person is inflicted with the condition first before you try to give it to them. Hopefully then it'll be only after someone dies that you'll have any chance for the glitch.

4. Avoid the commands "Change Equipment" or "Change Condition." For your Hollowed Caverns, an alternative could be to change the battle commands for characters so that they don't have access to the Magic command, for example. There's a "no auto-battle" patch available if you're using Alternative or Gauge for your battle layout, thus preventing people from using "Auto-battle" to gain access to magic anyway. The risk with this, of course, is that you really need to be careful to ensure there's no way the player could bypass whatever trigger restores their magic.

Because of this glitch I always make sure any custom battle mechanics don't use in-battle condition or equipment changes to work. Your Rain Dance would be an exception, since the condition itself is inflicted via a normal ability and not a script.

While I'm on the topic, assigning too many conditions to something is also a problem. I don't remember the number, but I think it starts to glitch when you assign more than eight conditions at once to the same character or monster.

EDIT: While we're talking custom stuff in rm2k3, if you do anything with text in pictures you may want to check out my picture text creator. It basically allows you to type text out normally and then save it as a PNG for use with RPG Maker. It's fairly robust, though right now I don't have very good instructions for it.

If you're interested:
http://rpgmaker.net/engines/custom/utilities/78/
Oh, equipment causes that too? I didn't know that since I never had to change equipment (nor give the option to). Good to know. Well, #1 is an issue since that's what some of the characters do with their regular attacks in general (though even with skills that effect still occurs hue).

Yeah, the idea was to make it so that A) It's persistent throughout the entire dungeon (aka the maps), B) It's set at the start of fights just in case, and C) It happens if a target dies and is revived. A and B are fine, but C is where it's a problem because not sure how to really deal with that specifically (it'll ONLY be that dungeon too, and luckily there's not THAT many enemies in there. The vast majority of them are monsters-in-a-box (3 types of Mimics and a Curse Dragon) in addition to 3 wandering bosses, and then the 2 main bosses at the end). I considered removing their commands, but the problem is is that only some of their skills in their skillsets are magic (they don't all have Magic commands. Different commands, yes, but not specifically Magic), so if I removed each of their commands, then they couldn't use their physical skills.

I considered the No Auto-Battle Patch too, but stopped using it as I like to leave that Auto menu up so people can take a quick break or whatever during a fight without having issues (and yeah, I saw that things get used even if they don't have access to them with Auto-Battle, which is...weird, to say the least lol).

Really?? Does that apply only to battle/common events, or in general? If it's just battle/common events, then I shouldn't have to worry TOO much about that since I don't go too far with the statuses (only with removing them via things like Vortex (Dispel to everyone, friend and foe) or Rain Dance with it's unique buff that removes statuses if it kicks in.


EDIT - Text in pictures huh?? I wonder what I could use that for, if at all? Hm...maybe that could be useful for Intel?? I am trying to make an in-game bestiary in a way, which you can see here (obviously not the exact same, but with the right data and all that. Wouldn't hurt to have the target's stats too like Attack and whatnot I suppose):




Which is based off of Genius of Sappheiros. Of course, any bestiary from FF would work too, but you get what I'm saying. Would it be feasible to have this be done using this plugin when using the Intel command?



And since we're on topic of things like that, me and a buddy of mine (who came up with this system and has been very very slowly working on it) are trying to make an in-game dictionary/glossary thing. We've only gotten the first page of characters done, but this is what it's like:



Not the most graceful of menus but...it's a start. Any suggestions on making this more interesting or the like?
The maximum conditions you can have on a character or enemy before things get wonky is just a number of conditions and it doesn't matter how they got there. It's never been a concern of mine unless I start using conditions for custom battle mechanics. As a result, I no longer use conditions for custom battle mechanics.

The "Picture Text Creator" isn't an add-in. It's just a utility that allows you to convert text into a PNG file outside of game for use, via the show picture command, in the game. If you want to actually draw text in game you'll need DynRPG. Unless I'm misunderstanding you, which is possible.

There's a patch for rm2k3 that allows you to reference an image by a variable. So for example you could have the following three image files: Bio_0001.png, Bio_0002.png, Bio_0003.png. Using this patch you can reference these images by changing a variable, like Var[2000:Bio Image]. This then allows you to do some nifty things to help automate menus.

Take your Dictionary/Glossary thing. I noticed that you have multiple "pages" for each entry. Rather than code all of that out specifically you can do it all via images. Like's take the character of Akyuu. She has four sections: the bio, what is the character up to, battle resists and weaknesses, and special abilities. Let's call these pages 1, 2, 3, and 4. She's also the 5th item in the list. So we can convert that information into four digit numbers with images, namely:

Glossary_0501.png
Glossary_0502.png
Glossary_0503.png
Glossary_0504.png

So let's make up some variables:

Var [0188:Temporary Variable] <-- this will be our picture number
Var [3001:Glossary Entry]
Var [3002:Glossary Page]

Now do some key input processing.
- Pressing down increasing V3001 by one. Pressing up subtracts one. Pressing either resets V3002 to one.
- Pressing enter selects the entry.
- Once the entry is selected, pressing left decreases V3002 by one. Pressing right increases it by one.
- Pressing any key show the proper picture using the following logic:

Variable Oper: [0188] Set, Var [V[3001]] Value
Var [0188:Temporary Variable] * 100
Var [0188:Temporary Variable] + Var [3002]'s Value
Var [0187:Random] = 48
Show Picture: 50187, Glossary_0501, (180, 120)


The picture 50187 isn't a typo. That's how the patch knows to look at V0187 for the picture number (48 in this case) and that it needs to look at the next variable, V0188, for the proper image number (like 0501, 0502, etc).

Using this method, you can code your Glossary once and then just name your pictures properly and everything will just work very cleanly and easily. Hopefully that made some sense.

You could use a similar set of logic to code your bestiary, if you don't mind typing out all the stats for each monster.

If you DO mind typing out all of the stats, there is a way around it, but it's pretty variable intensive and not advisable. Here's the basics of it:

- Each bestiary entry is only available once you see the monster in battle.
- Each monster must have a given amount of MP.
- You'll need six variables per monster in the game. Thus this method can easily use up your total supply of variables.

When you enter a battle, the Turn Elapsed triggers and does the following:

- Store the MP of the monster to a variable. This is the monster's unique ID. You can have this value equal to the variable number that stores whether or not the monster has been seen. Alternatively, you can just have MP = 1001 for the first monster, 1002 for the second, etc.
- Regardless of how you use MP to find a Monster ID, you now can use that ID to reference six variables for that monster: have_encountered, Max HP, Atk, Def, Int, Agi.
- Now that you can reference all six variables, set the monster to having been encountered and then use the Change Variable settings from within the battle commands to set the other five variables to the value of the monster.

Now that you have all the correct stats to each monster you've ever encountered, you can reference them in your bestiary. The advantage of this method is that it allows you to change the stats of each monster whenever you want without having to edit images to reflect those changes. The downside, as mentioned, is that it can easily consume thousands of variables.

There is one other alternative. Since variables can be seven digits long (up to 9,999,999), if you restrict monster stats to max out at 999, you can store two monsters stats per single variable, plus the have_encountered flag. That compresses the six variables down to three variables, and allow you to have 1000 monsters while using only 3000 variables.

Anyway, it's up to you which method you want to use. I figured I'd throw this out there though as it's a pretty nifty way to build a dynamic bestiary within the constraints of rm2k3.
Oops, I forgot to put the Omega thing in here. ^^;

Anywho, while that's going on, I have this one to ask opinions/ideas/help on. I am currently looking at Nitori's skillset, and am thinking of completely overhauling it to make her more useful.

*Include a "Gear Shift" ability, which switches between the single-target and AoE versions of moves and doubles the MP cost of abilities when in AoE mode. In addition, all of the status healing abilities bar Faith/Faith EX would be removed, and replaced by Adrenaline/Adrenaline EX and Sake/Sake EX. In addition to this, P may become straight upgradable into Lapis and then into Large P. To make up for the massive loss of abilities, she would get additional abilities:


Strength Tonic: Bravery: 25 turns to one/party.
Iron Draft: Protect: 25 turns to one/party.
Sage's Wisdom: Faith: 25 turns to one/party.
Speed Drink: Haste: 25 turns to one.
Hero's Drink: Bravery/Protect/Faith/Haste: 25 turns to one/party.
Miracle Drink: Regen/MP Regen/Bravery/Protect/Faith/Haste: 25 turns to one/party.
Saint's Spirit: Doubles healing effectiveness on party. Give to Hope.
Angel's Sigh: Removes all statuses and prevents statuses for 20 turns.
Neutralizer: Dispels all buffs on target.
HP Sucker: Drains HP from one target.
Hungry HP Sucker: Drains HP from all enemies.
Bottle Rocket: Minor unblockable damage to one.
Big Bottle Rocket: Moderate unblockable damage to one.
Multi-Bottle Rocket: Major unblockable damage to one.
Bomb Core: Inflicts damage to target equal to current HP, but kills user.
Siren: Force battle with rarest enemy group.
Emergency Exit: Escape from battle.
Superball: Same as Meira's attack.


Which would then translate into this:


P/Lapis/Large P -> P EX/Lapis EX/Potion Berry
1-UP -> 1-UP EX
Faith -> Faith EX
Sake -> Sake EX
Adrenaline -> Adrenaline EX
Strength Tonic -> Super Strength Tonic
Iron Draft -> Hard Iron Draft
Sage's Wisdom -> Warlock's Wisdom
Speed Drink -> Haste drink
Miracle Drink -> Holy Water
Saint's Spirit -> God's Spirit
Angel's Sigh -> Ribbon
Neutralizer - No EX version/Remains there
HP Sucker -> Hungry HP Sucker
Bottle Rocket -> Multi-Bottle Rocket
Bomb Core -> move this to skills
Siren/Emergency Exit/Superball


Of course, whether or not Gear Shift would be nice to implement or not, I don't know. I need more feedback on this.


Right now, her moveset consists of a regular and EX version of one move (i.e. Antidote and Antidote EX) and will both appear in her Stock command. She currently has: P, Lapis, Large P, 1-Up, Antidote, Echo Note, Eye Drops, Bravace, Soft, Chrono Breaker, Denumber, Mini Hammer, Anti-Mixup, Alarm Clock, Anti-Freeze, and Faith (plus the EX versions of those). So you can see how crowded her Stock command will get (to complicate matters a bit more, there's 4 different versions of each move. So for P, there's the normal one (heals 200 HP), the Chemist-enhanced one (heals 400 HP), the Mirror Items one (deals 200 to one enemy) and the Chemist-enhanced Mirror Items (deals 400 to one enemy). The hard part about this is I want her Mirror Items command (which replaces Stock) to still be used, but some of what's in the suggested skillset won't work with that (Bottle Rockets just aren't going to do anything, Neutralizer isn't going to do anything, HP Suckers won't do anything, etc.) so I don't know how limited that'll get after all of this is said and done.


For reference, Nitori is classified as an Alchemist and was based heavily on Final Fantasy X-2's Alchemist class. ORIGINALLY she was going to be like Edgar, but I dropped that idea, and then she was going to be like Jeff from Earthbound, but that was also dropped. I even debated having some of Edgar's Tools be in this skillset (Debilitator being a big one) but not sure. In addition to all of this, Stock replaces Item for Nitori, so she can't use Items normally (hence, why she had all of the items but as abilities). This wouldn't be a problem if her MP pool was the worst in the game (400 MP max at level 99, and about 40 when you first get her when everyone else around her level has double or triple that). She also has the Armor Elemental Bless command that's separate, and her own Water command (that has 4 abilities to her name in it and also need updated hue).

Any suggestions, ideas, feedback, etc.? @_@;