Skip to content

Conversation

Alrysc
Copy link

@Alrysc Alrysc commented Jul 30, 2025

This PR select changes from the development branch that appear stable and that don't interfere with current mods. There are a few other changes that fix a few of these features or are some addons.

Summary of pertinent (not all) changes (what players and Lua modders will be interested in):

  • Folder and pack sort
  • Folders can be copied with CTRL+C while editing
  • Sea, Metal, and Sand Tiles
  • Charge times are recalculated even without flinching
  • ScriptedPlayer charged_time_table_func and ScriptedPlayerForm calculate_charge_time_func unified to charge_time_func, with a ScriptedPlayer and level passed in
  • Wood element Entities will heal over time while standing on a Grass Tile
  • Fire element Entities will not take damage from Lava
  • Elec damage is no longer doubled on Ice
  • Grass Tiles are now removed by Fire, even if damage was not dealt to any Entities
  • Holy Panel damage rounds up
  • Many status interactions made more accurate
  • Flinching can no longer be cancelled by using a card
  • TFC cannot be performed until 10 frames into time freeze
  • Charge is no longer used up when performing TFC
  • Anger/FullSync now only consumed by boostable cards
  • Time freeze actions show damage and modifiers
  • Health turns red at low HP
  • Mugshots no longer bounce
  • Freedom battles always send data to the server, and turns can no longer end while the last enemy is dying
  • Freedom battles read input during time freeze
  • Card long descriptions are prioritized over short descriptions in battle
  • Time Freeze actions can be marked uncounterable
  • Time Freeze actions now call action_end_func
  • Field.find_nearest_characters returns an ordered table
  • Battle.AlertSymbol.new is available
  • Access to Left_Shoulder and Right_Shoulder inputs
  • Hit.NoCounter hitflag, prevents attack from countering (modders previously accessed using the raw value 2048)
  • Hit.Confuse hitflag, inflicts Confuse status for 110f
  • All Entities can use battle_start_func and battle_end_func
  • Access to Character.can_attack
  • Access to Entity.set_counter_frame_range
  • Access to Entity. is_stunned, is_frozen, is_rooted, is_blind, is_confused, and is_dragged

Commits which were pulled into this PR are linked below, along with a short description of what was taken from the commit and what was excluded, if anything.

  • 1ee8139 and cc13419: Folder and pack sorting
    • The ctrl+c folder copy from another commit is included as well.
  • be9d7c0: Vulnerability patch
  • 5851d92: Fixes find_nearest_characters
  • 0be428a: Fixes clang error
  • 1c86537: Holy panel damage rounds up
  • 0c62014: Fixes some Linux compilation error
  • 20e5b81: Folder sort uses std::stable_sort, and another Linux fix
  • 41facef: Fixes a mugshot animation issue
  • 2c19c51: Start and end ms in stream_music is optional
  • be42175: Blue Team mobs load in Freedom battles
  • 29706ac: AlertSymbol available to Lua, health UI updates, can launch Freedom battles from command line, Player can no longer cancel flinching with a Card from the hand, Player can benefit from starting battle in FullSynchro
    • Excluded changes to PlayerCustScene, as they were not complete (CustScene's progress bar is always present and moves oddly)
  • 52a8f9e: CardActions can be marked counterable or not
  • 9fbac73: Charge node animates in TF, low HP color change
  • 1e86e04: Some Tile fields use frame_time_t, no doubled Elec damage on Ice, Sea Tiles
    • Excluded intangibility and Root interaction change
  • f6b2706: Fire is not hurt by Lava
  • b60afa0: Changed hitbox handling
    • Excluded checks for Sand, which is not a TileState in this PR
  • 314fb87: More frame_time_t in Tiles, is_actionable for Lua, changed damage handling, using appName for certain paths
    • Very few changes pulled from 998ea83 as a prerequisite
    • Excluded Tile offset and position changes
  • 59d7262: Battle start and end func for all Scripted Entity types
  • dbc635b: Corrected freeze status callback
  • 74094c5: TF actions call EndAction
    • Slightly adjusted the call order compared to this commit
  • e4febdb: Fix Entity duplication in TF action EndAction
  • 454a8f7: Charge does not cancel from TFC
  • 4c98afd: Lua can access shoulder input
  • ad7f0a5: Wood heals on Grass
    • Excluded TF background additions
  • c1edf79: Dying doesn't decross, does clear statuses
    • Excluded bnFrameRecorder changes, since the file doesn't exist in this PR
  • 02b6503, 5e892db: Character.can_attack
  • 8b807b7: Long description used by default in battle
  • 641e48e: Flinch and Stun fix
  • 2e7e5e4: HasAnimation uppercases check
    • Applied same check to HasPoint
  • 8285a01: Anger/FullSynchro bonus not consumed by unboostable card
  • 7bc1fd5: Avoid drawing certain things until Player can TFC
    • Excluded the reversing of tfcEvents and things related to background changing
  • d236988: TF shows action damage
    • Partial pull, excluded background changes
  • 5d2bb95: Sand, Metal Tiles
    • Partial pull, excluded mob boss toggle
  • c749c3a: Confuse animation
  • 8d47940: Confuse status

The following are additional changes or fixes on top of the above:

  • Shaders cannot be turned off, button removed from menu
  • Lua has access to Hit.NoCounter
  • Fixed incorrect discard indexes after filter_hand_step
  • Freedom battles can compile battle results on victory
  • Fix issue introduced by 29706ac where Player always spawned in FullSynchro
  • Freedom battles cannot end the turn if no enemies are alive
  • Fix TFC crash introduced by 29706ac
  • Freedom battles can process inputs during time freeze
  • Fix incorrect TFC bar length introduced by 29706ac
  • SpriteNode.add_tags and .remove_tags no longer crash
  • Charge time is recalculated more often
  • Charge is reset when form changing
  • Various Tile behavior changes
  • Drag move event endlag added
  • Sea Tiles do damage and boost Aqua chips
  • Changes listed in Status rework Alrysc/OpenNetBattle#3

There are still commits on development which have either not been pulled or were only partially pulled, and are not part of this PR:

  • fc862a4, which would break mods that rely on finding unhittable Entities before there is a workaround
  • fc862a4: Renames a C++ function
  • dc621a6: Disables reverb
  • 62a4372: Renames C++ functions
  • 07d6b41: Fixes an issue which may have been introduced by fc862a4
  • 2be30e6: Library fix, but libraries are unused by modders as they don't sync in PvP
  • 9724d39: Package manager fix for server packages
  • 5ad50cb: WIP server packages
  • b4b94ff: Animation playback speed fix
  • 6c9fb65: Cache folder cleanup
  • ceb393b: Packages from server saved to mods
  • bc2a8c1: Comment typo fix
  • 9a982c2: MacOS build fixes
  • 44f183b: zip_utils safety
  • f3a42d7: Mod subdirectory extraction fix
  • 65b5ee8: CadProperties hit_flags property
  • 174872d: Lua Entity.can_move_to
  • 1c84049: README update, which should already be included
  • e3a3282: drone.yaml
  • 998ea83: std::string replaced by std::filesystem::path
    • Partially pulled for bnGame.h/cpp changes from another commit, but mostly excluded
  • aa70ca5: Build fix
  • 3745b12: Unicode text rendering
  • 0355ad9: Fix turn count skipped on victory, but this should be inconsequenctial. Freedom battles now handle this in onEnd, and mob battles would handle it during the reward state.
  • bb6ca64: Fix clang warning
  • 9273533: Fix zip_utils crash
  • 6844f44: Textbox UTF-8 encoding support
  • 520fac5: More UTF-8 support
  • f241c10: neurolink draft
  • 44c11a6: More MacOS build fixes
  • 269d069: Extra Rank enums
  • 3adbe2f: Fix Bubble crash
  • fd94668: Fix some compilation issue
  • 4b78265: Slight logic rearrangement
  • 7478470: HandleInterrupted call removed
  • 8187775: Lua Entity.set_passthrough
  • 2b67d9e: BattleStart call fix
  • 0c0e550: Blacklist packet
  • 52aff06: DefenseRule memory leak
  • 9190d04: Check MIDI before playing
  • 17233ca: Another MacOS build fix
  • 6867623, 57e179b: DefenseRule on_replace callback,
  • fc809bd: Newlines at end of some files
  • 134d55a: Some audio fix
  • 5c3d3f7: Mob Lua set_background fix
  • f9980df: Lua on_countered rename, which can break mods
  • 1f5f257: Frame recording fixes
  • d49c40e: No double Player Init call, but makes no difference in practice
  • 763fe3e: Remove unused variable
  • 2f326a4: Remove a log call
  • 39fe6d1, 95d7f1a: Refresh charge color more often
  • 97eb3c9: Lowercase font fix
  • 6672390: Optionals allowed for charge time
  • a9dd8ca, c1363d7, aed6efa: Secondary element on HitProps. Breaks mods.
  • 29b4a26: Packet processing order change
  • dee4fb7: Overworld HP fix
  • b602ca6: Overworld collision fix for excluded actors
  • d99c742: Fix some overworld crash
  • b308a66: Map tiles shadow option
  • a60cbc9: Can handle compressed text from server
  • ce1e6a5: Replace rand with other rand
  • 1e86e04: Sea Tiles
    • Excluded the change to intangibility and Root interactions
  • f388389: Mark Steps complete in EndAction
  • 3e571a4: Overworld packet sync
  • 745a6b4: Avoid resetting whitelist
  • db98b9f: get_animation fails if there is no animation component
  • 8dfec47: Random is uint32
  • de9ca38: Mob can set Tile animation/texture
  • 440fd35: Tile Y offset change, which may misalign current animations
  • 5d2bb95: Sand, Metal Tiles, mob can be marked as boss
    • Partial pull, excluded only mob boss toggle
  • 5359dec: Linux compilation fix
  • 35ae4a7: Can set TF action background
  • ad7f0a5: Can set TF action background color, can blackout Tiles, skip TF intro, wood heals on grass
    • Partial pull for grass heal
  • b7ab7d6: Build commit hash in log
  • 096ff62: openssl and poc netssl added
  • 6bd901a, 5a31557: HP NCP fix
  • b9101eb: Nodes can set never_flip
  • 4001459: DropPackage
  • e1f471f, ddf0eee: HTTPS download, logging refactor, some main.cpp utils
  • ba091c7: filesystem namespace, trash collector, music bug fix
  • ee94f1a: Leaving scene hides SFX, text
  • 9e9842d: Server transfer crash fix
  • 4a47824: Server IP change fix
  • e5e00c8: BG size calc fix
  • 412e100: Minimap fix
  • 535682d: Music updates with map
  • a93a5e1, e53f2c6, d0bb8f7: Sort fix, equip after change
  • 22cafc5, a9aadba, d60c4ba: Lua can read/write Cust
  • 367846e: InputRepeater
  • 7f573b4: Camera control/zoom from server
  • bce5d41, 0bc0f85: Spawn intro
  • af7a94c, ee63f46, 62bac2e: Changes to coloring nodes, intro time limit, UTF8 and some glyph changes
  • 6501d90, 611881f: PET scene
  • 0cb0e45, a12a4f7: BBS changes
  • 86bbf14: Compilation fix
  • 4719096, 3c333e6: Player buttons
  • 9c57c77: Jump fix
  • 9bec2b6: CardCust input change
  • e4ee76e, feb6207: New widget
  • fe7c3cb, 7345162, da177d1, 6715d0a: Some message box fixes
  • 62fff2b: Allow Player animation change
  • 5adc772: Overrides apply to sync list
  • fa18714: Text box regression fix,
  • 8f054f4: Card update func
  • f075afe: Remove stunt doubles
  • a812340: WIP buster mechanics
  • 7bc1fd5: Avoid drawing certain things until Player can TFC
    • Partial pull for drawing and timing changes
  • 293f04e: TFC label fix
  • d236988: TF shows action damage
    • Partial pull, excluded background changes
  • b5b8c6f: Breaking DefenseRule changes

Alrysc added 30 commits July 27, 2025 20:47
Turning off shaders currently crashes on boot and forces someone to fix it through their config.ini if they changed it. Until fixed, take away the button.
Pulled changes from these commits:

1ee8139
cc13419
Pulled changes form commit be9d7c0.
Pulled changes from 41facef, which fixes an issue where mugshots would sometimes bounce.
Fixes case where card calling discard right and then discard incoming would delete the left and right card instead of itself and the right card.

This also fixes a crash where a card calling all discard functions at a certain index would read before the beginning of the vector.
FreedomMission does not have a reward state, so results were never set on a win. Now the onEnd does the same logic, as long as the Player was not deleted.
Pulled some changes from 29706ac. This gives Lua access to AlertSymbol, some Health UI changes, freedom battle can launch from command line, and fixes behavior where Player could use a Card while flinching.

The PlayerCustScene changes this commit made were not included, since they were not finished. There is also an issue where the Player will always start in FullSynchro.
Pull changes from 52a8f9e, which adds the "counterable" card property.
Pulled most changes from 9fbac73. Charge animates during TF, HP changes color at low HP. Did not pull folder scene changes because a different commit was pulled which was later in the history, so these changes are already present. Did not pull bnTile.cpp cooldown changes because they require another commit's changes first.
Pulled some changes from 1e86e04. Various Tile fields now use frame_time_t. Elec element no longer does extra damage on Ice. Pulled COOLDOWN value from 9fbac73.

Sea panel code and related files were not pulled.
Pulled most changes from b60afa0. Excluded code related to Sand Tiles, which are not in this history yet.
Partially pulled changes from 314fb87. is_actionable available from Lua, more frame_time conversions for Tile fields, changed how damage is handled. Game class uses appName, had to pull Game changes from 998ea83, which added a switch to filesystem.

Did not pull changes related to Tile position or offset, which have some related code in another commit not included.
…ommit.

Pulled 74094c5, then moved the line that EndAction is called. It should be called before deallocating the stunt double, in case it is reference in cleanup steps. This can be common for actions to do.
Alrysc and others added 30 commits September 30, 2025 19:06
This fixes an issue where the battle start state could be skipped if a Player was hit by weakness and then transformed when exiting a future card select.
…to process with Drag so Flinch animation plays
…calculate_charge_time_func to match each other, both now pass in ScriptedPlayer to Lua
…93de6e, extra changes to use frame_time_t, fix graphical error when setting max time, and made setting max time also reset progress to match previous percentage
…es, extra functions for Lua to add status durations
…gs for deprecated HitProperties constructor, transformation state now sets Emotion::normal
…plied, counterhit now removes flash from the attack
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants