1
2
Fork
You've already forked PaperMarioBattleSystem
0
Recreation of the turn-based battle system from the first two Paper Mario games.
  • C# 99.2%
  • Assembly 0.6%
  • HLSL 0.2%
Find a file
2022年12月18日 23:02:48 +02:00
Notes Allowed reloading the current battle, handled Immobile targets of the Kissy-Kissy move how PM does, and further improved comments for documentation 2018年06月17日 21:29:58 -07:00
PaperMarioBattleSystem Fixed issues with BattleEntities with certain behaviors entering new battles 2018年06月19日 12:18:57 -07:00
.gitignore Allowed loading the config file from the executable's directory and updated the README with a new GIF 2018年06月18日 02:06:51 -07:00
LICENSE Replaced MIT License with The Unlicense 2020年01月04日 21:17:05 +00:00
README.md Fixed links 2022年12月18日 23:02:48 +02:00

PaperMarioBattleSystem

Paper Mario Battle System (PMBS for short) is an open source recreation of the turn-based battle system from the first two Paper Mario games. The goal is to create a modular, flexible battle system that is customizable and can be used in game projects. The inspiration for this project came from the lack of open source battle systems that closely resemble Paper Mario.

More information can be found on the wiki, including potential improvements, documentation, and examples for using PMBS.

Features

  • Turn-based Battles
  • All Status Effects from PM and TTYD
  • Action Commands
  • Items
  • Badges
  • Battle Menus
  • Dialogue Bubbles with Control Codes
  • Move Sequences
  • Accurate and modular Damage Formula
  • And more!

PMBS contains most of the core features from the battle system of Paper Mario and Paper Mario: The Thousand-Year Door, and it supports all interactions between characters found in the original games. It's extensible; you can create new interactions not seen in the original games, including, but not limited to, an attack that forces Mario to swap out his Partner or a ranged attack that suffers from Payback damage. This makes it a viable tool for Paper Mario enthusiasts to test out builds and new abilities.

Installation

  1. Clone the repository
  2. Install MonoGame 3.7.0.1129 or later.
  3. Install Visual Studio 2017, though earlier versions may work as well. On non-Windows platforms, install JetBrains Rider, MonoDevelop, or Xamarin Studio. On OSX you can also use Visual Studio for Mac. The project targets DesktopGL and .NET 4.7.1, and it uses the latest minor C# version (7.3).
  4. Install NuGet or open the Package Manager Console in Visual Studio.
  5. Run nuget restore -PackagesDirectory PaperMarioBattleSystem in a terminal or the Package Manager Console to restore all NuGet packages in the project. HtmlAgilityPack 1.8.4.0 is currently used to help parse Control Codes for the dialogue system.

Builds

Cross-platform builds can be made using Mono's mkbundle. You can find a great tutorial for setting up and using the tool on Windows here. Something overlooked in the tutorial is that you will need to extract the runtime you want to build for. To do so, rename the runtime file's extension to ".zip" then extract it.

For native non-Windows builds to run, you may need to comment out code involving the System.Windows.Forms namespace. The only code in the project using System.Windows.Forms are the debug functions that take screenshots and dump logs, so it doesn't affect the battle system itself.

Contributing

Contributions are encouraged and appreciated! Feel free to file an issue for any bugs, missing features, or suggestions for improving the battle system. Pull requests are highly encouraged.

For any significant changes, please open an issue first to discuss your ideas.

For ideas on what needs work, take a look at the issues as well as the improvements listed on the wiki.

Acknowledgements

All Paper Mario game assets are Copyright © Nintendo.