Compare commits

..

31 commits

Author SHA1 Message Date
02556bc43f Fix typo in README.md 2024-11-05 20:29:15 +09:00
7d10f38daf Update README.md 2024-11-05 18:07:55 +09:00
cc00257f36 Update FAQ.md 2024-11-05 17:53:12 +09:00
c8e43a58e0 Update update.json 2024-11-05 17:42:34 +09:00
2173b6ef6e Update Reproducibility.md 2024-11-05 17:39:05 +09:00
bd51eb7621 Update Changelog.md
All checks were successful
Build TurnBasedMC and create Release / check-release-exists (push) Successful in 1s
Build TurnBasedMC and create Release / build-and-create-release (push) Successful in 1m47s
2024-11-05 17:21:53 +09:00
e8bd28848a Bump to version 1.26.5, NeoForge 21.3.11-beta 2024-11-05 17:18:44 +09:00
dfeb368222 Change Config to add new entries in-place
Now, if changes are added to the default Config, they should be appended
to the existing config file instead of replacing it. All missing values
will be populated with defaults as well.
2024-11-05 17:18:44 +09:00
d62ae7be34 Update Changelog.md 2024-11-01 16:26:32 +09:00
420a5f120b Update ClientConfigGui to quit to "parentScreen" 2024-11-01 16:25:04 +09:00
f9cb3c0537 Add haste_speed and slow_speed to entity config 2024-11-01 15:35:49 +09:00
0cd721fa71 Update Changelog.md 2024-11-01 15:15:05 +09:00
fbbc208ec5 Update update.json 2024-11-01 14:41:29 +09:00
48ee3dd350 Update Reproducibility.md 2024-11-01 14:27:02 +09:00
9b82e1a5a4 Fix erronous double-line of code
All checks were successful
Build TurnBasedMC and create Release / check-release-exists (push) Successful in 1s
Build TurnBasedMC and create Release / build-and-create-release (push) Successful in 1m43s
2024-11-01 14:13:07 +09:00
2840445bfc Update Changelog.md 2024-11-01 14:12:11 +09:00
ecf52cd253 Allow Players to have "attack effect" 2024-11-01 13:11:02 +09:00
f6156bdc50 Bump version to 1.26.4 2024-10-31 15:48:04 +09:00
8c94e959d3 Update to NeoForge version 21.3.6-beta 2024-10-31 15:48:04 +09:00
ae6af86e7b 2/2 Player-specific TBMM battle config
Add support for custom stats per-player by player username.
2024-10-31 15:48:04 +09:00
d33686aaf9 1/2 Player-specific TBMM battle config
Add support for custom stats per-player by player username.
2024-10-31 15:48:04 +09:00
52d13f9e80 Update README.md 2024-10-29 19:18:10 +09:00
9a6f6de8f8 Update README.md 2024-10-29 17:59:08 +09:00
19f422a371 Update Reproducibility.md 2024-10-25 16:14:17 +09:00
1f066bfc3f Update update.json 2024-10-25 16:09:46 +09:00
7dd906ef8f Update Changelog.md 2024-10-25 15:49:22 +09:00
7d99ffc1f4 Update Changelog.md
All checks were successful
Build TurnBasedMC and create Release / check-release-exists (push) Successful in 1s
Build TurnBasedMC and create Release / build-and-create-release (push) Successful in 3m15s
2024-10-25 15:36:46 +09:00
e430c38ac8 Update Changelog.md 2024-10-25 15:27:46 +09:00
570c68c675 Minor refactoring
Do not create Battle instance client-side from received "Ping" packet.
2024-10-25 15:24:19 +09:00
2eea03730b Update Changelog.md 2024-10-25 15:24:19 +09:00
b9fd70c8da Port to NeoForge 21.3.2-beta (MC 1.21.3) 2024-10-25 15:24:19 +09:00
13 changed files with 868 additions and 162 deletions

View file

@ -1,20 +1,56 @@
# 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 # Version Forge-1.26.4
Add support for "per-player-stats" in Turn-Based-Battle. [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). Update to Forge 52.0.24 (MC 1.21.1).
# Version NeoForge-1.26.4-MC-1.21.1 # Version NeoForge-1.26.4-MC-1.21.1
Add support for "per-player-stats" in Turn-Based-Battle. [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). Update to Neoforge 21.1.73 (Minecraft 1.21.1).
# Version NeoForge-1.26.4 # Version NeoForge-1.26.4
Add support for "per-player-stats" in Turn-Based-Battle. [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). Update to NeoForge 21.3.6-beta (MC 1.21.3).

5
FAQ.md
View file

@ -79,6 +79,11 @@ 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

View file

@ -36,10 +36,14 @@ 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
@ -78,7 +82,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.4-MC-1.21.1-all.jar` `build/libs/TurnBasedMinecraft-NeoForge-1.26.5-all.jar`
# Reproducibility # Reproducibility
@ -96,7 +100,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/master/FAQ.md) [See the FAQ page.](https://github.com/Stephen-Seo/TurnBasedMinecraftMod/blob/neoforge/FAQ.md)
# Related Videos # Related Videos

View file

@ -4,6 +4,84 @@ 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 ## NeoForge 1.26.3
$ java --version $ java --version

View file

@ -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.1 minecraft_version=1.21.3
# 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.1, 1.22) minecraft_version_range=[1.21.3, 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.1.73 neo_version=21.3.11-beta
# 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.1.0,) neo_version_range=[21.3.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.4-MC-1.21.1 mod_version=1.26.5
# 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

View file

@ -20,6 +20,7 @@ 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"));
@ -27,6 +28,8 @@ 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() {
@ -175,7 +178,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(null)) (b) -> Minecraft.getInstance().setScreen(this.parentScreen))
.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) -> {
@ -225,7 +228,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(null); Minecraft.getInstance().setScreen(this.parentScreen);
return; return;
} }
if (dirtyFlag) { if (dirtyFlag) {

View file

@ -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.sendSystemMessage(parentComponent); Minecraft.getInstance().player.displayClientMessage(parentComponent, false);
} }
@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.sendSystemMessage(parentComponent); Minecraft.getInstance().player.displayClientMessage(parentComponent, false);
} }
private void checkBattleTypes(boolean entityLeft) { private void checkBattleTypes(boolean entityLeft) {

View file

@ -6,6 +6,7 @@ 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;
@ -1225,7 +1226,13 @@ 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;
((Player)nextEntity).getInventory().setItem(nextItemToUse, targetItem.use(nextEntity.level(), (Player)nextEntity, InteractionHand.MAIN_HAND).getObject()); InteractionResult interactionResult = targetItem.use(nextEntity.level(), (Player)nextEntity, InteractionHand.MAIN_HAND);
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;
} }
} }

View file

@ -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.4-MC-1.21.1"; public static final String VERSION = "1.26.5";
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/";

View file

@ -1,5 +1,6 @@
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;
@ -68,6 +69,6 @@ public class Utility
} }
public static boolean isItemEdible(ItemStack itemStack, @Nullable LivingEntity entity) { public static boolean isItemEdible(ItemStack itemStack, @Nullable LivingEntity entity) {
return itemStack.getFoodProperties(entity) != null; return itemStack.get(DataComponents.CONSUMABLE) != null;
} }
} }

View file

@ -125,6 +125,8 @@ 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
@ -141,6 +143,8 @@ 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
@ -156,6 +160,8 @@ 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
@ -172,6 +178,8 @@ 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
@ -188,6 +196,8 @@ 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
@ -202,6 +212,8 @@ 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
@ -218,6 +230,8 @@ 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
@ -233,6 +247,8 @@ 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
@ -248,6 +264,8 @@ 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
@ -263,6 +281,8 @@ 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
@ -279,6 +299,8 @@ 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
@ -293,6 +315,8 @@ 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
@ -309,6 +333,8 @@ 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
@ -324,6 +350,8 @@ 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
@ -340,6 +368,8 @@ 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
@ -355,6 +385,8 @@ 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
@ -370,6 +402,8 @@ 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
@ -385,6 +419,8 @@ 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
@ -400,6 +436,8 @@ 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
@ -415,6 +453,8 @@ 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
@ -430,6 +470,8 @@ 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
@ -445,6 +487,8 @@ 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
@ -460,6 +504,8 @@ 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
@ -475,6 +521,8 @@ 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
@ -490,6 +538,8 @@ 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
@ -505,6 +555,8 @@ 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
@ -520,6 +572,8 @@ 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
@ -535,6 +589,8 @@ 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
@ -551,6 +607,8 @@ 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
@ -566,6 +624,8 @@ 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
@ -581,6 +641,8 @@ 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
@ -596,6 +658,8 @@ 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
@ -611,6 +675,8 @@ 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
@ -627,6 +693,8 @@ 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
@ -642,6 +710,8 @@ 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
@ -657,6 +727,8 @@ 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
@ -672,6 +744,8 @@ 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
@ -687,6 +761,8 @@ 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
@ -702,6 +778,8 @@ 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
@ -717,6 +795,8 @@ 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
@ -732,6 +812,8 @@ 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
@ -747,6 +829,8 @@ 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
@ -761,6 +845,8 @@ 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
@ -778,6 +864,8 @@ 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
@ -793,6 +881,8 @@ 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
@ -808,6 +898,8 @@ 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
@ -823,6 +915,8 @@ 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
@ -838,6 +932,8 @@ 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
@ -853,6 +949,8 @@ 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
@ -868,6 +966,8 @@ 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
@ -883,6 +983,8 @@ 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
@ -898,6 +1000,8 @@ 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
@ -913,6 +1017,8 @@ 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
@ -928,6 +1034,8 @@ 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
@ -943,6 +1051,8 @@ 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
@ -958,6 +1068,8 @@ 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
@ -973,6 +1085,8 @@ 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
@ -988,6 +1102,8 @@ 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
@ -1003,6 +1119,8 @@ 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
@ -1018,6 +1136,8 @@ 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
@ -1033,6 +1153,8 @@ 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
@ -1048,6 +1170,8 @@ 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
@ -1063,6 +1187,8 @@ 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
@ -1078,6 +1204,8 @@ 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
@ -1093,6 +1221,8 @@ 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
@ -1108,6 +1238,8 @@ 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
@ -1123,6 +1255,8 @@ 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
@ -1138,6 +1272,8 @@ 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
@ -1153,6 +1289,8 @@ 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
@ -1168,6 +1306,8 @@ 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
@ -1183,6 +1323,8 @@ 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
@ -1199,6 +1341,8 @@ 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
@ -1214,6 +1358,8 @@ 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
@ -1229,6 +1375,8 @@ 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
@ -1244,6 +1392,8 @@ 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
@ -1259,6 +1409,8 @@ 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
@ -1274,6 +1426,8 @@ 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
@ -1289,6 +1443,8 @@ 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
@ -1305,6 +1461,8 @@ 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
@ -1320,6 +1478,8 @@ 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
@ -1335,6 +1495,8 @@ 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

View file

@ -1,18 +1,22 @@
{ {
"homepage": "https://github.com/Stephen-Seo/TurnBasedMinecraftMod", "homepage": "https://github.com/Stephen-Seo/TurnBasedMinecraftMod",
"1.21.3": { "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.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.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.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.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.3", "1.21.3-latest": "1.26.5",
"1.21.3-recommended": "1.26.3", "1.21.3-recommended": "1.26.5",
"1.21.1-latest": "1.26.3-MC-1.21.1", "1.21.1-latest": "1.26.5-MC-1.21.1",
"1.21.1-recommended": "1.26.3-MC-1.21.1" "1.21.1-recommended": "1.26.5-MC-1.21.1"
} }
} }