fix tooltips in char selection, more balancing

fix talking animals

fix critter exp, stronger villagers

biped large balancing

more villager balancing, mushroom spawning rate

more balancing

fix rebase

multiple loottables

Add tarasque and bonerattler armour

Added loot tables for different groups of weapons and armor based off relative strength. Added loot table for cultist boss.

Added loot tables for consumables and food. Trimmed down default loot table.

remove male and female sign from char creation

chest loot tables

fix loot tables

lootable crates

lantern keybinding display

more loot tables

loot table changes

fixed loot tables

fix typo
more grass

rebase fix, better lantern

re-add sprite rotation for grass

crafting window alignment fix, new streetlamps, new shopsigns, new healing staff

height change
This commit is contained in:
Monty Marz 2020-08-18 23:32:34 +02:00
parent 924d09e46c
commit 55d126861f
106 changed files with 1338 additions and 467 deletions

View File

@ -0,0 +1,12 @@
Item(
name: "Bonerattler Belt",
description: "Made from the strongest bones.",
kind: Armor(
(
kind: Belt("Bonerattler"),
stats: (
protection: Normal(0.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Tarasque Belt",
description: "As strong as a tarasque shell.",
kind: Armor(
(
kind: Belt("Tarasque"),
stats: (
protection: Normal(0.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Bonerattler Cuirass",
description: "Made from the strongest bones.",
kind: Armor(
(
kind: Chest("Bonerattler"),
stats: (
protection: Normal(25.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Tarasque Cuirass",
description: "As strong as a tarasque shell.",
kind: Armor(
(
kind: Chest("Tarasque"),
stats: (
protection: Normal(25.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Bonerattler Boots",
description: "Made from the strongest bones.",
kind: Armor(
(
kind: Foot("Bonerattler"),
stats: (
protection: Normal(5.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Tarasque Boots",
description: "As strong as a tarasque shell.",
kind: Armor(
(
kind: Foot("Tarasque"),
stats: (
protection: Normal(5.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Bonerattler Gauntlets",
description: "Made from the strongest bones.",
kind: Armor(
(
kind: Hand("Bonerattler"),
stats: (
protection: Normal(10.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Tarasque Gauntlets",
description: "As strong as a tarasque shell.",
kind: Armor(
(
kind: Hand("Tarasque"),
stats: (
protection: Normal(10.0),
),
)
),
)

View File

@ -5,7 +5,7 @@ Item(
(
kind: Neck("Neck0"),
stats: (
protection: Normal(0.5),
protection: Normal(1.0),
),
)
),

View File

@ -5,7 +5,7 @@ Item(
(
kind: Neck("Neck1"),
stats: (
protection: Normal(1.0),
protection: Normal(2.0),
),
)
),

View File

@ -0,0 +1,12 @@
Item(
name: "Bonerattler Chausses",
description: "Made from the strongest bones.",
kind: Armor(
(
kind: Pants("Bonerattler"),
stats: (
protection: Normal(20.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Tarasque Chausses",
description: "As strong as a tarasque shell.",
kind: Armor(
(
kind: Pants("Tarasque"),
stats: (
protection: Normal(20.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Bonerattler Shoulder Pad",
description: "Made from the strongest bones.",
kind: Armor(
(
kind: Shoulder("Bonerattler"),
stats: (
protection: Normal(15.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Tarasque Shoulder Pad",
description: "As strong as a tarasque shell.",
kind: Armor(
(
kind: Shoulder("Tarasque"),
stats: (
protection: Normal(15.0),
),
)
),
)

View File

@ -0,0 +1,13 @@
Item(
name: "Admin Greatsword",
description: "Shouldn't this be a hammer?",
kind: Tool(
(
kind: Sword("CultPurp0"),
stats: (
equip_time_millis: 0,
power: 1000.0,
),
)
),
)

View File

@ -4,7 +4,7 @@ Item(
kind: Lantern(
(
kind: "Black0",
color: (r: 255, g: 190, b: 75),
color: (r: 166, g: 100, b: 0),
strength_thousandths: 3000,
flicker_thousandths: 300,
),

View File

@ -0,0 +1,12 @@
Item(
name: "Green Worker Shirt",
description: "Was used by a farmer, until recently.",
kind: Armor(
(
kind: Chest("WorkerGreen0"),
stats: (
protection: Normal(80.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Green Worker Shirt",
description: "Was used by a farmer, until recently.",
kind: Armor(
(
kind: Chest("WorkerGreen1"),
stats: (
protection: Normal(80.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Orange Worker Shirt",
description: "Was used by a farmer, until recently.",
kind: Armor(
(
kind: Chest("WorkerOrange0"),
stats: (
protection: Normal(80.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Orange Worker Shirt",
description: "Was used by a farmer, until recently.",
kind: Armor(
(
kind: Chest("WorkerOrange1"),
stats: (
protection: Normal(80.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Purple Worker Shirt",
description: "Was used by a farmer, until recently.",
kind: Armor(
(
kind: Chest("WorkerPurple0"),
stats: (
protection: Normal(80.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Purple Worker Shirt",
description: "Was used by a farmer, until recently.",
kind: Armor(
(
kind: Chest("WorkerPurple1"),
stats: (
protection: Normal(80.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Red Worker Shirt",
description: "Was used by a farmer, until recently.",
kind: Armor(
(
kind: Chest("WorkerRed0"),
stats: (
protection: Normal(80.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Red Worker Shirt",
description: "Was used by a farmer, until recently.",
kind: Armor(
(
kind: Chest("WorkerRed1"),
stats: (
protection: Normal(80.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Yellow Worker Shirt",
description: "Was used by a farmer, until recently.",
kind: Armor(
(
kind: Chest("WorkerYellow0"),
stats: (
protection: Normal(80.0),
),
)
),
)

View File

@ -0,0 +1,12 @@
Item(
name: "Yellow Worker Shirt",
description: "Was used by a farmer, until recently.",
kind: Armor(
(
kind: Chest("WorkerYellow1"),
stats: (
protection: Normal(80.0),
),
)
),
)

View File

@ -6,7 +6,7 @@ Item(
kind: Farming("Broom"),
stats: (
equip_time_millis: 400,
power: 0.5,
power: 1.5,
),
)
),

View File

@ -6,7 +6,7 @@ Item(
kind: Farming("FishingRod0"),
stats: (
equip_time_millis: 400,
power: 0.5,
power: 1.5,
),
)
),

View File

@ -6,7 +6,7 @@ Item(
kind: Farming("Hoe0"),
stats: (
equip_time_millis: 400,
power: 0.50,
power: 1.50,
),
)
),

View File

@ -6,7 +6,7 @@ Item(
kind: Farming("Pickaxe0"),
stats: (
equip_time_millis: 400,
power: 0.50,
power: 1.50,
),
)
),

View File

@ -6,7 +6,7 @@ Item(
kind: Farming("Pitchfork"),
stats: (
equip_time_millis: 400,
power: 0.50,
power: 1.50,
),
)
),

View File

@ -6,7 +6,7 @@ Item(
kind: Farming("Rake"),
stats: (
equip_time_millis: 400,
power: 0.50,
power: 1.50,
),
)
),

View File

@ -6,7 +6,7 @@ Item(
kind: Farming("Shovel0"),
stats: (
equip_time_millis: 400,
power: 0.50,
power: 1.50,
),
)
),

View File

@ -6,7 +6,7 @@ Item(
kind: Farming("Shovel1"),
stats: (
equip_time_millis: 400,
power: 0.50,
power: 1.50,
),
)
),

View File

@ -0,0 +1,13 @@
Item(
name: "Velorite Sceptre",
description: "Heals your allies with the mystical Velorite aura.",
kind: Tool(
(
kind: Staff("SceptreVelorite"),
stats: (
equip_time_millis: 400,
power: 1.0,
),
)
),
)

View File

@ -1,234 +0,0 @@
[
// All loot rates go here
// food
(3, "common.items.food.cheese"),
(3, "common.items.food.apple"),
(3, "common.items.food.mushroom"),
(1, "common.items.food.coconut"),
// miscellaneous
(0.4, "common.items.ore.velorite"),
(0.6, "common.items.ore.veloritefrag"),
(0.1, "common.items.consumable.potion_minor"),
(0.01, "common.items.utility.collar"),
(0.01, "common.items.utility.bomb_pile"),
(0.1, "common.items.utility.bomb"),
// crafting ingredients
(2, "common.items.crafting_ing.leather_scraps"),
(1, "common.items.crafting_ing.empty_vial"),
// swords
(0.1, "common.items.weapons.sword.starter_sword"),
(0.1, "common.items.weapons.sword.wood_sword"),
(0.1, "common.items.weapons.sword.short_sword_0"),
(0.06, "common.items.weapons.sword.greatsword_2h_dam-0"),
(0.06, "common.items.weapons.sword.greatsword_2h_dam-1"),
(0.06, "common.items.weapons.sword.greatsword_2h_dam-2"),
(0.03, "common.items.weapons.sword.greatsword_2h_simple-0"),
(0.03, "common.items.weapons.sword.greatsword_2h_simple-1"),
(0.03, "common.items.weapons.sword.greatsword_2h_simple-2"),
(0.01, "common.items.weapons.sword.greatsword_2h_orn-0"),
(0.01, "common.items.weapons.sword.greatsword_2h_orn-1"),
(0.01, "common.items.weapons.sword.greatsword_2h_orn-2"),
(0.04, "common.items.weapons.sword.long_2h_dam-0"),
(0.04, "common.items.weapons.sword.long_2h_dam-1"),
(0.04, "common.items.weapons.sword.long_2h_dam-2"),
(0.04, "common.items.weapons.sword.long_2h_dam-3"),
(0.04, "common.items.weapons.sword.long_2h_dam-4"),
(0.04, "common.items.weapons.sword.long_2h_dam-5"),
(0.02, "common.items.weapons.sword.long_2h_simple-0"),
(0.02, "common.items.weapons.sword.long_2h_simple-1"),
(0.02, "common.items.weapons.sword.long_2h_simple-2"),
(0.02, "common.items.weapons.sword.long_2h_simple-3"),
(0.02, "common.items.weapons.sword.long_2h_simple-4"),
(0.02, "common.items.weapons.sword.long_2h_simple-5"),
(0.007, "common.items.weapons.sword.long_2h_orn-0"),
(0.007, "common.items.weapons.sword.long_2h_orn-1"),
(0.007, "common.items.weapons.sword.long_2h_orn-2"),
(0.007, "common.items.weapons.sword.long_2h_orn-3"),
(0.007, "common.items.weapons.sword.long_2h_orn-4"),
(0.007, "common.items.weapons.sword.long_2h_orn-5"),
(0.01, "common.items.weapons.sword.zweihander_sword_0"),
// axes
(0.10, "common.items.weapons.axe.starter_axe"),
(0.10, "common.items.weapons.axe.orc_axe-0"),
(0.04, "common.items.weapons.axe.worn_iron_axe-0"),
(0.04, "common.items.weapons.axe.worn_iron_axe-1"),
(0.04, "common.items.weapons.axe.worn_iron_axe-2"),
(0.04, "common.items.weapons.axe.worn_iron_axe-3"),
(0.04, "common.items.weapons.axe.worn_iron_axe-4"),
(0.10, "common.items.weapons.axe.bronze_axe-0"),
(0.10, "common.items.weapons.axe.bronze_axe-1"),
(0.03, "common.items.weapons.axe.iron_axe-0"),
(0.03, "common.items.weapons.axe.iron_axe-1"),
(0.03, "common.items.weapons.axe.iron_axe-2"),
(0.03, "common.items.weapons.axe.iron_axe-3"),
(0.03, "common.items.weapons.axe.iron_axe-4"),
(0.03, "common.items.weapons.axe.iron_axe-5"),
(0.03, "common.items.weapons.axe.iron_axe-6"),
(0.03, "common.items.weapons.axe.iron_axe-7"),
(0.03, "common.items.weapons.axe.iron_axe-8"),
(0.03, "common.items.weapons.axe.iron_axe-9"),
(0.02, "common.items.weapons.axe.steel_axe-0"),
(0.02, "common.items.weapons.axe.steel_axe-1"),
(0.02, "common.items.weapons.axe.steel_axe-2"),
(0.02, "common.items.weapons.axe.steel_axe-3"),
(0.02, "common.items.weapons.axe.steel_axe-4"),
(0.02, "common.items.weapons.axe.steel_axe-5"),
(0.02, "common.items.weapons.axe.steel_axe-6"),
(0.01, "common.items.weapons.axe.bloodsteel_axe-0"),
(0.01, "common.items.weapons.axe.bloodsteel_axe-1"),
(0.01, "common.items.weapons.axe.bloodsteel_axe-2"),
(0.01, "common.items.weapons.axe.cobalt_axe-0"),
(0.01, "common.items.weapons.axe.malachite_axe-0"),
// healing staff
(0.8, "common.items.weapons.staff.staff_nature"),
// staves
(0.50, "common.items.weapons.staff.starter_staff"),
(0.35, "common.items.weapons.staff.bone_staff"),
(0.15, "common.items.weapons.staff.amethyst_staff"),
//(0.01, "common.items.weapons.staff.cultist_staff"),
// hammers
(0.05, "common.items.weapons.hammer.starter_hammer"),
(0.05, "common.items.weapons.hammer.wood_hammer-0"),
(0.05, "common.items.weapons.hammer.flimsy_hammer"),
(0.05, "common.items.weapons.hammer.stone_hammer-0"),
(0.05, "common.items.weapons.hammer.stone_hammer-1"),
(0.05, "common.items.weapons.hammer.stone_hammer-2"),
(0.05, "common.items.weapons.hammer.stone_hammer-3"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-0"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-1"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-2"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-3"),
(0.05, "common.items.weapons.hammer.bronze_hammer-0"),
(0.05, "common.items.weapons.hammer.bronze_hammer-1"),
(0.03, "common.items.weapons.hammer.iron_hammer-0"),
(0.03, "common.items.weapons.hammer.iron_hammer-1"),
(0.03, "common.items.weapons.hammer.iron_hammer-2"),
(0.03, "common.items.weapons.hammer.iron_hammer-3"),
(0.03, "common.items.weapons.hammer.iron_hammer-4"),
(0.03, "common.items.weapons.hammer.iron_hammer-5"),
(0.03, "common.items.weapons.hammer.iron_hammer-6"),
(0.03, "common.items.weapons.hammer.iron_hammer-7"),
(0.03, "common.items.weapons.hammer.iron_hammer-8"),
(0.02, "common.items.weapons.hammer.steel_hammer-0"),
(0.02, "common.items.weapons.hammer.steel_hammer-1"),
(0.02, "common.items.weapons.hammer.steel_hammer-2"),
(0.02, "common.items.weapons.hammer.steel_hammer-3"),
(0.02, "common.items.weapons.hammer.steel_hammer-4"),
(0.02, "common.items.weapons.hammer.steel_hammer-5"),
(0.01, "common.items.weapons.hammer.cobalt_hammer-0"),
(0.01, "common.items.weapons.hammer.cobalt_hammer-1"),
(0.01, "common.items.weapons.hammer.runic_hammer"),
(0.01, "common.items.weapons.hammer.ramshead_hammer"),
(0.01, "common.items.weapons.hammer.mjolnir"),
// bows
(0.20, "common.items.weapons.bow.starter_bow"),
(0.15, "common.items.weapons.bow.wood_shortbow-0"),
(0.15, "common.items.weapons.bow.wood_shortbow-1"),
(0.10, "common.items.weapons.bow.leafy_shortbow-0"),
(0.10, "common.items.weapons.bow.wood_longbow-0"),
(0.10, "common.items.weapons.bow.wood_longbow-1"),
(0.08, "common.items.weapons.bow.leafy_longbow-0"),
(0.05, "common.items.weapons.bow.horn_longbow-0"),
(0.03, "common.items.weapons.bow.iron_longbow-0"),
(0.01, "common.items.weapons.bow.rare_longbow"),
// belts
(0.17, "common.items.armor.belt.cloth_blue_0"),
(0.17, "common.items.armor.belt.cloth_green_0"),
(0.17, "common.items.armor.belt.cloth_purple_0"),
(0.08, "common.items.armor.belt.druid"),
(0.06, "common.items.armor.belt.leather_0"),
(0.06, "common.items.armor.belt.leather_2"),
(0.02, "common.items.armor.belt.twig"),
(0.02, "common.items.armor.belt.twigsflowers"),
(0.02, "common.items.armor.belt.twigsleaves"),
(0.03, "common.items.armor.belt.plate_0"),
(0.01, "common.items.armor.belt.steel_0"),
// chests
(0.08, "common.items.armor.chest.cloth_blue_0"),
(0.08, "common.items.armor.chest.cloth_green_0"),
(0.08, "common.items.armor.chest.cloth_purple_0"),
(0.025, "common.items.armor.chest.worker_green_0"),
(0.025, "common.items.armor.chest.worker_green_1"),
(0.025, "common.items.armor.chest.worker_orange_0"),
(0.025, "common.items.armor.chest.worker_orange_1"),
(0.025, "common.items.armor.chest.worker_purple_0"),
(0.025, "common.items.armor.chest.worker_purple_1"),
(0.025, "common.items.armor.chest.worker_red_0"),
(0.025, "common.items.armor.chest.worker_red_1"),
(0.025, "common.items.armor.chest.worker_yellow_0"),
(0.025, "common.items.armor.chest.worker_yellow_1"),
(0.08, "common.items.armor.chest.druid"),
(0.06, "common.items.armor.chest.leather_0"),
(0.06, "common.items.armor.chest.leather_2"),
(0.02, "common.items.armor.chest.twig"),
(0.02, "common.items.armor.chest.twigsflowers"),
(0.02, "common.items.armor.chest.twigsleaves"),
(0.03, "common.items.armor.chest.plate_green_0"),
(0.01, "common.items.armor.chest.steel_0"),
// shoes
(0.15, "common.items.armor.foot.cloth_blue_0"),
(0.15, "common.items.armor.foot.cloth_green_0"),
(0.15, "common.items.armor.foot.cloth_purple_0"),
(0.08, "common.items.armor.foot.druid"),
(0.06, "common.items.armor.foot.leather_0"),
(0.06, "common.items.armor.foot.leather_2"),
(0.02, "common.items.armor.foot.twig"),
(0.02, "common.items.armor.foot.twigsflowers"),
(0.02, "common.items.armor.foot.twigsleaves"),
(0.03, "common.items.armor.foot.plate_0"),
(0.01, "common.items.armor.foot.steel_0"),
// pants
(0.125, "common.items.armor.pants.cloth_blue_0"),
(0.125, "common.items.armor.pants.cloth_green_0"),
(0.125, "common.items.armor.pants.cloth_purple_0"),
(0.125, "common.items.armor.pants.worker_blue_0"),
(0.08, "common.items.armor.pants.druid"),
(0.04, "common.items.armor.pants.leather_0"),
(0.04, "common.items.armor.pants.leather_2"),
(0.04, "common.items.armor.pants.hunting"),
(0.02, "common.items.armor.pants.twig"),
(0.02, "common.items.armor.pants.twigsflowers"),
(0.02, "common.items.armor.pants.twigsleaves"),
(0.03, "common.items.armor.pants.plate_green_0"),
(0.01, "common.items.armor.pants.steel_0"),
// shoulders
(0.125, "common.items.armor.shoulder.cloth_blue_0"),
(0.125, "common.items.armor.shoulder.cloth_blue_1"),
(0.125, "common.items.armor.shoulder.cloth_green_0"),
(0.125, "common.items.armor.shoulder.cloth_purple_0"),
(0.06, "common.items.armor.shoulder.druidshoulder"),
(0.06, "common.items.armor.shoulder.leather_strips"),
(0.04, "common.items.armor.shoulder.leather_0"),
(0.04, "common.items.armor.shoulder.leather_1"),
(0.04, "common.items.armor.shoulder.leather_2"),
(0.01, "common.items.armor.shoulder.twigs"),
(0.01, "common.items.armor.shoulder.twigsflowers"),
(0.01, "common.items.armor.shoulder.twigsleaves"),
(0.01, "common.items.armor.shoulder.leather_iron_0"),
(0.01, "common.items.armor.shoulder.leather_iron_1"),
(0.01, "common.items.armor.shoulder.leather_iron_2"),
(0.01, "common.items.armor.shoulder.leather_iron_3"),
(0.015, "common.items.armor.shoulder.plate_0"),
(0.015, "common.items.armor.shoulder.iron_spikes"),
(0.01, "common.items.armor.shoulder.steel_0"),
//gloves
(0.17, "common.items.armor.hand.cloth_blue_0"),
(0.17, "common.items.armor.hand.cloth_green_0"),
(0.17, "common.items.armor.hand.cloth_purple_0"),
(0.08, "common.items.armor.hand.druid"),
(0.06, "common.items.armor.hand.leather_0"),
(0.06, "common.items.armor.hand.leather_2"),
(0.02, "common.items.armor.hand.twig"),
(0.02, "common.items.armor.hand.twigsflowers"),
(0.02, "common.items.armor.hand.twigsleaves"),
(0.03, "common.items.armor.hand.plate_0"),
(0.01, "common.items.armor.hand.steel_0"),
// rings
(0.6, "common.items.armor.ring.ring_0"),
// capes
(0.6, "common.items.armor.back.short_0"),
(0.7, "common.items.armor.back.short_1"),
// necks
(0.6, "common.items.armor.neck.neck_0"),
(0.4, "common.items.armor.neck.neck_1"),
]

View File

@ -0,0 +1,4 @@
[
// Fallback loot table
(1, "common.items.food.cheese"),
]

View File

@ -0,0 +1,3 @@
[
(2, "common.items.crafting_ing.leather_scraps"),
]

View File

@ -0,0 +1,38 @@
[
// belts
(0.33, "common.items.armor.belt.cloth_blue_0"),
(0.33, "common.items.armor.belt.cloth_green_0"),
(0.33, "common.items.armor.belt.cloth_purple_0"),
// chests
(0.08, "common.items.armor.chest.cloth_blue_0"),
(0.08, "common.items.armor.chest.cloth_green_0"),
(0.08, "common.items.armor.chest.cloth_purple_0"),
(0.08, "common.items.armor.chest.worker_green_0"),
(0.08, "common.items.armor.chest.worker_green_1"),
(0.08, "common.items.armor.chest.worker_orange_0"),
(0.08, "common.items.armor.chest.worker_orange_1"),
(0.08, "common.items.armor.chest.worker_purple_0"),
(0.08, "common.items.armor.chest.worker_purple_1"),
(0.08, "common.items.armor.chest.worker_red_0"),
(0.08, "common.items.armor.chest.worker_red_1"),
(0.08, "common.items.armor.chest.worker_yellow_0"),
(0.08, "common.items.armor.chest.worker_yellow_1"),
// shoes
(0.33, "common.items.armor.foot.cloth_blue_0"),
(0.33, "common.items.armor.foot.cloth_green_0"),
(0.33, "common.items.armor.foot.cloth_purple_0"),
// pants
(0.25, "common.items.armor.pants.cloth_blue_0"),
(0.25, "common.items.armor.pants.cloth_green_0"),
(0.25, "common.items.armor.pants.cloth_purple_0"),
(0.25, "common.items.armor.pants.worker_blue_0"),
// shoulders
(0.25, "common.items.armor.shoulder.cloth_blue_0"),
(0.25, "common.items.armor.shoulder.cloth_blue_1"),
(0.25, "common.items.armor.shoulder.cloth_green_0"),
(0.25, "common.items.armor.shoulder.cloth_purple_0"),
//gloves
(0.33, "common.items.armor.hand.cloth_blue_0"),
(0.33, "common.items.armor.hand.cloth_green_0"),
(0.33, "common.items.armor.hand.cloth_purple_0"),
]

View File

@ -0,0 +1,21 @@
[
// belts
(0.67, "common.items.armor.belt.plate_0"),
(0.33, "common.items.armor.belt.steel_0"),
// chests
(0.67, "common.items.armor.chest.plate_green_0"),
(0.33, "common.items.armor.chest.steel_0"),
// shoes
(0.67, "common.items.armor.foot.plate_0"),
(0.33, "common.items.armor.foot.steel_0"),
// pants
(0.67, "common.items.armor.pants.plate_green_0"),
(0.66, "common.items.armor.pants.steel_0"),
// shoulders
(0.40, "common.items.armor.shoulder.plate_0"),
(0.37, "common.items.armor.shoulder.iron_spikes"),
(0.33, "common.items.armor.shoulder.steel_0"),
//gloves
(0.67, "common.items.armor.hand.plate_0"),
(0.33, "common.items.armor.hand.steel_0"),
]

View File

@ -0,0 +1,27 @@
[
// belts
(0.50, "common.items.armor.belt.leather_0"),
(0.50, "common.items.armor.belt.leather_2"),
// chests
(0.50, "common.items.armor.chest.leather_0"),
(0.50, "common.items.armor.chest.leather_2"),
// shoes
(0.50, "common.items.armor.foot.leather_0"),
(0.50, "common.items.armor.foot.leather_2"),
// pants
(0.33, "common.items.armor.pants.leather_0"),
(0.33, "common.items.armor.pants.leather_2"),
(0.33, "common.items.armor.pants.hunting"),
// shoulders
(0.10, "common.items.armor.shoulder.leather_strips"),
(0.20, "common.items.armor.shoulder.leather_0"),
(0.20, "common.items.armor.shoulder.leather_1"),
(0.20, "common.items.armor.shoulder.leather_2"),
(0.07, "common.items.armor.shoulder.leather_iron_0"),
(0.07, "common.items.armor.shoulder.leather_iron_1"),
(0.07, "common.items.armor.shoulder.leather_iron_2"),
(0.07, "common.items.armor.shoulder.leather_iron_3"),
//gloves
(0.50, "common.items.armor.hand.leather_0"),
(0.50, "common.items.armor.hand.leather_2"),
]

View File

@ -0,0 +1,10 @@
[
// rings
(0.50, "common.items.armor.ring.ring_0"),
// capes
(0.25, "common.items.armor.back.short_0"),
(0.25, "common.items.armor.back.short_1"),
// necks
(0.25, "common.items.armor.neck.neck_0"),
(0.25, "common.items.armor.neck.neck_1"),
]

View File

@ -0,0 +1,32 @@
[
// belts
(0.40, "common.items.armor.belt.druid"),
(0.20, "common.items.armor.belt.twig"),
(0.20, "common.items.armor.belt.twigsflowers"),
(0.20, "common.items.armor.belt.twigsleaves"),
// chests
(0.40, "common.items.armor.chest.druid"),
(0.20, "common.items.armor.chest.twig"),
(0.20, "common.items.armor.chest.twigsflowers"),
(0.20, "common.items.armor.chest.twigsleaves"),
// shoes
(0.40, "common.items.armor.foot.druid"),
(0.20, "common.items.armor.foot.twig"),
(0.20, "common.items.armor.foot.twigsflowers"),
(0.20, "common.items.armor.foot.twigsleaves"),
// pants
(0.40, "common.items.armor.pants.druid"),
(0.20, "common.items.armor.pants.twig"),
(0.20, "common.items.armor.pants.twigsflowers"),
(0.20, "common.items.armor.pants.twigsleaves"),
// shoulders
(0.40, "common.items.armor.shoulder.druidshoulder"),
(0.20, "common.items.armor.shoulder.twigs"),
(0.20, "common.items.armor.shoulder.twigsflowers"),
(0.20, "common.items.armor.shoulder.twigsleaves"),
//gloves
(0.40, "common.items.armor.hand.druid"),
(0.20, "common.items.armor.hand.twig"),
(0.20, "common.items.armor.hand.twigsflowers"),
(0.20, "common.items.armor.hand.twigsleaves"),
]

View File

@ -0,0 +1,18 @@
[
// armor
(1, "common.items.armor.belt.cultist_belt"),
(1, "common.items.armor.chest.cultist_chest_purple"),
(1, "common.items.armor.foot.cultist_boots"),
(1, "common.items.armor.hand.cultist_hands_purple"),
(1, "common.items.armor.pants.cultist_legs_purple"),
(1, "common.items.armor.shoulder.cultist_shoulder_purple"),
(1, "common.items.armor.back.dungeon_purple-0"),
// weapons
(1, "common.items.weapons.staff.cultist_staff"),
(1, "common.items.weapons.hammer.cultist_purp_2h-0"),
(1, "common.items.weapons.sword.cultist_purp_2h-0"),
// misc
(9, "common.items.boss_drops.exp_flask"),
(1, "common.items.boss_drops.lantern"),
(1, "common.items.boss_drops.potions"),
]

View File

@ -0,0 +1,14 @@
[
// potions
(1, "common.items.consumable.potion_minor"),
(0.1, "common.items.consumable.potion_med"),
(0.01, "common.items.consumable.potion_big"),
// bombs
(0.6, "common.items.utility.bomb"),
(0.2, "common.items.utility.bomb_pile"),
// velorite
(1, "common.items.ore.veloritefrag"),
(0.5, "common.items.ore.velorite"),
// misc
(0.1, "common.items.utility.collar"),
]

View File

@ -0,0 +1,7 @@
[
// crafting ingredients
(2, "common.items.crafting_ing.leather_scraps"),
(1, "common.items.crafting_ing.empty_vial"),
(0.10, "common.items.crafting_ing.shiny_gem"),
]

View File

@ -0,0 +1,11 @@
[
// simple
(3, "common.items.food.cheese"),
(3, "common.items.food.apple"),
(3, "common.items.food.mushroom"),
(1, "common.items.food.coconut"),
// crafted
(0.05, "common.items.food.apple_mushroom_curry"),
(0.10, "common.items.food.apple_stick"),
(0.10, "common.items.food.mushroom_stick"),
]

View File

@ -0,0 +1,25 @@
[
// Crafting Ingredients
(1, "common.items.crafting_ing.empty_vial"),
(0.10, "common.items.crafting_ing.shiny_gem"),
// Consumables
(0.2, "common.items.consumable.potion_minor"),
// Utility
(0.05, "common.items.utility.collar"),
// Food
(1, "common.items.food.coconut"),
(0.05, "common.items.food.apple_mushroom_curry"),
(0.10, "common.items.food.apple_stick"),
(0.10, "common.items.food.mushroom_stick"),
// Weapons
(0.15, "common.items.weapons.sword.wood_sword"),
(0.10, "common.items.weapons.axe.worn_iron_axe-0"),
(0.10, "common.items.weapons.axe.worn_iron_axe-1"),
(0.10, "common.items.weapons.axe.worn_iron_axe-2"),
(0.10, "common.items.weapons.axe.worn_iron_axe-3"),
(0.10, "common.items.weapons.axe.worn_iron_axe-4"),
(0.25, "common.items.weapons.staff.staff_nature"),
(0.15, "common.items.weapons.hammer.flimsy_hammer"),
(0.10, "common.items.weapons.hammer.wood_hammer-0"),
(0.25, "common.items.weapons.bow.wood_shortbow-0"),
]

View File

@ -0,0 +1,6 @@
[
(1, "common.items.crafting_ing.stones"),
(0.10, "common.items.crafting_ing.shiny_gem"),
(0.10, "common.items.ore.velorite"),
(0.20, "common.items.ore.veloritefrag"),
]

View File

@ -0,0 +1,37 @@
[
// Crafting Ingredients
(1, "common.items.crafting_ing.empty_vial"),
(0.10, "common.items.crafting_ing.shiny_gem"),
// Consumables
(0.2, "common.items.consumable.potion_minor"),
// Armour
(1, "common.items.armor.chest.worker_green_0"),
(1, "common.items.armor.chest.worker_green_1"),
(1, "common.items.armor.chest.worker_orange_0"),
(1, "common.items.armor.chest.worker_orange_1"),
(1, "common.items.armor.chest.worker_purple_0"),
(1, "common.items.armor.chest.worker_purple_1"),
(1, "common.items.armor.chest.worker_red_0"),
(1, "common.items.armor.chest.worker_red_1"),
(1, "common.items.armor.chest.worker_yellow_0"),
(1, "common.items.armor.chest.worker_yellow_1"),
(1, "common.items.armor.pants.worker_blue_0"),
// Utility
(0.05, "common.items.utility.collar"),
// Food
(0.5, "common.items.food.coconut"),
(0.05, "common.items.food.apple_mushroom_curry"),
(0.10, "common.items.food.apple_stick"),
(0.10, "common.items.food.mushroom_stick"),
// Weapons
(0.15, "common.items.weapons.sword.wood_sword"),
(0.10, "common.items.weapons.axe.worn_iron_axe-0"),
(0.10, "common.items.weapons.axe.worn_iron_axe-1"),
(0.10, "common.items.weapons.axe.worn_iron_axe-2"),
(0.10, "common.items.weapons.axe.worn_iron_axe-3"),
(0.10, "common.items.weapons.axe.worn_iron_axe-4"),
(0.25, "common.items.weapons.staff.staff_nature"),
(0.15, "common.items.weapons.hammer.flimsy_hammer"),
(0.10, "common.items.weapons.hammer.wood_hammer-0"),
(0.25, "common.items.weapons.bow.wood_shortbow-0"),
]

View File

@ -0,0 +1,43 @@
[
// swords
(0.15, "common.items.weapons.sword.starter_sword"),
(0.15, "common.items.weapons.sword.wood_sword"),
(0.07, "common.items.weapons.sword.long_2h_dam-0"),
(0.07, "common.items.weapons.sword.long_2h_dam-1"),
(0.07, "common.items.weapons.sword.long_2h_dam-2"),
(0.07, "common.items.weapons.sword.long_2h_dam-3"),
(0.07, "common.items.weapons.sword.long_2h_dam-4"),
(0.07, "common.items.weapons.sword.long_2h_dam-5"),
(0.10, "common.items.weapons.sword.short_sword_0"),
(0.06, "common.items.weapons.sword.greatsword_2h_dam-0"),
(0.06, "common.items.weapons.sword.greatsword_2h_dam-1"),
(0.06, "common.items.weapons.sword.greatsword_2h_dam-2"),
// axes
(0.30, "common.items.weapons.axe.starter_axe"),
(0.20, "common.items.weapons.axe.orc_axe-0"),
(0.10, "common.items.weapons.axe.worn_iron_axe-0"),
(0.10, "common.items.weapons.axe.worn_iron_axe-1"),
(0.10, "common.items.weapons.axe.worn_iron_axe-2"),
(0.10, "common.items.weapons.axe.worn_iron_axe-3"),
(0.10, "common.items.weapons.axe.worn_iron_axe-4"),
// healing staff
(0.25, "common.items.weapons.staff.staff_nature"),
// staves
(1.00, "common.items.weapons.staff.starter_staff"),
// hammers
(0.15, "common.items.weapons.hammer.starter_hammer"),
(0.15, "common.items.weapons.hammer.flimsy_hammer"),
(0.10, "common.items.weapons.hammer.wood_hammer-0"),
(0.10, "common.items.weapons.hammer.stone_hammer-0"),
(0.10, "common.items.weapons.hammer.stone_hammer-1"),
(0.10, "common.items.weapons.hammer.stone_hammer-2"),
(0.10, "common.items.weapons.hammer.stone_hammer-3"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-0"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-1"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-2"),
(0.05, "common.items.weapons.hammer.worn_iron_hammer-3"),
// bows
(0.50, "common.items.weapons.bow.starter_bow"),
(0.25, "common.items.weapons.bow.wood_shortbow-0"),
(0.25, "common.items.weapons.bow.wood_shortbow-1"),
]

View File

@ -0,0 +1,33 @@
[
// swords
(0.08, "common.items.weapons.sword.long_2h_orn-0"),
(0.08, "common.items.weapons.sword.long_2h_orn-1"),
(0.08, "common.items.weapons.sword.long_2h_orn-2"),
(0.08, "common.items.weapons.sword.long_2h_orn-3"),
(0.08, "common.items.weapons.sword.long_2h_orn-4"),
(0.08, "common.items.weapons.sword.long_2h_orn-5"),
(0.20, "common.items.weapons.sword.zweihander_sword_0"),
(0.10, "common.items.weapons.sword.greatsword_2h_orn-0"),
(0.10, "common.items.weapons.sword.greatsword_2h_orn-1"),
(0.10, "common.items.weapons.sword.greatsword_2h_orn-2"),
// axes
(0.20, "common.items.weapons.axe.bloodsteel_axe-0"),
(0.20, "common.items.weapons.axe.bloodsteel_axe-1"),
(0.20, "common.items.weapons.axe.bloodsteel_axe-2"),
(0.30, "common.items.weapons.axe.cobalt_axe-0"),
(0.10, "common.items.weapons.axe.malachite_axe-0"),
// healing staff
(0.25, "common.items.weapons.staff.staff_nature"),
// staves
(1.00, "common.items.weapons.staff.amethyst_staff"),
// hammers
(0.30, "common.items.weapons.hammer.cobalt_hammer-0"),
(0.30, "common.items.weapons.hammer.cobalt_hammer-1"),
(0.15, "common.items.weapons.hammer.runic_hammer"),
(0.15, "common.items.weapons.hammer.ramshead_hammer"),
(0.10, "common.items.weapons.hammer.mjolnir"),
// bows
(0.60, "common.items.weapons.bow.horn_longbow-0"),
(0.30, "common.items.weapons.bow.iron_longbow-0"),
(0.10, "common.items.weapons.bow.rare_longbow"),
]

View File

@ -0,0 +1,68 @@
[
// swords
(0.05, "common.items.weapons.sword.long_2h_simple-0"),
(0.05, "common.items.weapons.sword.long_2h_simple-1"),
(0.05, "common.items.weapons.sword.long_2h_simple-2"),
(0.05, "common.items.weapons.sword.long_2h_simple-3"),
(0.05, "common.items.weapons.sword.long_2h_simple-4"),
(0.05, "common.items.weapons.sword.long_2h_simple-5"),
(0.10, "common.items.weapons.sword.greatsword_2h_simple-0"),
(0.10, "common.items.weapons.sword.greatsword_2h_simple-1"),
(0.10, "common.items.weapons.sword.greatsword_2h_simple-2"),
(0.06, "common.items.weapons.sword.long_2h_fine-0"),
(0.06, "common.items.weapons.sword.long_2h_fine-1"),
(0.06, "common.items.weapons.sword.long_2h_fine-2"),
(0.06, "common.items.weapons.sword.long_2h_fine-3"),
(0.06, "common.items.weapons.sword.long_2h_fine-4"),
(0.06, "common.items.weapons.sword.long_2h_fine-5"),
(0.07, "common.items.weapons.sword.greatsword_2h_fine-0"),
(0.07, "common.items.weapons.sword.greatsword_2h_fine-1"),
(0.07, "common.items.weapons.sword.greatsword_2h_fine-2"),
// axes
(0.15, "common.items.weapons.axe.bronze_axe-0"),
(0.15, "common.items.weapons.axe.bronze_axe-1"),
(0.04, "common.items.weapons.axe.iron_axe-0"),
(0.04, "common.items.weapons.axe.iron_axe-1"),
(0.04, "common.items.weapons.axe.iron_axe-2"),
(0.04, "common.items.weapons.axe.iron_axe-3"),
(0.04, "common.items.weapons.axe.iron_axe-4"),
(0.04, "common.items.weapons.axe.iron_axe-5"),
(0.04, "common.items.weapons.axe.iron_axe-6"),
(0.04, "common.items.weapons.axe.iron_axe-7"),
(0.04, "common.items.weapons.axe.iron_axe-8"),
(0.04, "common.items.weapons.axe.iron_axe-9"),
(0.04, "common.items.weapons.axe.steel_axe-0"),
(0.04, "common.items.weapons.axe.steel_axe-1"),
(0.04, "common.items.weapons.axe.steel_axe-2"),
(0.04, "common.items.weapons.axe.steel_axe-3"),
(0.04, "common.items.weapons.axe.steel_axe-4"),
(0.04, "common.items.weapons.axe.steel_axe-5"),
(0.04, "common.items.weapons.axe.steel_axe-6"),
// healing staff
(0.5, "common.items.weapons.staff.staff_nature"),
// staves
(1.00, "common.items.weapons.staff.bone_staff"),
// hammers
(0.15, "common.items.weapons.hammer.bronze_hammer-0"),
(0.15, "common.items.weapons.hammer.bronze_hammer-1"),
(0.04, "common.items.weapons.hammer.iron_hammer-0"),
(0.04, "common.items.weapons.hammer.iron_hammer-1"),
(0.04, "common.items.weapons.hammer.iron_hammer-2"),
(0.04, "common.items.weapons.hammer.iron_hammer-3"),
(0.04, "common.items.weapons.hammer.iron_hammer-4"),
(0.04, "common.items.weapons.hammer.iron_hammer-5"),
(0.04, "common.items.weapons.hammer.iron_hammer-6"),
(0.04, "common.items.weapons.hammer.iron_hammer-7"),
(0.04, "common.items.weapons.hammer.iron_hammer-8"),
(0.05, "common.items.weapons.hammer.steel_hammer-0"),
(0.05, "common.items.weapons.hammer.steel_hammer-1"),
(0.05, "common.items.weapons.hammer.steel_hammer-2"),
(0.05, "common.items.weapons.hammer.steel_hammer-3"),
(0.05, "common.items.weapons.hammer.steel_hammer-4"),
(0.05, "common.items.weapons.hammer.steel_hammer-5"),
// bows
(0.30, "common.items.weapons.bow.leafy_shortbow-0"),
(0.25, "common.items.weapons.bow.wood_longbow-0"),
(0.25, "common.items.weapons.bow.wood_longbow-1"),
(0.20, "common.items.weapons.bow.leafy_longbow-0"),
]

View File

@ -14,4 +14,5 @@
"apple_shroom_curry": (("common.items.food.apple_mushroom_curry", 1), [("common.items.food.mushroom", 8), ("common.items.food.coconut", 1), ("common.items.food.apple", 4), ("common.items.crafting_tools.mortar_pestle", 0)]),
"apples_stick": (("common.items.food.apple_stick", 1),[("common.items.crafting_ing.twigs", 2), ("common.items.food.apple", 2)]),
"mushroom_stick": (("common.items.food.mushroom_stick", 1),[("common.items.crafting_ing.twigs", 2), ("common.items.food.mushroom", 3)]),
"velorte_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)]),
}

BIN
assets/voxygen/element/frames/banner_bot.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/icons/female.png (Stored with Git LFS)

Binary file not shown.

BIN
assets/voxygen/element/icons/item_leather1.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/icons/male.png (Stored with Git LFS)

Binary file not shown.

View File

@ -152,7 +152,8 @@ https://account.veloren.net.
"hud.you_died": "Ihr seid gestorben.",
"hud.waypoint_saved": "Wegpunkt gesichert",
"hud.press_key_to_show_keybindings_fmt": "Drückt {key} um die Tastenbelegung zu zeigen",
"hud.press_key_to_show_keybindings_fmt": "[{key}] Tastenbelegung",
"hud.press_key_to_toggle_lantern_fmt": "[{key}] Laterne",
"hud.press_key_to_show_debug_info_fmt": "Drückt {key} um die Debug-Info zu zeigen",
"hud.press_key_to_toggle_keybindings_fmt": "Drückt {key} um die Tastenbelegung zu zeigen",
"hud.press_key_to_toggle_debug_info_fmt": "Drückt {key} um die Debug-Info zu zeigen",

View File

@ -152,7 +152,8 @@ https://account.veloren.net."#,
"hud.you_died": "You Died",
"hud.waypoint_saved": "Waypoint Saved",
"hud.press_key_to_show_keybindings_fmt": "Press {key} to show keybindings",
"hud.press_key_to_show_keybindings_fmt": "[{key}] Keybindings",
"hud.press_key_to_toggle_lantern_fmt": "[{key}] Lantern",
"hud.press_key_to_show_debug_info_fmt": "Press {key} to show debug info",
"hud.press_key_to_toggle_keybindings_fmt": "Press {key} to toggle keybindings",
"hud.press_key_to_toggle_debug_info_fmt": "Press {key} to toggle debug info",

View File

@ -505,6 +505,10 @@
Tool(Staff("Sceptre")): VoxTrans(
"voxel.weapon.staff.wood-nature",
(1.0, -1.0, 0.0), (-310., 90.0, 0.0), 1.2,
),
Tool(Staff("SceptreVelorite")): VoxTrans(
"voxel.weapon.staff.ore-nature",
(1.0, -1.0, 0.0), (-310., 90.0, 0.0), 1.15,
),
// Shields
Tool(Shield("BasicShield")): VoxTrans(
@ -1011,6 +1015,56 @@
"voxel.armor.shoulder.twigsflowers_shoulder_right",
(0.0, 0.0, 0.0), (-90.0, 130.0, 0.0), 1.2,
),
//Tarasque Set
Armor(Chest("Tarasque")): VoxTrans(
"voxel.armor.chest.tarasque",
(0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.2,
),
Armor(Pants("Tarasque")): VoxTrans(
"voxel.armor.pants.tarasque",
(0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.2,
),
Armor(Belt("Tarasque")): VoxTrans(
"voxel.armor.belt.tarasque",
(0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.4,
),
Armor(Foot("Tarasque")): VoxTrans(
"voxel.armor.foot.tarasque",
(0.0, 0.0, 0.0), (-95.0, 140.0, 0.0), 1.1,
),
Armor(Hand("Tarasque")): VoxTrans(
"voxel.armor.hand.tarasque_right",
(0.0, -1.0, 0.0), (-90.0, 135.0, 0.0), 1.0,
),
Armor(Shoulder("Tarasque")): VoxTrans(
"voxel.armor.shoulder.tarasque_right",
(0.0, 0.0, 0.0), (-90.0, 130.0, 0.0), 1.2,
),
//Bonerattler Set
Armor(Chest("Bonerattler")): VoxTrans(
"voxel.armor.chest.bonerattler",
(0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.2,
),
Armor(Pants("Bonerattler")): VoxTrans(
"voxel.armor.pants.bonerattler",
(0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.2,
),
Armor(Belt("Bonerattler")): VoxTrans(
"voxel.armor.belt.bonerattler",
(0.0, 0.0, 0.0), (-90.0, 180.0, 0.0), 1.4,
),
Armor(Foot("Bonerattler")): VoxTrans(
"voxel.armor.foot.bonerattler",
(0.0, 0.0, 0.0), (-95.0, 140.0, 0.0), 1.1,
),
Armor(Hand("Bonerattler")): VoxTrans(
"voxel.armor.hand.bonerattler_right",
(0.0, -1.0, 0.0), (-90.0, 135.0, 0.0), 1.0,
),
Armor(Shoulder("Bonerattler")): VoxTrans(
"voxel.armor.shoulder.bonerattler_right",
(0.0, 0.0, 0.0), (-90.0, 130.0, 0.0), 1.2,
),
//misc
Armor(Pants("Hunting")): VoxTrans(
"voxel.armor.pants.grayscale",

BIN
assets/voxygen/voxel/armor/belt/bonerattler.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/belt/tarasque.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/chest/bonerattler.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/chest/tarasque.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/foot/bonerattler.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/foot/tarasque.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/hand/bonerattler_left.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/hand/bonerattler_right.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/hand/tarasque_left.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/hand/tarasque_right.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/pants/bonerattler.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/pants/tarasque.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/shoulder/bonerattler_left.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/shoulder/bonerattler_right.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/shoulder/tarasque_left.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/armor/shoulder/tarasque_right.vox (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -76,5 +76,13 @@
vox_spec: ("armor.belt.twigsflowers_belt", (-4.0, -3.5, -1.0)),
color: None
),
"Tarasque":(
vox_spec: ("armor.belt.tarasque", (-5.0, -3.5, 2.0)),
color: None
),
"Bonerattler":(
vox_spec: ("armor.belt.bonerattler", (-5.0, -4.5, 2.0)),
color: None
),
},
))

View File

@ -134,6 +134,14 @@
vox_spec: ("armor.chest.leather-2", (-7.0, -3.5, 2.0)),
color: None
),
"Tarasque":(
vox_spec: ("armor.chest.tarasque", (-8.0, -4.5, 2.0)),
color: None
),
"Bonerattler":(
vox_spec: ("armor.chest.bonerattler", (-7.0, -4.5, 2.0)),
color: None
),
},
)
)

View File

@ -72,5 +72,13 @@
vox_spec: ("armor.foot.twigsflowers_foot", (-2.5, -3.5, -2.0)),
color: None
),
"Tarasque":(
vox_spec: ("armor.foot.tarasque", (-2.5, -3.5, -2.0)),
color: None
),
"Bonerattler":(
vox_spec: ("armor.foot.bonerattler", (-2.5, -3.5, -2.0)),
color: None
),
},
))

View File

@ -160,5 +160,25 @@
color: None
)
),
"Tarasque": (
left: (
vox_spec: ("armor.hand.tarasque_left", (-2.5, -2.5, -2.5)),
color: None
),
right: (
vox_spec: ("armor.hand.tarasque_right", (-2.5, -2.5, -2.5)),
color: None
)
),
"Bonerattler": (
left: (
vox_spec: ("armor.hand.bonerattler_left", (-1.5, -1.5, -2.5)),
color: None
),
right: (
vox_spec: ("armor.hand.bonerattler_right", (-1.5, -1.5, -2.5)),
color: None
)
),
},
))

View File

@ -92,5 +92,13 @@
vox_spec: ("armor.pants.twigsflowers_pants", (-6.0, -3.5, 0.0)),
color: None
),
"Tarasque":(
vox_spec: ("armor.pants.tarasque", (-6.0, -4.5, 1.0)),
color: None
),
"Bonerattler":(
vox_spec: ("armor.pants.bonerattler", (-5.0, -3.5, 1.0)),
color: None
),
},
))

View File

@ -249,7 +249,27 @@
right: (
vox_spec: ("armor.shoulder.druid_right", (-2.0, -4.5, -3.0)),
color: None
)
),
"Tarasque": (
left: (
vox_spec: ("armor.shoulder.tarasque_left", (-5.0, -3.5 , 0.0)),
color: None
),
right: (
vox_spec: ("armor.shoulder.tarasque_right", (-0.0, -3.5, 0.0)),
color: None
)
),
"Bonerattler": (
left: (
vox_spec: ("armor.shoulder.bonerattler_left", (-4.0, -3.5 , 1.0)),
color: None
),
right: (
vox_spec: ("armor.shoulder.bonerattler_right", (-1.0, -3.5, 1.0)),
color: None
)
),
},
))

View File

@ -547,6 +547,10 @@
vox_spec: ("weapon.staff.wood-nature", (-1.0, -6.0, -5.0)),
color: None
),
Staff("SceptreVelorite"): (
vox_spec: ("weapon.staff.ore-nature", (-1.0, -6.0, -5.0)),
color: None
),
// Misc
Debug("Boost"): (
vox_spec: ("weapon.tool.broom_belzeshrub_purple", (-3.0, -4.0, -4.0)),

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/weapon/staff/ore-nature.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

View File

@ -148,7 +148,7 @@ impl Body {
Body::Dragon(_) => 2.5,
Body::BirdSmall(_) => 0.2,
Body::FishSmall(_) => 0.2,
Body::BipedLarge(_) => 2.0,
Body::BipedLarge(_) => 3.0,
Body::Golem(_) => 2.5,
Body::QuadrupedLow(_) => 1.0,
Body::Object(_) => 0.3,
@ -172,7 +172,7 @@ impl Body {
Body::Dragon(_) => 5.0,
Body::BirdSmall(_) => 0.4,
Body::FishSmall(_) => 0.4,
Body::BipedLarge(_) => 4.0,
Body::BipedLarge(_) => 5.0,
Body::Golem(_) => 5.0,
Body::QuadrupedLow(_) => 0.5,
Body::Object(_) => 0.6,
@ -184,36 +184,36 @@ impl Body {
match self {
Body::Humanoid(_) => 400,
Body::QuadrupedSmall(quadruped_small) => match quadruped_small.species {
quadruped_small::Species::Boar => 180,
quadruped_small::Species::Batfox => 100,
quadruped_small::Species::Dodarock => 320,
quadruped_small::Species::Holladon => 250,
quadruped_small::Species::Hyena => 150,
quadruped_small::Species::Truffler => 180,
_ => 80,
quadruped_small::Species::Boar => 360,
quadruped_small::Species::Batfox => 200,
quadruped_small::Species::Dodarock => 640,
quadruped_small::Species::Holladon => 500,
quadruped_small::Species::Hyena => 300,
quadruped_small::Species::Truffler => 360,
_ => 200,
},
Body::QuadrupedMedium(quadruped_medium) => match quadruped_medium.species {
quadruped_medium::Species::Grolgar => 300,
quadruped_medium::Species::Saber => 200,
quadruped_medium::Species::Tiger => 200,
quadruped_medium::Species::Tuskram => 300,
quadruped_medium::Species::Lion => 400,
quadruped_medium::Species::Tarasque => 600,
quadruped_medium::Species::Wolf => 200,
quadruped_medium::Species::Grolgar => 600,
quadruped_medium::Species::Saber => 400,
quadruped_medium::Species::Tiger => 400,
quadruped_medium::Species::Tuskram => 600,
quadruped_medium::Species::Lion => 800,
quadruped_medium::Species::Tarasque => 1200,
quadruped_medium::Species::Wolf => 400,
quadruped_medium::Species::Frostfang => 400,
quadruped_medium::Species::Mouflon => 300,
quadruped_medium::Species::Catoblepas => 500,
quadruped_medium::Species::Bonerattler => 300,
_ => 200,
quadruped_medium::Species::Mouflon => 500,
quadruped_medium::Species::Catoblepas => 1000,
quadruped_medium::Species::Bonerattler => 400,
_ => 400,
},
Body::BirdMedium(bird_medium) => match bird_medium.species {
bird_medium::Species::Chicken => 50,
bird_medium::Species::Duck => 50,
bird_medium::Species::Goose => 60,
bird_medium::Species::Parrot => 60,
bird_medium::Species::Peacock => 55,
bird_medium::Species::Cockatrice => 110,
bird_medium::Species::Eagle => 110,
bird_medium::Species::Peacock => 60,
bird_medium::Species::Cockatrice => 400,
bird_medium::Species::Eagle => 400,
_ => 100,
},
Body::FishMedium(_) => 50,
@ -223,11 +223,11 @@ impl Body {
Body::BirdSmall(_) => 50,
Body::FishSmall(_) => 20,
Body::BipedLarge(biped_large) => match biped_large.species {
biped_large::Species::Ogre => 700,
biped_large::Species::Cyclops => 800,
biped_large::Species::Wendigo => 800,
biped_large::Species::Troll => 600,
biped_large::Species::Dullahan => 1200,
biped_large::Species::Ogre => 2500,
biped_large::Species::Cyclops => 2000,
biped_large::Species::Wendigo => 2000,
biped_large::Species::Troll => 1500,
biped_large::Species::Dullahan => 2000,
_ => 1000,
},
Body::Object(_) => 10000,
@ -238,15 +238,15 @@ impl Body {
_ => 50,
},
Body::QuadrupedLow(quadruped_low) => match quadruped_low.species {
quadruped_low::Species::Crocodile => 200,
quadruped_low::Species::Alligator => 200,
quadruped_low::Species::Salamander => 100,
quadruped_low::Species::Monitor => 80,
quadruped_low::Species::Asp => 80,
quadruped_low::Species::Tortoise => 200,
quadruped_low::Species::Rocksnapper => 500,
quadruped_low::Species::Pangolin => 60,
quadruped_low::Species::Maneater => 250,
quadruped_low::Species::Crocodile => 600,
quadruped_low::Species::Alligator => 600,
quadruped_low::Species::Salamander => 400,
quadruped_low::Species::Monitor => 150,
quadruped_low::Species::Asp => 400,
quadruped_low::Species::Tortoise => 600,
quadruped_low::Species::Rocksnapper => 1000,
quadruped_low::Species::Pangolin => 80,
quadruped_low::Species::Maneater => 400,
_ => 200,
},
}
@ -287,7 +287,7 @@ impl Body {
bird_medium::Species::Peacock => 10,
bird_medium::Species::Cockatrice => 10,
bird_medium::Species::Eagle => 10,
_ => 10,
_ => 20,
},
Body::FishMedium(_) => 10,
Body::Dragon(dragon) => match dragon.species {
@ -308,7 +308,7 @@ impl Body {
_ => 150,
},
Body::Critter(critter) => match critter.species {
_ => 10,
_ => 20,
},
Body::QuadrupedLow(quadruped_low) => match quadruped_low.species {
quadruped_low::Species::Crocodile => 20,
@ -331,7 +331,7 @@ impl Body {
Body::Humanoid(_) => 5,
Body::QuadrupedSmall(quadruped_small) => match quadruped_small.species {
quadruped_small::Species::Boar => 6,
quadruped_small::Species::Batfox => 6,
quadruped_small::Species::Batfox => 2,
quadruped_small::Species::Dodarock => 6,
quadruped_small::Species::Holladon => 8,
quadruped_small::Species::Hyena => 6,
@ -416,11 +416,11 @@ impl Body {
Body::BirdSmall(_) => 1,
Body::FishSmall(_) => 1,
Body::BipedLarge(biped_large) => match biped_large.species {
_ => 5,
_ => 2,
},
Body::Object(_) => 0,
Body::Golem(golem) => match golem.species {
_ => 10,
_ => 5,
},
Body::Critter(critter) => match critter.species {
_ => 1,

View File

@ -10,6 +10,7 @@ use crate::{
lottery::Lottery,
terrain::{Block, BlockKind},
};
use rand::prelude::*;
use serde::{Deserialize, Serialize};
use specs::{Component, FlaggedStorage};
use specs_idvs::IdvStorage;
@ -144,6 +145,7 @@ impl Item {
}
pub fn try_reclaim_from_block(block: Block) -> Option<Self> {
let mut rng = rand::thread_rng();
match block.kind() {
BlockKind::Apple => Some(assets::load_expect_cloned("common.items.food.apple")),
BlockKind::Mushroom => Some(assets::load_expect_cloned("common.items.food.mushroom")),
@ -171,7 +173,27 @@ impl Item {
BlockKind::ShortGrass => Some(assets::load_expect_cloned("common.items.grasses.short")),
BlockKind::Coconut => Some(assets::load_expect_cloned("common.items.food.coconut")),
BlockKind::Chest => {
let chosen = assets::load_expect::<Lottery<String>>("common.loot_table");
let chosen = match rng.gen_range(0, 5) {
0 => {
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",
),
3 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_misc",
),
_ => assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table"),
};
let chosen = chosen.choose();
Some(assets::load_expect_cloned(chosen))
},
BlockKind::Crate => {
let chosen =
assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table_food");
let chosen = chosen.choose();
Some(assets::load_expect_cloned(chosen))

View File

@ -227,8 +227,27 @@ impl Tool {
buildup_duration: Duration::from_millis(0),
recover_duration: Duration::from_millis(1000),
base_healthchange: (150.0 * self.base_power()) as i32,
range: 10.0,
max_angle: 45.0,
range: 100.0,
max_angle: 90.0,
},
]
} else if kind == "SceptreVelorite" {
vec![
BasicMelee {
energy_cost: 0,
buildup_duration: Duration::from_millis(0),
recover_duration: Duration::from_millis(300),
base_healthchange: (-10.0 * self.base_power()) as i32,
range: 5.0,
max_angle: 20.0,
},
BasicMelee {
energy_cost: 350,
buildup_duration: Duration::from_millis(0),
recover_duration: Duration::from_millis(1000),
base_healthchange: (150.0 * self.base_power()) as i32,
range: 100.0,
max_angle: 90.0,
},
]
} else {

View File

@ -51,7 +51,7 @@ mod tests {
use crate::{assets, comp::Item};
#[test]
fn test_loot_table() {
let test = assets::load_expect::<Lottery<String>>("common.loot_table");
let test = assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table");
for (_, item) in test.iter() {
assert!(

View File

@ -440,6 +440,7 @@ impl BlockKind {
BlockKind::Stones => true,
BlockKind::Twigs => true,
BlockKind::ShinyGem => true,
BlockKind::Crate => true,
_ => false,
}
}
@ -495,6 +496,7 @@ impl Block {
| BlockKind::WardrobeSingle
| BlockKind::WardrobeDouble
| BlockKind::Pot
| BlockKind::Chest
| BlockKind::DropGate
| BlockKind::DropGateBottom
| BlockKind::Door => Some(self.color[0] & 0b111),

View File

@ -1,4 +1,4 @@
use crate::{client::Client, Server, SpawnPoint, StateExt};
use crate::{client::Client, comp::quadruped_small, Server, SpawnPoint, StateExt};
use common::{
assets,
comp::{
@ -15,6 +15,7 @@ use common::{
vol::{ReadVol, Vox},
};
use comp::item::Reagent;
use rand::prelude::*;
use specs::{join::Join, saveload::MarkerAllocator, Entity as EcsEntity, WorldExt};
use tracing::error;
use vek::Vec3;
@ -182,21 +183,182 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
.write_storage::<comp::CharacterState>()
.insert(entity, comp::CharacterState::default());
} else if state.ecs().read_storage::<comp::Agent>().contains(entity) {
// Replace npc with loot
// Decide for a loot drop before turning into a lootbag
let old_body = state.ecs().write_storage::<Body>().remove(entity);
let mut rng = rand::thread_rng();
let drop = match old_body {
Some(common::comp::Body::Humanoid(_)) => match rng.gen_range(0, 4) {
0 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_humanoids",
),
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_light",
),
2 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_cloth",
),
3 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_weapon_common",
),
_ => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_humanoids",
),
},
Some(common::comp::Body::QuadrupedSmall(quadruped_small)) => {
match quadruped_small.species {
quadruped_small::Species::Dodarock => match rng.gen_range(0, 6) {
0 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_misc",
),
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_rocks",
),
_ => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_rocks",
),
},
_ => match rng.gen_range(0, 4) {
0 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_food",
),
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_misc",
),
2 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_animal_parts",
),
_ => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_animal_parts",
),
},
}
},
Some(common::comp::Body::QuadrupedMedium(quadruped_medium)) => {
match quadruped_medium.species {
_ => match rng.gen_range(0, 4) {
0 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_food",
),
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_misc",
),
2 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_animal_parts",
),
_ => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_animal_parts",
),
},
}
},
Some(common::comp::Body::BirdMedium(bird_medium)) => match bird_medium.species {
_ => match rng.gen_range(0, 3) {
0 => {
assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table_food")
},
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_misc",
),
_ => assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table"),
},
},
Some(common::comp::Body::BipedLarge(biped_large)) => match biped_large.species {
_ => match rng.gen_range(0, 9) {
0 => {
assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table_food")
},
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_misc",
),
2 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_light",
),
3 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_heavy",
),
4 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_misc",
),
5 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_weapon_common",
),
6 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_weapon_uncommon",
),
7 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_weapon_rare",
),
_ => assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table"),
},
},
Some(common::comp::Body::Golem(golem)) => match golem.species {
_ => match rng.gen_range(0, 9) {
0 => {
assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table_food")
},
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_misc",
),
2 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_light",
),
3 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_heavy",
),
4 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_armor_misc",
),
5 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_weapon_common",
),
6 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_weapon_uncommon",
),
7 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_weapon_rare",
),
_ => assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table"),
},
},
Some(common::comp::Body::Critter(critter)) => match critter.species {
_ => match rng.gen_range(0, 3) {
0 => {
assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table_food")
},
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_animal_parts",
),
_ => assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table"),
},
},
Some(common::comp::Body::Dragon(_)) => {
assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table_weapon_rare")
},
Some(common::comp::Body::QuadrupedLow(quadruped_low)) => match quadruped_low.species {
_ => match rng.gen_range(0, 3) {
0 => {
assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table_food")
},
1 => assets::load_expect::<Lottery<String>>(
"common.loot_tables.loot_table_animal_parts",
),
_ => assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table"),
},
},
_ => assets::load_expect::<Lottery<String>>("common.loot_tables.loot_table"),
};
let drop = drop.choose();
// Replace npc with lootbag containing drop
let _ = state
.ecs()
.write_storage()
.insert(entity, Body::Object(object::Body::Pouch));
let mut item_drops = state.ecs().write_storage::<comp::ItemDrop>();
let item = if let Some(item_drop) = item_drops.get(entity).cloned() {
item_drops.remove(entity);
item_drop.0
} else {
let chosen = assets::load_expect::<Lottery<String>>("common.loot_table");
let chosen = chosen.choose();
assets::load_expect_cloned(chosen)
assets::load_expect_cloned(drop)
};
let _ = state.ecs().write_storage().insert(entity, item);

View File

@ -2,7 +2,7 @@ use super::SysTimer;
use crate::{chunk_generator::ChunkGenerator, client::Client, Tick};
use common::{
assets,
comp::{self, item, Alignment, CharacterAbility, ItemConfig, Player, Pos},
comp::{self, bird_medium, item, Alignment, CharacterAbility, ItemConfig, Player, Pos},
event::{EventBus, ServerEvent},
generation::get_npc_name,
msg::ServerMsg,
@ -158,16 +158,16 @@ impl<'a> System<'a> for Sys {
shoulder: None,
chest: Some(assets::load_expect_cloned(
match rand::thread_rng().gen_range(0, 10) {
0 => "common.items.armor.chest.worker_green_0",
1 => "common.items.armor.chest.worker_green_1",
2 => "common.items.armor.chest.worker_red_0",
3 => "common.items.armor.chest.worker_red_1",
4 => "common.items.armor.chest.worker_purple_0",
5 => "common.items.armor.chest.worker_purple_1",
6 => "common.items.armor.chest.worker_yellow_0",
7 => "common.items.armor.chest.worker_yellow_1",
8 => "common.items.armor.chest.worker_orange_0",
_ => "common.items.armor.chest.worker_orange_1",
0 => "common.items.npc_armor.chest.worker_green_0",
1 => "common.items.npc_armor.chest.worker_green_1",
2 => "common.items.npc_armor.chest.worker_red_0",
3 => "common.items.npc_armor.chest.worker_red_1",
4 => "common.items.npc_armor.chest.worker_purple_0",
5 => "common.items.npc_armor.chest.worker_purple_1",
6 => "common.items.npc_armor.chest.worker_yellow_0",
7 => "common.items.npc_armor.chest.worker_yellow_1",
8 => "common.items.npc_armor.chest.worker_orange_0",
_ => "common.items.npc_armor.chest.worker_orange_1",
},
)),
belt: Some(assets::load_expect_cloned(
@ -312,7 +312,15 @@ impl<'a> System<'a> for Sys {
.health
.set_to(stats.health.maximum(), comp::HealthSource::Revive);
let can_speak = alignment == comp::Alignment::Npc;
let can_speak = match body {
comp::Body::Humanoid(_) => alignment == comp::Alignment::Npc,
comp::Body::BirdMedium(bird_medium) => match bird_medium.species {
// Parrots like to have a word in this, too...
bird_medium::Species::Parrot => alignment == comp::Alignment::Npc,
_ => false,
},
_ => false,
};
// TODO: This code sets an appropriate base_damage for the enemy. This doesn't
// work because the damage is now saved in an ability

View File

@ -176,6 +176,7 @@ impl<'a> Widget for Crafting<'a> {
// Alignment
Rectangle::fill_with([136.0, 378.0], color::TRANSPARENT)
.top_left_with_margins_on(ids.window_frame, 74.0, 5.0)
.scroll_kids_vertically()
.set(ids.align_rec, ui);
Rectangle::fill_with([274.0, 340.0], color::TRANSPARENT)
.top_right_with_margins_on(ids.window, 74.0, 5.0)
@ -314,24 +315,6 @@ impl<'a> Widget for Crafting<'a> {
state.update(|s| s.selected_recipe = Some(name.clone()));
}
}
// Image BG
/*Rectangle::fill_with([10.0, 10.0], color::TRANSPARENT)
.w_h(20.0, 20.0)
.mid_left_of(state.ids.recipe_names[i])
.set(state.ids.recipe_img_frame[i], ui);
//Item Image
Image::new(
self.item_imgs
.img_id_or_not_found_img((&recipe.output.0).into()),
)
.w_h(18.0, 18.0)
.color(
can_perform
.then_some(Some(TEXT_COLOR))
.unwrap_or(Some(TEXT_GRAY_COLOR)),
)
.middle_of(state.ids.recipe_img_frame[i])
.set(state.ids.recipe_img[i], ui);*/
}
//Ingredients

View File

@ -192,6 +192,7 @@ widget_ids! {
help,
help_info,
debug_info,
lantern_info,
// Window Frames
window_frame_0,
@ -430,6 +431,7 @@ impl Show {
if !self.esc_menu {
self.crafting = open;
self.bag = open;
self.map = false;
self.want_grab = !open;
}
}
@ -1582,9 +1584,9 @@ impl Hud {
.replace("{key}", help_key.to_string().as_str()),
)
.color(TEXT_COLOR)
.top_left_with_margins_on(ui_widgets.window, 5.0, 5.0)
.bottom_left_with_margins_on(ui_widgets.window, 210.0, 10.0)
.font_id(self.fonts.cyri.conrod_id)
.font_size(self.fonts.cyri.scale(16))
.font_size(self.fonts.cyri.scale(12))
.set(self.ids.help_info, ui_widgets);
}
// Info about Debug Shortcut
@ -1600,11 +1602,29 @@ impl Hud {
.replace("{key}", toggle_debug_key.to_string().as_str()),
)
.color(TEXT_COLOR)
.down_from(self.ids.help_info, 5.0)
.top_left_with_margins_on(ui_widgets.window, 5.0, 5.0)
.font_id(self.fonts.cyri.conrod_id)
.font_size(self.fonts.cyri.scale(12))
.set(self.ids.debug_info, ui_widgets);
}
// Lantern Key
if let Some(toggle_lantern_key) = global_state
.settings
.controls
.get_binding(GameInput::ToggleLantern)
{
Text::new(
&self
.voxygen_i18n
.get("hud.press_key_to_toggle_lantern_fmt")
.replace("{key}", toggle_lantern_key.to_string().as_str()),
)
.color(TEXT_COLOR)
.up_from(self.ids.help_info, 2.0)
.font_id(self.fonts.cyri.conrod_id)
.font_size(self.fonts.cyri.scale(12))
.set(self.ids.lantern_info, ui_widgets);
}
}
// Help Text
@ -1700,8 +1720,15 @@ impl Hud {
{
Some(bag::Event::Stats) => self.show.stats = !self.show.stats,
Some(bag::Event::Close) => {
self.show.stats = false;
self.show.bag(false);
self.force_ungrab = true;
self.show.crafting(false);
if self.show.social == false {
self.show.want_grab = true;
self.force_ungrab = false;
} else {
self.force_ungrab = true
};
},
None => {},
}
@ -1775,8 +1802,15 @@ impl Hud {
events.push(Event::CraftRecipe(r));
},
crafting::Event::Close => {
self.show.stats = false;
self.show.crafting(false);
self.force_ungrab = true;
self.show.bag(false);
if self.show.social == false {
self.show.want_grab = true;
self.force_ungrab = false;
} else {
self.force_ungrab = true
};
},
}
}
@ -1860,6 +1894,8 @@ impl Hud {
// Unpause the game if we are on singleplayer so that we can logout
#[cfg(feature = "singleplayer")]
global_state.unpause();
self.show.want_grab = true;
self.force_ungrab = false;
self.show.settings(false)
},
@ -1996,7 +2032,12 @@ impl Hud {
match event {
social::Event::Close => {
self.show.social(false);
self.force_ungrab = true;
if self.show.bag == false {
self.show.want_grab = true;
self.force_ungrab = false;
} else {
self.force_ungrab = true
};
},
social::Event::ChangeSocialTab(social_tab) => {
self.show.open_social_tab(social_tab)
@ -2041,7 +2082,8 @@ impl Hud {
{
Some(spell::Event::Close) => {
self.show.spell(false);
self.force_ungrab = true;
self.show.want_grab = true;
self.force_ungrab = false;
},
None => {},
}
@ -2064,7 +2106,8 @@ impl Hud {
match event {
map::Event::Close => {
self.show.map(false);
self.force_ungrab = true;
self.show.want_grab = true;
self.force_ungrab = false;
},
map::Event::MapZoom(map_zoom) => {
events.push(Event::MapZoom(map_zoom));

View File

@ -193,9 +193,9 @@ impl<'a> Widget for Overhead<'a> {
.font_size(font_size)
.color(if self.in_group {
GROUP_MEMBER
} else {
DEFAULT_NPC
})
/*} else if targets player { //TODO: Add a way to see if the entity is trying to attack the player, their pet(s) or a member of their group and recolour their nametag accordingly
DEFAULT_NPC*/
} else {DEFAULT_NPC})
.x_y(0.0, name_y + 1.0)
.parent(id)
.set(state.ids.name, ui);

View File

@ -700,6 +700,7 @@ impl<'a> Widget for Skillbar<'a> {
Some(ToolKind::Bow(_)) => self.imgs.bow_m2,
Some(ToolKind::Staff(kind)) => match kind.as_ref() {
"Sceptre" => self.imgs.heal_0,
"SceptreVelorite" => self.imgs.heal_0,
_ => self.imgs.staff_m2,
},
Some(ToolKind::Debug(kind)) => match kind.as_ref() {
@ -726,6 +727,13 @@ impl<'a> Widget for Skillbar<'a> {
Color::Rgba(0.3, 0.3, 0.3, 0.8)
}
},
"SceptreVelorite" => {
if self.energy.current() as f64 >= 400.0 {
Color::Rgba(1.0, 1.0, 1.0, 1.0)
} else {
Color::Rgba(0.3, 0.3, 0.3, 0.8)
}
},
_ => Color::Rgba(1.0, 1.0, 1.0, 1.0),
},
_ => Color::Rgba(1.0, 1.0, 1.0, 1.0),

View File

@ -44,9 +44,11 @@ widget_ids! {
// Background and logo
charlist_bg,
charlist_frame,
charlist_bottom,
selection_bot,
charlist_alignment,
selection_scrollbar,
creation_bg,
creation_bot,
creation_frame,
creation_alignment,
server_name_text,
@ -180,8 +182,6 @@ widget_ids! {
image_ids! {
struct Imgs {
<VoxelGraphic>
charlist_frame: "voxygen.element.frames.window_4",
server_frame: "voxygen.element.frames.server_frame",
// Info Window
info_frame: "voxygen.element.frames.info_frame",
@ -192,6 +192,7 @@ image_ids! {
delete_button_press: "voxygen.element.buttons.x_red_press",
<ImageGraphic>
frame_bot: "voxygen.element.frames.banner_bot",
selection: "voxygen.element.frames.selection",
selection_hover: "voxygen.element.frames.selection_hover",
selection_press: "voxygen.element.frames.selection_press",
@ -210,8 +211,6 @@ image_ids! {
staff: "voxygen.element.icons.staff",
// Species Icons
male: "voxygen.element.icons.male",
female: "voxygen.element.icons.female",
human_m: "voxygen.element.icons.human_m",
human_f: "voxygen.element.icons.human_f",
orc_m: "voxygen.element.icons.orc_m",
@ -224,6 +223,7 @@ image_ids! {
elf_f: "voxygen.element.icons.elf_f",
danari_m: "voxygen.element.icons.danari_m",
danari_f: "voxygen.element.icons.danari_f",
//unknown: "voxygen.element.icons.missing_icon_grey",
// Icon Borders
icon_border: "voxygen.element.buttons.border",
icon_border_mo: "voxygen.element.buttons.border_mo",
@ -447,6 +447,7 @@ impl CharSelectionUi {
})
.title_font_size(self.fonts.cyri.scale(15))
.desc_font_size(self.fonts.cyri.scale(10))
.parent(ui_widgets.window)
.font_id(self.fonts.cyri.conrod_id)
.title_text_color(TEXT_COLOR)
.desc_text_color(TEXT_COLOR_2);
@ -600,26 +601,21 @@ impl CharSelectionUi {
};
// Background for Server Frame
Rectangle::fill_with([386.0, 95.0], color::rgba(0.0, 0.0, 0.0, 0.9))
Rectangle::fill_with([400.0, 95.0], color::rgba(0.0, 0.0, 0.0, 0.8))
.top_left_with_margins_on(ui_widgets.window, 30.0, 30.0)
.set(self.ids.server_frame_bg, ui_widgets);
Image::new(self.imgs.server_frame)
.w_h(400.0, 100.0)
.color(Some(UI_MAIN))
.middle_of(self.ids.server_frame_bg)
.set(self.ids.server_frame, ui_widgets);
// Background for Char List
Rectangle::fill_with([386.0, 788.0], color::rgba(0.0, 0.0, 0.0, 0.8))
.down_from(self.ids.server_frame_bg, 20.0)
.set(self.ids.charlist_bg, ui_widgets);
Image::new(self.imgs.charlist_frame)
.w_h(400.0, 800.0)
.middle_of(self.ids.charlist_bg)
.color(Some(UI_MAIN))
Rectangle::fill_with([400.0, 800.0], color::rgba(0.0, 0.0, 0.0, 0.8))
.down_from(self.ids.server_frame_bg, 5.0)
.set(self.ids.charlist_frame, ui_widgets);
Rectangle::fill_with([386.0, 783.0], color::TRANSPARENT)
.middle_of(self.ids.charlist_bg)
Image::new(self.imgs.frame_bot)
.w_h(400.0, 48.0)
.down_from(self.ids.charlist_frame, 0.0)
.color(Some(Color::Rgba(1.0, 1.0, 1.0, 0.8)))
.set(self.ids.selection_bot, ui_widgets);
Rectangle::fill_with([386.0, 800.0], color::TRANSPARENT)
.mid_top_with_margin_on(self.ids.charlist_frame, 2.0)
.scroll_kids()
.scroll_kids_vertically()
.set(self.ids.charlist_alignment, ui_widgets);
@ -951,21 +947,21 @@ impl CharSelectionUi {
// Window
Rectangle::fill_with(
[386.0, ui_widgets.win_h - ui_widgets.win_h * 0.2],
[400.0, ui_widgets.win_h - ui_widgets.win_h * 0.15],
color::rgba(0.0, 0.0, 0.0, 0.8),
)
.top_left_with_margins_on(ui_widgets.window, 30.0, 30.0)
.set(self.ids.creation_bg, ui_widgets);
Image::new(self.imgs.charlist_frame)
.w_h(400.0, ui_widgets.win_h - ui_widgets.win_h * 0.19)
.middle_of(self.ids.creation_bg)
.color(Some(UI_MAIN))
.set(self.ids.charlist_frame, ui_widgets);
.set(self.ids.creation_frame, ui_widgets);
Image::new(self.imgs.frame_bot)
.w_h(400.0, 48.0)
.down_from(self.ids.creation_frame, 0.0)
.color(Some(Color::Rgba(1.0, 1.0, 1.0, 0.8)))
.set(self.ids.creation_bot, ui_widgets);
Rectangle::fill_with(
[386.0, ui_widgets.win_h - ui_widgets.win_h * 0.19],
[386.0, ui_widgets.win_h - ui_widgets.win_h * 0.15],
color::TRANSPARENT,
)
.middle_of(self.ids.creation_bg)
.mid_top_with_margin_on(self.ids.creation_frame, 10.0)
.scroll_kids_vertically()
.set(self.ids.creation_alignment, ui_widgets);
Scrollbar::y_axis(self.ids.creation_alignment)
@ -974,19 +970,29 @@ impl CharSelectionUi {
.rgba(0.33, 0.33, 0.33, 1.0)
.set(self.ids.selection_scrollbar, ui_widgets);
// Male/Female/Species Icons
Text::new(&self.voxygen_i18n.get("char_selection.character_creation"))
.mid_top_with_margin_on(self.ids.creation_alignment, 10.0)
.font_size(self.fonts.cyri.scale(24))
.font_id(self.fonts.cyri.conrod_id)
.color(TEXT_COLOR)
.set(self.ids.bodyspecies_text, ui_widgets);
// BodyType/Species Icons
let body_m_ico = match body.species {
humanoid::Species::Human => self.imgs.human_m,
humanoid::Species::Orc => self.imgs.orc_m,
humanoid::Species::Dwarf => self.imgs.dwarf_m,
humanoid::Species::Elf => self.imgs.elf_m,
humanoid::Species::Undead => self.imgs.undead_m,
humanoid::Species::Danari => self.imgs.danari_m,
};
let body_f_ico = match body.species {
humanoid::Species::Human => self.imgs.human_f,
humanoid::Species::Orc => self.imgs.orc_f,
humanoid::Species::Dwarf => self.imgs.dwarf_f,
humanoid::Species::Elf => self.imgs.elf_f,
humanoid::Species::Undead => self.imgs.undead_f,
humanoid::Species::Danari => self.imgs.danari_f,
};
// Alignment
Rectangle::fill_with([140.0, 72.0], color::TRANSPARENT)
.mid_top_with_margin_on(self.ids.creation_alignment, 60.0)
.set(self.ids.creation_buttons_alignment_1, ui_widgets);
// Male
Image::new(self.imgs.male)
// Bodytype M
Image::new(body_m_ico)
.w_h(70.0, 70.0)
.top_left_with_margins_on(self.ids.creation_buttons_alignment_1, 0.0, 0.0)
.set(self.ids.male, ui_widgets);
@ -1004,8 +1010,8 @@ impl CharSelectionUi {
body.body_type = humanoid::BodyType::Male;
body.validate();
}
// Female
Image::new(self.imgs.female)
// Bodytype F
Image::new(body_f_ico)
.w_h(70.0, 70.0)
.top_right_with_margins_on(self.ids.creation_buttons_alignment_1, 0.0, 0.0)
.set(self.ids.female, ui_widgets);

Some files were not shown because too many files have changed in this diff Show More