cave adjustments

This commit is contained in:
jshipsey 2021-06-05 18:24:31 -04:00 committed by Marcel Märtens
parent 1d23b7aebf
commit 4deeb42155
98 changed files with 555 additions and 299 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
)
),

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mold-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mold-1.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mold-2.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mold-3.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mold-4.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mold-5.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mold-6.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mushroom-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mushroom-1.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mushroom-2.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/mushroom-3.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/orb-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/orb-1.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/orb-2.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/ceiling/orb-3.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/mushroom-6.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/mushroom-7.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/cave/mushroom-8.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/crafting_ing/hide/rugged.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/crafting_ing/hide/troll_hide.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/sprite/crafting_ing/leather/rigid.vox (Stored with Git LFS) Normal file

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),

BIN
assets/voxygen/voxel/weapon/tool/pickaxe_green-1.vox (Stored with Git LFS) Normal file

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))