# apocalypse:events/lunar_siege.toml
# This config contains settings related to Apocalypse's Lunar Sieges / Full moon events.

  # Registry Entry List fields: General format = [ "namespace:entry_name", ... ]
  #   Registry entry lists are arrays of registry keys. Many things in the game, such as blocks or potions, are
  #     defined by their registry key within a registry. For example, all items are registered in the "minecraft:item"
  #     registry.
  #   An asterisk '*' can be used to match all registry entries/keys belonging to X namespace. For example,
  #     'minecraft:*' will match all vanilla entries.
  #   Tags can also be used here. To declare a tag, start with a '#' followed by the rest of the tag path.
  #   Tag example: '#minecraft:oak_logs'



# Category: general
# General event settings.

  # If enabled, every full moon night a 'lunar siege' will start, spawning stronger monsters and full moon monsters.
  # More settings related to this can be found further down in this config.
  # <Boolean> Valid Values: { true, false }, Default: true
  general.enable_lunar_sieges = true
  # If enabled, players cannot sleep through full moon nights.
  # <Boolean> Valid Values: { true, false }, Default: true
  general.deny_sleep = true
  # If enabled, any mobs that are still alive that were summoned by X player's Lunar Siege event will despawn if their
  #   target player dies.
  # Can help prevent horrible spawn-camping
  # <Boolean> Valid Values: { true, false }, Default: true
  general.despawn_mobs_on_death = true
  # This is a list of environment condition entries that can be used to control under what circumstances lunar siege
  #   mobs can spawn.
  # If a string of conditions should PREVENT spawning, its value should be 0.0
  # If a string of conditions should ALLOW spawning, its value should be 1.0
  # By default, we only prevent siege mobs from spawning in The End.
  # <Environment List> Format: [ "value condition1 state1 & condition2 state2 & ...", ... ], Default: [ "1.0
  #   dimension_type !minecraft:the_end" ]
  #    Range for Values: 0.0 ~ 1.0
  general.siege_spawning_conditions = [
    "1.0 dimension_type !minecraft:the_end"
  ]



# Category: siege_mob_properties
# Various properties of full moon mobs, such as spawn amount, starting difficulty etc.

  # The amount of difficulty levels the player must pass for additional full moon mob counts to increase.
  # (This refers to the 4th value in the entries in the 'mob_spawn_settings' list below)
  # For example, a value of 30.0 means that for every time the player passes another 30.0 levels of difficulty, the
  #   amount of additional full moon mobs increases.
  # <Number> Range: 1.0 ~ 10000.0, Default: 20.0
  siege_mob_properties.difficulty_per_increase = 20.0

  # Contains various spawn settings for Full Moon siege mobs.
  # Entity types from other mods or vanilla can be added here too, if wanted.
  # This list should only contain entity type specific entries. Any tags, namespace wildcards or default values will
  #   not be used.
  # 1st value: The difficulty level required for the given mob to start spawning in sieges.
  # 2nd value: The minimum amount of the given mob type that will spawn in a full moon siege.
  # 3rd value: The maximum amount of the given mob type that can spawn in a full moon siege.
  # 4th value: Additional spawn count for the given mob type (works in conjunction with
  #   'difficulty_per_additional_increase').
  # <Registry Entry-value List> Format: [ "namespace:registry_name value1 value2 value3 value4", ... ], Default: [
  #   "apocalypse:breecher 5.0 4.0 20.0 2.0", "apocalypse:ghost 45.0 4.0 25.0 6.0", "apocalypse:grump 20.0 2.0 18.0
  #   2.5", "apocalypse:seeker 70.0 1.0 8.0 1.0", "apocalypse:destroyer 100.0 1.0 6.0 1.0" ]
  #    Target registry: ResourceKey[minecraft:root / minecraft:entity_type]
  #    Range for Values: ≥ 0.0
  siege_mob_properties.mob_spawn_settings = [
    "apocalypse:breecher 5.0 4.0 20.0 2.0",
    "apocalypse:ghost 45.0 4.0 25.0 6.0",
    "apocalypse:grump 20.0 2.0 18.0 2.5",
    "apocalypse:seeker 70.0 1.0 8.0 1.0",
    "apocalypse:destroyer 100.0 1.0 6.0 1.0"
  ]


  # Environment List fields: General format =
  #     [ "value environment1 condition1 & environment2 condition2 & ...", ... ]
  #   Environment lists are arrays of environment entries. Each entry is a value followed by the environment
  #     conditions that must be satisfied for the value to be chosen. The environments are tested in the order listed,
  #     and the first matching entry is chosen.
  #   See the bottom of this file for an explanation on each environment condition available.
  # Environment conditions (for Environment List entries):
  #   Many environment conditions can be inverted by using "!"; these are shown with (!) in the appropriate location.
  #   Other environment conditions are numerical comparisons; these use the operators (shown as op) <, >, =, <=, >=,
  #     or != to compare value.
  # 
  # Valid environment conditions are:
  # 
  #   "dimension_property (!)property":
  #     Valid property values: "ultrawarm", "natural", "has_skylight", "has_ceiling", "fixed_time", "piglin_safe",
  #       "bed_works", "respawn_anchor_works", "has_raids"
  #     Dimension properties are the true/false values available to dimension types in data packs. See the wiki for
  #       more info: [https://minecraft.fandom.com/wiki/Custom_dimension#Syntax].
  # 
  #   "dimension_type (!)namespace:dimension_type_name":
  #     The world's dimension type. In vanilla, these are only "minecraft:overworld", "minecraft:the_nether", or
  #       "minecraft:the_end".
  # 
  #   "rainfall op value":
  #     Biome's rainfall parameter. If this is "= 0", it checks that rain is disabled. For reference, rainfall > 0.85
  #       suppresses fire.
  # 
  #   "biome_temp op value OR (!)freezing":
  #     Biome's temperature parameter. For reference, freezing is < 0.15 and hot is generally considered > 0.95.
  # 
  #   "temp op value OR (!)freezing":
  #     Height-adjusted temperature. For reference, freezing is < 0.15 and hot is generally considered > 0.95.
  # 
  #   "biome_category (!)category":
  #     Deprecated, use "biome_tag" instead!
  # 
  #   "biome_tag (!)#namespace:biome_tag":
  #     The biome tag. See the wiki for vanilla biome tags (resource locations)
  #       [https://minecraft.wiki/w/Biome_tag_(Java_Edition)].
  # 
  #   "biome (!)namespace:biome_name":
  #     The biome. See the wiki for vanilla biome names (resource locations)
  #       [https://minecraft.fandom.com/wiki/Biome#Biome_IDs].
  # 
  #   "structure (!)namespace:structure_name":
  #     The structure. See the wiki for vanilla structure names [https://minecraft.fandom.com/wiki/Structure#ID].
  # 
  #   "y op value":
  #     The y-value. For reference, sea level is normally 63 and lava level is normally -54.
  # 
  #   "y_from_sea op value":
  #     The y-value from sea level. Expect the only air < 0 to be in caves/ravines (which may still have direct view
  #       of the sky).
  # 
  #   "position (!)state":
  #     Valid state values: "can_see_sky", "is_in_village", "is_near_village", "is_near_raid", "is_in_water",
  #       "is_in_lava", "is_in_fluid", "has_redstone_power"
  #     Miscellaneous conditions that generally do what you expect. For reference, 'near' a village is ~3 chunks, and
  #       redstone checks weak power.
  # 
  #   "difficulty op value":
  #     The regional difficulty (0 to 6.75). This is based on many factors such as difficulty setting, moon
  #       brightness, chunk inhabited time, and world time.
  #     For reference, this scales up to the max after 63 days in the world and 150 days in a particular chunk, and
  #       peaks during full moons. On Peaceful this is always 0, on Easy this is 0.75 to 1.5, on Normal this is 1.5 to
  #       4.0, and on Hard this is 2.25 to 6.75.
  # 
  #   "special_difficulty op value":
  #     The 'special multiplier' for regional difficulty (0 to 1). For reference, this is 0 when difficulty <= 2 and 1
  #       when difficulty >= 4.
  #     This is always 0 in Easy and below. In Normal, it maxes at absolute peak regional difficulty. In Hard, it
  #       starts at 0.125 and maxes out in ~50 days.
  # 
  #   "weather (!)type":
  #     Valid type values: "clear", "rain", "thunder"
  # 
  #   "moon_brightness op value":
  #     The moon brightness (0 to 1). New moon has 0 brightness, full moon has 1 brightness. Intermediate phases are
  #       0.25, 0.5, or 0.75.
  # 
  #   "moon_phase (!)phase":
  #     Valid phase values: "full", "waning_gibbous", "last_quarter", "waning_crescent", "new", "waxing_crescent",
  #       "first_quarter", "waxing_gibbous"
  #     For reference, the first day in a new world is always a full moon.
  # 
  #   "day_time (!)time":
  #     Valid time values: "day", "sunset", "night", "sunrise"
  #     Note that the transition periods, sunset & sunrise, are considered as part of day & night, respectively.
  # 
  #   "time_from_midnight op value":
  #     The absolute time in ticks away from midnight. Value must be 0 to 12000.
  # 
  #   "world_time op value":
  #     The total time the world has existed, in ticks. For reference, each day cycle is 24000 ticks and each lunar
  #       cycle is 192000 ticks.
  # 
  #   "chunk_time op value":
  #     The total time the chunk has been loaded, in ticks. For reference, each day cycle is 24000 ticks and each
  #       lunar cycle is 192000 ticks.
  # 
  #   "apocalypse_difficulty op value":
  #     The Apocalypse Rebooted mod's difficulty (scale depends on your config). This is based on the nearest player's
  #       current difficulty level. If no player exists, or the mod is not installed, it will never match any condition.
  # 
  #   "apocalypse_difficulty_or_time op value":
  #     The Apocalypse Rebooted mod's difficulty (scale depends on your config). If the mod is not installed, this is
  #       instead treated like a "world_time" condition.
