DCurrent / openbor

OpenBOR is the ultimate 2D side scrolling engine for beat em' ups, shooters, and more!
http://www.chronocrash.com
BSD 3-Clause "New" or "Revised" License
901 stars 121 forks source link

Kratus fixes(10 2021) #242

Closed fgames9000 closed 2 years ago

fgames9000 commented 2 years ago

Pull Request

October-2021 Updates

General Description

This pull request contains a mix of fixes and new features. Most of the additions have small codes and will not impact the engine too much, but add a lot of new customization options.

Translation

Blocking

Cheats

Grabs and Vault

Misc

Special and Jumping attacks

By default, the "jumpspecial"animation "kills" the "xyz" movement while in the air, and now if this new property is used with the flag 1, the movement will not be killed, working the same as any jumping attack.

The native behaviour is maintained, old games don't need to change anything, this is useful for new games if the modder wants to use the "special3/jumpspecial" animation in a different way.

Can be edited by declaring at the entity header or by script using the "entity property".

In the previous code, both flags 1 and 2 have the same effect and allow the cancelation after last "jumpattack" is finished.

For backward compatibility, the models.txt native function works normally, but the scripted version will override the models.txt function if changed. To edit it, you need to use "changeopenborvariant("noaircancel", value);".

NOTES:

The backgrab animation follows a similar form of other animations. Ex: walk/backwalk, grab/backgrab.

The vault animations follow the same format and rules of all grab attacks. Ex: grabup/grabup2, grabdown/grabdown2, vault/vault2.

The first vault can be automatically performed by pressing the jump button when an opponent is grabbed, and of course only when the animation is declared in the entity's file. Otherwise, the grabattack2 or attack3 will be performed by default.

The vault2 can only be used with scripts for now, but it's important to have because there's some differences between "front grab" and "back grab".

This new code maintains all previous functionality for backward compatibility. Vault animations don't have any predefined instance yet (aiflag, takeaction, etc), they are "empty" same as follow animations.

The focus is to give a proper native functionality for an important mechanic present in the entire SOR franchise (back grab and vault animations) and avoid losing some "follows" or "grabattacks" to make it happen.

When the jump button is pressed, the first vault animation will be prioritized over grabattack2 and attack3 animations, while grabbing an opponent. If there's no vault animation, the order is grabattack2 and then attack3. It means that the vault won't get in the way of the default system if it's not declared and will only be used when the modder knows what he is doing.

DCurrent commented 2 years ago

I'm a little concerned with the vault animations - OpenBOR had native Vaults once before. We removed them because there's just no way to make a 100% stable and universal vault without a lot of bloating additions, so that's better left to script.

I'll allow it though because I like most of the other changes. You've done some great work here.

Edit: Spelling.

fgames9000 commented 2 years ago

@DCurrent

Thanks man! I totally agree with you about the vault and I understand why it was removed. I tried to split the process in two parts, one for the engine that contains only the necessary additions and the rest will be made with scripts.

In the SORX most of the backgrab/vault operations are done with scripts. The intention is to create a proper native animation for these features and make the process more simple and organized, avoiding the use of generic follows or grabattacks.

The first vault will work in a simple way same as any grabattack if no scripts are added. The character will play the vault animation once and release the opponent at the end. If the modder wants more features during the vault, he needs to develop his own code.

msmalik681 commented 2 years ago

Great work that issue with losing all velocity when using jump to air cancel really annoyed me it was like the engine has predefined you have to use jump in air for a double jump but ignored it as it was easily overcome when using keyscripts.

Darknior commented 2 years ago

Incredible update, really, it will help a lot now to give users games in the good language :) We can make the game in english for every one and give language files for users separately, i love the idea :) Thanks a lot

dbaldan commented 2 years ago

nice work you have done here, buddy. Congrats! The translation now will be easier to do and the losing velocity on air fix is very welcome.