Rivals of Aether

Rivals of Aether

Qua Mario
 This topic has been pinned, so it's probably important
Floral qua Floral  [developer] 16 Nov, 2021 @ 10:11am
Compatibility for Developers: Directory
Improving the interactions between Qua Mario and your custom fighter or stage is simple. It's primarily handled through the neo_data_compat struct which is created at the start of the match. A common theme when we're discussing Qua Mario's code is that the character is referred to as neo internally. Don't get confused, though - the old Neo Mario doesn't support any of these systems, they're all new. A small note: When I refer to the character Qua Mario's behaviour, I'll refer to him as "Mario" for the sake of convenience. But everything I say here also applies to Luigi, Toadette, etc, of course.

Creating the Neo Data Compat struct
This is an essential step for all the other sections in this guide. All you need to do is add this to your init.gml file:
neo_data_compat = { };
That's it! It's really quite simple. To add compatibility features, you just need to add variables to the struct in between the curly brackets. If you include multiple features - for instance, tail support and freezable object support - you should put them both in between the same set of curly brackets, don't declare the variable again. No values are required, though - missing data is put in automatically by Mario after your character (or stage) finishes initializing. Missing values are only added once after init, though, so if for whatever reason you want to update your compat data later in the match, you'll have to set the variables within the struct instead - for instance, neo_data_compat.has_tail = true;.

Checking for Mario
Sometimes it might be useful to check if Qua Mario is present in the match. To do so, first add this to your neo_data_compat:
neo_data_compat = { mario_is_present: false };
If any Qua Marios are in the match, they'll automatically set this value to true when they check your neo_data_compat. To check if one is present, all you need to do is check if(neo_data_compat.mario_is_present)! This works for characters and for stages.

Tail Compatibility (Recommended starting point!)
https://steamhost.cn/steamcommunity_com/workshop/filedetails/discussion/2656419045/4577340984570175620/

Lift Customization
https://steamhost.cn/steamcommunity_com/workshop/filedetails/discussion/2656419045/4577340984570178537/

Freezable Objects
https://steamhost.cn/steamcommunity_com/workshop/filedetails/discussion/2656419045/4577340984570180253/

Carryable Objects
https://steamhost.cn/steamcommunity_com/workshop/filedetails/discussion/2656419045/4577340984570191835/

Floortypes
https://steamhost.cn/steamcommunity_com/workshop/filedetails/discussion/2656419045/4577340984570197878/

Movetypes
https://steamhost.cn/steamcommunity_com/workshop/filedetails/discussion/2656419045/4577340984570208624/

Extra: Interacting with the main Neo Data
Information coming soon!

Extra: Adding Qua Mario power-ups to an Adventure Mode stage
Information coming soon!

I'd like another compatibility feature!
Excellent! I'd be very happy to add anything you need to make your character or stage interact better with Qua Mario. The best way to let me know is to shoot me a message on Discord (floralQuaFloral#0013), but you can also leave a comment in this Discussion or on the main Steam page.

I'm having trouble using one of the compatibility systems! Or, part of this guide is confusing!
Uh oh! Let me know and I'd be happy to help - whether that's by offering advice, pointing out what's gone wrong with your code (hey, happens to the best of us), or fixing a bug in my compat code if the fault lies with me. Or amending this guide if that's the issue.
Last edited by Floral qua Floral; 7 Jan, 2022 @ 6:08am