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"), kind: Neck("Neck0"),
stats: ( stats: (
protection: Normal(0.5), protection: Normal(1.0),
), ),
) )
), ),

View File

@ -5,7 +5,7 @@ Item(
( (
kind: Neck("Neck1"), kind: Neck("Neck1"),
stats: ( 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: Lantern(
( (
kind: "Black0", kind: "Black0",
color: (r: 255, g: 190, b: 75), color: (r: 166, g: 100, b: 0),
strength_thousandths: 3000, strength_thousandths: 3000,
flicker_thousandths: 300, 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"), kind: Farming("Broom"),
stats: ( stats: (
equip_time_millis: 400, equip_time_millis: 400,
power: 0.5, power: 1.5,
), ),
) )
), ),

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -6,7 +6,7 @@ Item(
kind: Farming("Shovel1"), kind: Farming("Shovel1"),
stats: ( stats: (
equip_time_millis: 400, 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)]), "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)]), "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)]), "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.you_died": "Ihr seid gestorben.",
"hud.waypoint_saved": "Wegpunkt gesichert", "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_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_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", "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.you_died": "You Died",
"hud.waypoint_saved": "Waypoint Saved", "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_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_keybindings_fmt": "Press {key} to toggle keybindings",
"hud.press_key_to_toggle_debug_info_fmt": "Press {key} to toggle debug info", "hud.press_key_to_toggle_debug_info_fmt": "Press {key} to toggle debug info",

View File

@ -505,6 +505,10 @@
Tool(Staff("Sceptre")): VoxTrans( Tool(Staff("Sceptre")): VoxTrans(
"voxel.weapon.staff.wood-nature", "voxel.weapon.staff.wood-nature",
(1.0, -1.0, 0.0), (-310., 90.0, 0.0), 1.2, (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 // Shields
Tool(Shield("BasicShield")): VoxTrans( Tool(Shield("BasicShield")): VoxTrans(
@ -1011,6 +1015,56 @@
"voxel.armor.shoulder.twigsflowers_shoulder_right", "voxel.armor.shoulder.twigsflowers_shoulder_right",
(0.0, 0.0, 0.0), (-90.0, 130.0, 0.0), 1.2, (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 //misc
Armor(Pants("Hunting")): VoxTrans( Armor(Pants("Hunting")): VoxTrans(
"voxel.armor.pants.grayscale", "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)), vox_spec: ("armor.belt.twigsflowers_belt", (-4.0, -3.5, -1.0)),
color: None 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)), vox_spec: ("armor.chest.leather-2", (-7.0, -3.5, 2.0)),
color: None 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)), vox_spec: ("armor.foot.twigsflowers_foot", (-2.5, -3.5, -2.0)),
color: None 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 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)), vox_spec: ("armor.pants.twigsflowers_pants", (-6.0, -3.5, 0.0)),
color: None 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: ( right: (
vox_spec: ("armor.shoulder.druid_right", (-2.0, -4.5, -3.0)), vox_spec: ("armor.shoulder.druid_right", (-2.0, -4.5, -3.0)),
color: None 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

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

View File

@ -10,6 +10,7 @@ use crate::{
lottery::Lottery, lottery::Lottery,
terrain::{Block, BlockKind}, terrain::{Block, BlockKind},
}; };
use rand::prelude::*;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use specs::{Component, FlaggedStorage}; use specs::{Component, FlaggedStorage};
use specs_idvs::IdvStorage; use specs_idvs::IdvStorage;
@ -144,6 +145,7 @@ impl Item {
} }
pub fn try_reclaim_from_block(block: Block) -> Option<Self> { pub fn try_reclaim_from_block(block: Block) -> Option<Self> {
let mut rng = rand::thread_rng();
match block.kind() { match block.kind() {
BlockKind::Apple => Some(assets::load_expect_cloned("common.items.food.apple")), BlockKind::Apple => Some(assets::load_expect_cloned("common.items.food.apple")),
BlockKind::Mushroom => Some(assets::load_expect_cloned("common.items.food.mushroom")), 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::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 = 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(); let chosen = chosen.choose();
Some(assets::load_expect_cloned(chosen)) Some(assets::load_expect_cloned(chosen))

View File

@ -227,8 +227,27 @@ impl Tool {
buildup_duration: Duration::from_millis(0), buildup_duration: Duration::from_millis(0),
recover_duration: Duration::from_millis(1000), recover_duration: Duration::from_millis(1000),
base_healthchange: (150.0 * self.base_power()) as i32, base_healthchange: (150.0 * self.base_power()) as i32,
range: 10.0, range: 100.0,
max_angle: 45.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 { } else {

View File

@ -51,7 +51,7 @@ mod tests {
use crate::{assets, comp::Item}; use crate::{assets, comp::Item};
#[test] #[test]
fn test_loot_table() { 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() { for (_, item) in test.iter() {
assert!( assert!(

View File

@ -440,6 +440,7 @@ impl BlockKind {
BlockKind::Stones => true, BlockKind::Stones => true,
BlockKind::Twigs => true, BlockKind::Twigs => true,
BlockKind::ShinyGem => true, BlockKind::ShinyGem => true,
BlockKind::Crate => true,
_ => false, _ => false,
} }
} }
@ -495,6 +496,7 @@ impl Block {
| BlockKind::WardrobeSingle | BlockKind::WardrobeSingle
| BlockKind::WardrobeDouble | BlockKind::WardrobeDouble
| BlockKind::Pot | BlockKind::Pot
| BlockKind::Chest
| BlockKind::DropGate | BlockKind::DropGate
| BlockKind::DropGateBottom | BlockKind::DropGateBottom
| BlockKind::Door => Some(self.color[0] & 0b111), | 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::{ use common::{
assets, assets,
comp::{ comp::{
@ -15,6 +15,7 @@ use common::{
vol::{ReadVol, Vox}, vol::{ReadVol, Vox},
}; };
use comp::item::Reagent; use comp::item::Reagent;
use rand::prelude::*;
use specs::{join::Join, saveload::MarkerAllocator, Entity as EcsEntity, WorldExt}; use specs::{join::Join, saveload::MarkerAllocator, Entity as EcsEntity, WorldExt};
use tracing::error; use tracing::error;
use vek::Vec3; use vek::Vec3;
@ -182,21 +183,182 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc
.write_storage::<comp::CharacterState>() .write_storage::<comp::CharacterState>()
.insert(entity, comp::CharacterState::default()); .insert(entity, comp::CharacterState::default());
} else if state.ecs().read_storage::<comp::Agent>().contains(entity) { } 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 let _ = state
.ecs() .ecs()
.write_storage() .write_storage()
.insert(entity, Body::Object(object::Body::Pouch)); .insert(entity, Body::Object(object::Body::Pouch));
let mut item_drops = state.ecs().write_storage::<comp::ItemDrop>(); let mut item_drops = state.ecs().write_storage::<comp::ItemDrop>();
let item = if let Some(item_drop) = item_drops.get(entity).cloned() { let item = if let Some(item_drop) = item_drops.get(entity).cloned() {
item_drops.remove(entity); item_drops.remove(entity);
item_drop.0 item_drop.0
} else { } else {
let chosen = assets::load_expect::<Lottery<String>>("common.loot_table"); assets::load_expect_cloned(drop)
let chosen = chosen.choose();
assets::load_expect_cloned(chosen)
}; };
let _ = state.ecs().write_storage().insert(entity, item); 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 crate::{chunk_generator::ChunkGenerator, client::Client, Tick};
use common::{ use common::{
assets, assets,
comp::{self, item, Alignment, CharacterAbility, ItemConfig, Player, Pos}, comp::{self, bird_medium, item, Alignment, CharacterAbility, ItemConfig, Player, Pos},
event::{EventBus, ServerEvent}, event::{EventBus, ServerEvent},
generation::get_npc_name, generation::get_npc_name,
msg::ServerMsg, msg::ServerMsg,
@ -158,16 +158,16 @@ impl<'a> System<'a> for Sys {
shoulder: None, shoulder: None,
chest: Some(assets::load_expect_cloned( chest: Some(assets::load_expect_cloned(
match rand::thread_rng().gen_range(0, 10) { match rand::thread_rng().gen_range(0, 10) {
0 => "common.items.armor.chest.worker_green_0", 0 => "common.items.npc_armor.chest.worker_green_0",
1 => "common.items.armor.chest.worker_green_1", 1 => "common.items.npc_armor.chest.worker_green_1",
2 => "common.items.armor.chest.worker_red_0", 2 => "common.items.npc_armor.chest.worker_red_0",
3 => "common.items.armor.chest.worker_red_1", 3 => "common.items.npc_armor.chest.worker_red_1",
4 => "common.items.armor.chest.worker_purple_0", 4 => "common.items.npc_armor.chest.worker_purple_0",
5 => "common.items.armor.chest.worker_purple_1", 5 => "common.items.npc_armor.chest.worker_purple_1",
6 => "common.items.armor.chest.worker_yellow_0", 6 => "common.items.npc_armor.chest.worker_yellow_0",
7 => "common.items.armor.chest.worker_yellow_1", 7 => "common.items.npc_armor.chest.worker_yellow_1",
8 => "common.items.armor.chest.worker_orange_0", 8 => "common.items.npc_armor.chest.worker_orange_0",
_ => "common.items.armor.chest.worker_orange_1", _ => "common.items.npc_armor.chest.worker_orange_1",
}, },
)), )),
belt: Some(assets::load_expect_cloned( belt: Some(assets::load_expect_cloned(
@ -312,7 +312,15 @@ impl<'a> System<'a> for Sys {
.health .health
.set_to(stats.health.maximum(), comp::HealthSource::Revive); .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 // TODO: This code sets an appropriate base_damage for the enemy. This doesn't
// work because the damage is now saved in an ability // work because the damage is now saved in an ability

View File

@ -176,6 +176,7 @@ impl<'a> Widget for Crafting<'a> {
// Alignment // Alignment
Rectangle::fill_with([136.0, 378.0], color::TRANSPARENT) Rectangle::fill_with([136.0, 378.0], color::TRANSPARENT)
.top_left_with_margins_on(ids.window_frame, 74.0, 5.0) .top_left_with_margins_on(ids.window_frame, 74.0, 5.0)
.scroll_kids_vertically()
.set(ids.align_rec, ui); .set(ids.align_rec, ui);
Rectangle::fill_with([274.0, 340.0], color::TRANSPARENT) Rectangle::fill_with([274.0, 340.0], color::TRANSPARENT)
.top_right_with_margins_on(ids.window, 74.0, 5.0) .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())); 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 //Ingredients

View File

@ -192,6 +192,7 @@ widget_ids! {
help, help,
help_info, help_info,
debug_info, debug_info,
lantern_info,
// Window Frames // Window Frames
window_frame_0, window_frame_0,
@ -430,6 +431,7 @@ impl Show {
if !self.esc_menu { if !self.esc_menu {
self.crafting = open; self.crafting = open;
self.bag = open; self.bag = open;
self.map = false;
self.want_grab = !open; self.want_grab = !open;
} }
} }
@ -1582,9 +1584,9 @@ impl Hud {
.replace("{key}", help_key.to_string().as_str()), .replace("{key}", help_key.to_string().as_str()),
) )
.color(TEXT_COLOR) .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_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); .set(self.ids.help_info, ui_widgets);
} }
// Info about Debug Shortcut // Info about Debug Shortcut
@ -1600,11 +1602,29 @@ impl Hud {
.replace("{key}", toggle_debug_key.to_string().as_str()), .replace("{key}", toggle_debug_key.to_string().as_str()),
) )
.color(TEXT_COLOR) .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_id(self.fonts.cyri.conrod_id)
.font_size(self.fonts.cyri.scale(12)) .font_size(self.fonts.cyri.scale(12))
.set(self.ids.debug_info, ui_widgets); .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 // Help Text
@ -1700,8 +1720,15 @@ impl Hud {
{ {
Some(bag::Event::Stats) => self.show.stats = !self.show.stats, Some(bag::Event::Stats) => self.show.stats = !self.show.stats,
Some(bag::Event::Close) => { Some(bag::Event::Close) => {
self.show.stats = false;
self.show.bag(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 => {}, None => {},
} }
@ -1775,8 +1802,15 @@ impl Hud {
events.push(Event::CraftRecipe(r)); events.push(Event::CraftRecipe(r));
}, },
crafting::Event::Close => { crafting::Event::Close => {
self.show.stats = false;
self.show.crafting(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 // Unpause the game if we are on singleplayer so that we can logout
#[cfg(feature = "singleplayer")] #[cfg(feature = "singleplayer")]
global_state.unpause(); global_state.unpause();
self.show.want_grab = true;
self.force_ungrab = false;
self.show.settings(false) self.show.settings(false)
}, },
@ -1996,7 +2032,12 @@ impl Hud {
match event { match event {
social::Event::Close => { social::Event::Close => {
self.show.social(false); 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) => { social::Event::ChangeSocialTab(social_tab) => {
self.show.open_social_tab(social_tab) self.show.open_social_tab(social_tab)
@ -2041,7 +2082,8 @@ impl Hud {
{ {
Some(spell::Event::Close) => { Some(spell::Event::Close) => {
self.show.spell(false); self.show.spell(false);
self.force_ungrab = true; self.show.want_grab = true;
self.force_ungrab = false;
}, },
None => {}, None => {},
} }
@ -2064,7 +2106,8 @@ impl Hud {
match event { match event {
map::Event::Close => { map::Event::Close => {
self.show.map(false); self.show.map(false);
self.force_ungrab = true; self.show.want_grab = true;
self.force_ungrab = false;
}, },
map::Event::MapZoom(map_zoom) => { map::Event::MapZoom(map_zoom) => {
events.push(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) .font_size(font_size)
.color(if self.in_group { .color(if self.in_group {
GROUP_MEMBER GROUP_MEMBER
} else { /*} 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 DEFAULT_NPC*/
}) } else {DEFAULT_NPC})
.x_y(0.0, name_y + 1.0) .x_y(0.0, name_y + 1.0)
.parent(id) .parent(id)
.set(state.ids.name, ui); .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::Bow(_)) => self.imgs.bow_m2,
Some(ToolKind::Staff(kind)) => match kind.as_ref() { Some(ToolKind::Staff(kind)) => match kind.as_ref() {
"Sceptre" => self.imgs.heal_0, "Sceptre" => self.imgs.heal_0,
"SceptreVelorite" => self.imgs.heal_0,
_ => self.imgs.staff_m2, _ => self.imgs.staff_m2,
}, },
Some(ToolKind::Debug(kind)) => match kind.as_ref() { 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) 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),
}, },
_ => 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 // Background and logo
charlist_bg, charlist_bg,
charlist_frame, charlist_frame,
charlist_bottom,
selection_bot,
charlist_alignment, charlist_alignment,
selection_scrollbar, selection_scrollbar,
creation_bg, creation_bot,
creation_frame, creation_frame,
creation_alignment, creation_alignment,
server_name_text, server_name_text,
@ -180,8 +182,6 @@ widget_ids! {
image_ids! { image_ids! {
struct Imgs { struct Imgs {
<VoxelGraphic> <VoxelGraphic>
charlist_frame: "voxygen.element.frames.window_4",
server_frame: "voxygen.element.frames.server_frame",
// Info Window // Info Window
info_frame: "voxygen.element.frames.info_frame", info_frame: "voxygen.element.frames.info_frame",
@ -192,6 +192,7 @@ image_ids! {
delete_button_press: "voxygen.element.buttons.x_red_press", delete_button_press: "voxygen.element.buttons.x_red_press",
<ImageGraphic> <ImageGraphic>
frame_bot: "voxygen.element.frames.banner_bot",
selection: "voxygen.element.frames.selection", selection: "voxygen.element.frames.selection",
selection_hover: "voxygen.element.frames.selection_hover", selection_hover: "voxygen.element.frames.selection_hover",
selection_press: "voxygen.element.frames.selection_press", selection_press: "voxygen.element.frames.selection_press",
@ -210,8 +211,6 @@ image_ids! {
staff: "voxygen.element.icons.staff", staff: "voxygen.element.icons.staff",
// Species Icons // Species Icons
male: "voxygen.element.icons.male",
female: "voxygen.element.icons.female",
human_m: "voxygen.element.icons.human_m", human_m: "voxygen.element.icons.human_m",
human_f: "voxygen.element.icons.human_f", human_f: "voxygen.element.icons.human_f",
orc_m: "voxygen.element.icons.orc_m", orc_m: "voxygen.element.icons.orc_m",
@ -224,6 +223,7 @@ image_ids! {
elf_f: "voxygen.element.icons.elf_f", elf_f: "voxygen.element.icons.elf_f",
danari_m: "voxygen.element.icons.danari_m", danari_m: "voxygen.element.icons.danari_m",
danari_f: "voxygen.element.icons.danari_f", danari_f: "voxygen.element.icons.danari_f",
//unknown: "voxygen.element.icons.missing_icon_grey",
// Icon Borders // Icon Borders
icon_border: "voxygen.element.buttons.border", icon_border: "voxygen.element.buttons.border",
icon_border_mo: "voxygen.element.buttons.border_mo", icon_border_mo: "voxygen.element.buttons.border_mo",
@ -447,6 +447,7 @@ impl CharSelectionUi {
}) })
.title_font_size(self.fonts.cyri.scale(15)) .title_font_size(self.fonts.cyri.scale(15))
.desc_font_size(self.fonts.cyri.scale(10)) .desc_font_size(self.fonts.cyri.scale(10))
.parent(ui_widgets.window)
.font_id(self.fonts.cyri.conrod_id) .font_id(self.fonts.cyri.conrod_id)
.title_text_color(TEXT_COLOR) .title_text_color(TEXT_COLOR)
.desc_text_color(TEXT_COLOR_2); .desc_text_color(TEXT_COLOR_2);
@ -600,26 +601,21 @@ impl CharSelectionUi {
}; };
// Background for Server Frame // 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) .top_left_with_margins_on(ui_widgets.window, 30.0, 30.0)
.set(self.ids.server_frame_bg, ui_widgets); .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 // Background for Char List
Rectangle::fill_with([386.0, 788.0], color::rgba(0.0, 0.0, 0.0, 0.8)) Rectangle::fill_with([400.0, 800.0], color::rgba(0.0, 0.0, 0.0, 0.8))
.down_from(self.ids.server_frame_bg, 20.0) .down_from(self.ids.server_frame_bg, 5.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))
.set(self.ids.charlist_frame, ui_widgets); .set(self.ids.charlist_frame, ui_widgets);
Rectangle::fill_with([386.0, 783.0], color::TRANSPARENT) Image::new(self.imgs.frame_bot)
.middle_of(self.ids.charlist_bg) .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()
.scroll_kids_vertically() .scroll_kids_vertically()
.set(self.ids.charlist_alignment, ui_widgets); .set(self.ids.charlist_alignment, ui_widgets);
@ -951,21 +947,21 @@ impl CharSelectionUi {
// Window // Window
Rectangle::fill_with( 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), color::rgba(0.0, 0.0, 0.0, 0.8),
) )
.top_left_with_margins_on(ui_widgets.window, 30.0, 30.0) .top_left_with_margins_on(ui_widgets.window, 30.0, 30.0)
.set(self.ids.creation_bg, ui_widgets); .set(self.ids.creation_frame, ui_widgets);
Image::new(self.imgs.charlist_frame) Image::new(self.imgs.frame_bot)
.w_h(400.0, ui_widgets.win_h - ui_widgets.win_h * 0.19) .w_h(400.0, 48.0)
.middle_of(self.ids.creation_bg) .down_from(self.ids.creation_frame, 0.0)
.color(Some(UI_MAIN)) .color(Some(Color::Rgba(1.0, 1.0, 1.0, 0.8)))
.set(self.ids.charlist_frame, ui_widgets); .set(self.ids.creation_bot, ui_widgets);
Rectangle::fill_with( 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, color::TRANSPARENT,
) )
.middle_of(self.ids.creation_bg) .mid_top_with_margin_on(self.ids.creation_frame, 10.0)
.scroll_kids_vertically() .scroll_kids_vertically()
.set(self.ids.creation_alignment, ui_widgets); .set(self.ids.creation_alignment, ui_widgets);
Scrollbar::y_axis(self.ids.creation_alignment) Scrollbar::y_axis(self.ids.creation_alignment)
@ -974,19 +970,29 @@ impl CharSelectionUi {
.rgba(0.33, 0.33, 0.33, 1.0) .rgba(0.33, 0.33, 0.33, 1.0)
.set(self.ids.selection_scrollbar, ui_widgets); .set(self.ids.selection_scrollbar, ui_widgets);
// Male/Female/Species Icons // BodyType/Species Icons
Text::new(&self.voxygen_i18n.get("char_selection.character_creation")) let body_m_ico = match body.species {
.mid_top_with_margin_on(self.ids.creation_alignment, 10.0) humanoid::Species::Human => self.imgs.human_m,
.font_size(self.fonts.cyri.scale(24)) humanoid::Species::Orc => self.imgs.orc_m,
.font_id(self.fonts.cyri.conrod_id) humanoid::Species::Dwarf => self.imgs.dwarf_m,
.color(TEXT_COLOR) humanoid::Species::Elf => self.imgs.elf_m,
.set(self.ids.bodyspecies_text, ui_widgets); 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 // Alignment
Rectangle::fill_with([140.0, 72.0], color::TRANSPARENT) Rectangle::fill_with([140.0, 72.0], color::TRANSPARENT)
.mid_top_with_margin_on(self.ids.creation_alignment, 60.0) .mid_top_with_margin_on(self.ids.creation_alignment, 60.0)
.set(self.ids.creation_buttons_alignment_1, ui_widgets); .set(self.ids.creation_buttons_alignment_1, ui_widgets);
// Male // Bodytype M
Image::new(self.imgs.male) Image::new(body_m_ico)
.w_h(70.0, 70.0) .w_h(70.0, 70.0)
.top_left_with_margins_on(self.ids.creation_buttons_alignment_1, 0.0, 0.0) .top_left_with_margins_on(self.ids.creation_buttons_alignment_1, 0.0, 0.0)
.set(self.ids.male, ui_widgets); .set(self.ids.male, ui_widgets);
@ -1004,8 +1010,8 @@ impl CharSelectionUi {
body.body_type = humanoid::BodyType::Male; body.body_type = humanoid::BodyType::Male;
body.validate(); body.validate();
} }
// Female // Bodytype F
Image::new(self.imgs.female) Image::new(body_f_ico)
.w_h(70.0, 70.0) .w_h(70.0, 70.0)
.top_right_with_margins_on(self.ids.creation_buttons_alignment_1, 0.0, 0.0) .top_right_with_margins_on(self.ids.creation_buttons_alignment_1, 0.0, 0.0)
.set(self.ids.female, ui_widgets); .set(self.ids.female, ui_widgets);

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