mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
Gem Rings and small change to trading.
This commit is contained in:
parent
b66957bf74
commit
8d0a1ad7b4
@ -14,7 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
- NPCs and animals can now make sounds in response to certain events
|
- NPCs and animals can now make sounds in response to certain events
|
||||||
- Players can press H to greet others
|
- Players can press H to greet others
|
||||||
- Ability to toggle chat visibility
|
- Ability to toggle chat visibility
|
||||||
|
- Added gem rings with various stat improvements.
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Entity-entity pushback is no longer applied in forced movement states like rolling and leaping.
|
- Entity-entity pushback is no longer applied in forced movement states like rolling and leaping.
|
||||||
|
17
assets/common/items/armor/misc/ring/amethyst.ron
Normal file
17
assets/common/items/armor/misc/ring/amethyst.ron
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
ItemDef(
|
||||||
|
name: "Amethyst Ring",
|
||||||
|
description: "A tin ring with an amethyst gem.",
|
||||||
|
kind: Armor((
|
||||||
|
kind: Ring("Amethyst"),
|
||||||
|
stats: (
|
||||||
|
protection: Normal(0.0),
|
||||||
|
poise_resilience: Normal(0.0),
|
||||||
|
energy_max: 0,
|
||||||
|
energy_reward: 0.025,
|
||||||
|
crit_power: 0.0,
|
||||||
|
stealth: 0.0,
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
quality: Moderate,
|
||||||
|
tags: [],
|
||||||
|
)
|
17
assets/common/items/armor/misc/ring/diamond.ron
Normal file
17
assets/common/items/armor/misc/ring/diamond.ron
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
ItemDef(
|
||||||
|
name: "Diamond Ring",
|
||||||
|
description: "A gold ring with an expensive diamond.",
|
||||||
|
kind: Armor((
|
||||||
|
kind: Ring("Diamond"),
|
||||||
|
stats: (
|
||||||
|
protection: Normal(0.0),
|
||||||
|
poise_resilience: Normal(0.0),
|
||||||
|
energy_max: 0,
|
||||||
|
energy_reward: -0.05,
|
||||||
|
crit_power: 0.1,
|
||||||
|
stealth: 0.0,
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
quality: Epic,
|
||||||
|
tags: [],
|
||||||
|
)
|
17
assets/common/items/armor/misc/ring/emerald.ron
Normal file
17
assets/common/items/armor/misc/ring/emerald.ron
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
ItemDef(
|
||||||
|
name: "Emerald Ring",
|
||||||
|
description: "A cobalt ring with an emerald gem.",
|
||||||
|
kind: Armor((
|
||||||
|
kind: Ring("Emerald"),
|
||||||
|
stats: (
|
||||||
|
protection: Normal(0.0),
|
||||||
|
poise_resilience: Normal(0.0),
|
||||||
|
energy_max: 100,
|
||||||
|
energy_reward: 0.0,
|
||||||
|
crit_power: -0.025,
|
||||||
|
stealth: 0.0,
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
quality: Moderate,
|
||||||
|
tags: [],
|
||||||
|
)
|
@ -1,6 +1,6 @@
|
|||||||
ItemDef(
|
ItemDef(
|
||||||
name: "Gold Ring",
|
name: "Gold Ring",
|
||||||
description: "Someone is surely missing it...",
|
description: "A plain gold ring... almost as if it is missing a gem.",
|
||||||
kind: Armor((
|
kind: Armor((
|
||||||
kind: Ring("Gold"),
|
kind: Ring("Gold"),
|
||||||
stats: (
|
stats: (
|
||||||
|
17
assets/common/items/armor/misc/ring/ruby.ron
Normal file
17
assets/common/items/armor/misc/ring/ruby.ron
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
ItemDef(
|
||||||
|
name: "Ruby Ring",
|
||||||
|
description: "A silver ring with a ruby gem.",
|
||||||
|
kind: Armor((
|
||||||
|
kind: Ring("Ruby"),
|
||||||
|
stats: (
|
||||||
|
protection: Normal(0.0),
|
||||||
|
poise_resilience: Normal(0.0),
|
||||||
|
energy_max: -100,
|
||||||
|
energy_reward: 0.05,
|
||||||
|
crit_power: 0.0,
|
||||||
|
stealth: 0.0,
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
quality: High,
|
||||||
|
tags: [],
|
||||||
|
)
|
17
assets/common/items/armor/misc/ring/sapphire.ron
Normal file
17
assets/common/items/armor/misc/ring/sapphire.ron
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
ItemDef(
|
||||||
|
name: "Sapphire Ring",
|
||||||
|
description: "An iron ring with a sapphire gem.",
|
||||||
|
kind: Armor((
|
||||||
|
kind: Ring("Sapphire"),
|
||||||
|
stats: (
|
||||||
|
protection: Normal(0.0),
|
||||||
|
poise_resilience: Normal(0.0),
|
||||||
|
energy_max: 0,
|
||||||
|
energy_reward: 0.0,
|
||||||
|
crit_power: 0.05,
|
||||||
|
stealth: 0.0,
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
quality: Moderate,
|
||||||
|
tags: [],
|
||||||
|
)
|
17
assets/common/items/armor/misc/ring/topaz.ron
Normal file
17
assets/common/items/armor/misc/ring/topaz.ron
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
ItemDef(
|
||||||
|
name: "Topaz Ring",
|
||||||
|
description: "A copper ring with a topaz gem.",
|
||||||
|
kind: Armor((
|
||||||
|
kind: Ring("Topaz"),
|
||||||
|
stats: (
|
||||||
|
protection: Normal(0.0),
|
||||||
|
poise_resilience: Normal(0.0),
|
||||||
|
energy_max: 50,
|
||||||
|
energy_reward: 0.00,
|
||||||
|
crit_power: 0.0,
|
||||||
|
stealth: 0.0,
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
quality: Moderate,
|
||||||
|
tags: [],
|
||||||
|
)
|
@ -2,4 +2,5 @@
|
|||||||
(1.0, Item("common.items.food.apple")),
|
(1.0, Item("common.items.food.apple")),
|
||||||
(1.0, Item("common.items.food.coconut")),
|
(1.0, Item("common.items.food.coconut")),
|
||||||
(1.5, Item("common.items.food.mushroom")),
|
(1.5, Item("common.items.food.mushroom")),
|
||||||
|
(1.0, Item("common.items.crafting_ing.honey")),
|
||||||
]
|
]
|
||||||
|
@ -2,11 +2,10 @@
|
|||||||
// Please keep it sorting by rarity so it's easier to reason about things
|
// Please keep it sorting by rarity so it's easier to reason about things
|
||||||
[
|
[
|
||||||
// Ores
|
// Ores
|
||||||
// Uncomment when bug with crafting doesn't propagating can_sell will be fixed
|
(0.03, Item("common.items.mineral.ore.gold")),
|
||||||
// (0.03, Item("common.items.mineral.ore.gold")),
|
(0.045, Item("common.items.mineral.ore.silver")),
|
||||||
// (0.045, Item("common.items.mineral.ore.silver")),
|
(0.1, Item("common.items.mineral.ore.bloodstone")),
|
||||||
// (0.1, Item("common.items.mineral.ore.bloodstone")),
|
(0.2, Item("common.items.mineral.ore.cobalt")),
|
||||||
// (0.2, Item("common.items.mineral.ore.cobalt")),
|
|
||||||
(0.25, Item("common.items.mineral.ore.coal")),
|
(0.25, Item("common.items.mineral.ore.coal")),
|
||||||
(0.3, Item("common.items.mineral.ore.iron")),
|
(0.3, Item("common.items.mineral.ore.iron")),
|
||||||
(0.5, Item("common.items.mineral.ore.velorite")),
|
(0.5, Item("common.items.mineral.ore.velorite")),
|
||||||
@ -32,6 +31,4 @@
|
|||||||
(1.0, Item("common.items.food.meat.beast_small_raw")),
|
(1.0, Item("common.items.food.meat.beast_small_raw")),
|
||||||
(1.2, Item("common.items.food.meat.fish_raw")),
|
(1.2, Item("common.items.food.meat.fish_raw")),
|
||||||
(1.3, Item("common.items.food.meat.bird_raw")),
|
(1.3, Item("common.items.food.meat.bird_raw")),
|
||||||
// Others
|
|
||||||
(1.0, Item("common.items.crafting_ing.honey")),
|
|
||||||
]
|
]
|
||||||
|
@ -1748,6 +1748,54 @@
|
|||||||
],
|
],
|
||||||
craft_sprite: Some(Anvil),
|
craft_sprite: Some(Anvil),
|
||||||
),
|
),
|
||||||
|
"diamond ring": (
|
||||||
|
output: ("common.items.armor.misc.ring.diamond", 1),
|
||||||
|
inputs: [
|
||||||
|
(Item("common.items.mineral.ingot.gold"), 1),
|
||||||
|
(Item("common.items.mineral.gem.diamond"), 1),
|
||||||
|
],
|
||||||
|
craft_sprite: Some(CraftingBench),
|
||||||
|
),
|
||||||
|
"ruby ring": (
|
||||||
|
output: ("common.items.armor.misc.ring.ruby", 1),
|
||||||
|
inputs: [
|
||||||
|
(Item("common.items.mineral.ingot.silver"), 1),
|
||||||
|
(Item("common.items.mineral.gem.ruby"), 1),
|
||||||
|
],
|
||||||
|
craft_sprite: Some(CraftingBench),
|
||||||
|
),
|
||||||
|
"emerald ring": (
|
||||||
|
output: ("common.items.armor.misc.ring.emerald", 1),
|
||||||
|
inputs: [
|
||||||
|
(Item("common.items.mineral.ingot.cobalt"), 1),
|
||||||
|
(Item("common.items.mineral.gem.emerald"), 1),
|
||||||
|
],
|
||||||
|
craft_sprite: Some(CraftingBench),
|
||||||
|
),
|
||||||
|
"sapphire ring": (
|
||||||
|
output: ("common.items.armor.misc.ring.sapphire", 1),
|
||||||
|
inputs: [
|
||||||
|
(Item("common.items.mineral.ingot.iron"), 1),
|
||||||
|
(Item("common.items.mineral.gem.sapphire"), 1),
|
||||||
|
],
|
||||||
|
craft_sprite: Some(CraftingBench),
|
||||||
|
),
|
||||||
|
"topaz ring": (
|
||||||
|
output: ("common.items.armor.misc.ring.topaz", 1),
|
||||||
|
inputs: [
|
||||||
|
(Item("common.items.mineral.ingot.copper"), 1),
|
||||||
|
(Item("common.items.mineral.gem.topaz"), 1),
|
||||||
|
],
|
||||||
|
craft_sprite: Some(CraftingBench),
|
||||||
|
),
|
||||||
|
"amethyst ring": (
|
||||||
|
output: ("common.items.armor.misc.ring.amethyst", 1),
|
||||||
|
inputs: [
|
||||||
|
(Item("common.items.mineral.ingot.tin"), 1),
|
||||||
|
(Item("common.items.mineral.gem.amethyst"), 1),
|
||||||
|
],
|
||||||
|
craft_sprite: Some(CraftingBench),
|
||||||
|
),
|
||||||
//"metal_blade": (
|
//"metal_blade": (
|
||||||
// output: ("common.items.crafting_ing.modular.damage.sword.metal_blade", 1),
|
// output: ("common.items.crafting_ing.modular.damage.sword.metal_blade", 1),
|
||||||
// inputs: [
|
// inputs: [
|
||||||
|
@ -12,12 +12,44 @@
|
|||||||
("common.items.consumable.potion_big", 100),
|
("common.items.consumable.potion_big", 100),
|
||||||
("common.items.food.apple_mushroom_curry", 100),
|
("common.items.food.apple_mushroom_curry", 100),
|
||||||
],
|
],
|
||||||
"endgame": [
|
"jewellery": [
|
||||||
// Biju
|
// TODO: remove duplicates and handle quantity of non-stackable items
|
||||||
("common.items.armor.misc.neck.plain_1",1),
|
|
||||||
("common.items.armor.misc.ring.skull",1),
|
|
||||||
("common.items.armor.misc.ring.skull",1),
|
|
||||||
|
|
||||||
|
// Necklace
|
||||||
|
("common.items.armor.misc.neck.plain_1",1),
|
||||||
|
("common.items.armor.misc.neck.shell",1),
|
||||||
|
|
||||||
|
// Rings
|
||||||
|
// With effects
|
||||||
|
("common.items.armor.misc.ring.diamond",1),
|
||||||
|
("common.items.armor.misc.ring.diamond",1),
|
||||||
|
|
||||||
|
("common.items.armor.misc.ring.ruby",1),
|
||||||
|
("common.items.armor.misc.ring.ruby",1),
|
||||||
|
|
||||||
|
("common.items.armor.misc.ring.emerald",1),
|
||||||
|
("common.items.armor.misc.ring.emerald",1),
|
||||||
|
|
||||||
|
("common.items.armor.misc.ring.sapphire",1),
|
||||||
|
("common.items.armor.misc.ring.sapphire",1),
|
||||||
|
|
||||||
|
("common.items.armor.misc.ring.topaz",1),
|
||||||
|
("common.items.armor.misc.ring.topaz",1),
|
||||||
|
|
||||||
|
("common.items.armor.misc.ring.amethyst",1),
|
||||||
|
("common.items.armor.misc.ring.amethyst",1),
|
||||||
|
|
||||||
|
// Without effects
|
||||||
|
("common.items.armor.misc.ring.scratched",1),
|
||||||
|
("common.items.armor.misc.ring.scratched",1),
|
||||||
|
|
||||||
|
("common.items.armor.misc.ring.gold",1),
|
||||||
|
("common.items.armor.misc.ring.gold",1),
|
||||||
|
|
||||||
|
("common.items.armor.misc.ring.skull",1),
|
||||||
|
("common.items.armor.misc.ring.skull",1),
|
||||||
|
],
|
||||||
|
"endgame": [
|
||||||
// Cultist weapons
|
// Cultist weapons
|
||||||
("common.items.weapons.hammer.cultist_purp_2h-0",1),
|
("common.items.weapons.hammer.cultist_purp_2h-0",1),
|
||||||
("common.items.weapons.staff.cultist_staff",1),
|
("common.items.weapons.staff.cultist_staff",1),
|
||||||
|
@ -2194,17 +2194,40 @@
|
|||||||
// Rings
|
// Rings
|
||||||
Armor(Ring("Scratched")): VoxTrans(
|
Armor(Ring("Scratched")): VoxTrans(
|
||||||
"voxel.armor.misc.ring.scratched",
|
"voxel.armor.misc.ring.scratched",
|
||||||
(0.0, 0.0, 0.0), (30.0, 0.0, 0.0), 0.9,
|
(0.0, 0.0, 0.0), (45.0, 15.0, 0.0), 0.9,
|
||||||
),
|
),
|
||||||
Armor(Ring("Gold")): VoxTrans(
|
Armor(Ring("Gold")): VoxTrans(
|
||||||
"voxel.armor.misc.ring.gold",
|
"voxel.armor.misc.ring.gold",
|
||||||
(0.0, 0.0, 0.0), (30.0, 0.0, 0.0), 0.9,
|
(0.0, 0.0, 0.0), (45.0, 15.0, 0.0), 0.9,
|
||||||
|
),
|
||||||
|
Armor(Ring("Topaz")): VoxTrans(
|
||||||
|
"voxel.armor.misc.ring.topaz",
|
||||||
|
(0.0, 0.0, 0.0), (45.0, 15.0, 0.0), 0.9,
|
||||||
|
),
|
||||||
|
Armor(Ring("Amethyst")): VoxTrans(
|
||||||
|
"voxel.armor.misc.ring.amethyst",
|
||||||
|
(0.0, 0.0, 0.0), (45.0, 15.0, 0.0), 0.9,
|
||||||
|
),
|
||||||
|
Armor(Ring("Sapphire")): VoxTrans(
|
||||||
|
"voxel.armor.misc.ring.sapphire",
|
||||||
|
(0.0, 0.0, 0.0), (45.0, 15.0, 0.0), 0.9,
|
||||||
|
),
|
||||||
|
Armor(Ring("Emerald")): VoxTrans(
|
||||||
|
"voxel.armor.misc.ring.emerald",
|
||||||
|
(0.0, 0.0, 0.0), (45.0, 15.0, 0.0), 0.9,
|
||||||
|
),
|
||||||
|
Armor(Ring("Ruby")): VoxTrans(
|
||||||
|
"voxel.armor.misc.ring.ruby",
|
||||||
|
(0.0, 0.0, 0.0), (45.0, 15.0, 0.0), 0.9,
|
||||||
|
),
|
||||||
|
Armor(Ring("Diamond")): VoxTrans(
|
||||||
|
"voxel.armor.misc.ring.diamond",
|
||||||
|
(0.0, 0.0, 0.0), (45.0, 20.0, 0.0), 0.9,
|
||||||
),
|
),
|
||||||
Armor(Ring("Skull")): VoxTrans(
|
Armor(Ring("Skull")): VoxTrans(
|
||||||
"voxel.armor.misc.ring.skull",
|
"voxel.armor.misc.ring.skull",
|
||||||
(0.0, 0.0, 0.0), (30.0, 0.0, 0.0), 0.9,
|
(0.0, 0.0, 0.0), (45.0, 15.0, 0.0), 0.9,
|
||||||
),
|
),
|
||||||
|
|
||||||
// Necks
|
// Necks
|
||||||
Armor(Neck("Plain0")): Png(
|
Armor(Neck("Plain0")): Png(
|
||||||
"element.items.neck-0",
|
"element.items.neck-0",
|
||||||
|
BIN
assets/voxygen/voxel/armor/misc/ring/amethyst.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/misc/ring/amethyst.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/misc/ring/diamond.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/misc/ring/diamond.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/misc/ring/emerald.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/misc/ring/emerald.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/misc/ring/gold.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/armor/misc/ring/gold.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/armor/misc/ring/ruby.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/misc/ring/ruby.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/misc/ring/sapphire.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/misc/ring/sapphire.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/voxygen/voxel/armor/misc/ring/scratched.vox
(Stored with Git LFS)
BIN
assets/voxygen/voxel/armor/misc/ring/scratched.vox
(Stored with Git LFS)
Binary file not shown.
BIN
assets/voxygen/voxel/armor/misc/ring/topaz.vox
(Stored with Git LFS)
Normal file
BIN
assets/voxygen/voxel/armor/misc/ring/topaz.vox
(Stored with Git LFS)
Normal file
Binary file not shown.
@ -376,11 +376,18 @@ impl TradePricing {
|
|||||||
false
|
false
|
||||||
} else if recipe.material_cost < Self::UNAVAILABLE_PRICE {
|
} else if recipe.material_cost < Self::UNAVAILABLE_PRICE {
|
||||||
let actual_cost = result.calculate_material_cost(recipe, &eqset);
|
let actual_cost = result.calculate_material_cost(recipe, &eqset);
|
||||||
|
let output_tradeable = recipe.input.iter().all(|(input, _)| {
|
||||||
|
result
|
||||||
|
.get_list_by_path(&input)
|
||||||
|
.iter()
|
||||||
|
.find(|(item, _, _)| item == input)
|
||||||
|
.map_or(false, |(_, _, tradeable)| *tradeable)
|
||||||
|
});
|
||||||
result.get_list_by_path_mut(&recipe.output).add(
|
result.get_list_by_path_mut(&recipe.output).add(
|
||||||
&eqset,
|
&eqset,
|
||||||
&recipe.output,
|
&recipe.output,
|
||||||
(recipe.amount as f32) / actual_cost * Self::CRAFTING_FACTOR,
|
(recipe.amount as f32) / actual_cost * Self::CRAFTING_FACTOR,
|
||||||
true,
|
output_tradeable,
|
||||||
);
|
);
|
||||||
false
|
false
|
||||||
} else {
|
} else {
|
||||||
@ -424,7 +431,9 @@ impl TradePricing {
|
|||||||
Some(Self::COIN_ITEM.into())
|
Some(Self::COIN_ITEM.into())
|
||||||
} else {
|
} else {
|
||||||
let table = self.get_list(good);
|
let table = self.get_list(good);
|
||||||
if table.is_empty() {
|
if table.is_empty()
|
||||||
|
|| (selling && table.iter().filter(|(_, _, can_sell)| *can_sell).count() == 0)
|
||||||
|
{
|
||||||
warn!("Good: {:?}, was unreachable.", good);
|
warn!("Good: {:?}, was unreachable.", good);
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user