Compare commits
No commits in common. "neoforge" and "neoforge-1.26.1" have entirely different histories.
neoforge
...
neoforge-1
18 changed files with 346 additions and 1606 deletions
82
Changelog.md
82
Changelog.md
|
@ -1,87 +1,5 @@
|
||||||
# Upcoming changes
|
# Upcoming changes
|
||||||
|
|
||||||
# Version Forge-1.26.5
|
|
||||||
|
|
||||||
Update TBM\_Config.toml to have haste\_speed and slow\_speed for all mob
|
|
||||||
entries.
|
|
||||||
|
|
||||||
Update Config to merge in new changes. This means that the existing config will
|
|
||||||
be overwritten much less frequently (if ever).
|
|
||||||
|
|
||||||
Update to Forge 52.0.26 (MC 1.21.1).
|
|
||||||
|
|
||||||
# Version NeoForge-1.26.5-MC-1.21.1
|
|
||||||
|
|
||||||
Update TBM\_Config.toml to have haste\_speed and slow\_speed for all mob
|
|
||||||
entries.
|
|
||||||
|
|
||||||
Update ClientConfigGui to quit to mod-menu screen in NeoForge (before, it quit
|
|
||||||
to the main screen or current game).
|
|
||||||
|
|
||||||
Update Config to merge in new changes. This means that the existing config will
|
|
||||||
be overwritten much less frequently (if ever).
|
|
||||||
|
|
||||||
Update to NeoForge 21.1.74 (MC 1.21.1).
|
|
||||||
|
|
||||||
# Version NeoForge-1.26.5
|
|
||||||
|
|
||||||
Update TBM\_Config.toml to have haste\_speed and slow\_speed for all mob
|
|
||||||
entries.
|
|
||||||
|
|
||||||
Update ClientConfigGui to quit to mod-menu screen in NeoForge (before, it quit
|
|
||||||
to the main screen or current game).
|
|
||||||
|
|
||||||
Update Config to merge in new changes. This means that the existing config will
|
|
||||||
be overwritten much less frequently (if ever).
|
|
||||||
|
|
||||||
Update to NeoForge 21.3.11-beta (MC 1.21.3).
|
|
||||||
|
|
||||||
# Version Forge-1.26.4
|
|
||||||
|
|
||||||
[Add support for "per-player-stats" in Turn-Based-Battle.](https://stephen-seo.github.io/TurnBasedMinecraftMod/server_config/#per-player-settings)
|
|
||||||
|
|
||||||
Update to Forge 52.0.24 (MC 1.21.1).
|
|
||||||
|
|
||||||
# Version NeoForge-1.26.4-MC-1.21.1
|
|
||||||
|
|
||||||
[Add support for "per-player-stats" in Turn-Based-Battle.](https://stephen-seo.github.io/TurnBasedMinecraftMod/server_config/#per-player-settings)
|
|
||||||
|
|
||||||
Update to Neoforge 21.1.73 (Minecraft 1.21.1).
|
|
||||||
|
|
||||||
# Version NeoForge-1.26.4
|
|
||||||
|
|
||||||
[Add support for "per-player-stats" in Turn-Based-Battle.](https://stephen-seo.github.io/TurnBasedMinecraftMod/server_config/#per-player-settings)
|
|
||||||
|
|
||||||
Update to NeoForge 21.3.6-beta (MC 1.21.3).
|
|
||||||
|
|
||||||
# Version Forge-1.26.3
|
|
||||||
|
|
||||||
Tweak to "Ping" packet to not create client-local Battle instance if it does
|
|
||||||
not exist.
|
|
||||||
|
|
||||||
# Version NeoForge-1.26.3
|
|
||||||
|
|
||||||
Port to NeoForge 21.3.2-beta (MC 1.21.3).
|
|
||||||
|
|
||||||
Note that MC 1.21.1 (NeoForge 21.1.72) will still be supported in a separate
|
|
||||||
branch (neoforge\_mc1.21.1) until MC version 1.22 is released.
|
|
||||||
|
|
||||||
Tweak to "Ping" packet to not create client-local Battle instance if it does
|
|
||||||
not exist.
|
|
||||||
|
|
||||||
# Version NeoForge-1.26.3-MC-1.21.1
|
|
||||||
|
|
||||||
Tweak to "Ping" packet to not create client-local Battle instance if it does
|
|
||||||
not exist.
|
|
||||||
|
|
||||||
# Version Forge-1.26.2
|
|
||||||
|
|
||||||
Show battling Entities next to their attack button in the BattleGUI.
|
|
||||||
|
|
||||||
# Version NeoForge-1.26.2
|
|
||||||
|
|
||||||
Show battling Entities next to their attack button in the BattleGUI.
|
|
||||||
|
|
||||||
# Version Forge-1.26.1
|
# Version Forge-1.26.1
|
||||||
|
|
||||||
Minor fixes/refactorings that should make the mod more robust.
|
Minor fixes/refactorings that should make the mod more robust.
|
||||||
|
|
5
FAQ.md
5
FAQ.md
|
@ -79,11 +79,6 @@ command](https://youtu.be/9xkbHNWkcIY).
|
||||||
|
|
||||||
## I updated the mod, but now my config changes are back to default, what happened?
|
## I updated the mod, but now my config changes are back to default, what happened?
|
||||||
|
|
||||||
*As of Version 1.26.5 and onwards, this should happen less often!*
|
|
||||||
Version 1.26.5 introduces more robust config updating such that entries that
|
|
||||||
exist in the default config, but not in the current config will be appended to
|
|
||||||
the current config.
|
|
||||||
|
|
||||||
Sometimes, I add new mob entries to the config, and increment the version
|
Sometimes, I add new mob entries to the config, and increment the version
|
||||||
number of the config. When the server/client starts, it checks the default
|
number of the config. When the server/client starts, it checks the default
|
||||||
config's version number with the existing config's version number. If the
|
config's version number with the existing config's version number. If the
|
||||||
|
|
18
README.md
18
README.md
|
@ -11,10 +11,6 @@ https://www.curseforge.com/minecraft/mc-mods/turnbasedminecraft/files
|
||||||
https://modrinth.com/mod/turnbasedmc
|
https://modrinth.com/mod/turnbasedmc
|
||||||
https://git.seodisparate.com/stephenseo/TurnBasedMinecraftMod/releases
|
https://git.seodisparate.com/stephenseo/TurnBasedMinecraftMod/releases
|
||||||
|
|
||||||
# Documentation Page
|
|
||||||
|
|
||||||
https://stephen-seo.github.io/TurnBasedMinecraftMod/
|
|
||||||
|
|
||||||
# Forge or NeoForge
|
# Forge or NeoForge
|
||||||
|
|
||||||
The `forge` branch tracks the version of the mod for Minecraft Forge.
|
The `forge` branch tracks the version of the mod for Minecraft Forge.
|
||||||
|
@ -23,7 +19,7 @@ The `neoforge` branch tracks the version of the mod for Minecraft NeoForge.
|
||||||
|
|
||||||
# What changed in what version
|
# What changed in what version
|
||||||
|
|
||||||
See the [Changelog](https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md)
|
See the [Changelog](https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/master/Changelog.md)
|
||||||
|
|
||||||
# Things you may need to know about this mod
|
# Things you may need to know about this mod
|
||||||
|
|
||||||
|
@ -36,14 +32,10 @@ The config file `.minecraft/config/TurnBasedMinecraft/TBM_Config.toml` is commen
|
||||||
with info on what each option does. ~~It will also be moved if a newer version
|
with info on what each option does. ~~It will also be moved if a newer version
|
||||||
of this mod has a newer version of the config file (usually renamed with a
|
of this mod has a newer version of the config file (usually renamed with a
|
||||||
timestamp).~~ ~~I will try my best to not move the previous version config, but rather
|
timestamp).~~ ~~I will try my best to not move the previous version config, but rather
|
||||||
edit the previous version config to have new options.~~ ~~When a new config version is made,
|
edit the previous version config to have new options.~~ When a new config version is made,
|
||||||
usually because a new entry has been added, the existing config is renamed to a file with
|
usually because a new entry has been added, the existing config is renamed to a file with
|
||||||
a timestamp in the filename of when it was replaced. One can set a config option in the
|
a timestamp in the filename of when it was replaced. One can set a config option in the
|
||||||
config to prevent it being overwritten if necessary.~~
|
config to prevent it being overwritten if necessary.
|
||||||
|
|
||||||
*As of version 1.26.5 of this mod, this should happen less frequently!*
|
|
||||||
Version 1.26.5 introduces changes that allow entries that exist in the default
|
|
||||||
config but not in the current config to be appended in the current config.
|
|
||||||
|
|
||||||
Some options in the config file only affect the Server, and ~~some only affect the Client~~.
|
Some options in the config file only affect the Server, and ~~some only affect the Client~~.
|
||||||
Client config has been moved to a
|
Client config has been moved to a
|
||||||
|
@ -82,7 +74,7 @@ configured for them.)
|
||||||
|
|
||||||
Simply invoke `./gradlew build` in the mod directory and after some time the
|
Simply invoke `./gradlew build` in the mod directory and after some time the
|
||||||
finished jar will be saved at
|
finished jar will be saved at
|
||||||
`build/libs/TurnBasedMinecraft-NeoForge-1.26.5-all.jar`
|
`build/libs/TurnBasedMinecraft-NeoForge-1.26.1-all.jar`
|
||||||
|
|
||||||
# Reproducibility
|
# Reproducibility
|
||||||
|
|
||||||
|
@ -100,7 +92,7 @@ which is licensed under the [MIT License](https://github.com/kevinstadler/JavaMP
|
||||||
|
|
||||||
# Frequently Asked Questions
|
# Frequently Asked Questions
|
||||||
|
|
||||||
[See the FAQ page.](https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/FAQ.md)
|
[See the FAQ page.](https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/master/FAQ.md)
|
||||||
|
|
||||||
# Related Videos
|
# Related Videos
|
||||||
|
|
||||||
|
|
|
@ -4,175 +4,6 @@ Starting with version 1.24.0 of this mod, this file will list what version of
|
||||||
Java was used to compile the jars. In theory, using the same version of Java
|
Java was used to compile the jars. In theory, using the same version of Java
|
||||||
should result in an identical jar due to reproducible builds.
|
should result in an identical jar due to reproducible builds.
|
||||||
|
|
||||||
## NeoForge 1.26.5
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-NeoForge-1.26.5-all.jar
|
|
||||||
b02d0abf6f2fbc5c3b718b548309efacb159ec8f86c7d2d653fc0b73234e761a build/libs/TurnBasedMinecraft-NeoForge-1.26.5-all.jar
|
|
||||||
|
|
||||||
## NeoForge 1.26.5-MC-1.21.1
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-NeoForge-1.26.5-MC-1.21.1-all.jar
|
|
||||||
c529ebe3dd48608afd27e3393b201036ce84d3be0a850cdf48039fbc4820629e build/libs/TurnBasedMinecraft-NeoForge-1.26.5-MC-1.21.1-all.jar
|
|
||||||
|
|
||||||
## Forge 1.26.5
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-Forge-1.26.5-all.jar
|
|
||||||
c8ed6e2e9a433c40901d41ec604bc6260fc5b231f5d3859832ecbe76b0f5a9e2 build/libs/TurnBasedMinecraft-Forge-1.26.5-all.jar
|
|
||||||
|
|
||||||
## NeoForge 1.26.4
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-NeoForge-1.26.4-all.jar
|
|
||||||
ddab3e58638ba70c7b10f84f4aa7ac81e8e5a63cb47d0ebf7e7aa4bcf3c0a1ba build/libs/TurnBasedMinecraft-NeoForge-1.26.4-all.jar
|
|
||||||
|
|
||||||
## NeoForge 1.26.4-MC-1.21.1
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-NeoForge-1.26.4-MC-1.21.1-all.jar
|
|
||||||
e49665c67452cae8fab8f356d187b860893885afbe6dab1e3a869331a12f1cf5 build/libs/TurnBasedMinecraft-NeoForge-1.26.4-MC-1.21.1-all.jar
|
|
||||||
|
|
||||||
## Forge 1.26.4
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-Forge-1.26.4-all.jar
|
|
||||||
2052b1e8f6a49374b6a9bbc0c0547c1972d5454ea9afa5f0455c534285d6cada build/libs/TurnBasedMinecraft-Forge-1.26.4-all.jar
|
|
||||||
|
|
||||||
## NeoForge 1.26.3
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-NeoForge-1.26.3-all.jar
|
|
||||||
2c8f17499a475f22493244e16f499bed46ea6a32a20f6bd2be5b3151464b2225 build/libs/TurnBasedMinecraft-NeoForge-1.26.3-all.jar
|
|
||||||
|
|
||||||
## NeoForge 1.26.3-MC-1.21.1
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-NeoForge-1.26.3-MC-1.21.1-all.jar
|
|
||||||
311018353109da4d9a49379d9ebc29dbac7e2aef3331ec177bd0edc300d15b89 /home/public/TurnBasedMC/TurnBasedMinecraft-NeoForge-1.26.3-MC-1.21.1-all.jar
|
|
||||||
|
|
||||||
## Forge 1.26.3
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-Forge-1.26.3-all.jar
|
|
||||||
5fdaffd14f75c2340a410c37811a5f7644ade3c6852db4b982bf3161bab1aae7 build/libs/TurnBasedMinecraft-Forge-1.26.3-all.jar
|
|
||||||
|
|
||||||
## NeoForge 1.26.2
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-NeoForge-1.26.2-all.jar
|
|
||||||
d55f516a2166d266c0d60e881b170cb734372ac01c8a25cf12e2f593f7b87004 build/libs/TurnBasedMinecraft-NeoForge-1.26.2-all.jar
|
|
||||||
|
|
||||||
## Forge 1.26.2
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-Forge-1.26.2-all.jar
|
|
||||||
d06f3cc8e050aa4086dce187ffce2cc5049c67c401a0cd4608138880b0868e89 build/libs/TurnBasedMinecraft-Forge-1.26.2-all.jar
|
|
||||||
|
|
||||||
## Forge 1.26.1
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-Forge-1.26.1-all.jar
|
|
||||||
0fc0f1ea49c726b06b7a353fee4e59eaadd608a4074245477d1ccd957467305c build/libs/TurnBasedMinecraft-Forge-1.26.1-all.jar
|
|
||||||
|
|
||||||
## NeoForge 1.26.1
|
|
||||||
|
|
||||||
$ java --version
|
|
||||||
openjdk 21.0.5 2024-10-15
|
|
||||||
OpenJDK Runtime Environment (build 21.0.5+11)
|
|
||||||
OpenJDK 64-Bit Server VM (build 21.0.5+11, mixed mode, sharing)
|
|
||||||
|
|
||||||
$ javac --version
|
|
||||||
javac 21.0.5
|
|
||||||
|
|
||||||
$ sha256sum build/libs/TurnBasedMinecraft-NeoForge-1.26.1-all.jar
|
|
||||||
ac3005191d9c23ad823e4ae33b750a0ac17518460fedc91242d031a8f1365101 build/libs/TurnBasedMinecraft-NeoForge-1.26.1-all.jar
|
|
||||||
|
|
||||||
## Forge 1.26.0
|
## Forge 1.26.0
|
||||||
|
|
||||||
$ java --version
|
$ java --version
|
||||||
|
|
|
@ -13,17 +13,17 @@ parchment_mappings_version=2024.07.28
|
||||||
# Environment Properties
|
# Environment Properties
|
||||||
# You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge
|
# You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge
|
||||||
# The Minecraft version must agree with the Neo version to get a valid artifact
|
# The Minecraft version must agree with the Neo version to get a valid artifact
|
||||||
minecraft_version=1.21.3
|
minecraft_version=1.21.1
|
||||||
|
|
||||||
# The Minecraft version range can use any release version of Minecraft as bounds.
|
# The Minecraft version range can use any release version of Minecraft as bounds.
|
||||||
# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly
|
# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly
|
||||||
# as they do not follow standard versioning conventions.
|
# as they do not follow standard versioning conventions.
|
||||||
minecraft_version_range=[1.21.3, 1.22)
|
minecraft_version_range=[1.21.1, 1.22)
|
||||||
|
|
||||||
# The Neo version must agree with the Minecraft version to get a valid artifact
|
# The Neo version must agree with the Minecraft version to get a valid artifact
|
||||||
neo_version=21.3.11-beta
|
neo_version=21.1.72
|
||||||
# The Neo version range can use any version of Neo as bounds
|
# The Neo version range can use any version of Neo as bounds
|
||||||
neo_version_range=[21.3.0,)
|
neo_version_range=[21.1.0,)
|
||||||
# The loader version range can only use the major version of FML as bounds
|
# The loader version range can only use the major version of FML as bounds
|
||||||
loader_version_range=[4,)
|
loader_version_range=[4,)
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ mod_name=TurnBasedMinecraftMod
|
||||||
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
|
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
|
||||||
mod_license=MIT
|
mod_license=MIT
|
||||||
# The mod version. See https://semver.org/
|
# The mod version. See https://semver.org/
|
||||||
mod_version=1.26.5
|
mod_version=1.26.1
|
||||||
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
|
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
|
||||||
# This should match the base package used for the mod sources.
|
# This should match the base package used for the mod sources.
|
||||||
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
|
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
|
||||||
|
|
|
@ -10,9 +10,7 @@ import net.minecraft.client.gui.GuiGraphics;
|
||||||
import net.minecraft.client.gui.components.AbstractButton;
|
import net.minecraft.client.gui.components.AbstractButton;
|
||||||
import net.minecraft.client.gui.components.Button;
|
import net.minecraft.client.gui.components.Button;
|
||||||
import net.minecraft.client.gui.screens.Screen;
|
import net.minecraft.client.gui.screens.Screen;
|
||||||
import net.minecraft.client.gui.screens.inventory.InventoryScreen;
|
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
|
||||||
import net.neoforged.neoforge.network.PacketDistributor;
|
import net.neoforged.neoforge.network.PacketDistributor;
|
||||||
|
|
||||||
import java.util.ConcurrentModificationException;
|
import java.util.ConcurrentModificationException;
|
||||||
|
@ -31,7 +29,6 @@ public class BattleGui extends Screen {
|
||||||
private boolean stateChanged;
|
private boolean stateChanged;
|
||||||
private String info;
|
private String info;
|
||||||
private Long waitMissingBattleTicks;
|
private Long waitMissingBattleTicks;
|
||||||
private boolean showingEntities;
|
|
||||||
|
|
||||||
private enum MenuState {
|
private enum MenuState {
|
||||||
MAIN_MENU(0), ATTACK_TARGET(1), ITEM_ACTION(2), WAITING(3), SWITCH_ITEM(4), USE_ITEM(5);
|
MAIN_MENU(0), ATTACK_TARGET(1), ITEM_ACTION(2), WAITING(3), SWITCH_ITEM(4), USE_ITEM(5);
|
||||||
|
@ -96,7 +93,6 @@ public class BattleGui extends Screen {
|
||||||
state = MenuState.MAIN_MENU;
|
state = MenuState.MAIN_MENU;
|
||||||
stateChanged = true;
|
stateChanged = true;
|
||||||
waitMissingBattleTicks = null;
|
waitMissingBattleTicks = null;
|
||||||
showingEntities = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setState(MenuState state) {
|
private void setState(MenuState state) {
|
||||||
|
@ -131,7 +127,6 @@ public class BattleGui extends Screen {
|
||||||
}
|
}
|
||||||
|
|
||||||
stateChanged = false;
|
stateChanged = false;
|
||||||
showingEntities = false;
|
|
||||||
clearWidgets();
|
clearWidgets();
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case MAIN_MENU:
|
case MAIN_MENU:
|
||||||
|
@ -152,7 +147,6 @@ public class BattleGui extends Screen {
|
||||||
case ATTACK_TARGET:
|
case ATTACK_TARGET:
|
||||||
info = "Who will you attack?";
|
info = "Who will you attack?";
|
||||||
int y = 30;
|
int y = 30;
|
||||||
showingEntities = true;
|
|
||||||
try {
|
try {
|
||||||
for (Map.Entry<Integer, Combatant> e : TurnBasedMinecraftMod.proxy.getLocalBattle()
|
for (Map.Entry<Integer, Combatant> e : TurnBasedMinecraftMod.proxy.getLocalBattle()
|
||||||
.getSideAEntrySet()) {
|
.getSideAEntrySet()) {
|
||||||
|
@ -269,26 +263,6 @@ public class BattleGui extends Screen {
|
||||||
}
|
}
|
||||||
|
|
||||||
updateState();
|
updateState();
|
||||||
if (showingEntities) {
|
|
||||||
int y = 30;
|
|
||||||
try {
|
|
||||||
for (Map.Entry<Integer, Combatant> e : TurnBasedMinecraftMod.proxy.getLocalBattle().getSideAEntrySet()) {
|
|
||||||
if (e.getValue().entity instanceof LivingEntity lEntity) {
|
|
||||||
InventoryScreen.renderEntityInInventoryFollowsMouse(guiGraphics, width / 4 - 60 - 20, y, width / 4 - 60, y + 20, 7, 0.0F, mouseX, mouseY, lEntity);
|
|
||||||
}
|
|
||||||
y += 20;
|
|
||||||
}
|
|
||||||
} catch(ConcurrentModificationException e) {}
|
|
||||||
y = 30;
|
|
||||||
try {
|
|
||||||
for (Map.Entry<Integer, Combatant> e : TurnBasedMinecraftMod.proxy.getLocalBattle().getSideBEntrySet()) {
|
|
||||||
if (e.getValue().entity instanceof LivingEntity lEntity) {
|
|
||||||
InventoryScreen.renderEntityInInventoryFollowsMouse(guiGraphics, width * 3 / 4 - 60 + 120, y, width * 3 / 4 - 60 + 140, y + 20, 7, 0.0F, mouseX, mouseY, lEntity);
|
|
||||||
}
|
|
||||||
y += 20;
|
|
||||||
}
|
|
||||||
} catch(ConcurrentModificationException e) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
super.render(guiGraphics, mouseX, mouseY, partialTicks);
|
super.render(guiGraphics, mouseX, mouseY, partialTicks);
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@ public class ClientConfigGui extends net.minecraft.client.gui.screens.Screen {
|
||||||
private Checkbox affectedByMasterVolCheckbox = null;
|
private Checkbox affectedByMasterVolCheckbox = null;
|
||||||
private Checkbox affectedByMusicVolCheckbox = null;
|
private Checkbox affectedByMusicVolCheckbox = null;
|
||||||
private SliderPercentage volumeSlider = null;
|
private SliderPercentage volumeSlider = null;
|
||||||
private Screen parentScreen = null;
|
|
||||||
|
|
||||||
public ClientConfigGui(ModContainer container, Screen parent) {
|
public ClientConfigGui(ModContainer container, Screen parent) {
|
||||||
super(Component.literal("TurnBasedMC Client Config"));
|
super(Component.literal("TurnBasedMC Client Config"));
|
||||||
|
@ -28,8 +27,6 @@ public class ClientConfigGui extends net.minecraft.client.gui.screens.Screen {
|
||||||
dirtyFlag = true;
|
dirtyFlag = true;
|
||||||
|
|
||||||
accepted = false;
|
accepted = false;
|
||||||
|
|
||||||
this.parentScreen = parent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onDirty() {
|
public void onDirty() {
|
||||||
|
@ -178,7 +175,7 @@ public class ClientConfigGui extends net.minecraft.client.gui.screens.Screen {
|
||||||
addRenderableWidget(volumeSlider);
|
addRenderableWidget(volumeSlider);
|
||||||
|
|
||||||
addRenderableWidget(Button.builder(Component.literal("Cancel"),
|
addRenderableWidget(Button.builder(Component.literal("Cancel"),
|
||||||
(b) -> Minecraft.getInstance().setScreen(this.parentScreen))
|
(b) -> Minecraft.getInstance().setScreen(null))
|
||||||
.bounds(this.width / 2 - widget_width + widget_x_offset,
|
.bounds(this.width / 2 - widget_width + widget_x_offset,
|
||||||
this.height - widget_height, widget_width, widget_height).build());
|
this.height - widget_height, widget_width, widget_height).build());
|
||||||
addRenderableWidget(Button.builder(Component.literal("Accept"), (b) -> {
|
addRenderableWidget(Button.builder(Component.literal("Accept"), (b) -> {
|
||||||
|
@ -228,7 +225,7 @@ public class ClientConfigGui extends net.minecraft.client.gui.screens.Screen {
|
||||||
public void render(GuiGraphics pGuiGraphics, int pMouseX, int pMouseY, float pPartialTick) {
|
public void render(GuiGraphics pGuiGraphics, int pMouseX, int pMouseY, float pPartialTick) {
|
||||||
if (accepted) {
|
if (accepted) {
|
||||||
doAccepted();
|
doAccepted();
|
||||||
Minecraft.getInstance().setScreen(this.parentScreen);
|
Minecraft.getInstance().setScreen(null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (dirtyFlag) {
|
if (dirtyFlag) {
|
||||||
|
|
|
@ -168,7 +168,7 @@ public class ClientProxy extends CommonProxy {
|
||||||
parentComponent.getSiblings().add(prefix);
|
parentComponent.getSiblings().add(prefix);
|
||||||
parentComponent.getSiblings().add(text);
|
parentComponent.getSiblings().add(text);
|
||||||
// UUID is required by sendMessage, but appears to be unused, so just give dummy UUID
|
// UUID is required by sendMessage, but appears to be unused, so just give dummy UUID
|
||||||
Minecraft.getInstance().player.displayClientMessage(parentComponent, false);
|
Minecraft.getInstance().player.sendSystemMessage(parentComponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -181,7 +181,7 @@ public class ClientProxy extends CommonProxy {
|
||||||
parentComponent.getSiblings().add(prefix);
|
parentComponent.getSiblings().add(prefix);
|
||||||
parentComponent.getSiblings().add(text);
|
parentComponent.getSiblings().add(text);
|
||||||
// UUID is required by sendMessage, but appears to be unused, so just give dummy UUID
|
// UUID is required by sendMessage, but appears to be unused, so just give dummy UUID
|
||||||
Minecraft.getInstance().player.displayClientMessage(parentComponent, false);
|
Minecraft.getInstance().player.sendSystemMessage(parentComponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkBattleTypes(boolean entityLeft) {
|
private void checkBattleTypes(boolean entityLeft) {
|
||||||
|
@ -481,15 +481,11 @@ public class ClientProxy extends CommonProxy {
|
||||||
MutableComponent text = Component.literal("Edit what value? ");
|
MutableComponent text = Component.literal("Edit what value? ");
|
||||||
text.setStyle(text.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)).withBold(false));
|
text.setStyle(text.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)).withBold(false));
|
||||||
|
|
||||||
MutableComponent option;
|
MutableComponent option = Component.literal("IgB");
|
||||||
MutableComponent value;
|
|
||||||
|
|
||||||
if (pkt.getEntityInfo().playerName.isEmpty()) {
|
|
||||||
option = Component.literal("IgB");
|
|
||||||
// HoverEvent.Action.SHOW_TEXT is probably SHOW_TEXT
|
// HoverEvent.Action.SHOW_TEXT is probably SHOW_TEXT
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit ignoreBattle"))
|
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit ignoreBattle"))
|
||||||
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal("IgnoreBattle"))));
|
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal("IgnoreBattle"))));
|
||||||
value = Component.literal("(" + pkt.getEntityInfo().ignoreBattle + ") ");
|
MutableComponent value = Component.literal("(" + pkt.getEntityInfo().ignoreBattle + ") ");
|
||||||
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
||||||
option.getSiblings().add(value);
|
option.getSiblings().add(value);
|
||||||
text.getSiblings().add(option);
|
text.getSiblings().add(option);
|
||||||
|
@ -501,7 +497,6 @@ public class ClientProxy extends CommonProxy {
|
||||||
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
||||||
option.getSiblings().add(value);
|
option.getSiblings().add(value);
|
||||||
text.getSiblings().add(option);
|
text.getSiblings().add(option);
|
||||||
}
|
|
||||||
|
|
||||||
option = Component.literal("APr");
|
option = Component.literal("APr");
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackProbability"))
|
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackProbability"))
|
||||||
|
@ -511,7 +506,6 @@ public class ClientProxy extends CommonProxy {
|
||||||
option.getSiblings().add(value);
|
option.getSiblings().add(value);
|
||||||
text.getSiblings().add(option);
|
text.getSiblings().add(option);
|
||||||
|
|
||||||
if (pkt.getEntityInfo().playerName.isEmpty()) {
|
|
||||||
option = Component.literal("AV");
|
option = Component.literal("AV");
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackVariance"))
|
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackVariance"))
|
||||||
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal("AttackVariance"))));
|
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal("AttackVariance"))));
|
||||||
|
@ -519,7 +513,6 @@ public class ClientProxy extends CommonProxy {
|
||||||
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
||||||
option.getSiblings().add(value);
|
option.getSiblings().add(value);
|
||||||
text.getSiblings().add(option);
|
text.getSiblings().add(option);
|
||||||
}
|
|
||||||
|
|
||||||
option = Component.literal("AE");
|
option = Component.literal("AE");
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackEffect"))
|
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackEffect"))
|
||||||
|
@ -537,7 +530,6 @@ public class ClientProxy extends CommonProxy {
|
||||||
option.getSiblings().add(value);
|
option.getSiblings().add(value);
|
||||||
text.getSiblings().add(option);
|
text.getSiblings().add(option);
|
||||||
|
|
||||||
if (pkt.getEntityInfo().playerName.isEmpty()) {
|
|
||||||
option = Component.literal("DD");
|
option = Component.literal("DD");
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit defenseDamage"))
|
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit defenseDamage"))
|
||||||
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal("DefenseDamage"))));
|
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal("DefenseDamage"))));
|
||||||
|
@ -553,7 +545,6 @@ public class ClientProxy extends CommonProxy {
|
||||||
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
||||||
option.getSiblings().add(value);
|
option.getSiblings().add(value);
|
||||||
text.getSiblings().add(option);
|
text.getSiblings().add(option);
|
||||||
}
|
|
||||||
|
|
||||||
option = Component.literal("E");
|
option = Component.literal("E");
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit evasion"))
|
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit evasion"))
|
||||||
|
@ -571,23 +562,6 @@ public class ClientProxy extends CommonProxy {
|
||||||
option.getSiblings().add(value);
|
option.getSiblings().add(value);
|
||||||
text.getSiblings().add(option);
|
text.getSiblings().add(option);
|
||||||
|
|
||||||
option = Component.literal("HS");
|
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit hasteSpeed"))
|
|
||||||
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal("HasteSpeed"))));
|
|
||||||
value = Component.literal("(" + pkt.getEntityInfo().hasteSpeed + ") ");
|
|
||||||
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
|
||||||
option.getSiblings().add(value);
|
|
||||||
text.getSiblings().add(option);
|
|
||||||
|
|
||||||
option = Component.literal("SS");
|
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit slowSpeed"))
|
|
||||||
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal("SlowSpeed"))));
|
|
||||||
value = Component.literal("(" + pkt.getEntityInfo().slowSpeed + ") ");
|
|
||||||
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
|
||||||
option.getSiblings().add(value);
|
|
||||||
text.getSiblings().add(option);
|
|
||||||
|
|
||||||
if (pkt.getEntityInfo().playerName.isEmpty()) {
|
|
||||||
option = Component.literal("C");
|
option = Component.literal("C");
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit category"))
|
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit category"))
|
||||||
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal("Category"))));
|
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal("Category"))));
|
||||||
|
@ -619,7 +593,6 @@ public class ClientProxy extends CommonProxy {
|
||||||
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
value.setStyle(value.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)));
|
||||||
option.getSiblings().add(value);
|
option.getSiblings().add(value);
|
||||||
text.getSiblings().add(option);
|
text.getSiblings().add(option);
|
||||||
}
|
|
||||||
|
|
||||||
option = Component.literal("Finished Editing");
|
option = Component.literal("Finished Editing");
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFF00FF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit finish")));
|
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFF00FF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit finish")));
|
||||||
|
@ -1329,44 +1302,6 @@ public class ClientProxy extends CommonProxy {
|
||||||
TurnBasedMinecraftMod.proxy.displayComponent(parentComponent);
|
TurnBasedMinecraftMod.proxy.displayComponent(parentComponent);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case EDIT_HASTE_SPEED: {
|
|
||||||
MutableComponent text = Component.literal("haste speed: ");
|
|
||||||
text.setStyle(text.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)).withBold(false));
|
|
||||||
|
|
||||||
for (int i = 0; i <= 100; i += 10) {
|
|
||||||
MutableComponent option = Component.literal(Integer.toString(i));
|
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit hasteSpeed " + Integer.toString(i))));
|
|
||||||
text.getSiblings().add(option);
|
|
||||||
if (i < 100) {
|
|
||||||
text.getSiblings().add(Component.literal(", "));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
text.getSiblings().add(Component.literal(" (or use command \"/tbm-edit edit hasteSpeed <integer>\")"));
|
|
||||||
|
|
||||||
parentComponent.getSiblings().add(text);
|
|
||||||
TurnBasedMinecraftMod.proxy.displayComponent(parentComponent);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case EDIT_SLOW_SPEED: {
|
|
||||||
MutableComponent text = Component.literal("slow speed: ");
|
|
||||||
text.setStyle(text.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)).withBold(false));
|
|
||||||
|
|
||||||
for (int i = 0; i <= 100; i += 10) {
|
|
||||||
MutableComponent option = Component.literal(Integer.toString(i));
|
|
||||||
option.setStyle(option.getStyle().withColor(TextColor.fromRgb(0xFFFFFF00)).withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit slowSpeed " + Integer.toString(i))));
|
|
||||||
text.getSiblings().add(option);
|
|
||||||
if (i < 100) {
|
|
||||||
text.getSiblings().add(Component.literal(", "));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
text.getSiblings().add(Component.literal(" (or use command \"/tbm-edit edit slowSpeed <integer>\")"));
|
|
||||||
|
|
||||||
parentComponent.getSiblings().add(text);
|
|
||||||
TurnBasedMinecraftMod.proxy.displayComponent(parentComponent);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case EDIT_CATEGORY: {
|
case EDIT_CATEGORY: {
|
||||||
MutableComponent text = Component.literal("category: ");
|
MutableComponent text = Component.literal("category: ");
|
||||||
text.setStyle(text.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)).withBold(false));
|
text.setStyle(text.getStyle().withColor(TextColor.fromRgb(0xFFFFFFFF)).withBold(false));
|
||||||
|
@ -1537,10 +1472,6 @@ public class ClientProxy extends CommonProxy {
|
||||||
TurnBasedMinecraftMod.proxy.displayComponent(parentComponent);
|
TurnBasedMinecraftMod.proxy.displayComponent(parentComponent);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PICK_PLAYER: {
|
|
||||||
TurnBasedMinecraftMod.proxy.displayString("Use \"/tbm-edit player <player_name>\"");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import com.burnedkirby.TurnBasedMinecraft.common.networking.PacketBattlePing;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
|
||||||
import net.minecraft.world.damagesource.DamageSource;
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
import net.minecraft.world.effect.MobEffects;
|
import net.minecraft.world.effect.MobEffects;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
|
@ -135,9 +134,6 @@ public class Battle {
|
||||||
} catch (NullPointerException exception) {
|
} catch (NullPointerException exception) {
|
||||||
entityInfo = null;
|
entityInfo = null;
|
||||||
}
|
}
|
||||||
if (entityInfo == null) {
|
|
||||||
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getPlayerInfo(e.getName().getString());
|
|
||||||
}
|
|
||||||
if (entityInfo == null) {
|
if (entityInfo == null) {
|
||||||
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getMatchingEntityInfo(e);
|
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getMatchingEntityInfo(e);
|
||||||
}
|
}
|
||||||
|
@ -170,9 +166,6 @@ public class Battle {
|
||||||
} catch (NullPointerException exception) {
|
} catch (NullPointerException exception) {
|
||||||
entityInfo = null;
|
entityInfo = null;
|
||||||
}
|
}
|
||||||
if (entityInfo == null) {
|
|
||||||
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getPlayerInfo(e.getName().getString());
|
|
||||||
}
|
|
||||||
if (entityInfo == null) {
|
if (entityInfo == null) {
|
||||||
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getMatchingEntityInfo(e);
|
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getMatchingEntityInfo(e);
|
||||||
}
|
}
|
||||||
|
@ -275,9 +268,6 @@ public class Battle {
|
||||||
} catch (NullPointerException exception) {
|
} catch (NullPointerException exception) {
|
||||||
entityInfo = null;
|
entityInfo = null;
|
||||||
}
|
}
|
||||||
if (entityInfo == null) {
|
|
||||||
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getPlayerInfo(e.getName().getString());
|
|
||||||
}
|
|
||||||
if (entityInfo == null) {
|
if (entityInfo == null) {
|
||||||
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getMatchingEntityInfo(e);
|
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getMatchingEntityInfo(e);
|
||||||
}
|
}
|
||||||
|
@ -326,9 +316,6 @@ public class Battle {
|
||||||
} catch (NullPointerException exception) {
|
} catch (NullPointerException exception) {
|
||||||
entityInfo = null;
|
entityInfo = null;
|
||||||
}
|
}
|
||||||
if (entityInfo == null) {
|
|
||||||
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getPlayerInfo(e.getName().getString());
|
|
||||||
}
|
|
||||||
if (entityInfo == null) {
|
if (entityInfo == null) {
|
||||||
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getMatchingEntityInfo(e);
|
entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getMatchingEntityInfo(e);
|
||||||
}
|
}
|
||||||
|
@ -794,7 +781,7 @@ public class Battle {
|
||||||
case ATTACK:
|
case ATTACK:
|
||||||
debugLog += " attack";
|
debugLog += " attack";
|
||||||
Combatant target = null;
|
Combatant target = null;
|
||||||
if (next.entity instanceof Player player) {
|
if (next.entity instanceof Player) {
|
||||||
debugLog += " as player";
|
debugLog += " as player";
|
||||||
target = sideA.get(next.targetEntityID);
|
target = sideA.get(next.targetEntityID);
|
||||||
if (target == null) {
|
if (target == null) {
|
||||||
|
@ -803,15 +790,15 @@ public class Battle {
|
||||||
if (target == null || !target.entity.isAlive() || target == next) {
|
if (target == null || !target.entity.isAlive() || target == next) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
ItemStack heldItemStack = player.getMainHandItem();
|
ItemStack heldItemStack = ((Player) next.entity).getMainHandItem();
|
||||||
if (heldItemStack.getItem() instanceof BowItem) {
|
if (heldItemStack.getItem() instanceof BowItem) {
|
||||||
debugLog += " with bow";
|
debugLog += " with bow";
|
||||||
if (Utility.doesPlayerHaveArrows(player)) {
|
if (Utility.doesPlayerHaveArrows((Player) next.entity)) {
|
||||||
final Entity nextEntity = next.entity;
|
final Entity nextEntity = next.entity;
|
||||||
final Entity targetEntity = target.entity;
|
final Entity targetEntity = target.entity;
|
||||||
final float yawDirection = Utility.yawDirection(next.entity.getX(), next.entity.getZ(), target.entity.getX(), target.entity.getZ());
|
final float yawDirection = Utility.yawDirection(next.entity.getX(), next.entity.getZ(), target.entity.getX(), target.entity.getZ());
|
||||||
final float pitchDirection = Utility.pitchDirection(next.entity.getX(), next.entity.getY(), next.entity.getZ(), target.entity.getX(), target.entity.getY(), target.entity.getZ());
|
final float pitchDirection = Utility.pitchDirection(next.entity.getX(), next.entity.getY(), next.entity.getZ(), target.entity.getX(), target.entity.getY(), target.entity.getZ());
|
||||||
final int randomTimeLeft = random.nextInt(heldItemStack.getItem().getUseDuration(heldItemStack, player) / 3);
|
final int randomTimeLeft = random.nextInt(heldItemStack.getItem().getUseDuration(heldItemStack, (LivingEntity)next.entity) / 3);
|
||||||
if (TurnBasedMinecraftMod.proxy.getConfig().isFreezeCombatantsEnabled()) {
|
if (TurnBasedMinecraftMod.proxy.getConfig().isFreezeCombatantsEnabled()) {
|
||||||
next.yaw = yawDirection;
|
next.yaw = yawDirection;
|
||||||
next.pitch = pitchDirection;
|
next.pitch = pitchDirection;
|
||||||
|
@ -828,7 +815,7 @@ public class Battle {
|
||||||
continue;
|
continue;
|
||||||
} else if (heldItemStack.getItem() instanceof CrossbowItem) {
|
} else if (heldItemStack.getItem() instanceof CrossbowItem) {
|
||||||
debugLog += " with crossbow";
|
debugLog += " with crossbow";
|
||||||
if (Utility.doesPlayerHaveArrows(player)) {
|
if (Utility.doesPlayerHaveArrows((Player) next.entity)) {
|
||||||
final Entity nextEntity = next.entity;
|
final Entity nextEntity = next.entity;
|
||||||
final Entity targetEntity = target.entity;
|
final Entity targetEntity = target.entity;
|
||||||
final float yawDirection = Utility.yawDirection(next.entity.getX(), next.entity.getZ(), target.entity.getX(), target.entity.getZ());
|
final float yawDirection = Utility.yawDirection(next.entity.getX(), next.entity.getZ(), target.entity.getX(), target.entity.getZ());
|
||||||
|
@ -850,18 +837,9 @@ public class Battle {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
debugLog += " without bow";
|
debugLog += " without bow";
|
||||||
int hitChance;
|
int hitChance = TurnBasedMinecraftMod.proxy.getConfig().getPlayerAttackProbability();
|
||||||
if (next.entityInfo != null && !next.entityInfo.playerName.isEmpty()) {
|
|
||||||
hitChance = next.entityInfo.attackProbability;
|
|
||||||
} else {
|
|
||||||
hitChance = TurnBasedMinecraftMod.proxy.getConfig().getPlayerAttackProbability();
|
|
||||||
}
|
|
||||||
if (target.entity instanceof Player) {
|
if (target.entity instanceof Player) {
|
||||||
if (target.entityInfo != null && !target.entityInfo.playerName.isEmpty()) {
|
|
||||||
hitChance = hitChance * (100 - target.entityInfo.evasion) / 100;
|
|
||||||
} else {
|
|
||||||
hitChance = hitChance * (100 - TurnBasedMinecraftMod.proxy.getConfig().getPlayerEvasion()) / 100;
|
hitChance = hitChance * (100 - TurnBasedMinecraftMod.proxy.getConfig().getPlayerEvasion()) / 100;
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
hitChance = hitChance * (100 - target.entityInfo.evasion) / 100;
|
hitChance = hitChance * (100 - target.entityInfo.evasion) / 100;
|
||||||
}
|
}
|
||||||
|
@ -898,13 +876,6 @@ public class Battle {
|
||||||
((Player) nextEntity).attack(targetEntity);
|
((Player) nextEntity).attack(targetEntity);
|
||||||
TurnBasedMinecraftMod.proxy.setAttackingEntity(null);
|
TurnBasedMinecraftMod.proxy.setAttackingEntity(null);
|
||||||
sendMessageToAllPlayers(PacketBattleMessage.MessageType.ATTACK, nextEntity.getId(), targetEntity.getId(), TurnBasedMinecraftMod.proxy.getAttackingDamage());
|
sendMessageToAllPlayers(PacketBattleMessage.MessageType.ATTACK, nextEntity.getId(), targetEntity.getId(), TurnBasedMinecraftMod.proxy.getAttackingDamage());
|
||||||
// Attack effect
|
|
||||||
if (next.entityInfo != null && next.entityInfo.attackEffect != EntityInfo.Effect.UNKNOWN && next.entityInfo.attackEffectProbability > 0) {
|
|
||||||
if (random.nextInt(100) < next.entityInfo.attackEffectProbability) {
|
|
||||||
next.entityInfo.attackEffect.applyEffectToEntity((LivingEntity)targetEntity);
|
|
||||||
sendMessageToAllPlayers(PacketBattleMessage.MessageType.WAS_AFFECTED, nextEntity.getId(), targetEntity.getId(), 0, next.entityInfo.attackEffect.getAffectedString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (defenseDamageTriggered) {
|
if (defenseDamageTriggered) {
|
||||||
// defense damage
|
// defense damage
|
||||||
DamageSource defenseDamageSource = targetEntity.damageSources().mobAttack((LivingEntity) targetEntity);
|
DamageSource defenseDamageSource = targetEntity.damageSources().mobAttack((LivingEntity) targetEntity);
|
||||||
|
@ -1049,112 +1020,49 @@ public class Battle {
|
||||||
int fastestEnemySpeed = 0;
|
int fastestEnemySpeed = 0;
|
||||||
if (next.isSideA) {
|
if (next.isSideA) {
|
||||||
for (Combatant c : sideB.values()) {
|
for (Combatant c : sideB.values()) {
|
||||||
if (c.entity instanceof Player player) {
|
if (c.entity instanceof Player) {
|
||||||
int playerSpeed;
|
int playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSpeed();
|
||||||
if (c.entityInfo != null && !c.entityInfo.playerName.isEmpty()) {
|
if (((Player) c.entity).hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||||
playerSpeed = c.entityInfo.speed;
|
|
||||||
} else {
|
|
||||||
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSpeed();
|
|
||||||
}
|
|
||||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
|
||||||
if (c.entityInfo != null && !c.entityInfo.playerName.isEmpty()) {
|
|
||||||
playerSpeed = c.entityInfo.hasteSpeed;
|
|
||||||
} else {
|
|
||||||
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerHasteSpeed();
|
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerHasteSpeed();
|
||||||
}
|
} else if (((Player) c.entity).hasEffect(MobEffects.MOVEMENT_SLOWDOWN)) {
|
||||||
} else if (player.hasEffect(MobEffects.MOVEMENT_SLOWDOWN)) {
|
|
||||||
if (c.entityInfo != null && !c.entityInfo.playerName.isEmpty()) {
|
|
||||||
playerSpeed = c.entityInfo.slowSpeed;
|
|
||||||
} else {
|
|
||||||
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSlowSpeed();
|
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSlowSpeed();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (playerSpeed > fastestEnemySpeed) {
|
if (playerSpeed > fastestEnemySpeed) {
|
||||||
fastestEnemySpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSpeed();
|
fastestEnemySpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSpeed();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (c.entity instanceof LivingEntity livingEntity) {
|
if (c.entityInfo.speed > fastestEnemySpeed) {
|
||||||
if (livingEntity.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
|
||||||
if (c.entityInfo.hasteSpeed > fastestEnemySpeed) {
|
|
||||||
fastestEnemySpeed = c.entityInfo.hasteSpeed;
|
|
||||||
}
|
|
||||||
} else if (livingEntity.hasEffect(MobEffects.MOVEMENT_SLOWDOWN)) {
|
|
||||||
if (c.entityInfo.slowSpeed > fastestEnemySpeed) {
|
|
||||||
fastestEnemySpeed = c.entityInfo.slowSpeed;
|
|
||||||
}
|
|
||||||
} else if (c.entityInfo.speed > fastestEnemySpeed) {
|
|
||||||
fastestEnemySpeed = c.entityInfo.speed;
|
|
||||||
}
|
|
||||||
} else if (c.entityInfo.speed > fastestEnemySpeed) {
|
|
||||||
fastestEnemySpeed = c.entityInfo.speed;
|
fastestEnemySpeed = c.entityInfo.speed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (Combatant c : sideA.values()) {
|
for (Combatant c : sideA.values()) {
|
||||||
if (c.entity instanceof Player player) {
|
if (c.entity instanceof Player) {
|
||||||
int playerSpeed;
|
int playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSpeed();
|
||||||
if (c.entityInfo != null && !c.entityInfo.playerName.isEmpty()) {
|
if (((Player) c.entity).hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||||
playerSpeed = c.entityInfo.speed;
|
|
||||||
} else {
|
|
||||||
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSpeed();
|
|
||||||
}
|
|
||||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
|
||||||
if (c.entityInfo != null && !c.entityInfo.playerName.isEmpty()) {
|
|
||||||
playerSpeed = c.entityInfo.hasteSpeed;
|
|
||||||
} else {
|
|
||||||
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerHasteSpeed();
|
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerHasteSpeed();
|
||||||
}
|
} else if (((Player) c.entity).hasEffect(MobEffects.MOVEMENT_SLOWDOWN)) {
|
||||||
} else if (player.hasEffect(MobEffects.MOVEMENT_SLOWDOWN)) {
|
|
||||||
if (c.entityInfo != null && !c.entityInfo.playerName.isEmpty()) {
|
|
||||||
playerSpeed = c.entityInfo.slowSpeed;
|
|
||||||
} else {
|
|
||||||
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSlowSpeed();
|
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSlowSpeed();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (playerSpeed > fastestEnemySpeed) {
|
if (playerSpeed > fastestEnemySpeed) {
|
||||||
fastestEnemySpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSpeed();
|
fastestEnemySpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSpeed();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (c.entity instanceof LivingEntity livingEntity) {
|
if (c.entityInfo.speed > fastestEnemySpeed) {
|
||||||
if (livingEntity.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
|
||||||
if (c.entityInfo.hasteSpeed > fastestEnemySpeed) {
|
|
||||||
fastestEnemySpeed = c.entityInfo.hasteSpeed;
|
|
||||||
}
|
|
||||||
} else if (livingEntity.hasEffect(MobEffects.MOVEMENT_SLOWDOWN)) {
|
|
||||||
if (c.entityInfo.slowSpeed > fastestEnemySpeed) {
|
|
||||||
fastestEnemySpeed = c.entityInfo.slowSpeed;
|
|
||||||
}
|
|
||||||
} else if (c.entityInfo.speed > fastestEnemySpeed) {
|
|
||||||
fastestEnemySpeed = c.entityInfo.speed;
|
|
||||||
}
|
|
||||||
} else if (c.entityInfo.speed > fastestEnemySpeed) {
|
|
||||||
fastestEnemySpeed = c.entityInfo.speed;
|
fastestEnemySpeed = c.entityInfo.speed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int fleeProbability = 0;
|
int fleeProbability = 0;
|
||||||
if (next.entity instanceof Player player) {
|
if (next.entity instanceof Player) {
|
||||||
int playerSpeed;
|
int playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSpeed();
|
||||||
if (next.entityInfo != null && !next.entityInfo.playerName.isEmpty()) {
|
if (((Player) next.entity).hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||||
playerSpeed = next.entityInfo.speed;
|
|
||||||
} else {
|
|
||||||
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSpeed();
|
|
||||||
}
|
|
||||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
|
||||||
if (next.entityInfo != null && !next.entityInfo.playerName.isEmpty()) {
|
|
||||||
playerSpeed = next.entityInfo.hasteSpeed;
|
|
||||||
} else {
|
|
||||||
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerHasteSpeed();
|
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerHasteSpeed();
|
||||||
}
|
} else if (((Player) next.entity).hasEffect(MobEffects.MOVEMENT_SLOWDOWN)) {
|
||||||
} else if (player.hasEffect(MobEffects.MOVEMENT_SLOWDOWN)) {
|
|
||||||
if (next.entityInfo != null && !next.entityInfo.playerName.isEmpty()) {
|
|
||||||
playerSpeed = next.entityInfo.slowSpeed;
|
|
||||||
} else {
|
|
||||||
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSlowSpeed();
|
playerSpeed = TurnBasedMinecraftMod.proxy.getConfig().getPlayerSlowSpeed();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (fastestEnemySpeed >= playerSpeed) {
|
if (fastestEnemySpeed >= playerSpeed) {
|
||||||
fleeProbability = TurnBasedMinecraftMod.proxy.getConfig().getFleeBadProbability();
|
fleeProbability = TurnBasedMinecraftMod.proxy.getConfig().getFleeBadProbability();
|
||||||
} else {
|
} else {
|
||||||
|
@ -1226,13 +1134,7 @@ public class Battle {
|
||||||
final int nextItemToUse = next.itemToUse;
|
final int nextItemToUse = next.itemToUse;
|
||||||
final int prevItem = ((Player)nextEntity).getInventory().selected;
|
final int prevItem = ((Player)nextEntity).getInventory().selected;
|
||||||
((Player)nextEntity).getInventory().selected = nextItemToUse;
|
((Player)nextEntity).getInventory().selected = nextItemToUse;
|
||||||
InteractionResult interactionResult = targetItem.use(nextEntity.level(), (Player)nextEntity, InteractionHand.MAIN_HAND);
|
((Player)nextEntity).getInventory().setItem(nextItemToUse, targetItem.use(nextEntity.level(), (Player)nextEntity, InteractionHand.MAIN_HAND).getObject());
|
||||||
if (interactionResult instanceof InteractionResult.Success resultSuccess) {
|
|
||||||
ItemStack transformed = resultSuccess.heldItemTransformedTo();
|
|
||||||
if (transformed != null) {
|
|
||||||
((Player) nextEntity).getInventory().setItem(nextItemToUse, transformed);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
((Player)nextEntity).getInventory().selected = prevItem;
|
((Player)nextEntity).getInventory().selected = prevItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,6 @@ public class EditingInfo
|
||||||
public EntityInfo entityInfo;
|
public EntityInfo entityInfo;
|
||||||
public boolean isPendingEntitySelection;
|
public boolean isPendingEntitySelection;
|
||||||
public boolean isEditingCustomName;
|
public boolean isEditingCustomName;
|
||||||
public boolean isEditingPlayer;
|
|
||||||
|
|
||||||
public EditingInfo()
|
public EditingInfo()
|
||||||
{
|
{
|
||||||
|
@ -16,7 +15,6 @@ public class EditingInfo
|
||||||
entityInfo = null;
|
entityInfo = null;
|
||||||
isPendingEntitySelection = true;
|
isPendingEntitySelection = true;
|
||||||
isEditingCustomName = false;
|
isEditingCustomName = false;
|
||||||
isEditingPlayer = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public EditingInfo(Player player)
|
public EditingInfo(Player player)
|
||||||
|
@ -25,6 +23,5 @@ public class EditingInfo
|
||||||
entityInfo = null;
|
entityInfo = null;
|
||||||
isPendingEntitySelection = true;
|
isPendingEntitySelection = true;
|
||||||
isEditingCustomName = false;
|
isEditingCustomName = false;
|
||||||
isEditingPlayer = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,14 +20,11 @@ public class EntityInfo
|
||||||
public int defenseDamageProbability;
|
public int defenseDamageProbability;
|
||||||
public int evasion;
|
public int evasion;
|
||||||
public int speed;
|
public int speed;
|
||||||
public int hasteSpeed;
|
|
||||||
public int slowSpeed;
|
|
||||||
public String category;
|
public String category;
|
||||||
public int decisionAttack;
|
public int decisionAttack;
|
||||||
public int decisionDefend;
|
public int decisionDefend;
|
||||||
public int decisionFlee;
|
public int decisionFlee;
|
||||||
public String customName;
|
public String customName;
|
||||||
public String playerName;
|
|
||||||
|
|
||||||
public enum Effect
|
public enum Effect
|
||||||
{
|
{
|
||||||
|
@ -372,20 +369,17 @@ public class EntityInfo
|
||||||
defenseDamageProbability = 0;
|
defenseDamageProbability = 0;
|
||||||
evasion = 15;
|
evasion = 15;
|
||||||
speed = 50;
|
speed = 50;
|
||||||
hasteSpeed = 80;
|
|
||||||
slowSpeed = 20;
|
|
||||||
category = "unknown";
|
category = "unknown";
|
||||||
decisionAttack = 70;
|
decisionAttack = 70;
|
||||||
decisionDefend = 20;
|
decisionDefend = 20;
|
||||||
decisionFlee = 10;
|
decisionFlee = 10;
|
||||||
customName = new String();
|
customName = new String();
|
||||||
playerName = new String();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityInfo(Class classType, boolean ignoreBattle, int attackPower, int attackProbability, int attackVariance,
|
public EntityInfo(Class classType, boolean ignoreBattle, int attackPower, int attackProbability, int attackVariance,
|
||||||
Effect attackEffect, int attackEffectProbability, int defenseDamage, int defenseDamageProbability,
|
Effect attackEffect, int attackEffectProbability, int defenseDamage, int defenseDamageProbability,
|
||||||
int evasion, int speed, int hasteSpeed, int slowSpeed, String category, int decisionAttack, int decisionDefend, int decisionFlee,
|
int evasion, int speed, String category, int decisionAttack, int decisionDefend, int decisionFlee,
|
||||||
String customName, String playerName) {
|
String customName) {
|
||||||
this.classType = classType;
|
this.classType = classType;
|
||||||
this.ignoreBattle = ignoreBattle;
|
this.ignoreBattle = ignoreBattle;
|
||||||
this.attackPower = attackPower;
|
this.attackPower = attackPower;
|
||||||
|
@ -397,14 +391,11 @@ public class EntityInfo
|
||||||
this.defenseDamageProbability = defenseDamageProbability;
|
this.defenseDamageProbability = defenseDamageProbability;
|
||||||
this.evasion = evasion;
|
this.evasion = evasion;
|
||||||
this.speed = speed;
|
this.speed = speed;
|
||||||
this.hasteSpeed = hasteSpeed;
|
|
||||||
this.slowSpeed = slowSpeed;
|
|
||||||
this.category = category;
|
this.category = category;
|
||||||
this.decisionAttack = decisionAttack;
|
this.decisionAttack = decisionAttack;
|
||||||
this.decisionDefend = decisionDefend;
|
this.decisionDefend = decisionDefend;
|
||||||
this.decisionFlee = decisionFlee;
|
this.decisionFlee = decisionFlee;
|
||||||
this.customName = customName;
|
this.customName = customName;
|
||||||
this.playerName = playerName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityInfo clone()
|
public EntityInfo clone()
|
||||||
|
@ -421,14 +412,11 @@ public class EntityInfo
|
||||||
newEntityInfo.defenseDamageProbability = defenseDamageProbability;
|
newEntityInfo.defenseDamageProbability = defenseDamageProbability;
|
||||||
newEntityInfo.evasion = evasion;
|
newEntityInfo.evasion = evasion;
|
||||||
newEntityInfo.speed = speed;
|
newEntityInfo.speed = speed;
|
||||||
newEntityInfo.hasteSpeed = hasteSpeed;
|
|
||||||
newEntityInfo.slowSpeed = slowSpeed;
|
|
||||||
newEntityInfo.category = category;
|
newEntityInfo.category = category;
|
||||||
newEntityInfo.decisionAttack = decisionAttack;
|
newEntityInfo.decisionAttack = decisionAttack;
|
||||||
newEntityInfo.decisionDefend = decisionDefend;
|
newEntityInfo.decisionDefend = decisionDefend;
|
||||||
newEntityInfo.decisionFlee = decisionFlee;
|
newEntityInfo.decisionFlee = decisionFlee;
|
||||||
newEntityInfo.customName = customName;
|
newEntityInfo.customName = new String(customName);
|
||||||
newEntityInfo.playerName = playerName;
|
|
||||||
return newEntityInfo;
|
return newEntityInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -460,8 +448,6 @@ public class EntityInfo
|
||||||
defenseDamageProbability = buffer.readInt();
|
defenseDamageProbability = buffer.readInt();
|
||||||
evasion = buffer.readInt();
|
evasion = buffer.readInt();
|
||||||
speed = buffer.readInt();
|
speed = buffer.readInt();
|
||||||
hasteSpeed = buffer.readInt();
|
|
||||||
slowSpeed = buffer.readInt();
|
|
||||||
|
|
||||||
int category_len = buffer.readInt();
|
int category_len = buffer.readInt();
|
||||||
ByteBuf category_bytes = buffer.readBytes(category_len);
|
ByteBuf category_bytes = buffer.readBytes(category_len);
|
||||||
|
@ -478,14 +464,6 @@ public class EntityInfo
|
||||||
} else {
|
} else {
|
||||||
customName = "";
|
customName = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
int player_len = buffer.readInt();
|
|
||||||
if (player_len > 0) {
|
|
||||||
ByteBuf player_bytes = buffer.readBytes(player_len);
|
|
||||||
playerName = player_bytes.toString(StandardCharsets.UTF_8);
|
|
||||||
} else {
|
|
||||||
playerName = "";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void encode(ByteBuf buffer) {
|
public void encode(ByteBuf buffer) {
|
||||||
|
@ -513,8 +491,6 @@ public class EntityInfo
|
||||||
buffer.writeInt(defenseDamageProbability);
|
buffer.writeInt(defenseDamageProbability);
|
||||||
buffer.writeInt(evasion);
|
buffer.writeInt(evasion);
|
||||||
buffer.writeInt(speed);
|
buffer.writeInt(speed);
|
||||||
buffer.writeInt(hasteSpeed);
|
|
||||||
buffer.writeInt(slowSpeed);
|
|
||||||
|
|
||||||
byte[] category_bytes = category.getBytes(StandardCharsets.UTF_8);
|
byte[] category_bytes = category.getBytes(StandardCharsets.UTF_8);
|
||||||
buffer.writeInt(category_bytes.length);
|
buffer.writeInt(category_bytes.length);
|
||||||
|
@ -531,13 +507,5 @@ public class EntityInfo
|
||||||
buffer.writeInt(custom_bytes.length);
|
buffer.writeInt(custom_bytes.length);
|
||||||
buffer.writeBytes(custom_bytes);
|
buffer.writeBytes(custom_bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playerName.isEmpty()) {
|
|
||||||
buffer.writeInt(0);
|
|
||||||
} else {
|
|
||||||
byte[] player_bytes = playerName.getBytes(StandardCharsets.UTF_8);
|
|
||||||
buffer.writeInt(player_bytes.length);
|
|
||||||
buffer.writeBytes(player_bytes);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ import org.apache.logging.log4j.Logger;
|
||||||
public class TurnBasedMinecraftMod {
|
public class TurnBasedMinecraftMod {
|
||||||
public static final String MODID = "com_burnedkirby_turnbasedminecraft";
|
public static final String MODID = "com_burnedkirby_turnbasedminecraft";
|
||||||
public static final String NAME = "Turn Based Minecraft Mod";
|
public static final String NAME = "Turn Based Minecraft Mod";
|
||||||
public static final String VERSION = "1.26.5";
|
public static final String VERSION = "1.26.1";
|
||||||
public static final String CONFIG_FILENAME = "TBM_Config.toml";
|
public static final String CONFIG_FILENAME = "TBM_Config.toml";
|
||||||
public static final String DEFAULT_CONFIG_FILENAME = "TBM_Config_DEFAULT.toml";
|
public static final String DEFAULT_CONFIG_FILENAME = "TBM_Config_DEFAULT.toml";
|
||||||
public static final String CONFIG_DIRECTORY = "config/TurnBasedMinecraft/";
|
public static final String CONFIG_DIRECTORY = "config/TurnBasedMinecraft/";
|
||||||
|
@ -153,6 +153,7 @@ public class TurnBasedMinecraftMod {
|
||||||
for (ServerPlayer player : c.getSource().getServer().getPlayerList().getPlayers()) {
|
for (ServerPlayer player : c.getSource().getServer().getPlayerList().getPlayers()) {
|
||||||
proxy.getConfig().addBattleIgnoringPlayer(player.getId());
|
proxy.getConfig().addBattleIgnoringPlayer(player.getId());
|
||||||
PacketDistributor.sendToPlayer(player, new PacketGeneralMessage("OP disabled turn-based-combat for everyone"));
|
PacketDistributor.sendToPlayer(player, new PacketGeneralMessage("OP disabled turn-based-combat for everyone"));
|
||||||
|
PacketDistributor.sendToPlayer(player, new PacketGeneralMessage("OP disabled turn-based-combat for everyone"));
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}));
|
}));
|
||||||
|
@ -266,30 +267,6 @@ public class TurnBasedMinecraftMod {
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}))
|
}))
|
||||||
.then(Commands.literal("player")
|
|
||||||
.executes(c -> {
|
|
||||||
ServerPlayer player = c.getSource().getPlayerOrException();
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketEditingMessage(PacketEditingMessage.Type.PICK_PLAYER));
|
|
||||||
return 1;
|
|
||||||
})
|
|
||||||
.then(Commands.argument("playerName", StringArgumentType.greedyString()).executes(c -> {
|
|
||||||
String name = StringArgumentType.getString(c, "playerName");
|
|
||||||
ServerPlayer player = c.getSource().getPlayerOrException();
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketGeneralMessage("Editing player \"" + name + "\""));
|
|
||||||
TurnBasedMinecraftMod.logger.info("Begin editing player \"" + name + "\"");
|
|
||||||
proxy.setEditingPlayer(player);
|
|
||||||
EditingInfo editInfo = proxy.getEditingInfo(player.getId());
|
|
||||||
editInfo.isEditingPlayer = true;
|
|
||||||
editInfo.entityInfo = TurnBasedMinecraftMod.proxy.getConfig().getPlayerInfo(name);
|
|
||||||
if (editInfo.entityInfo == null) {
|
|
||||||
editInfo.entityInfo = new EntityInfo();
|
|
||||||
}
|
|
||||||
editInfo.entityInfo.playerName = name;
|
|
||||||
editInfo.isPendingEntitySelection = false;
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editInfo.entityInfo));
|
|
||||||
return 1;
|
|
||||||
}))
|
|
||||||
)
|
|
||||||
.then(Commands.literal("edit")
|
.then(Commands.literal("edit")
|
||||||
.executes(c -> {
|
.executes(c -> {
|
||||||
ServerPlayer player = c.getSource().getPlayerOrException();
|
ServerPlayer player = c.getSource().getPlayerOrException();
|
||||||
|
@ -646,74 +623,6 @@ public class TurnBasedMinecraftMod {
|
||||||
return 1;
|
return 1;
|
||||||
}))
|
}))
|
||||||
)
|
)
|
||||||
.then(Commands.literal("hasteSpeed")
|
|
||||||
.executes(c -> {
|
|
||||||
ServerPlayer player = c.getSource().getPlayerOrException();
|
|
||||||
EditingInfo editingInfo = TurnBasedMinecraftMod.proxy.getEditingInfo(player.getId());
|
|
||||||
if (editingInfo != null && !editingInfo.isPendingEntitySelection) {
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketEditingMessage(PacketEditingMessage.Type.EDIT_HASTE_SPEED));
|
|
||||||
} else if (editingInfo != null) {
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY));
|
|
||||||
} else {
|
|
||||||
Message exceptionMessage = new LiteralMessage("Cannot edit entity without starting editing (use \"/tbm-edit\").");
|
|
||||||
throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
})
|
|
||||||
.then(Commands.argument("hasteSpeed", IntegerArgumentType.integer())
|
|
||||||
.executes(c -> {
|
|
||||||
ServerPlayer player = c.getSource().getPlayerOrException();
|
|
||||||
EditingInfo editingInfo = TurnBasedMinecraftMod.proxy.getEditingInfo(player.getId());
|
|
||||||
int hasteSpeed = IntegerArgumentType.getInteger(c, "hasteSpeed");
|
|
||||||
if (hasteSpeed < 0) {
|
|
||||||
hasteSpeed = 0;
|
|
||||||
}
|
|
||||||
if (editingInfo != null && !editingInfo.isPendingEntitySelection) {
|
|
||||||
editingInfo.entityInfo.hasteSpeed = hasteSpeed;
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
|
|
||||||
} else if (editingInfo != null) {
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY));
|
|
||||||
} else {
|
|
||||||
Message exceptionMessage = new LiteralMessage("Cannot edit entity without starting editing (use \"/tbm-edit\").");
|
|
||||||
throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}))
|
|
||||||
)
|
|
||||||
.then(Commands.literal("slowSpeed")
|
|
||||||
.executes(c -> {
|
|
||||||
ServerPlayer player = c.getSource().getPlayerOrException();
|
|
||||||
EditingInfo editingInfo = TurnBasedMinecraftMod.proxy.getEditingInfo(player.getId());
|
|
||||||
if (editingInfo != null && !editingInfo.isPendingEntitySelection) {
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketEditingMessage(PacketEditingMessage.Type.EDIT_SLOW_SPEED));
|
|
||||||
} else if (editingInfo != null) {
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY));
|
|
||||||
} else {
|
|
||||||
Message exceptionMessage = new LiteralMessage("Cannot edit entity without starting editing (use \"/tbm-edit\").");
|
|
||||||
throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
})
|
|
||||||
.then(Commands.argument("slowSpeed", IntegerArgumentType.integer())
|
|
||||||
.executes(c -> {
|
|
||||||
ServerPlayer player = c.getSource().getPlayerOrException();
|
|
||||||
EditingInfo editingInfo = TurnBasedMinecraftMod.proxy.getEditingInfo(player.getId());
|
|
||||||
int slowSpeed = IntegerArgumentType.getInteger(c, "slowSpeed");
|
|
||||||
if (slowSpeed < 0) {
|
|
||||||
slowSpeed = 0;
|
|
||||||
}
|
|
||||||
if (editingInfo != null && !editingInfo.isPendingEntitySelection) {
|
|
||||||
editingInfo.entityInfo.slowSpeed = slowSpeed;
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo));
|
|
||||||
} else if (editingInfo != null) {
|
|
||||||
PacketDistributor.sendToPlayer(player, new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY));
|
|
||||||
} else {
|
|
||||||
Message exceptionMessage = new LiteralMessage("Cannot edit entity without starting editing (use \"/tbm-edit\").");
|
|
||||||
throw new CommandSyntaxException(new SimpleCommandExceptionType(exceptionMessage), exceptionMessage);
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}))
|
|
||||||
)
|
|
||||||
.then(Commands.literal("category")
|
.then(Commands.literal("category")
|
||||||
.executes(c -> {
|
.executes(c -> {
|
||||||
ServerPlayer player = c.getSource().getPlayerOrException();
|
ServerPlayer player = c.getSource().getPlayerOrException();
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.burnedkirby.TurnBasedMinecraft.common;
|
package com.burnedkirby.TurnBasedMinecraft.common;
|
||||||
|
|
||||||
import net.minecraft.core.component.DataComponents;
|
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
@ -69,6 +68,6 @@ public class Utility
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isItemEdible(ItemStack itemStack, @Nullable LivingEntity entity) {
|
public static boolean isItemEdible(ItemStack itemStack, @Nullable LivingEntity entity) {
|
||||||
return itemStack.get(DataComponents.CONSUMABLE) != null;
|
return itemStack.getFoodProperties(entity) != null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,12 +31,13 @@ public record PacketBattlePing(int battleID, int remainingSeconds) implements Cu
|
||||||
@Override
|
@Override
|
||||||
public void handle(final @NotNull PacketBattlePing pkt, IPayloadContext ctx) {
|
public void handle(final @NotNull PacketBattlePing pkt, IPayloadContext ctx) {
|
||||||
ctx.enqueueWork(() -> {
|
ctx.enqueueWork(() -> {
|
||||||
if (TurnBasedMinecraftMod.proxy.getLocalBattle() != null) {
|
if (TurnBasedMinecraftMod.proxy.getLocalBattle() == null) {
|
||||||
|
TurnBasedMinecraftMod.proxy.createLocalBattle(pkt.battleID);
|
||||||
|
}
|
||||||
TurnBasedMinecraftMod.proxy.setBattleGuiAsGui();
|
TurnBasedMinecraftMod.proxy.setBattleGuiAsGui();
|
||||||
TurnBasedMinecraftMod.proxy.setBattleGuiBattleChanged();
|
TurnBasedMinecraftMod.proxy.setBattleGuiBattleChanged();
|
||||||
TurnBasedMinecraftMod.proxy.setBattleGuiTime(pkt.remainingSeconds);
|
TurnBasedMinecraftMod.proxy.setBattleGuiTime(pkt.remainingSeconds);
|
||||||
TurnBasedMinecraftMod.proxy.pauseMCMusic();
|
TurnBasedMinecraftMod.proxy.pauseMCMusic();
|
||||||
}
|
|
||||||
}).exceptionally(e -> {
|
}).exceptionally(e -> {
|
||||||
ctx.disconnect(Component.literal("Exception handling PacketBattlePing! " + e.getMessage()));
|
ctx.disconnect(Component.literal("Exception handling PacketBattlePing! " + e.getMessage()));
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -48,14 +48,11 @@ public class PacketEditingMessage implements CustomPacketPayload
|
||||||
EDIT_DEFENSE_DAMAGE_PROBABILITY(9),
|
EDIT_DEFENSE_DAMAGE_PROBABILITY(9),
|
||||||
EDIT_EVASION(10),
|
EDIT_EVASION(10),
|
||||||
EDIT_SPEED(11),
|
EDIT_SPEED(11),
|
||||||
EDIT_HASTE_SPEED(18),
|
|
||||||
EDIT_SLOW_SPEED(19),
|
|
||||||
EDIT_CATEGORY(12),
|
EDIT_CATEGORY(12),
|
||||||
EDIT_DECISION_ATTACK(13),
|
EDIT_DECISION_ATTACK(13),
|
||||||
EDIT_DECISION_DEFEND(14),
|
EDIT_DECISION_DEFEND(14),
|
||||||
EDIT_DECISION_FLEE(15),
|
EDIT_DECISION_FLEE(15),
|
||||||
SERVER_EDIT(16),
|
SERVER_EDIT(16);
|
||||||
PICK_PLAYER(17);
|
|
||||||
|
|
||||||
Type(int value)
|
Type(int value)
|
||||||
{
|
{
|
||||||
|
|
|
@ -125,8 +125,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 45
|
speed = 45
|
||||||
haste_speed = 65
|
|
||||||
slow_speed = 25
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -143,8 +141,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 20
|
speed = 20
|
||||||
haste_speed = 40
|
|
||||||
slow_speed = 5
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -160,8 +156,6 @@ defense_damage = 0
|
||||||
evasion = 45
|
evasion = 45
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 45
|
speed = 45
|
||||||
haste_speed = 80
|
|
||||||
slow_speed = 25
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -178,8 +172,6 @@ defense_damage = 0
|
||||||
evasion = 35
|
evasion = 35
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 75
|
speed = 75
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 55
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -196,8 +188,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 25
|
speed = 25
|
||||||
haste_speed = 45
|
|
||||||
slow_speed = 5
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -212,8 +202,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 25
|
speed = 25
|
||||||
haste_speed = 35
|
|
||||||
slow_speed = 5
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -230,8 +218,6 @@ defense_damage_probability = 35
|
||||||
evasion = 25
|
evasion = 25
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 45
|
speed = 45
|
||||||
haste_speed = 65
|
|
||||||
slow_speed = 25
|
|
||||||
decision_attack_probability = 80
|
decision_attack_probability = 80
|
||||||
decision_defend_probability = 20
|
decision_defend_probability = 20
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -247,8 +233,6 @@ defense_damage = 0
|
||||||
evasion = 40
|
evasion = 40
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 70
|
speed = 70
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 50
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -264,8 +248,6 @@ defense_damage = 0
|
||||||
evasion = 40
|
evasion = 40
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 55
|
|
||||||
slow_speed = 15
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -281,8 +263,6 @@ defense_damage = 0
|
||||||
evasion = 35
|
evasion = 35
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 55
|
|
||||||
slow_speed = 15
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -299,8 +279,6 @@ defense_damage = 0
|
||||||
evasion = 35
|
evasion = 35
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 60
|
speed = 60
|
||||||
haste_speed = 80
|
|
||||||
slow_speed = 40
|
|
||||||
decision_attack_probability = 75
|
decision_attack_probability = 75
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 25
|
decision_flee_probability = 25
|
||||||
|
@ -315,8 +293,6 @@ defense_damage = 0
|
||||||
evasion = 2
|
evasion = 2
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 45
|
speed = 45
|
||||||
haste_speed = 65
|
|
||||||
slow_speed = 25
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -333,8 +309,6 @@ defense_damage_probability = 30
|
||||||
evasion = 25
|
evasion = 25
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 50
|
speed = 50
|
||||||
haste_speed = 70
|
|
||||||
slow_speed = 30
|
|
||||||
decision_attack_probability = 80
|
decision_attack_probability = 80
|
||||||
decision_defend_probability = 20
|
decision_defend_probability = 20
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -350,8 +324,6 @@ defense_damage = 0
|
||||||
evasion = 20
|
evasion = 20
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 40
|
speed = 40
|
||||||
haste_speed = 60
|
|
||||||
slow_speed = 20
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -368,8 +340,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 25
|
speed = 25
|
||||||
haste_speed = 55
|
|
||||||
slow_speed = 5
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -385,8 +355,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 55
|
|
||||||
slow_speed = 15
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -402,8 +370,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 45
|
speed = 45
|
||||||
haste_speed = 65
|
|
||||||
slow_speed = 25
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -419,8 +385,6 @@ defense_damage = 0
|
||||||
evasion = 12
|
evasion = 12
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 55
|
|
||||||
slow_speed = 15
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -436,8 +400,6 @@ defense_damage = 0
|
||||||
evasion = 20
|
evasion = 20
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 25
|
speed = 25
|
||||||
haste_speed = 45
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -453,8 +415,6 @@ defense_damage = 0
|
||||||
evasion = 20
|
evasion = 20
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 28
|
speed = 28
|
||||||
haste_speed = 48
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -470,8 +430,6 @@ defense_damage = 0
|
||||||
evasion = 35
|
evasion = 35
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 65
|
speed = 65
|
||||||
haste_speed = 85
|
|
||||||
slow_speed = 45
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -487,8 +445,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 30
|
speed = 30
|
||||||
haste_speed = 50
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -504,8 +460,6 @@ defense_damage = 0
|
||||||
evasion = 4
|
evasion = 4
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 55
|
|
||||||
slow_speed = 15
|
|
||||||
decision_attack_probability = 90
|
decision_attack_probability = 90
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -521,8 +475,6 @@ defense_damage = 0
|
||||||
evasion = 15
|
evasion = 15
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 10
|
speed = 10
|
||||||
haste_speed = 30
|
|
||||||
slow_speed = 5
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -538,8 +490,6 @@ defense_damage = 0
|
||||||
evasion = 37
|
evasion = 37
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 55
|
|
||||||
slow_speed = 15
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -555,8 +505,6 @@ defense_damage = 0
|
||||||
evasion = 13
|
evasion = 13
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 30
|
speed = 30
|
||||||
haste_speed = 50
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -572,8 +520,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 30
|
speed = 30
|
||||||
haste_speed = 50
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -589,8 +535,6 @@ defense_damage = 0
|
||||||
evasion = 25
|
evasion = 25
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 70
|
speed = 70
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 50
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -607,8 +551,6 @@ defense_damage = 0
|
||||||
evasion = 13
|
evasion = 13
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 30
|
speed = 30
|
||||||
haste_speed = 50
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -624,8 +566,6 @@ defense_damage = 0
|
||||||
evasion = 30
|
evasion = 30
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 80
|
speed = 80
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 50
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -641,8 +581,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 55
|
|
||||||
slow_speed = 15
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -658,8 +596,6 @@ defense_damage = 0
|
||||||
evasion = 7
|
evasion = 7
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 50
|
speed = 50
|
||||||
haste_speed = 70
|
|
||||||
slow_speed = 20
|
|
||||||
decision_attack_probability = 95
|
decision_attack_probability = 95
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -675,8 +611,6 @@ defense_damage = 0
|
||||||
evasion = 8
|
evasion = 8
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 55
|
|
||||||
slow_speed = 15
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -693,8 +627,6 @@ defense_damage = 0
|
||||||
evasion = 7
|
evasion = 7
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 65
|
speed = 65
|
||||||
haste_speed = 85
|
|
||||||
slow_speed = 40
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -710,8 +642,6 @@ defense_damage = 0
|
||||||
evasion = 20
|
evasion = 20
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 40
|
speed = 40
|
||||||
haste_speed = 60
|
|
||||||
slow_speed = 20
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -727,8 +657,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 25
|
speed = 25
|
||||||
haste_speed = 45
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -744,8 +672,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 50
|
speed = 50
|
||||||
haste_speed = 65
|
|
||||||
slow_speed = 20
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -761,8 +687,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "monster"
|
category = "monster"
|
||||||
speed = 25
|
speed = 25
|
||||||
haste_speed = 45
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -778,8 +702,6 @@ defense_damage = 0
|
||||||
evasion = 40
|
evasion = 40
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 50
|
speed = 50
|
||||||
haste_speed = 80
|
|
||||||
slow_speed = 30
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 100
|
decision_flee_probability = 100
|
||||||
|
@ -795,8 +717,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 20
|
speed = 20
|
||||||
haste_speed = 40
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 50
|
decision_defend_probability = 50
|
||||||
decision_flee_probability = 50
|
decision_flee_probability = 50
|
||||||
|
@ -812,8 +732,6 @@ defense_damage = 0
|
||||||
evasion = 25
|
evasion = 25
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 65
|
speed = 65
|
||||||
haste_speed = 85
|
|
||||||
slow_speed = 45
|
|
||||||
decision_attack_probability = 70
|
decision_attack_probability = 70
|
||||||
decision_defend_probability = 20
|
decision_defend_probability = 20
|
||||||
decision_flee_probability = 10
|
decision_flee_probability = 10
|
||||||
|
@ -829,8 +747,6 @@ defense_damage = 0
|
||||||
evasion = 35
|
evasion = 35
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 75
|
speed = 75
|
||||||
haste_speed = 95
|
|
||||||
slow_speed = 50
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -845,8 +761,6 @@ defense_damage = 0
|
||||||
evasion = 30
|
evasion = 30
|
||||||
category = "animal"
|
category = "animal"
|
||||||
speed = 20
|
speed = 20
|
||||||
haste_speed = 50
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 90
|
decision_attack_probability = 90
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -864,8 +778,6 @@ defense_damage = 0
|
||||||
evasion = 30
|
evasion = 30
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 75
|
speed = 75
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 30
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -881,8 +793,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 45
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -898,8 +808,6 @@ defense_damage = 0
|
||||||
evasion = 1
|
evasion = 1
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 20
|
speed = 20
|
||||||
haste_speed = 40
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 10
|
decision_defend_probability = 10
|
||||||
decision_flee_probability = 80
|
decision_flee_probability = 80
|
||||||
|
@ -915,8 +823,6 @@ defense_damage = 0
|
||||||
evasion = 45
|
evasion = 45
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 75
|
speed = 75
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 55
|
|
||||||
decision_attack_probability = 70
|
decision_attack_probability = 70
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 30
|
decision_flee_probability = 30
|
||||||
|
@ -932,8 +838,6 @@ defense_damage = 0
|
||||||
evasion = 65
|
evasion = 65
|
||||||
category = "animal"
|
category = "animal"
|
||||||
speed = 65
|
speed = 65
|
||||||
haste_speed = 85
|
|
||||||
slow_speed = 30
|
|
||||||
decision_attack_probability = 70
|
decision_attack_probability = 70
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 25
|
decision_flee_probability = 25
|
||||||
|
@ -949,8 +853,6 @@ defense_damage = 0
|
||||||
evasion = 60
|
evasion = 60
|
||||||
category = "animal"
|
category = "animal"
|
||||||
speed = 70
|
speed = 70
|
||||||
haste_speed = 80
|
|
||||||
slow_speed = 20
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 100
|
decision_flee_probability = 100
|
||||||
|
@ -966,8 +868,6 @@ defense_damage = 0
|
||||||
evasion = 45
|
evasion = 45
|
||||||
category = "animal"
|
category = "animal"
|
||||||
speed = 50
|
speed = 50
|
||||||
haste_speed = 60
|
|
||||||
slow_speed = 15
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 100
|
decision_flee_probability = 100
|
||||||
|
@ -983,8 +883,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 65
|
speed = 65
|
||||||
haste_speed = 80
|
|
||||||
slow_speed = 20
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1000,8 +898,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 65
|
speed = 65
|
||||||
haste_speed = 85
|
|
||||||
slow_speed = 45
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1017,8 +913,6 @@ defense_damage = 0
|
||||||
evasion = 30
|
evasion = 30
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 60
|
speed = 60
|
||||||
haste_speed = 80
|
|
||||||
slow_speed = 40
|
|
||||||
decision_attack_probability = 75
|
decision_attack_probability = 75
|
||||||
decision_defend_probability = 20
|
decision_defend_probability = 20
|
||||||
decision_flee_probability = 5
|
decision_flee_probability = 5
|
||||||
|
@ -1034,8 +928,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 50
|
speed = 50
|
||||||
haste_speed = 70
|
|
||||||
slow_speed = 30
|
|
||||||
decision_attack_probability = 65
|
decision_attack_probability = 65
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 25
|
decision_flee_probability = 25
|
||||||
|
@ -1051,8 +943,6 @@ defense_damage = 0
|
||||||
evasion = 1
|
evasion = 1
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 20
|
speed = 20
|
||||||
haste_speed = 40
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 10
|
decision_defend_probability = 10
|
||||||
decision_flee_probability = 80
|
decision_flee_probability = 80
|
||||||
|
@ -1068,8 +958,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 50
|
speed = 50
|
||||||
haste_speed = 70
|
|
||||||
slow_speed = 30
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1085,8 +973,6 @@ defense_damage = 0
|
||||||
evasion = 30
|
evasion = 30
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 75
|
speed = 75
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 55
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1102,8 +988,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 30
|
speed = 30
|
||||||
haste_speed = 50
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 45
|
decision_attack_probability = 45
|
||||||
decision_defend_probability = 25
|
decision_defend_probability = 25
|
||||||
decision_flee_probability = 30
|
decision_flee_probability = 30
|
||||||
|
@ -1119,8 +1003,6 @@ defense_damage = 0
|
||||||
evasion = 35
|
evasion = 35
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 70
|
speed = 70
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 40
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1136,8 +1018,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 30
|
speed = 30
|
||||||
haste_speed = 50
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 5
|
decision_defend_probability = 5
|
||||||
decision_flee_probability = 85
|
decision_flee_probability = 85
|
||||||
|
@ -1153,8 +1033,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "animal"
|
category = "animal"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 70
|
|
||||||
slow_speed = 20
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -1170,8 +1048,6 @@ defense_damage = 0
|
||||||
evasion = 40
|
evasion = 40
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 75
|
speed = 75
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 35
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 100
|
decision_flee_probability = 100
|
||||||
|
@ -1187,8 +1063,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 30
|
speed = 30
|
||||||
haste_speed = 40
|
|
||||||
slow_speed = 20
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1204,8 +1078,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 65
|
speed = 65
|
||||||
haste_speed = 85
|
|
||||||
slow_speed = 35
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1221,8 +1093,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 60
|
speed = 60
|
||||||
haste_speed = 70
|
|
||||||
slow_speed = 45
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -1238,8 +1108,6 @@ defense_damage = 0
|
||||||
evasion = 15
|
evasion = 15
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 40
|
speed = 40
|
||||||
haste_speed = 70
|
|
||||||
slow_speed = 25
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1255,8 +1123,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 50
|
speed = 50
|
||||||
haste_speed = 70
|
|
||||||
slow_speed = 35
|
|
||||||
decision_attack_probability = 65
|
decision_attack_probability = 65
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 25
|
decision_flee_probability = 25
|
||||||
|
@ -1272,8 +1138,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 50
|
|
||||||
slow_speed = 20
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 10
|
decision_defend_probability = 10
|
||||||
decision_flee_probability = 80
|
decision_flee_probability = 80
|
||||||
|
@ -1289,8 +1153,6 @@ defense_damage = 0
|
||||||
evasion = 20
|
evasion = 20
|
||||||
category = "animal"
|
category = "animal"
|
||||||
speed = 70
|
speed = 70
|
||||||
haste_speed = 85
|
|
||||||
slow_speed = 45
|
|
||||||
decision_attack_probability = 80
|
decision_attack_probability = 80
|
||||||
decision_defend_probability = 15
|
decision_defend_probability = 15
|
||||||
decision_flee_probability = 5
|
decision_flee_probability = 5
|
||||||
|
@ -1306,8 +1168,6 @@ defense_damage = 0
|
||||||
evasion = 8
|
evasion = 8
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 65
|
speed = 65
|
||||||
haste_speed = 80
|
|
||||||
slow_speed = 35
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1323,8 +1183,6 @@ defense_damage = 0
|
||||||
evasion = 50
|
evasion = 50
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 75
|
speed = 75
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 40
|
|
||||||
decision_attack_probability = 25
|
decision_attack_probability = 25
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 75
|
decision_flee_probability = 75
|
||||||
|
@ -1341,8 +1199,6 @@ defense_damage_probability = 75
|
||||||
evasion = 25
|
evasion = 25
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 45
|
speed = 45
|
||||||
haste_speed = 55
|
|
||||||
slow_speed = 25
|
|
||||||
decision_attack_probability = 35
|
decision_attack_probability = 35
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 65
|
decision_flee_probability = 65
|
||||||
|
@ -1358,8 +1214,6 @@ defense_damage = 0
|
||||||
evasion = 50
|
evasion = 50
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 75
|
speed = 75
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 40
|
|
||||||
decision_attack_probability = 25
|
decision_attack_probability = 25
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 75
|
decision_flee_probability = 75
|
||||||
|
@ -1375,8 +1229,6 @@ defense_damage = 0
|
||||||
evasion = 35
|
evasion = 35
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 45
|
speed = 45
|
||||||
haste_speed = 65
|
|
||||||
slow_speed = 25
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 10
|
decision_defend_probability = 10
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1392,8 +1244,6 @@ defense_damage = 0
|
||||||
evasion = 50
|
evasion = 50
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 75
|
speed = 75
|
||||||
haste_speed = 90
|
|
||||||
slow_speed = 40
|
|
||||||
decision_attack_probability = 25
|
decision_attack_probability = 25
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 75
|
decision_flee_probability = 75
|
||||||
|
@ -1409,8 +1259,6 @@ defense_damage = 0
|
||||||
evasion = 35
|
evasion = 35
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 50
|
speed = 50
|
||||||
haste_speed = 60
|
|
||||||
slow_speed = 30
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 40
|
decision_defend_probability = 40
|
||||||
decision_flee_probability = 60
|
decision_flee_probability = 60
|
||||||
|
@ -1426,8 +1274,6 @@ defense_damage = 0
|
||||||
evasion = 5
|
evasion = 5
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 35
|
speed = 35
|
||||||
haste_speed = 50
|
|
||||||
slow_speed = 25
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 10
|
decision_defend_probability = 10
|
||||||
decision_flee_probability = 80
|
decision_flee_probability = 80
|
||||||
|
@ -1443,8 +1289,6 @@ defense_damage = 0
|
||||||
evasion = 27
|
evasion = 27
|
||||||
category = "boss"
|
category = "boss"
|
||||||
speed = 63
|
speed = 63
|
||||||
haste_speed = 85
|
|
||||||
slow_speed = 53
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -1461,8 +1305,6 @@ defense_damage = 0
|
||||||
evasion = 20
|
evasion = 20
|
||||||
category = "boss"
|
category = "boss"
|
||||||
speed = 68
|
speed = 68
|
||||||
haste_speed = 88
|
|
||||||
slow_speed = 48
|
|
||||||
decision_attack_probability = 100
|
decision_attack_probability = 100
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 0
|
decision_flee_probability = 0
|
||||||
|
@ -1478,8 +1320,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 55
|
speed = 55
|
||||||
haste_speed = 75
|
|
||||||
slow_speed = 35
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
@ -1495,8 +1335,6 @@ defense_damage = 0
|
||||||
evasion = 10
|
evasion = 10
|
||||||
category = "passive"
|
category = "passive"
|
||||||
speed = 15
|
speed = 15
|
||||||
haste_speed = 20
|
|
||||||
slow_speed = 10
|
|
||||||
decision_attack_probability = 0
|
decision_attack_probability = 0
|
||||||
decision_defend_probability = 0
|
decision_defend_probability = 0
|
||||||
decision_flee_probability = 90
|
decision_flee_probability = 90
|
||||||
|
|
16
update.json
16
update.json
|
@ -1,22 +1,10 @@
|
||||||
{
|
{
|
||||||
"homepage": "https://github.com/Stephen-Seo/TurnBasedMinecraftMod",
|
"homepage": "https://github.com/Stephen-Seo/TurnBasedMinecraftMod",
|
||||||
"1.21.3": {
|
|
||||||
"1.26.5": "Config improvements, NeoForge 21.3.11-beta.\n https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md",
|
|
||||||
"1.26.4": "Add player-specific config, NeoForge 21.3.6-beta.\n https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md",
|
|
||||||
"1.26.3": "Ported to NeoForge 21.3.2-beta (MC 1.21.3), minor tweak to packet.\n https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md"
|
|
||||||
},
|
|
||||||
"1.21.1": {
|
"1.21.1": {
|
||||||
"1.26.5-MC-1.21.1": "Config improvements, NeoForge 21.1.74.\n https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md",
|
|
||||||
"1.26.4-MC-1.21.1": "Add player-specific config, NeoForge 21.1.73.\n https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md",
|
|
||||||
"1.26.3-MC-1.21.1": "Minor tweak to packet.\n https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md",
|
|
||||||
"1.26.2": "Display Entities on attack menu in BattleGUI.\n https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md",
|
|
||||||
"1.26.1": "Ported to NeoForge 21.1.72, leave BattleGUI with Escape key, MC music paused in battle properly.\n https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md",
|
|
||||||
"1.26.0": "Ported to NeoForge 21.1.69, client config.\n https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md"
|
"1.26.0": "Ported to NeoForge 21.1.69, client config.\n https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/Changelog.md"
|
||||||
},
|
},
|
||||||
"promos": {
|
"promos": {
|
||||||
"1.21.3-latest": "1.26.5",
|
"1.21.1-latest": "1.26.0",
|
||||||
"1.21.3-recommended": "1.26.5",
|
"1.21.1-recommended": "1.26.0"
|
||||||
"1.21.1-latest": "1.26.5-MC-1.21.1",
|
|
||||||
"1.21.1-recommended": "1.26.5-MC-1.21.1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue