Okay, first, I'd like to clarify on something that I perhaps have not been clear on so far; as it is relevant to a lot of the things you said, so I'll get it out of the way now so that I don't need to mention it in my response to every point.
I started this thread by saying that I'm working on a fictional Pokemon game, and the operative word there is "fictional." I am not coding a game; while I might want to try to get this made somewhere down the line, at this time I am merely writing things down about a theoretical game that does not exist. It's all just words in Word documents at this point, and my description of each new Pokemon, move, Ability, and boss NPC is very much still in the process of being written (and is not nearly as complete as you might think from my talking about the 7th Gym). I realize that this subforum is normally for people asking for help with coding, and other processes in the actual development of fangames; however I originally created this thread in another subforum, and as you might notice above, a mod moved it here.
At this stage, the only questions I'm really asking WRT whether to put something in the game are "Can it be done," "Would it be cool," and "Would it play well?" Moreover, by "CAN it be done," I'm assuming that the people doing it had the time and resources of those making the main series games. If it would be a reasonable task by the standards of Game Freak but would be a much bigger task by the standards of a fan game project, I'm not really taking that into consideration. (That said, I'm not introducing any big new mechanics like Mega Evolution.) Further-furthermore, if I DID try to actually make this one day and I learned Pokemon Essentials or whatnot in pursuit of that, I don't imagine I'd be doing it all myself.
I'm not saying you're being overly critical; I just think that this ought to be clear if it wasn't already. I appreciate your feedback and am enjoying this conversation. 🙂
With that out off the way, I'll address specific points.
However, browsing the TM's that the Pokémon learned at some point, means you have to implement a way to store TM's that this Pokémon has learned (because it's not implemented yet). It's not necessarily tedious but it's still more scripting.
Keeping with your original suggestion that this signature move work in tandem with the Ability, I was thinking that the Ability would do the storage (so the code for that would be associated mainly with the Ability), and the move would then pull from this information pool assuming its existence. The move would not be designed to be usable on a Pokemon without the Ability, and the Ability would not be designed to function on another Pokemon (that would have its own history of moves learned) if gained by it; it would be one of those moves and Abilities that cannot be copied, and effects that would do so (like Trace or Skill Swap) will fail.
So basically, whenever the Pokemon learns a move, the pool associated with the Ability is updated with that move. It would come pre-loaded with the four moves that the Pokemon knows when caught, but wouldn't necessarily also have all of the moves that it is capable of learning at a lower levels; if coding demands that you need to use the Move Reminder to add those moves to the pool, I'd be okay with that. Or alternatively, the pool could be updated every time the Pokemon
forgets a move; since moves that have been learned but not yet forgotten don't need to be remembered this way.
Actually, this is ingame decision-making, and it's up to the player, or the AI.
I think you're missing my point. My question wasn't "how would you answer the question of whether it's worth it"; it was "is the answer 'no' enough of the time as to make the move pointless?" If you would never actually want to use it – because attacking rather than spending a turn gaining a stronger move is always the better play – then it wouldn't be a very good move.
Which makes me realise I forgot to mention that you'll need to code an AI to use such a move. Again, it's not necessarily painful, but it's something you'll have to think, and it is yet more scripting. If an NPC uses this move, to choose the "best move" in the list, you would have to load each move, compute their scores and compare them. It's not hard though.
When used by the AI, I don't imagine this would be too complicated (relatively speaking) if the only moves being compared this way were type coverage moves. I said above that in the Gym battle its "six moves" would be a Water, Fighting, and Ghost type attack to cover its weaknesses, STAB attacks for its two types, and an undecided status move; so in this version, the moves that it has to choose between remembering could be the three coverage moves. (You could add MORE coverage moves, but then it's a question of power level.) Picking from a long list of status moves, while interesting for the player, I could see being a lot more complicated for the AI to decide.
Think about moves like U-turn. Due to the switching effect, you have to give some more input in the middle of a turn (choose which Pokémon to send out). In official games, and in Essentials, this is very well-coded. So I wouldn't worry about asking for input in the middle of a fight.
Having never actually used U-Turn or Volt Switch myself, I actually assumed that it always sent out the Pokemon in the next party slot, similar to moves like Whirlwind or Roar. If it lets you choose what to send out, then I agree that this is probably fine.
It would require duplicating some code, a bit everywhere, while being extremely careful with conflicts. If you've ever added a new PBEffect that compares to another one, for example,
if you've added a new Entry-Hazard move, you know it's a pain.
I'm planning on having an Ability like this on a different Pokemon; rather that making all status conditions stackable, it only allows two to be used together with eachother, specifically poison and paralysis. I'd envisioned the Ability as decreeing in abstract "Moves and effects used by this Pokemon that would poison the target will not fail if the target is already paralyzed, and vice versa." Assuming that the double-condition doesn't need to persist if the target switches out, then, seeing as they create new volatile status conditions all the time, I again don't see why you can't just create a new volatile status condition that emulates poison / bad poison to be layered on top of paralysis, and a new volatile status condition that emulates paralysis to be layered on top of poison. If they can create, say, Ingrain, then why not this?
The example you linked to involves creating a new variant on Stealth Rocks that deals damage of a different type; but the main games literally did exactly that in Sword and Shield with Copperajah's signature G-Max move, so I'm not sure what your point is. Perhaps this is a case where you're interpreting the question as "could I code this easily," when I'm only thinking about whether Game Freak could do it?