cave adjustments

This commit is contained in:
jshipsey 2021-06-05 18:24:31 -04:00 committed by Marcel Märtens
parent b03af3b712
commit 0c550516a1
98 changed files with 487 additions and 297 deletions

View File

@ -148,6 +148,11 @@
secondary: "common.abilities.custom.quadmedbasic.triplestrike",
abilities: [],
),
Custom("Basilisk"): (
primary: "common.abilities.custom.basilisk.singlestrike",
secondary: "common.abilities.custom.basilisk.triplestrike",
abilities: [],
),
Custom("Quad Low Ranged"): (
primary: "common.abilities.custom.quadlowranged.singlestrike",
secondary: "common.abilities.custom.quadlowranged.firebomb",

View File

@ -0,0 +1,27 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 130,
damage_increase: 0,
base_poise_damage: 28,
poise_damage_increase: 0,
knockback: 3.0,
range: 3.0,
angle: 60.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.07,
base_recover_duration: 0.4,
forward_movement: 3.0,
damage_kind: Crushing,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.6,
)

View File

@ -0,0 +1,57 @@
ComboMelee(
stage_data: [
(
stage: 1,
base_damage: 100,
damage_increase: 0,
base_poise_damage: 15,
poise_damage_increase: 0,
knockback: 7.0,
range: 2.8,
angle: 30.0,
base_buildup_duration: 0.65,
base_swing_duration: 0.07,
base_recover_duration: 0.3,
forward_movement: 2.0,
damage_kind: Crushing,
),
(
stage: 2,
base_damage: 100,
damage_increase: 0,
base_poise_damage: 18,
poise_damage_increase: 0,
knockback: 7.0,
range: 2.8,
angle: 30.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.07,
base_recover_duration: 0.3,
forward_movement: 1.5,
damage_kind: Crushing,
),
(
stage: 3,
base_damage: 100,
damage_increase: 0,
base_poise_damage: 20,
poise_damage_increase: 0,
knockback: 7.0,
range: 2.8,
angle: 30.0,
base_buildup_duration: 0.4,
base_swing_duration: 0.07,
base_recover_duration: 0.3,
forward_movement: 1.5,
damage_kind: Crushing,
),
],
initial_energy_gain: 0,
max_energy_gain: 0,
energy_increase: 0,
speed_increase: 0.0,
max_speed_increase: 0.0,
scales_from_combo: 0,
is_interruptible: false,
ori_modifier: 0.65,
)

View File

@ -0,0 +1,3 @@
[
(1, Orb),
]

View File

@ -0,0 +1,10 @@
[
(20, Velorite),
(30, VeloriteFrag),
(5, CaveMushroom),
(16, SapphireSmall),
(12, EmeraldSmall),
(15, Cobalt),
(40, Coal),
(10, RubySmall),
]

View File

@ -1,15 +1,6 @@
[
(30, Velorite),
(40, VeloriteFrag),
(70, ShortGrass),
(10, CaveMushroom),
(10, AmethystSmall),
(10, TopazSmall),
(16, SapphireSmall),
(60, CrystalHigh),
(12, EmeraldSmall),
(10, RubySmall),
(8, DiamondSmall),
(5, Chest),
(15, Crate),
(10, CeilingMushroom),
(6, Liana),
(7, CrystalHigh),
]

View File

@ -1,21 +1,15 @@
[
(30, Velorite),
(40, VeloriteFrag),
(70, ShortGrass),
(10, CaveMushroom),
(30, Mushroom),
(10, AmethystSmall),
(10, TopazSmall),
(16, SapphireSmall),
(60, CrystalLow),
(12, EmeraldSmall),
(30, Cobalt),
(10, Bloodstone),
(5, Cobalt),
(40, Coal),
(60, Iron),
(10, Silver),
(6, Gold),
(70, Iron),
(10, RubySmall),
(8, DiamondSmall),
(5, Chest),
(15, Crate),
]

View File

@ -1,5 +1,4 @@
[
(120, Liana),
(30, AmethystSmall),
(15, TopazSmall),
(3, Liana),
(1, CeilingMushroom),
]

View File

@ -1,7 +1,8 @@
[
(110, Stones),
(150, ShortGrass),
(120, CaveMushroom),
(50, CaveMushroom),
(50, Mushroom),
(30, AmethystSmall),
(15, TopazSmall),
(15, Tin),

View File

@ -19,7 +19,6 @@ loot_tables: [
(1.0, true, "common.loot_tables.armor.twigs"),
(1.0, true, "common.loot_tables.armor.twigsflowers"),
(1.0, true, "common.loot_tables.armor.twigsleaves"),
(0.075, false, "common.loot_tables.armor.cultist"),
// Materials
(7.5, true, "common.loot_tables.materials.common"),
(8.0, true, "common.loot_tables.materials.underground"),
@ -29,7 +28,7 @@ loot_tables: [
(0.2, true, "common.loot_tables.food.prepared"),
// TODO: Change consumables and split them up
(1.0, true, "common.loot_tables.consumable.default"),
(10.5, true, "common.loot_tables.trading"),
(10.5, false, "common.loot_tables.trading"),
],
// this is the amount of that good the most common item represents
// so basically this table balances the goods against each other (higher=less valuable)

View File

@ -4,7 +4,7 @@ ItemDef(
kind: Armor((
kind: Chest("Leather"),
stats: (
protection: Normal(48.0),
protection: Normal(14.0),
poise_resilience: Normal(0.0),
energy_max: 0,
energy_recovery: 0.0,

View File

@ -0,0 +1,9 @@
ItemDef(
name: "Rugged Hide",
description: "A durable pelt, favored by leatherworkers.",
kind: Ingredient(
kind: "RuggedHide",
),
quality: Common,
tags: [Material((material: Leather))],
)

View File

@ -0,0 +1,9 @@
ItemDef(
name: "Rigid Leather",
description: "Light but layered, perfect for protection.",
kind: Ingredient(
kind: "RigidLeather",
),
quality: Common,
tags: [BaseMaterial, Leather],
)

View File

@ -5,5 +5,5 @@ ItemDef(
kind: "SimpleLeather",
),
quality: Common,
tags: [BaseMaterial],
tags: [BaseMaterial, Leather],
)

View File

@ -5,5 +5,5 @@ ItemDef(
kind: "ThickLeather",
),
quality: Common,
tags: [BaseMaterial],
tags: [BaseMaterial, Leather],
)

View File

@ -0,0 +1,19 @@
ItemDef(
name: "Basilisk",
description: "testing123",
kind: Tool((
kind: Natural,
hands: Two,
stats: Direct((
equip_time_secs: 0.01,
power: 1.0,
poise_strength: 1.0,
speed: 1.0,
crit_chance: 0.0625,
crit_mult: 1.9142857,
)),
)),
quality: Low,
tags: [],
ability_spec: Some(Custom("Basilisk")),
)

View File

@ -0,0 +1,15 @@
ItemDef(
name: "Any leather",
description: "Leathers tanned from hides.",
kind: TagExamples(
item_ids: [
"common.items.crafting_ing.leather.rigid_leather",
"common.items.crafting_ing.leather.thick_leather",
"common.items.crafting_ing.leather.simple_leather",
],
),
quality: Common,
tags: [],
)

View File

@ -3,13 +3,13 @@ ItemDef(
description: "Ingots made from various metals.",
kind: TagExamples(
item_ids: [
"common.items.mineral.ingot.bloodsteel_ingot",
"common.items.mineral.ingot.bronze_ingot",
"common.items.mineral.ingot.cobalt_ingot",
"common.items.mineral.ingot.copper_ingot",
"common.items.mineral.ingot.iron_ingot",
"common.items.mineral.ingot.steel_ingot",
"common.items.mineral.ingot.tin_ingot",
"common.items.mineral.ingot.bloodsteel",
"common.items.mineral.ingot.bronze",
"common.items.mineral.ingot.cobalt",
"common.items.mineral.ingot.copper",
"common.items.mineral.ingot.iron",
"common.items.mineral.ingot.steel",
"common.items.mineral.ingot.tin",
],
),
quality: Common,

View File

@ -3,6 +3,10 @@ ItemDef(
description: "Cloths spun from plant material.",
kind: TagExamples(
item_ids: [
"common.items.crafting_ing.cloth.linen",
"common.items.crafting_ing.cloth.wool",
"common.items.crafting_ing.cloth.silk",
"common.items.crafting_ing.cloth.lifecloth",
"common.items.crafting_ing.cloth.moonweave",
"common.items.crafting_ing.cloth.sunsilk",
],

View File

@ -1,5 +1,5 @@
ItemDef(
name: "Iron Pickaxe",
name: "Steel Pickaxe",
description: "Strike the earth!",
kind: Tool((
kind: Pick,

View File

@ -0,0 +1,18 @@
ItemDef(
name: "Stone Pickaxe",
description: "Strike the earth!",
kind: Tool((
kind: Pick,
hands: Two,
stats: Direct((
equip_time_secs: 0.25,
power: 0.75,
poise_strength: 0.25,
speed: 0.5,
crit_chance: 0.0,
crit_mult: 1.0,
)),
)),
quality: Low,
tags: [CraftingTool],
)

View File

@ -1,8 +0,0 @@
[
(1.0, Item("common.items.armor.cultist.belt")),
(1.0, Item("common.items.armor.cultist.chest")),
(1.0, Item("common.items.armor.cultist.foot")),
(1.0, Item("common.items.armor.cultist.hand")),
(1.0, Item("common.items.armor.cultist.pants")),
(1.0, Item("common.items.armor.cultist.shoulder")),
]

View File

@ -1,6 +1,5 @@
[
(1.0, Item("common.items.food.meat.tough_raw")),
(2.0, Item("common.items.crafting_ing.hide.scales")),
(4.0, LootTable("common.loot_tables.creature.quad_low.generic")),
(2.0, Item("common.items.crafting_ing.animal_misc.sharp_fang")),
]

View File

@ -1,6 +1,5 @@
[
(1.0, Item("common.items.food.meat.tough_raw")),
(4.0, LootTable("common.loot_tables.creature.quad_low.generic")),
(1.0, Item("common.items.crafting_ing.animal_misc.sharp_fang")),
(2.0, Item("common.items.crafting_ing.animal_misc.venom_sac")),
(2.0, Item("common.items.crafting_ing.hide.scales")),
]

View File

@ -1,5 +1,4 @@
[
(1.5, Item("common.items.crafting_ing.animal_misc.grim_eyeball")),
(0.5, Item("common.items.food.meat.beast_large_raw")),
(3.0, Item("common.items.crafting_ing.hide.tough_hide")),
(4.0, LootTable("common.loot_tables.creature.quad_medium.generic")),
]

View File

@ -1,6 +1,4 @@
[
(1.5, Item("common.items.food.meat.beast_small_raw")),
(0.5, Item("common.items.food.meat.beast_large_raw")),
(4.0, LootTable("common.loot_tables.creature.quad_medium.generic")),
(2.0, Item("common.items.crafting_ing.animal_misc.claw")),
(3.0, Item("common.items.crafting_ing.hide.tough_hide")),
]

View File

@ -1,5 +1,4 @@
[
(0.5, Item("common.items.food.meat.beast_large_raw")),
(4.0, LootTable("common.loot_tables.creature.quad_medium.generic")),
(2.0, Item("common.items.crafting_ing.animal_misc.sharp_fang")),
(3.0, Item("common.items.crafting_ing.hide.tough_hide")),
]

View File

@ -0,0 +1,5 @@
[
(1.5, Item("common.items.food.meat.beast_small_raw")),
(0.5, Item("common.items.food.meat.beast_large_raw")),
(3.0, Item("common.items.crafting_ing.hide.tough_hide")),
]

View File

@ -1,5 +1,5 @@
[
(1.0, ItemQuantity("common.items.crafting_ing.animal_misc.fur", 1, 3)),
(1.0, Item("common.items.crafting_ing.hide.animal_hide")),
(0.25, LootTable("common.loot_tables.creature.quad_low.generic")),
]

View File

@ -1,3 +1,4 @@
[
(1.0, Item("common.items.crafting_ing.hide.animal_hide")),
(0.25, Item("common.items.food.meat.beast_small_raw")),
]

View File

@ -1,3 +1,4 @@
[
(1.0, ItemQuantity("common.items.crafting_ing.cloth.wool", 2, 5)),
(0.25, Item("common.items.food.meat.beast_small_raw")),
]

View File

@ -1,4 +1,4 @@
[
(1.0, Item("common.items.crafting_ing.hide.plate")),
(1.0, Item("common.items.crafting_ing.hide.rugged_hide")),
(1.0, Item("common.items.crafting_ing.animal_misc.large_horn")),
]

View File

@ -2,10 +2,11 @@
(2.0, LootTable("common.loot_tables.creature.biped_large.mindflayer")),
// miniboss part
// armour
(3.0, LootTable("common.loot_tables.armor.cultist")),
(0.25, Item("common.items.armor.misc.back.dungeon_purple")),
(0.5, Item("common.items.armor.misc.ring.skull")),
// weapons
(1.5, LootTable("common.loot_tables.weapons.cultist")),
(1.5, LootTable("common.loot_tables.weapons.cave")),
(4.0, ItemQuantity("common.items.crafting_ing.hide.dragon_scale", 2, 7)),
]

View File

@ -1,6 +1,5 @@
[
// armor
(3.0, LootTable("common.loot_tables.armor.cultist")),
(0.25, Item("common.items.armor.misc.back.dungeon_purple")),
(0.5, Item("common.items.armor.misc.ring.skull")),
// weapons

View File

@ -1,6 +1,6 @@
// Keep in mind that material stats are multiplied by the form stats, not added (e.g. equip_time_secs is most sensitive to this)
({
"common.items.mineral.ingot.bloodsteel_ingot": (
"common.items.mineral.ingot.bloodsteel": (
equip_time_secs: 1.0,
power: 1.75,
poise_strength: 1.75,
@ -8,7 +8,7 @@
crit_chance: 1.75,
crit_mult: 1.75,
),
"common.items.mineral.ingot.bronze_ingot": (
"common.items.mineral.ingot.bronze": (
equip_time_secs: 1.0,
power: 0.75,
poise_strength: 0.75,
@ -16,7 +16,7 @@
crit_chance: 0.75,
crit_mult: 0.75,
),
"common.items.mineral.ingot.cobalt_ingot": (
"common.items.mineral.ingot.cobalt": (
equip_time_secs: 1.0,
power: 1.5,
poise_strength: 1.5,
@ -24,7 +24,7 @@
crit_chance: 1.5,
crit_mult: 1.5,
),
"common.items.mineral.ingot.copper_ingot": (
"common.items.mineral.ingot.copper": (
equip_time_secs: 1.0,
power: 0.4,
poise_strength: 0.4,
@ -32,7 +32,7 @@
crit_chance: 0.4,
crit_mult: 0.4,
),
"common.items.mineral.ingot.iron_ingot": (
"common.items.mineral.ingot.iron": (
equip_time_secs: 1.0,
power: 1.0,
poise_strength: 1.0,
@ -40,7 +40,7 @@
crit_chance: 1.0,
crit_mult: 1.0,
),
"common.items.mineral.ingot.steel_ingot": (
"common.items.mineral.ingot.steel": (
equip_time_secs: 1.0,
power: 1.25,
poise_strength: 1.25,
@ -48,7 +48,7 @@
crit_chance: 1.25,
crit_mult: 1.25,
),
"common.items.mineral.ingot.tin_ingot": (
"common.items.mineral.ingot.tin": (
equip_time_secs: 1.0,
power: 0.25,
poise_strength: 0.25,

View File

@ -198,6 +198,13 @@
],
craft_sprite: Some(TanningRack),
),
"rigid leather": (
output: ("common.items.crafting_ing.leather.rigid_leather", 1),
inputs: [
(Item("common.items.crafting_ing.hide.rugged_hide"), 1),
],
craft_sprite: Some(TanningRack),
),
"gold ingot": (
output: ("common.items.mineral.ingot.gold", 1),
inputs: [
@ -707,7 +714,7 @@
(Item("common.items.crafting_ing.animal_misc.large_horn"), 1),
(Item("common.items.crafting_ing.cloth.lifecloth"), 1),
(Item("common.items.crafting_ing.hide.plate"), 3),
(Item("common.items.crafting_ing.leather.thick_leather"), 2),
(Item("common.items.crafting_ing.leather.rigid_leather"), 2),
],
craft_sprite: Some(CraftingBench),
),
@ -716,7 +723,7 @@
inputs: [
(Item("common.items.crafting_ing.cloth.lifecloth"), 1),
(Item("common.items.crafting_ing.hide.plate"), 2),
(Item("common.items.crafting_ing.leather.thick_leather"), 2),
(Item("common.items.crafting_ing.leather.rigid_leather"), 2),
],
craft_sprite: Some(CraftingBench),
),
@ -726,7 +733,7 @@
(Item("common.items.crafting_ing.animal_misc.large_horn"), 1),
(Item("common.items.crafting_ing.cloth.lifecloth"), 2),
(Item("common.items.crafting_ing.hide.plate"), 10),
(Item("common.items.crafting_ing.leather.thick_leather"), 4),
(Item("common.items.crafting_ing.leather.rigid_leather"), 4),
],
craft_sprite: Some(CraftingBench),
),
@ -735,7 +742,7 @@
inputs: [
(Item("common.items.crafting_ing.cloth.lifecloth"), 1),
(Item("common.items.crafting_ing.hide.plate"), 3),
(Item("common.items.crafting_ing.leather.thick_leather"), 2),
(Item("common.items.crafting_ing.leather.rigid_leather"), 2),
],
craft_sprite: Some(CraftingBench),
),
@ -744,7 +751,7 @@
inputs: [
(Item("common.items.crafting_ing.cloth.lifecloth"), 1),
(Item("common.items.crafting_ing.hide.plate"), 3),
(Item("common.items.crafting_ing.leather.thick_leather"), 2),
(Item("common.items.crafting_ing.leather.rigid_leather"), 2),
],
craft_sprite: Some(CraftingBench),
),
@ -754,7 +761,7 @@
(Item("common.items.crafting_ing.animal_misc.large_horn"), 1),
(Item("common.items.crafting_ing.cloth.lifecloth"), 2),
(Item("common.items.crafting_ing.hide.plate"), 8),
(Item("common.items.crafting_ing.leather.thick_leather"), 4),
(Item("common.items.crafting_ing.leather.rigid_leather"), 4),
],
craft_sprite: Some(CraftingBench),
),
@ -764,7 +771,7 @@
(Item("common.items.crafting_ing.animal_misc.large_horn"), 2),
(Item("common.items.crafting_ing.cloth.lifecloth"), 2),
(Item("common.items.crafting_ing.hide.plate"), 8),
(Item("common.items.crafting_ing.leather.thick_leather"), 6),
(Item("common.items.crafting_ing.leather.rigid_leather"), 6),
],
craft_sprite: Some(CraftingBench),
),
@ -774,6 +781,7 @@
inputs: [
(Item("common.items.mineral.ingot.bloodsteel"), 2),
(Item("common.items.crafting_ing.hide.dragon_scale"), 3),
(Item("common.items.crafting_ing.leather.rigid_leather"), 1),
(Item("common.items.crafting_ing.hide.scales"), 2),
],
craft_sprite: Some(CraftingBench),
@ -792,6 +800,7 @@
inputs: [
(Item("common.items.mineral.ingot.bloodsteel"), 3),
(Item("common.items.crafting_ing.hide.dragon_scale"), 10),
(Item("common.items.crafting_ing.leather.rigid_leather"), 2),
(Item("common.items.crafting_ing.hide.scales"), 4),
],
craft_sprite: Some(CraftingBench),
@ -819,6 +828,7 @@
inputs: [
(Item("common.items.mineral.ingot.bloodsteel"), 3),
(Item("common.items.crafting_ing.hide.dragon_scale"), 8),
(Item("common.items.crafting_ing.leather.rigid_leather"), 1),
(Item("common.items.crafting_ing.hide.scales"), 4),
],
craft_sprite: Some(CraftingBench),
@ -828,6 +838,7 @@
inputs: [
(Item("common.items.mineral.ingot.bloodsteel"), 3),
(Item("common.items.crafting_ing.hide.dragon_scale"), 8),
(Item("common.items.crafting_ing.leather.rigid_leather"), 2),
(Item("common.items.crafting_ing.hide.scales"), 6),
],
craft_sprite: Some(CraftingBench),
@ -1676,12 +1687,20 @@
(Item("common.items.crafting_tools.sewing_set"), 0),
],
),
"pickaxe": (
output: ("common.items.tool.pick", 1),
"tin pickaxe": (
output: ("common.items.tool.pickaxe_stone", 1),
inputs: [
(Item("common.items.crafting_ing.cloth.linen"), 1), // TODO: Replace with plant fiber when obtainable
(Item("common.items.crafting_ing.stones"), 5), // TODO: Replace with iron ingots when obtainable
(Item("common.items.crafting_ing.twigs"), 4),
(Item("common.items.crafting_ing.cloth.linen"), 1),
(Item("common.items.crafting_ing.stones"), 5),
(Item("common.items.tool.craftsman_hammer"), 0),
],
craft_sprite: Some(Anvil),
),
"steel pickaxe": (
output: ("common.items.tool.pickaxe_steel", 1),
inputs: [
(Item("common.items.crafting_ing.cloth.lifecloth"), 1),
(Item("common.items.mineral.ingot.steel"), 5),
(Item("common.items.tool.craftsman_hammer"), 0),
],
craft_sprite: Some(Anvil),

View File

@ -99,10 +99,10 @@ Is the client up to date?"#,
"common.stats.crit_mult": "Crit Mult",
"common.stats.armor": "Armor",
"common.stats.poise_res":"Stun Res",
"common.stats.energy_max":"Max Energy",
"common.stats.energy_recovery":"Energy Recovery",
"common.stats.crit_power":"Crit Power",
"common.stats.stealth":"Stealth",
"common.stats.energy_max": "Max Energy",
"common.stats.energy_recovery": "Energy Reward",
"common.stats.crit_power": "Crit Power",
"common.stats.stealth": "Stealth",
"common.stats.slots": "Slots",
"common.material.metal": "Metal",

View File

@ -33,7 +33,7 @@
),
Tool("TanningRack"): VoxTrans(
"voxel.object.tanning_rack",
(0.0, 0.0, 0.0), (-50.0, 40.0, 20.0), 1.0,
(0.0, 0.0, 0.0), (-90.0, 20.0, 0.0), 1.0,
),
// Weapons
// Diary Example Images
@ -1071,10 +1071,14 @@
(0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
),
// Picks
Tool("common.items.tool.pick"): VoxTrans(
Tool("common.items.tool.pickaxe_stone"): VoxTrans(
"voxel.weapon.tool.pickaxe_green-0",
(0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.0,
),
Tool("common.items.tool.pickaxe_steel"): VoxTrans(
"voxel.weapon.tool.pickaxe_green-1",
(0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.0,
),
// Other
Utility(Coins): VoxTrans(
"voxel.object.v-coin",
@ -2469,6 +2473,10 @@
"voxel.sprite.crafting_ing.hide.tough_hide",
(0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9,
),
Ingredient("RuggedHide"): VoxTrans(
"voxel.sprite.crafting_ing.hide.rugged_hide",
(0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9,
),
Ingredient("SimpleLeather"): VoxTrans(
"voxel.sprite.crafting_ing.leather.simple_leather",
(0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9,
@ -2477,6 +2485,14 @@
"voxel.sprite.crafting_ing.leather.thick_leather",
(0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9,
),
Ingredient("RigidLeather"): VoxTrans(
"voxel.sprite.crafting_ing.leather.rigid_leather",
(0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9,
),
Ingredient("TrollLeather"): VoxTrans(
"voxel.sprite.crafting_ing.hide.troll_hide",
(0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9,
),
Ingredient("LeatherStrips"): VoxTrans(
"voxel.sprite.crafting_ing.leather.leather_strips",
(0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9,
@ -2577,6 +2593,10 @@
"voxel.sprite.crafting_ing.cloth.linen_red",
(0.0, 0.0, 0.0), (-65.0, 0.0, 20.0), 0.9,
),
Ingredient("StickyThread"): VoxTrans(
"voxel.sprite.crafting_ing.sticky_thread",
(0.0, 0.0, 0.0), (-65.0, 0.0, 20.0), 0.9,
),
Ingredient("SilverIngot"): VoxTrans(
"voxel.sprite.mineral.ingot.silver",
(0.0, 0.0, 0.0), (70.0, 30.0, 170.0), 0.85,
@ -2652,9 +2672,6 @@
Ingredient("Honey"): Png(
"element.items.item_honey",
),
Ingredient("TrollLeather"): Png(
"element.items.item_leather_green",
),
Ingredient("MortarPestle"): Png(
"element.items.item_mortarpestlecoco",
),

View File

@ -49,7 +49,7 @@ const float PERSISTENT_AMBIANCE = 1.0 / 32.0;// 1.0 / 80; // 1.0 / 512; // 0.001
// Glow from static light sources
// Allowed to be > 1 due to HDR
const vec3 GLOW_COLOR = vec3(3.0, 0.9, 0.05);
const vec3 GLOW_COLOR = vec3(0.89, 0.95, 0.52);
// Calculate glow from static light sources, + some noise for flickering.
// TODO: Optionally disable the flickering for performance?

View File

@ -70,7 +70,7 @@ const int LASER = 28;
const int BUBBLES = 29;
const int WATER = 30;
const int ICE_SPIKES = 31;
const int DUST = 32;
const int DRIP = 32;
// meters per second squared (acceleration)
const float earth_gravity = 9.807;
@ -532,7 +532,7 @@ void main() {
spin_in_axis(vec3(1,0,0),0)
);
break;
case DUST:
case DRIP:
attr = Attr(
linear_motion(
vec3(0),

View File

@ -975,10 +975,14 @@
color: None
),
// Picks
"common.items.tool.pick": (
"common.items.tool.pickaxe_stone": (
vox_spec: ("weapon.tool.pickaxe_green-0", (-1.5, -7.5, -4.0)),
color: None
),
"common.items.tool.pickaxe_steel": (
vox_spec: ("weapon.tool.pickaxe_green-1", (-1.5, -9.5, -4.0)),
color: None
),
// Misc
"common.items.debug.admin_stick": (
vox_spec: ("weapon.tool.broom_belzeshrub_purple", (-3.0, -4.0, -4.0)),

View File

@ -149,7 +149,7 @@
color: None
),
"Bloodsteel":(
vox_spec: ("armor.mail.bloodsteel.belt", (-4.5, -3.5, 1.0)),
vox_spec: ("armor.mail.bloodsteel.belt", (-5.0, -3.5, 1.0)),
color: None
),
"Orichalcum":(

View File

@ -219,7 +219,7 @@
color: None
),
"Bloodsteel": (
vox_spec: ("armor.mail.bloodsteel.chest", (-7.5, -4.0, 1.0)),
vox_spec: ("armor.mail.bloodsteel.chest", (-8.0, -4.0, 1.0)),
color: None
),
"Orichalcum": (

View File

@ -342,11 +342,11 @@
),
"Bloodsteel": (
left: (
vox_spec: ("armor.mail.bloodsteel.hand", (-3.5, -1.0, -4.0)),
vox_spec: ("armor.mail.bloodsteel.hand", (-5.0, -1.0, -4.0)),
color: None
),
right: (
vox_spec: ("armor.mail.bloodsteel.hand", (-0.5, -1.0, -4.0)),
vox_spec: ("armor.mail.bloodsteel.hand", (-1.0, -1.0, -4.0)),
color: None
)
),

View File

@ -177,7 +177,7 @@
color: None
),
"Bloodsteel": (
vox_spec: ("armor.mail.bloodsteel.pants", (-6.5, -4.0, 0.5)),
vox_spec: ("armor.mail.bloodsteel.pants", (-7.0, -4.0, 0.5)),
color: None
),
"Orichalcum": (

View File

@ -427,7 +427,7 @@
color: None
),
right: (
vox_spec: ("armor.mail.bloodsteel.shoulder", (-1.5, -5.0, -3.0)),
vox_spec: ("armor.mail.bloodsteel.shoulder", (-2.5, -5.0, -3.0)),
color: None
)
),

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -41,7 +41,6 @@ Window4: Some((
],
wind_sway: 0.0,
)),
// Cacti
LargeCactus: Some((
variations: [
@ -108,7 +107,6 @@ ShortFlatCactus: Some((
],
wind_sway: 0.0,
)),
// Flowers
BlueFlower: Some((
variations: [
@ -325,8 +323,6 @@ Sunflower: Some((
],
wind_sway: 0.1,
)),
// Grass
LongGrass: Some((
variations: [
@ -448,7 +444,6 @@ LargeGrass: Some((
],
wind_sway: 0.5,
)),
// Fruit
Apple: Some((
variations: [
@ -460,7 +455,6 @@ Apple: Some((
],
wind_sway: 0.0,
)),
// Mushrooms
Mushroom: Some((
variations: [
@ -522,44 +516,138 @@ Mushroom: Some((
],
wind_sway: 0.1,
)),
// Cave Mushrooms
CaveMushroom: Some((
variations: [
(
model: "voxygen.voxel.sprite.mushrooms.mushroom-11",
model: "voxygen.voxel.sprite.cave.mushroom-0",
offset: (-8.0, -8.0, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mushrooms.mushroom-12",
model: "voxygen.voxel.sprite.cave.mushroom-1",
offset: (-5.0, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mushrooms.mushroom-13",
model: "voxygen.voxel.sprite.cave.mushroom-2",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mushrooms.mushroom-14",
model: "voxygen.voxel.sprite.cave.mushroom-3",
offset: (-2.5, -2.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mushrooms.mushroom-15",
model: "voxygen.voxel.sprite.cave.mushroom-4",
offset: (-1.5, -1.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mushrooms.mushroom-16",
model: "voxygen.voxel.sprite.cave.mushroom-5",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.mushroom-6",
offset: (-8.5, -8.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.mushroom-7",
offset: (-11.5, -11.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.mushroom-8",
offset: (-12.5, -15.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Ceiling Mushrooms
CeilingMushroom: Some((
variations: [
(
model: "voxygen.voxel.sprite.cave.ceiling.mushroom-0",
offset: (-8.0, -8.0, -22.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.mushroom-1",
offset: (-8.5, -8.5, -9.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.mushroom-2",
offset: (-11.5, -11.5, -17.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.mold-0",
offset: (-5.5, -5.5, 0.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.mold-1",
offset: (-5.5, -5.5, -7.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.mold-2",
offset: (-5.5, -5.5, -7.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.mold-3",
offset: (-5.5, -5.5, 2.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.mold-4",
offset: (-2.0, -2.0, -49.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.mold-5",
offset: (-2.0, -2.0, -79.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.mold-6",
offset: (-2.0, -2.0, -79.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
Orb: Some((
variations: [
(
model: "voxygen.voxel.sprite.cave.ceiling.orb-0",
offset: (-8.0, -8.0, -79.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.orb-1",
offset: (-8.0, -8.0, -20.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.orb-2",
offset: (-8.0, -8.0, -65.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.cave.ceiling.orb-3",
offset: (-8.0, -8.0, -44.0),
lod_axes: (1.0, 1.0, 1.0),
),
],
wind_sway: 0.0,
)),
// Lianas,
Liana: Some((
variations: [
@ -576,7 +664,6 @@ Liana: Some((
],
wind_sway: 0.0,
)),
// Velorite
Velorite: Some((
variations: [
@ -643,7 +730,6 @@ VeloriteFrag: Some((
],
wind_sway: 0.0,
)),
// Chests
Chest: Some((
variations: [
@ -670,7 +756,6 @@ Chest: Some((
],
wind_sway: 0.0,
)),
// Dungeon Chests
DungeonChest0: Some((
variations: [
@ -732,7 +817,6 @@ DungeonChest5: Some((
],
wind_sway: 0.0,
)),
// Welwitch
Welwitch: Some((
variations: [
@ -744,7 +828,6 @@ Welwitch: Some((
],
wind_sway: 0.1,
)),
// Pumpkins
Pumpkin: Some((
variations: [
@ -786,7 +869,6 @@ Pumpkin: Some((
],
wind_sway: 0.0,
)),
// Lingonberries
LingonBerry: Some((
variations: [
@ -808,7 +890,6 @@ LingonBerry: Some((
],
wind_sway: 0.0,
)),
// Leafy Plants
LeafyPlant: Some((
variations: [
@ -865,7 +946,6 @@ LeafyPlant: Some((
],
wind_sway: 0.4,
)),
// Ferns
Fern: Some((
variations: [
@ -937,7 +1017,6 @@ Fern: Some((
],
wind_sway: 0.4,
)),
// Savanna Flora
SavannaGrass: Some((
variations: [
@ -1079,7 +1158,6 @@ SavannaBush: Some((
],
wind_sway: 0.1,
)),
// Dead Bush
DeadBush: Some((
variations: [
@ -1106,7 +1184,6 @@ DeadBush: Some((
],
wind_sway: 0.1,
)),
// Blueberries
// NOTE: Why are these commented out?
Blueberry: None/* (
@ -1159,7 +1236,6 @@ Blueberry: None/* (
],
wind_sway: 0.0,
)*/,
// Ember
Ember: Some((
variations: [
@ -1171,7 +1247,6 @@ Ember: Some((
],
wind_sway: 0.8,
)),
// Corn
Corn: Some((
variations: [
@ -1208,7 +1283,6 @@ Corn: Some((
],
wind_sway: 0.4,
)),
// Yellow Wheat
WheatYellow: Some((
variations: [
@ -1265,7 +1339,6 @@ WheatYellow: Some((
],
wind_sway: 0.4,
)),
// Green Wheat
WheatGreen: Some((
variations: [
@ -1322,7 +1395,6 @@ WheatGreen: Some((
],
wind_sway: 0.4,
)),
// Cabbage
Cabbage: Some((
variations: [
@ -1344,7 +1416,6 @@ Cabbage: Some((
],
wind_sway: 0.0,
)),
// Flax
Flax: Some((
variations: [
@ -1381,7 +1452,6 @@ Flax: Some((
],
wind_sway: 0.4,
)),
// Carrot
Carrot: Some((
variations: [
@ -1418,7 +1488,6 @@ Carrot: Some((
],
wind_sway: 0.1,
)),
// Tomato
Tomato: Some((
variations: [
@ -1450,7 +1519,6 @@ Tomato: Some((
],
wind_sway: 0.0,
)),
// Radish
Radish: Some((
variations: [
@ -1482,7 +1550,6 @@ Radish: Some((
],
wind_sway: 0.1,
)),
// Turnip
Turnip: Some((
variations: [
@ -1519,7 +1586,6 @@ Turnip: Some((
],
wind_sway: 0.1,
)),
// Coconut
Coconut: Some((
variations: [
@ -1531,7 +1597,6 @@ Coconut: Some((
],
wind_sway: 0.0,
)),
// Scarecrow
Scarecrow: Some((
variations: [
@ -1543,7 +1608,6 @@ Scarecrow: Some((
],
wind_sway: 0.0,
)),
// Street Light
StreetLamp: Some((
variations: [
@ -1566,7 +1630,6 @@ StreetLampTall: Some((
],
wind_sway: 0.0,
)),
// Door
Door: Some((
variations: [
@ -1578,7 +1641,6 @@ Door: Some((
],
wind_sway: 0.0,
)),
// Bed
Bed: Some((
variations: [
@ -1590,7 +1652,6 @@ Bed: Some((
],
wind_sway: 0.0,
)),
// Bench
Bench: Some((
variations: [
@ -1602,7 +1663,6 @@ Bench: Some((
],
wind_sway: 0.0,
)),
// Chair
ChairSingle: Some((
variations: [
@ -1634,7 +1694,6 @@ ChairDouble: Some((
],
wind_sway: 0.0,
)),
// CoatRack
CoatRack: Some((
variations: [
@ -1651,7 +1710,6 @@ CoatRack: Some((
],
wind_sway: 0.0,
)),
// Crate
Crate: Some((
variations: [
@ -1693,7 +1751,6 @@ Crate: Some((
],
wind_sway: 0.0,
)),
// DrawerLarge
DrawerLarge: Some((
variations: [
@ -1710,7 +1767,6 @@ DrawerLarge: Some((
],
wind_sway: 0.0,
)),
// DrawerMedium
DrawerMedium: Some((
variations: [
@ -1727,7 +1783,6 @@ DrawerMedium: Some((
],
wind_sway: 0.0,
)),
// DrawerSmall
DrawerSmall: Some((
variations: [
@ -1744,7 +1799,6 @@ DrawerSmall: Some((
],
wind_sway: 0.0,
)),
// DungeonWallDecor
DungeonWallDecor: Some((
variations: [
@ -1801,7 +1855,6 @@ DungeonWallDecor: Some((
],
wind_sway: 0.0,
)),
// HangingBasket
HangingBasket: Some((
variations: [
@ -1818,7 +1871,6 @@ HangingBasket: Some((
],
wind_sway: 0.0,
)),
// HangingSign
HangingSign: Some((
variations: [
@ -1830,7 +1882,6 @@ HangingSign: Some((
],
wind_sway: 0.0,
)),
// WallLamp
WallLamp: Some((
variations: [
@ -1842,7 +1893,6 @@ WallLamp: Some((
],
wind_sway: 0.0,
)),
// WallLampSmall
WallLampSmall: Some((
variations: [
@ -1854,7 +1904,6 @@ WallLampSmall: Some((
],
wind_sway: 0.0,
)),
// WallSconce
WallSconce: Some((
variations: [
@ -1866,7 +1915,6 @@ WallSconce: Some((
],
wind_sway: 0.0,
)),
// Planter
Planter: Some((
variations: [
@ -1908,7 +1956,6 @@ Planter: Some((
],
wind_sway: 0.0,
)),
// Shelf
Shelf: Some((
variations: [
@ -1925,7 +1972,6 @@ Shelf: Some((
],
wind_sway: 0.0,
)),
// TableSide
TableSide: Some((
variations: [
@ -1942,7 +1988,6 @@ TableSide: Some((
],
wind_sway: 0.0,
)),
// TableDining
TableDining: Some((
variations: [
@ -1959,7 +2004,6 @@ TableDining: Some((
],
wind_sway: 0.0,
)),
// TableDouble
TableDouble: Some((
variations: [
@ -1972,7 +2016,6 @@ TableDouble: Some((
],
wind_sway: 0.0,
)),
// WardrobeDouble
WardrobeDouble: Some((
variations: [
@ -1989,7 +2032,6 @@ WardrobeDouble: Some((
],
wind_sway: 0.0,
)),
// WardrobeSingle
WardrobeSingle: Some((
variations: [
@ -2006,8 +2048,6 @@ WardrobeSingle: Some((
],
wind_sway: 0.0,
)),
// Pot
Pot: Some((
variations: [
@ -2024,7 +2064,6 @@ Pot: Some((
],
wind_sway: 0.0,
)),
// Stones
Stones: Some((
variations: [
@ -2046,7 +2085,6 @@ Stones: Some((
],
wind_sway: 0.0,
)),
// Twigs
Twigs: Some((
variations: [
@ -2068,7 +2106,6 @@ Twigs: Some((
],
wind_sway: 0.0,
)),
// Drop Gate Parts
DropGate: Some((
variations: [
@ -2090,7 +2127,6 @@ DropGateBottom: Some((
],
wind_sway: 0.0,
)),
// Snow covered Grass
GrassSnow: Some((
variations: [
@ -2147,7 +2183,6 @@ GrassSnow: Some((
],
wind_sway: 0.2,
)),
// Reed
Reed: Some((
variations: [
@ -2179,7 +2214,6 @@ Reed: Some((
],
wind_sway: 0.3,
)),
// Beehive
Beehive: Some((
variations: [
@ -2984,41 +3018,6 @@ Gold: Some((
)),
CrystalHigh: Some((
variations: [
(
model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.blue-0",
offset: (-8.5, -9.0, -7.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.blue-1",
offset: (-8.0, -8.0, -10.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.blue-2",
offset: (-11.5, -12.5, -9.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.purple-0",
offset: (-8.5, -9.0, -7.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.purple-1",
offset: (-8.0, -8.0, -10.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.purple-2",
offset: (-11.5, -12.5, -9.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.purple-3",
offset: (-11.5, -12.5, -49.0),
lod_axes: (1.0, 1.0, 1.0),
),
(
model: "voxygen.voxel.sprite.mineral.deposit.crystal.ceiling.green-0",
offset: (-8.5, -9.0, -7.0),

Binary file not shown.

View File

@ -37,7 +37,7 @@ fn armor_stats() -> Result<(), Box<dyn Error>> {
"Protection",
"Poise Resilience",
"Max Energy",
"Energy Recovery",
"Energy Reward",
"Crit Power",
"Stealth",
"Description",

View File

@ -124,7 +124,7 @@ fn armor_stats() -> Result<(), Box<dyn Error>> {
};
let energy_recovery = if let Some(energy_recovery_raw) =
record.get(headers["Energy Recovery"])
record.get(headers["Energy Reward"])
{
energy_recovery_raw.parse().unwrap()
} else {

View File

@ -365,6 +365,7 @@ impl Body {
quadruped_low::Species::Monitor => Vec3::new(1.0, 2.3, 1.5),
quadruped_low::Species::Pangolin => Vec3::new(1.0, 2.0, 1.3),
quadruped_low::Species::Rocksnapper => Vec3::new(1.0, 1.6, 2.9),
quadruped_low::Species::Basilisk => Vec3::new(1.0, 1.6, 2.9),
quadruped_low::Species::Salamander => Vec3::new(1.0, 2.4, 1.3),
quadruped_low::Species::Tortoise => Vec3::new(1.0, 1.6, 2.0),
quadruped_low::Species::Basilisk => Vec3::new(1.8, 2.2, 2.9),
@ -510,13 +511,13 @@ impl Body {
quadruped_low::Species::Monitor => 600,
quadruped_low::Species::Asp => 750,
quadruped_low::Species::Tortoise => 900,
quadruped_low::Species::Rocksnapper => 1200,
quadruped_low::Species::Rocksnapper => 1400,
quadruped_low::Species::Pangolin => 400,
quadruped_low::Species::Maneater => 700,
quadruped_low::Species::Sandshark => 900,
quadruped_low::Species::Hakulaq => 500,
quadruped_low::Species::Lavadrake => 1000,
quadruped_low::Species::Basilisk => 1000,
quadruped_low::Species::Lavadrake => 1600,
quadruped_low::Species::Basilisk => 2000,
quadruped_low::Species::Deadwood => 700,
_ => 700,
},

View File

@ -120,7 +120,7 @@ impl Energy {
pub fn compute_energy_reward_mod(inventory: Option<&Inventory>) -> f32 {
use comp::item::ItemKind;
// Starts with a value of 1.0 when summing the stats from each armor piece, and
// defaults to a value of 1.0 if no inventory is equipped
// defaults to a value of 1.0 if no inventory is present
inventory.map_or(1.0, |inv| {
inv.equipped_items()
.filter_map(|item| {
@ -138,7 +138,7 @@ impl Energy {
/// currently equipped items
pub fn compute_max_energy_mod_from_inv(&self, inventory: Option<&Inventory>) -> f32 {
use comp::item::ItemKind;
// Defaults to a value of 0 if no inventory is equipped
// Defaults to a value of 0 if no inventory is present
let energy_increase = inventory.map_or(0, |inv| {
inv.equipped_items()
.filter_map(|item| {

View File

@ -28,11 +28,11 @@ impl Armor {
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
pub struct Stats {
/// Protection is non-linearly transformed to a damage reduction using
/// (prot / (60 + prot))
/// Protection is non-linearly transformed (following summation) to a damage
/// reduction using (prot / (60 + prot))
protection: Protection,
/// Poise protection is non-linearly transformed to a poise damage reduction
/// using (prot / (60 + prot))
/// Poise protection is non-linearly transformed (following summation) to a
/// poise damage reduction using (prot / (60 + prot))
poise_resilience: Protection,
/// Energy max is summed, and then applied directly to the max energy stat
/// (multiply values by 10 for expected results, as energy internally is 10x

View File

@ -223,6 +223,7 @@ impl TagExampleInfo for MaterialTag {
pub enum ItemTag {
MetalIngot,
Textile,
Leather,
Material(MaterialTag),
ModularComponent(ModularComponentTag),
Cultist,
@ -241,6 +242,7 @@ impl TagExampleInfo for ItemTag {
ItemTag::ModularComponent(kind) => kind.name(),
ItemTag::MetalIngot => "metal ingot",
ItemTag::Textile => "textile",
ItemTag::Leather => "leather",
ItemTag::Cultist => "cultist",
ItemTag::Potion => "potion",
ItemTag::Food => "food",
@ -258,6 +260,7 @@ impl TagExampleInfo for ItemTag {
ItemTag::ModularComponent(tag) => tag.exemplar_identifier(),
ItemTag::MetalIngot => "common.items.tag_examples.metal_ingot",
ItemTag::Textile => "common.items.tag_examples.textile",
ItemTag::Leather => "common.items.tag_examples.leather",
ItemTag::Cultist => "common.items.tag_examples.cultist",
ItemTag::Potion => "common.items.tag_examples.placeholder",
ItemTag::Food => "common.items.tag_examples.placeholder",
@ -834,7 +837,6 @@ impl Item {
Some(Item::new_from_asset_expect(match block.get_sprite()? {
SpriteKind::Apple => "common.items.food.apple",
SpriteKind::Mushroom => "common.items.food.mushroom",
SpriteKind::CaveMushroom => "common.items.food.mushroom",
SpriteKind::Velorite => "common.items.mineral.ore.velorite",
SpriteKind::VeloriteFrag => "common.items.mineral.ore.veloritefrag",
SpriteKind::BlueFlower => "common.items.flowers.blue",

View File

@ -228,6 +228,9 @@ pub fn default_main_tool(body: &Body) -> Option<Item> {
quadruped_low::Species::Deadwood => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.quadlowbeam",
)),
quadruped_low::Species::Basilisk => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.basilisk",
)),
_ => Some(Item::new_from_asset_expect(
"common.items.npc_weapons.unique.quadlowbasic",
)),
@ -846,7 +849,7 @@ mod tests {
// Exotic
"common.items.npc_weapons.unique.beast_claws", // Natural
"common.items.weapons.tool.rake", // Farming
"common.items.tool.pick", // Pick
"common.items.tool.pickaxe_stone", // Pick
"common.items.weapons.empty.empty", // Empty
];

View File

@ -174,12 +174,15 @@ impl Block {
SpriteKind::WallLamp
| SpriteKind::WallLampSmall
| SpriteKind::WallSconce
| SpriteKind::FireBowlGround => Some(16),
SpriteKind::Velorite | SpriteKind::VeloriteFrag => Some(6),
| SpriteKind::FireBowlGround
| SpriteKind::Orb => Some(16),
SpriteKind::Velorite | SpriteKind::VeloriteFrag | SpriteKind::CeilingMushroom => {
Some(6)
},
SpriteKind::CaveMushroom
| SpriteKind::CookingPot
| SpriteKind::CrystalHigh
| SpriteKind::CrystalLow => Some(16),
| SpriteKind::CrystalLow => Some(10),
SpriteKind::Amethyst
| SpriteKind::Ruby
| SpriteKind::Sapphire

View File

@ -171,6 +171,8 @@ make_case_elim!(
TanningRack = 0x90,
WildFlax = 0x91,
CrystalLow = 0x92,
CeilingMushroom = 0x93,
Orb = 0x94,
}
);
@ -272,7 +274,6 @@ impl SpriteKind {
SpriteKind::ShortGrass => false,
SpriteKind::Apple => true,
SpriteKind::Mushroom => true,
SpriteKind::CaveMushroom => true,
// SpriteKind::Velorite => true,
// SpriteKind::VeloriteFrag => true,
SpriteKind::Chest => true,

View File

@ -377,7 +377,7 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
| quadruped_small::Species::Turtle => {
"common.loot_tables.creature.quad_small.ooze"
},
_ => "common.loot_tables.creature.quad_small.default",
_ => "common.loot_tables.creature.quad_small.generic",
}
},
Some(Body::QuadrupedMedium(quadruped_medium)) => match quadruped_medium.species {
@ -445,10 +445,10 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
| theropod::Species::Snowraptor
| theropod::Species::Woodraptor
| theropod::Species::Sunlizard => "common.loot_tables.creature.theropod.raptor",
theropod::Species::Archaeos | theropod::Species::Ntouka => {
"common.loot_tables.creature.theropod.horned"
},
_ => "common.loot_tables.creature.theropod.default",
theropod::Species::Archaeos
| theropod::Species::Ntouka
| theropod::Species::Yale => "common.loot_tables.creature.theropod.horned",
_ => "common.loot_tables.creature.theropod.generic",
},
Some(common::comp::Body::Dragon(_)) => "common.loot_tables.creature.dragon",
Some(common::comp::Body::QuadrupedLow(quadruped_low)) => {
@ -456,10 +456,9 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
quadruped_low::Species::Maneater => {
"common.loot_tables.creature.quad_low.maneater"
},
quadruped_low::Species::Lavadrake => {
"common.loot_tables.creature.quad_low.carapace"
},
quadruped_low::Species::Rocksnapper | quadruped_low::Species::Sandshark => {
quadruped_low::Species::Lavadrake
| quadruped_low::Species::Rocksnapper
| quadruped_low::Species::Sandshark => {
"common.loot_tables.creature.quad_low.carapace"
},
quadruped_low::Species::Asp => {
@ -474,7 +473,7 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
quadruped_low::Species::Basilisk => {
"common.loot_tables.creature.quad_low.basilisk"
},
_ => "common.loot_tables.creature.quad_low.default",
_ => "common.loot_tables.creature.quad_low.generic",
}
},
_ => "common.loot_tables.fallback",

View File

@ -36,8 +36,6 @@ SET item_definition_id = 'common.items.armor.hide.rawhide.shoulder' WHERE item_d
UPDATE item
SET item_definition_id = 'common.items.armor.hide.rawhide.foot' WHERE item_definition_id = 'common.items.armor.agile.foot';
UPDATE item
SET item_definition_id = 'common.items.armor.hide.rawhide.foot' WHERE item_definition_id = 'common.items.armor.agile.foot';
UPDATE item
SET item_definition_id = 'common.items.armor.hide.rawhide.back' WHERE item_definition_id = 'common.items.armor.agile.back';
UPDATE item
SET item_definition_id = 'common.items.armor.hide.leather.belt' WHERE item_definition_id = 'common.items.armor.swift.belt';
@ -52,23 +50,19 @@ SET item_definition_id = 'common.items.armor.hide.leather.shoulder' WHERE item_d
UPDATE item
SET item_definition_id = 'common.items.armor.hide.leather.foot' WHERE item_definition_id = 'common.items.armor.swift.foot';
UPDATE item
SET item_definition_id = 'common.items.armor.hide.leather.foot' WHERE item_definition_id = 'common.items.armor.swift.foot';
UPDATE item
SET item_definition_id = 'common.items.armor.hide.leather.head' WHERE item_definition_id = 'common.items.armor.swift.head';
UPDATE item
SET item_definition_id = 'common.items.armor.cloth.druid.belt' WHERE item_definition_id = 'common.items.armor.plate.belt';
SET item_definition_id = 'common.items.armor.mail.iron.belt' WHERE item_definition_id = 'common.items.armor.plate.belt';
UPDATE item
SET item_definition_id = 'common.items.armor.cloth.druid.chest' WHERE item_definition_id = 'common.items.armor.plate.chest';
SET item_definition_id = 'common.items.armor.mail.iron.chest' WHERE item_definition_id = 'common.items.armor.plate.chest';
UPDATE item
SET item_definition_id = 'common.items.armor.cloth.druid.hand' WHERE item_definition_id = 'common.items.armor.plate.hand';
SET item_definition_id = 'common.items.armor.mail.iron.hand' WHERE item_definition_id = 'common.items.armor.plate.hand';
UPDATE item
SET item_definition_id = 'common.items.armor.cloth.druid.pants' WHERE item_definition_id = 'common.items.armor.plate.pants';
SET item_definition_id = 'common.items.armor.mail.iron.pants' WHERE item_definition_id = 'common.items.armor.plate.pants';
UPDATE item
SET item_definition_id = 'common.items.armor.cloth.druid.shoulder' WHERE item_definition_id = 'common.items.armor.plate.shoulder';
SET item_definition_id = 'common.items.armor.mail.iron.shoulder' WHERE item_definition_id = 'common.items.armor.plate.shoulder';
UPDATE item
SET item_definition_id = 'common.items.armor.cloth.druid.foot' WHERE item_definition_id = 'common.items.armor.plate.foot';
UPDATE item
SET item_definition_id = 'common.items.mineral.gem.amethyst' WHERE item_definition_id = 'common.items.crafting_ing.amethyst';
SET item_definition_id = 'common.items.armor.mail.iron.foot' WHERE item_definition_id = 'common.items.armor.plate.foot';
UPDATE item
SET item_definition_id = 'common.items.mineral.gem.amethyst' WHERE item_definition_id = 'common.items.crafting_ing.amethyst';
UPDATE item
@ -176,8 +170,6 @@ SET item_definition_id = 'common.items.mineral.ore.silver' WHERE item_definition
UPDATE item
SET item_definition_id = 'common.items.mineral.ingot.steel' WHERE item_definition_id = 'common.items.crafting_ing.steel_ingot';
UPDATE item
SET item_definition_id = 'common.items.mineral.ore.silver' WHERE item_definition_id = 'common.items.crafting_ing.silver_ore';
UPDATE item
SET item_definition_id = 'common.items.crafting_ing.cloth.sunsilk' WHERE item_definition_id = 'common.items.crafting_ing.sunsilk';
UPDATE item
SET item_definition_id = 'common.items.mineral.ingot.tin' WHERE item_definition_id = 'common.items.crafting_ing.tin_ingot';
@ -200,4 +192,6 @@ SET item_definition_id = 'common.items.mineral.ore.velorite' WHERE item_definiti
UPDATE item
SET item_definition_id = 'common.items.mineral.ore.veloritefrag' WHERE item_definition_id = 'common.items.ore.veloritefrag';
UPDATE item
SET item_definition_id = 'common.items.food.meat.fish_raw' WHERE item_definition_id = 'common.items.food.fish';
SET item_definition_id = 'common.items.food.meat.fish_raw' WHERE item_definition_id = 'common.items.food.fish';
UPDATE item
SET item_definition_id = 'common.items.tool.pickaxe_stone' WHERE item_definition_id = 'common.items.tool.pick';

View File

@ -49,16 +49,16 @@ impl Animation for StandAnimation {
next.shoulder_r.scale = Vec3::one() * 1.1;
next.head.position = Vec3::new(0.0, s_a.head.0, s_a.head.1 + slow * 0.3);
next.head.orientation = Quaternion::rotation_z(head_look.x*0.0)//remove later, either i'll remember or you're doing code review
next.head.orientation = Quaternion::rotation_z(head_look.x)
* Quaternion::rotation_x(impact * -0.02 + head_look.y.abs());
next.chest.position = Vec3::new(0.0, s_a.chest.0, s_a.chest.1 + slow * 0.3 + impact * 0.2);
next.chest.orientation =
Quaternion::rotation_z(head_look.x * 0.6 * 0.0) * Quaternion::rotation_x(impact * 0.04);
Quaternion::rotation_z(head_look.x * 0.6) * Quaternion::rotation_x(impact * 0.04);
next.belt.position = Vec3::new(0.0, s_a.belt.0 + impact * 0.005, s_a.belt.1);
next.belt.orientation = Quaternion::rotation_z(head_look.x * -0.1 * 0.0)
* Quaternion::rotation_x(impact * -0.03);
next.belt.orientation =
Quaternion::rotation_z(head_look.x * -0.1) * Quaternion::rotation_x(impact * -0.03);
next.back.position = Vec3::new(0.0, s_a.back.0, s_a.back.1);

View File

@ -195,6 +195,7 @@ impl CraftingTab {
CraftingTab::Material => {
item.tags().contains(&ItemTag::MetalIngot)
| item.tags().contains(&ItemTag::Textile)
| item.tags().contains(&ItemTag::Leather)
| item.tags().contains(&ItemTag::BaseMaterial)
},
CraftingTab::Bag => item.tags().contains(&ItemTag::Bag),

View File

@ -73,7 +73,7 @@ pub fn kind_text<'a>(kind: &ItemKind, i18n: &'a Localization) -> Cow<'a, str> {
}
}
pub fn materialkind_text<'a>(kind: &MaterialKind, i18n: &'a Localization) -> Cow<'a, str> {
pub fn material_kind_text<'a>(kind: &MaterialKind, i18n: &'a Localization) -> Cow<'a, str> {
match kind {
MaterialKind::Metal { .. } => Cow::Borrowed(i18n.get("common.material.metal")),
MaterialKind::Wood { .. } => Cow::Borrowed(i18n.get("common.material.wood")),

View File

@ -82,7 +82,7 @@ pub enum ParticleMode {
Bubbles = 29,
Water = 30,
IceSpikes = 31,
Dust = 32,
Drip = 32,
}
impl ParticleMode {

View File

@ -1048,11 +1048,11 @@ impl ParticleMgr {
cond: |_| true,
},
BlockParticles {
blocks: |boi| &boi.dust,
blocks: |boi| &boi.drip,
range: 4,
rate: 0.004,
lifetime: 20.0,
mode: ParticleMode::Dust,
mode: ParticleMode::Drip,
cond: |_| true,
},
BlockParticles {

View File

@ -16,7 +16,7 @@ pub enum Interaction {
#[derive(Default)]
pub struct BlocksOfInterest {
pub leaves: Vec<Vec3<i32>>,
pub dust: Vec<Vec3<i32>>,
pub drip: Vec<Vec3<i32>>,
pub grass: Vec<Vec3<i32>>,
pub river: Vec<Vec3<i32>>,
pub fires: Vec<Vec3<i32>>,
@ -42,7 +42,7 @@ impl BlocksOfInterest {
pub fn from_chunk(chunk: &TerrainChunk) -> Self {
span!(_guard, "from_chunk", "BlocksOfInterest::from_chunk");
let mut leaves = Vec::new();
let mut dust = Vec::new();
let mut drip = Vec::new();
let mut grass = Vec::new();
let mut river = Vec::new();
let mut fires = Vec::new();
@ -72,7 +72,7 @@ impl BlocksOfInterest {
.for_each(|(pos, block)| {
match block.kind() {
BlockKind::Leaves if thread_rng().gen_range(0..16) == 0 => leaves.push(pos),
BlockKind::WeakRock if thread_rng().gen_range(0..6) == 0 => dust.push(pos),
BlockKind::WeakRock if thread_rng().gen_range(0..6) == 0 => drip.push(pos),
BlockKind::Grass => {
if thread_rng().gen_range(0..16) == 0 {
grass.push(pos);
@ -156,7 +156,7 @@ impl BlocksOfInterest {
Self {
leaves,
dust,
drip,
grass,
river,
fires,

View File

@ -478,7 +478,7 @@ impl<'a> Widget for ItemTooltip<'a> {
format!(
"{} ({})",
item_kind,
util::materialkind_text(&material_tag.material().material_kind(), i18n)
util::material_kind_text(&material_tag.material().material_kind(), i18n)
)
} else {
item_kind

View File

@ -160,17 +160,15 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
})
};
let difficulty = cave_depth / 100.0;
let ridge_condition = cave_depth % 10.0 > 8.0;
let pit_condition = cave_depth % 35.0 > 30.0 && cave_x > 0.4 && cave_depth > 200.0;
let ridge_condition = cave_depth % 10.0 > 8.0 && cave_depth > 10.0;
let pit_condition = cave_depth % 42.0 > 37.0 && cave_x > 0.6 && cave_depth > 200.0;
let pit_depth = 30;
let floor_dist = pit_condition as i32 * pit_depth as i32;
let vein_condition =
cave_depth % 12.0 > 11.8 && cave_x > 0.4 && cave_x < 0.65 && cave_depth > 200.0;
cave_depth % 12.0 > 11.5 && cave_x > 0.1 && cave_x < 0.6 && cave_depth > 200.0;
let stalagtite_condition = cave_depth > 150.0;
let vein_dist = 2;
let vein_floor = cave_base - vein_dist;
let vein_depth = 3;
let vein_floor = cave_base - vein_depth;
// Stalagtites
let stalagtites = info
.index()
@ -223,7 +221,7 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
}
//fill bottom of pits
for z in cave_base - pit_depth
..cave_base - pit_depth + ((cave_x.powf(4.0) * pit_depth as f32 + 3.0) as i32) + 1
..cave_base - pit_depth + ((cave_x.powf(4.0) * (pit_depth as f32 + 3.0)) as i32) + 1
{
if (cave_roof - cave_base) > 10 && pit_condition {
canvas.set(
@ -233,7 +231,7 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
}
}
//empty veins
for z in cave_base - vein_dist..cave_base {
for z in cave_base - vein_depth..cave_base {
if vein_condition {
canvas.set(
Vec3::new(wpos2d.x, wpos2d.y, z),
@ -246,30 +244,30 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
}
//fill veins except bottom later
for z in cave_base - vein_dist + 1..cave_base {
for z in cave_base - vein_depth + 1..cave_base {
if vein_condition {
canvas.set(
Vec3::new(wpos2d.x, wpos2d.y, z),
Block::new(
BlockKind::WeakRock,
noisy_color(info.index().colors.layer.vein.into(), 8),
noisy_color(info.index().colors.layer.vein.into(), 16),
),
);
}
}
//fill some of bottom
for z in cave_base - vein_dist..cave_base - vein_dist + 1 {
for z in cave_base - vein_depth..cave_base - vein_depth + 1 {
if rng.gen::<f32>() < 0.5 && vein_condition {
canvas.set(
Vec3::new(wpos2d.x, wpos2d.y, z),
Block::new(
BlockKind::WeakRock,
noisy_color(info.index().colors.layer.vein.into(), 8),
noisy_color(info.index().colors.layer.vein.into(), 16),
),
);
}
}
if vein_condition && cave_base < surface_z as i32 - 25 {
if vein_condition && rng.gen::<f32>() > 0.7 {
let kind = *Lottery::<SpriteKind>::load_expect("common.cave_scatter.vein")
.read()
.choose();
@ -305,7 +303,7 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
}
//add ridges
for z in cave_roof - 4..cave_roof {
if cave_depth > 50.0 && ridge_condition && (cave_roof - cave_base) > 10 {
if ridge_condition && (cave_roof - cave_base) > 10 {
canvas.set(
Vec3::new(wpos2d.x, wpos2d.y, z),
Block::new(
@ -329,13 +327,10 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
};
// Scatter things in caves
if cave_depth < 80.0 {
if rng.gen::<f32>()
< 0.3 * (difficulty / 3.0).powf(2.5) * (cave_x.max(0.5).powf(4.0))
&& !vein_condition
{
if cave_depth > 40.0 && cave_depth < 80.0 {
if rng.gen::<f32>() < 0.2 * (cave_x.max(0.5).powf(4.0)) && !vein_condition {
let kind =
*Lottery::<SpriteKind>::load_expect("common.cave_scatter.deep_floor")
*Lottery::<SpriteKind>::load_expect("common.cave_scatter.shallow_floor")
.read()
.choose();
canvas.map(
@ -343,7 +338,7 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
|block| block.with_sprite(kind),
);
}
if rng.gen::<f32>() < 0.3 * (difficulty / 3.0).powf(2.5) && !ridge_condition {
if rng.gen::<f32>() < 0.3 * (cave_x.max(0.5).powf(4.0)) && !ridge_condition {
let kind =
*Lottery::<SpriteKind>::load_expect("common.cave_scatter.shallow_ceiling")
.read()
@ -353,11 +348,8 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
|block| block.with_sprite(kind),
);
}
} else if cave_depth < 150.0 {
if rng.gen::<f32>()
< 0.3 * (difficulty / 3.0).powf(2.5) * (cave_x.max(0.5).powf(4.0))
&& !vein_condition
{
} else if cave_depth < 200.0 && cave_depth > 80.0 {
if rng.gen::<f32>() < 0.12 * (cave_x.max(0.5).powf(4.0)) && !vein_condition {
let kind =
*Lottery::<SpriteKind>::load_expect("common.cave_scatter.deep_floor")
.read()
@ -367,7 +359,7 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
|block| block.with_sprite(kind),
);
}
if rng.gen::<f32>() < 0.3 * (difficulty / 3.0).powf(2.5) && !ridge_condition {
if rng.gen::<f32>() < 0.3 * (cave_x.max(0.5).powf(4.0)) && !ridge_condition {
let kind =
*Lottery::<SpriteKind>::load_expect("common.cave_scatter.deep_ceiling")
.read()
@ -378,12 +370,12 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
);
}
} else {
if rng.gen::<f32>()
< 0.3 * (difficulty / 3.0).powf(2.5) * (cave_x.max(0.5).powf(4.0))
if rng.gen::<f32>() < 0.12 * (cave_x.max(0.5).powf(4.0))
&& cave_depth > 40.0
&& !vein_condition
{
let kind =
*Lottery::<SpriteKind>::load_expect("common.cave_scatter.shallow_floor")
*Lottery::<SpriteKind>::load_expect("common.cave_scatter.dark_floor")
.read()
.choose();
canvas.map(
@ -391,9 +383,12 @@ pub fn apply_caves_to(canvas: &mut Canvas, rng: &mut impl Rng) {
|block| block.with_sprite(kind),
);
}
if rng.gen::<f32>() < 0.3 * (difficulty / 3.0).powf(2.5) && !ridge_condition {
if rng.gen::<f32>() < 0.02 * (cave_x.max(0.5).powf(4.0))
&& !ridge_condition
&& cave_depth > 40.0
{
let kind =
*Lottery::<SpriteKind>::load_expect("common.cave_scatter.shallow_ceiling")
*Lottery::<SpriteKind>::load_expect("common.cave_scatter.dark_ceiling")
.read()
.choose();
canvas.map(
@ -442,10 +437,9 @@ pub fn apply_caves_supplement<'a>(
let cave_base = (cave.alt + cave_floor) as i32;
let cave_depth = (col_sample.alt - cave.alt).max(0.0); //slightly different from earlier cave depth?
let difficulty = cave_depth / 50.0;
// Scatter things in caves
if RandomField::new(index.seed).chance(wpos2d.into(), 0.001 * difficulty.powf(0.5))
if RandomField::new(index.seed).chance(wpos2d.into(), 0.0018)
&& cave_base < surface_z as i32 - 40
{
let is_hostile: bool;
@ -454,7 +448,7 @@ pub fn apply_caves_supplement<'a>(
wpos2d.y as f32,
cave_base as f32,
))
.with_body(if cave_depth < 80.0 {
.with_body(if cave_depth < 70.0 {
is_hostile = false;
let species = match dynamic_rng.gen_range(0..4) {
0 => comp::quadruped_small::Species::Truffler,
@ -463,7 +457,7 @@ pub fn apply_caves_supplement<'a>(
_ => comp::quadruped_small::Species::Batfox,
};
comp::quadruped_small::Body::random_with(dynamic_rng, &species).into()
} else if cave_depth < 130.0 {
} else if cave_depth < 120.0 {
is_hostile = true;
let species = match dynamic_rng.gen_range(0..3) {
0 => comp::quadruped_low::Species::Rocksnapper,
@ -471,7 +465,7 @@ pub fn apply_caves_supplement<'a>(
_ => comp::quadruped_low::Species::Asp,
};
comp::quadruped_low::Body::random_with(dynamic_rng, &species).into()
} else if cave_depth < 250.0 {
} else if cave_depth < 200.0 {
is_hostile = true;
let species = match dynamic_rng.gen_range(0..3) {
0 => comp::quadruped_low::Species::Rocksnapper,

View File

@ -1207,7 +1207,7 @@ fn mini_boss_0(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<Entit
}
fn mini_boss_1(dynamic_rng: &mut impl Rng, tile_wcenter: Vec3<i32>) -> Vec<EntityInfo> {
let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_small.default");
let chosen = Lottery::<LootSpec>::load_expect("common.loot_tables.creature.quad_small.generic");
let mut entities = Vec::new();
entities.resize_with(8, || {
EntityInfo::at(tile_wcenter.map(|e| e as f32))