Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add custom game settings in the database #421

Merged
merged 3 commits into from Aug 29, 2021
Merged

Add custom game settings in the database #421

merged 3 commits into from Aug 29, 2021

Conversation

ghost
Copy link

@ghost ghost commented May 12, 2021

This PR adds the following database settings, here we can discuss which ones are useful for inclusion. If some options are unclear, then ask away!

  • BattleCommands option 200: Default ATB mode
  • BattleCommands option 201: Enable in-battle row command
  • BattleCommands option 202: Sequential order battling
  • Skill option 202: Ignore reflect state
  • Skill option 203: State infliction hit rate
  • Skill option 204: Attribute shift hit rate
  • Skill option 205: Ignore physical rate restriction by states
  • Skill option 206: Ignore magical rate restriction by states
  • Skill option 207: Enable stat absorbing
  • Item option 202: Maximum item count in inventory
  • System option 200: Alternative EXP curve
  • System option 201: Battle options
  • System option 202: Maximum actor HP value
  • System option 203: Maximum enemy HP value
  • System option 204: Maximum damage value
  • System option 205: Maximum EXP value
  • System option 206: Maximum level
  • System option 207: Maximum number of savegame slots
  • System option 208: Default maximum item count in inventory
  • System option 209: Minimum variable value
  • System option 210: Maximum variable value
  • System option 211: Maximum actor SP value
  • System option 212: Maximum enemy SP value
  • System option 213: Maximum base stat value
  • System option 214: Maximum battle stat value

The implementation of the features can be found at https://github.com/rueter37/Player/tree/features.

@Ghabry
Copy link
Member

Ghabry commented May 12, 2021

in some lines you changed the is2k3 column from 1 to 0.

@ghost
Copy link
Author

ghost commented May 12, 2021

Yes, to enable certain RPG Maker 2003 features in RPG Maker 2000 games. Edit: Well, there is probably a better solution which doesn't require to change the is2k3 settings. As far as I know the main reason to use 2k over 2k3 is the battle system (please correct me if this is wrong), so it might be useful to add a setting which makes a 2k3 game use 2k battles. This enables developers to use all features which 2k3 offers over 2k while being able to use the 2k battle system.

@Ghabry
Copy link
Member

Ghabry commented May 12, 2021

Ah okay. Sorry this is something I must ask you to remove for now.

This is2k3 flag stuff is also used by our (still manual) read/write testing code. So you cannot move chunks that are 2k3 to 2k or vice-versa this way because it breaks certain code.

I like the idea but this needs some careful planning how to add it.

@ghost
Copy link
Author

ghost commented May 12, 2021

Removed the RPG Maker 2003 features in RPG Maker 2000 games stuff now. The system options have been reordered.

@Ghabry
Copy link
Member

Ghabry commented May 14, 2021

Another useful thing: variable minimum and maximum value. Maniacs has a higher range so a config option makes sense.

@ghost
Copy link
Author

ghost commented May 14, 2021

Added the settings for variable minimum and maximum value now.

@ghost
Copy link
Author

ghost commented May 17, 2021

Added options to raise the SP and stat limits.

@Ghabry
Copy link
Member

Ghabry commented May 18, 2021

I'm really sorry that this will cause lots of burden in your features branch. But if you want you can make the "0 to -1" change in a single commit.


BattleCommands option 200: Default ATB mode

👍

BattleCommands option 201: Enable in-battle row command

👍

BattleCommands option 202: Sequential order battling

🤔 Guess this is something I have to try out.

Skill option 202: Ignore reflect state

👍

Skill option 203: State infliction hit rate

👍 . The "disabled" flag should be -1

Skill option 204: Attribute shift hit rate

👍 . The "disabled" flag should be -1.

Skill option 205: Ignore physical rate restriction by states

👍

Skill option 206: Ignore magical rate restriction by states

👍

Item option 202: Maximum item count in inventory

👍 . The "disabled" flag should be -1.

System option 200: Alternative EXP curve

👍 . Imo this should be an enum instead of a flag. Makes it more extensible. (0 = Default, 1 = 2k, 2 = 2k3)

System option 201: Enable auto battle

🤔 Didn't matthew add multiple auto battle algorithms?

Why is this not in BattleCommands?

How about the following solution. Make it an enum with the options:

  • 0: Disabled
  • 1: RPG_RT (Default)
  • 2: RPG_RT+
  • 3: ATTACK

System option 202: Maximum actor HP value

👍 . The "disabled" flag should be -1.

System option 203: Maximum enemy HP value

👍 . The "disabled" flag should be -1.

System option 204: Maximum damage value

👍 . The "disabled" flag should be -1.

System option 205: Maximum EXP value

👍 . The "disabled" flag should be -1.

System option 206: Maximum level

👍 . The "disabled" flag should be -1.

System option 207: Fix double negative effect bug

👎 Imo this should be an engine configuration (when Player Engine == EasyRPG -> Fix that bug)

System option 208: Enable stat absorbing

🤔 I'm not really sure if this is useful. Especially as a system setting.

System option 209: Maximum number of savegame slots

👍

System option 210: Default maximum item count in inventory

👍 The "disabled" flag should be -1.

System option 211: Minimum variable value

👍 Well this must stay on 0 due to lack of possibilities for a flag

System option 212: Maximum variable value

👍 Well this must stay on 0 due to lack of possibilities for a flag

System option 213: Maximum actor SP value

👍 The "disabled" flag should be -1.

System option 214: Maximum enemy SP value

👍 The "disabled" flag should be -1.

System option 215: Maximum base stat value

👍 The "disabled" flag should be -1.

System option 216: Maximum battle stat value

👍 The "disabled" flag should be -1.


There is also enemyai-algo:

  • 1: RPG_RT (Default)
  • 2: RPG_RT+

@ghost
Copy link
Author

ghost commented May 18, 2021

About "System option 201: Enable auto battle": This option is not about the battle AI algos, this is meant to disable the Autobattle option in RPG Maker 2000 and 2003 battles. This means if this option is set to 0, the player is forced to battle manually.

@ghost
Copy link
Author

ghost commented May 18, 2021

Thanks for the positive feedback! I didn't expect an agreement rate of over 80%.

@Ghabry
Copy link
Member

Ghabry commented May 18, 2021

Yes the idea is to use it for both "Disable": manual battle necessary. "Other settings": enabled with the specific algorithm

@ghost
Copy link
Author

ghost commented May 18, 2021

Saw the "Disabled" option now, my bad. Now I understand what you mean. But putting that into BattleCommands would restrict this feature to RPG Maker 2003.

@Ghabry
Copy link
Member

Ghabry commented May 18, 2021

But putting that into BattleCommands would restrict this feature to RPG Maker 2003.

Oh I totally forgot about this!

There will be likely more and I do not like "polluting" system with all this battle stuff.

One option would be to just create an entire new chunk directly on the database.

The 200 is reserved.
E.g. 201 easyrpg_battle. The subchunks do not need the easyrpg prefix then and can start with 1)

But this has likely some shortcomings. Will think about this tomorrow again!

@ghost
Copy link
Author

ghost commented May 19, 2021

Changed the default values now, removed "System option 207: Fix double negative effect bug" and reordered the system options.

@Ghabry
Copy link
Member

Ghabry commented Jun 24, 2021

Sorry for keeping this stale for so long, had too much work today...

@rueter37 could you already open a PR against the Player? We disabled all the CI-Build-Failure IRC Spam by now so it will not be annoying anymore ;). When you add "liblcf #421" as part of the title the Linux PR-builder will even use this PR here as a base :).

@ghost ghost mentioned this pull request Jun 24, 2021
rueter37 added 2 commits August 8, 2021 16:04
The following database settings have been added:
- BattleCommands option 200: Default ATB mode
- BattleCommands option 201: Enable in-battle row command
- BattleCommands option 202: Sequential order battling
- Skill option 202: Ignore reflect state
- Skill option 203: State infliction hit rate
- Skill option 204: Attribute shift hit rate
- Skill option 205: Ignore physical rate restriction by states
- Skill option 206: Ignore magical rate restriction by states
- Item option 202: Maximum item count in inventory
- System option 200: Alternative EXP curve
- System option 201: Enable auto battle
- System option 202: Maximum actor HP value
- System option 203: Maximum enemy HP value
- System option 204: Maximum damage value
- System option 205: Maximum EXP value
- System option 206: Maximum level
- System option 207: Enable stat absorbing
- System option 208: Maximum number of savegame slots
- System option 209: Default maximum item count in inventory
- System option 210: Minimum variable value
- System option 211: Maximum variable value
- System option 212: Maximum actor SP value
- System option 213: Maximum enemy SP value
- System option 214: Maximum base stat value
- System option 215: Maximum battle stat value
The system option 201 has been changed from "Enable auto battle" to
"Battle options".
@ghost ghost marked this pull request as ready for review August 8, 2021 14:23
@Ghabry
Copy link
Member

Ghabry commented Aug 28, 2021

Inventing a new chunk for easyrpg_battle does not make much sense as the amount of new battle chunks in system is quite small.

I like this 99% by now ;).

Imo the only thing I dislike is the "Stat absorbing":
This should not be a game-wide setting but a skill-wide setting. Like the "Absorb checkbox" in vanilla maker.
Otherwise this is a bit inflexible.

@Ghabry Ghabry added this to the 0.7.0 milestone Aug 28, 2021
"Enable stat absorbing" is a per skill option now and no longer a
global system option.
@ghost
Copy link
Author

ghost commented Aug 29, 2021

@Ghabry Thanks for your suggestion, I have moved "Enable stat absorbing" to skills now because it is a good idea to have this as a per skill setting and not as a global setting.

Copy link
Member

@Ghabry Ghabry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks fine to me now.
Some of these settings are also necessary for support of e.g. DBZ legend of z (higher base damage) or maniac patch (higher var range).
And the others look useful for more flexible basic battle systems 👍

@fdelapena fdelapena merged commit 89d46f6 into EasyRPG:master Aug 29, 2021
@ghost ghost deleted the features branch August 29, 2021 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

None yet

2 participants