Fix Cave NPCs only spawning very deep inside caves

Increase twig density

Adjust armour values and ingredients for starter sword

fix healing rod using the wrong model

Hung up the lianas again
This commit is contained in:
Monty Marz 2020-08-22 23:37:45 +00:00 committed by Joshua Yanovski
parent 25098e94ae
commit c9438c0947
14 changed files with 44 additions and 35 deletions

View File

@ -1,11 +1,10 @@
[ [
(20, Velorite), (10, Velorite),
(30, VeloriteFrag), (15, VeloriteFrag),
(60, Stones), (110, Stones),
(15, PurpleFlower), (150, ShortGrass),
(130, ShortGrass), (60, Mushroom),
(120, Mushroom), (2, ShinyGem),
(8, ShinyGem), (2, Chest),
(15, Chest), (15, Crate),
(2, Crate),
] ]

View File

@ -5,7 +5,7 @@ Item(
( (
kind: Chest("Leather2"), kind: Chest("Leather2"),
stats: ( stats: (
protection: Normal(6.0), protection: Normal(8.0),
), ),
) )
), ),

View File

@ -5,7 +5,7 @@ Item(
( (
kind: Pants("Leather2"), kind: Pants("Leather2"),
stats: ( stats: (
protection: Normal(8.0), protection: Normal(6.0),
), ),
) )
), ),

View File

@ -5,7 +5,7 @@ Item(
( (
kind: Shoulder("Leather2"), kind: Shoulder("Leather2"),
stats: ( stats: (
protection: Normal(6.0), protection: Normal(8.0),
), ),
) )
), ),

View File

@ -1,6 +1,6 @@
Item( Item(
name: "Wooden Sword", name: "Forest Spirit",
description: "It's not sharp.", description: "The resin glows.",
kind: Tool( kind: Tool(
( (
kind: Sword("WoodTraining"), kind: Sword("WoodTraining"),

View File

@ -22,8 +22,8 @@
// Weapons // Weapons
"velorite_sceptre": (("common.items.weapons.staff.sceptre_velorite_0", 1),[("common.items.crafting_ing.twigs", 20), ("common.items.ore.veloritefrag", 10), ("common.items.crafting_ing.shiny_gem", 4), ("common.items.crafting_tools.craftsman_hammer", 0)]), "velorite_sceptre": (("common.items.weapons.staff.sceptre_velorite_0", 1),[("common.items.crafting_ing.twigs", 20), ("common.items.ore.veloritefrag", 10), ("common.items.crafting_ing.shiny_gem", 4), ("common.items.crafting_tools.craftsman_hammer", 0)]),
// Enhanced starting weapons // Enhanced starting weapons
"better bow": (("common.items.weapons.bow.wood_shortbow-0", 1), [("common.items.crafting_ing.leather_scraps", 8),("common.items.crafting_ing.twigs", 4), ("common.items.crafting_ing.stones", 0)]), "better bow": (("common.items.weapons.bow.wood_shortbow-0", 1), [("common.items.crafting_ing.leather_scraps", 8),("common.items.crafting_ing.twigs", 6), ("common.items.crafting_ing.stones", 0)]),
"better sword": (("common.items.weapons.sword.wood_sword", 1), [("common.items.crafting_ing.leather_scraps", 4),("common.items.crafting_ing.twigs", 8), ("common.items.crafting_ing.stones", 0)]), "better sword": (("common.items.weapons.sword.wood_sword", 1), [("common.items.crafting_ing.leather_scraps", 4),("common.items.crafting_ing.twigs", 10), ("common.items.ore.veloritefrag", 1), ("common.items.crafting_ing.stones", 0)]),
// Adventurer/Beginner Leather Set // Adventurer/Beginner Leather Set
"adventure back": (("common.items.armor.back.leather_adventurer", 1),[("common.items.crafting_ing.leather_scraps", 4)]), "adventure back": (("common.items.armor.back.leather_adventurer", 1),[("common.items.crafting_ing.leather_scraps", 4)]),
"adventure belt": (("common.items.armor.belt.leather_adventurer", 1),[("common.items.crafting_ing.leather_scraps", 2)]), "adventure belt": (("common.items.armor.belt.leather_adventurer", 1),[("common.items.crafting_ing.leather_scraps", 2)]),

View File

@ -67,7 +67,7 @@
(0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.2, (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.2,
), ),
Tool(Sword("WoodTraining")): VoxTrans( Tool(Sword("WoodTraining")): VoxTrans(
"voxel.weapon.sword.wood_2h", "voxel.weapon.sword.wood_ore_2h",
(0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.3, (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.3,
), ),
Tool(Sword("LongFine3")): VoxTrans( Tool(Sword("LongFine3")): VoxTrans(

View File

@ -8,7 +8,7 @@
color: None color: None
), ),
Sword("WoodTraining"): ( Sword("WoodTraining"): (
vox_spec: ("weapon.sword.wood_2h", (-1.5, -6.5, -4.0)), vox_spec: ("weapon.sword.wood_ore_2h", (-1.5, -6.5, -4.0)),
color: None color: None
), ),
Sword("Zweihander0"): ( Sword("Zweihander0"): (

Binary file not shown.

BIN
assets/voxygen/voxel/weapon/sword/wood_ore_2h.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -173,20 +173,25 @@ impl Item {
BlockKind::ShortGrass => Some(assets::load_expect_cloned("common.items.grasses.short")), BlockKind::ShortGrass => Some(assets::load_expect_cloned("common.items.grasses.short")),
BlockKind::Coconut => Some(assets::load_expect_cloned("common.items.food.coconut")), BlockKind::Coconut => Some(assets::load_expect_cloned("common.items.food.coconut")),
BlockKind::Chest => { BlockKind::Chest => {
let chosen = match rng.gen_range(0, 5) { let chosen = match rng.gen_range(0, 7) {
0 => { 0 => assets::load_expect::<Lottery<String>>(
assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table_food")
},
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_crafting",
),
2 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_weapon_uncommon", "common.loot_tables.loot_table_weapon_uncommon",
), ),
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_weapon_common",
),
2 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_light",
),
3 => assets::load_expect::<Lottery<String>>( 3 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_cloth",
),
4 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_heavy",
),
_ => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_misc", "common.loot_tables.loot_table_armor_misc",
), ),
_ => assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table"),
}; };
let chosen = chosen.choose(); let chosen = chosen.choose();
Some(assets::load_expect_cloned(chosen)) Some(assets::load_expect_cloned(chosen))

View File

@ -525,7 +525,9 @@ impl<'a> System<'a> for Sys {
// Attack owner's attacker // Attack owner's attacker
let owner_stats = stats.get(owner)?; let owner_stats = stats.get(owner)?;
if owner_stats.health.last_change.0 < 5.0 { if owner_stats.health.last_change.0 < 5.0
&& owner_stats.health.last_change.1.amount < 0
{
if let comp::HealthSource::Attack { by } = if let comp::HealthSource::Attack { by } =
owner_stats.health.last_change.1.cause owner_stats.health.last_change.1.cause
{ {

View File

@ -571,6 +571,7 @@ pub fn block_from_structure(
)), )),
// None of these BlockKinds has an orientation, so we just use zero for the other color // None of these BlockKinds has an orientation, so we just use zero for the other color
// bits. // bits.
StructureBlock::Liana => Some(Block::new(BlockKind::Liana, Rgb::zero())),
StructureBlock::Fruit => Some(if field.get(pos + structure_pos) % 3 > 0 { StructureBlock::Fruit => Some(if field.get(pos + structure_pos) % 3 > 0 {
Block::empty() Block::empty()
} else { } else {
@ -592,7 +593,6 @@ pub fn block_from_structure(
| StructureBlock::PalmLeavesInner | StructureBlock::PalmLeavesInner
| StructureBlock::PalmLeavesOuter | StructureBlock::PalmLeavesOuter
| StructureBlock::Acacia | StructureBlock::Acacia
| StructureBlock::Liana
| StructureBlock::Mangrove => sblock | StructureBlock::Mangrove => sblock
.elim_case_pure(&index.colors.block.structure_blocks) .elim_case_pure(&index.colors.block.structure_blocks)
.as_ref() .as_ref()

View File

@ -130,10 +130,10 @@ pub fn apply_scatter_to<'a>(
// Collecable Objects // Collecable Objects
// Only spawn twigs in temperate forests // Only spawn twigs in temperate forests
(Twigs, false, |c| { (Twigs, false, |c| {
((c.tree_density - 0.5).max(0.0) * MUSH_FACT * 0.5, None) ((c.tree_density - 0.5).max(0.0) * 0.001, None)
}), }),
(Stones, false, |c| { (Stones, false, |c| {
((c.rockiness - 0.5).max(0.0) * MUSH_FACT * 0.5, None) ((c.rockiness - 0.5).max(0.0) * 0.05, None)
}), }),
// Don't spawn Mushrooms in snowy regions // Don't spawn Mushrooms in snowy regions
(Mushroom, false, |c| { (Mushroom, false, |c| {
@ -494,7 +494,7 @@ pub fn apply_caves_to<'a>(
let difficulty = cave_depth / 100.0; let difficulty = cave_depth / 100.0;
// Scatter things in caves // Scatter things in caves
if RandomField::new(index.seed).chance(wpos2d.into(), 0.002 * difficulty.powf(1.5)) if RandomField::new(index.seed).chance(wpos2d.into(), 0.001 * difficulty.powf(1.5))
&& cave_base < surface_z as i32 - 25 && cave_base < surface_z as i32 - 25
{ {
let kind = *assets::load_expect::<Lottery<BlockKind>>("common.cave_scatter") let kind = *assets::load_expect::<Lottery<BlockKind>>("common.cave_scatter")
@ -547,7 +547,7 @@ pub fn apply_caves_supplement<'a>(
let difficulty = cave_depth / 200.0; let difficulty = cave_depth / 200.0;
// Scatter things in caves // Scatter things in caves
if RandomField::new(index.seed).chance(wpos2d.into(), 0.000005 * difficulty) if RandomField::new(index.seed).chance(wpos2d.into(), 0.001 * difficulty)
&& cave_base < surface_z as i32 - 40 && cave_base < surface_z as i32 - 40
{ {
let is_hostile: bool; let is_hostile: bool;