From 55d126861f4a2af9a16c6cf2f543307e5e6b0076 Mon Sep 17 00:00:00 2001 From: Monty Marz Date: Tue, 18 Aug 2020 23:32:34 +0200 Subject: [PATCH] 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 --- .../common/items/armor/belt/bonerattler.ron | 12 + assets/common/items/armor/belt/tarasque.ron | 12 + .../common/items/armor/chest/bonerattler.ron | 12 + assets/common/items/armor/chest/tarasque.ron | 12 + .../common/items/armor/foot/bonerattler.ron | 12 + assets/common/items/armor/foot/tarasque.ron | 12 + .../common/items/armor/hand/bonerattler.ron | 12 + assets/common/items/armor/hand/tarasque.ron | 12 + assets/common/items/armor/neck/neck_0.ron | 2 +- assets/common/items/armor/neck/neck_1.ron | 2 +- .../common/items/armor/pants/bonerattler.ron | 12 + assets/common/items/armor/pants/tarasque.ron | 12 + .../items/armor/shoulder/bonerattler.ron | 12 + .../common/items/armor/shoulder/tarasque.ron | 12 + .../items/debug/cultist_purp_2h_boss-0.ron | 13 + assets/common/items/lantern/black_0.ron | 2 +- .../items/npc_armor/chest/worker_green_0.ron | 12 + .../items/npc_armor/chest/worker_green_1.ron | 12 + .../items/npc_armor/chest/worker_orange_0.ron | 12 + .../items/npc_armor/chest/worker_orange_1.ron | 12 + .../items/npc_armor/chest/worker_purple_0.ron | 12 + .../items/npc_armor/chest/worker_purple_1.ron | 12 + .../items/npc_armor/chest/worker_red_0.ron | 12 + .../items/npc_armor/chest/worker_red_1.ron | 12 + .../items/npc_armor/chest/worker_yellow_0.ron | 12 + .../items/npc_armor/chest/worker_yellow_1.ron | 12 + .../common/items/npc_weapons/tool/broom.ron | 2 +- .../items/npc_weapons/tool/fishing_rod.ron | 2 +- assets/common/items/npc_weapons/tool/hoe.ron | 2 +- .../common/items/npc_weapons/tool/pickaxe.ron | 2 +- .../items/npc_weapons/tool/pitchfork.ron | 2 +- assets/common/items/npc_weapons/tool/rake.ron | 2 +- .../items/npc_weapons/tool/shovel-0.ron | 2 +- .../items/npc_weapons/tool/shovel-1.ron | 2 +- .../weapons/staff/sceptre_velorite_0.ron | 13 + assets/common/loot_table.ron | 234 ------------------ assets/common/loot_tables/loot_table.ron | 4 + .../loot_tables/loot_table_animal_parts.ron | 3 + .../loot_tables/loot_table_armor_cloth.ron | 38 +++ .../loot_tables/loot_table_armor_heavy.ron | 21 ++ .../loot_tables/loot_table_armor_light.ron | 27 ++ .../loot_tables/loot_table_armor_misc.ron | 10 + .../loot_tables/loot_table_armor_nature.ron | 32 +++ .../loot_table_boss_cultist-leader.ron | 18 ++ .../loot_tables/loot_table_consumables.ron | 14 ++ .../loot_tables/loot_table_crafting.ron | 7 + assets/common/loot_tables/loot_table_food.ron | 11 + .../loot_tables/loot_table_humanoids.ron | 25 ++ .../common/loot_tables/loot_table_rocks.ron | 6 + .../loot_tables/loot_table_villager.ron | 37 +++ .../loot_tables/loot_table_weapon_common.ron | 43 ++++ .../loot_tables/loot_table_weapon_rare.ron | 33 +++ .../loot_table_weapon_uncommon.ron | 68 +++++ assets/common/recipe_book.ron | 1 + assets/voxygen/element/frames/banner_bot.png | 3 + assets/voxygen/element/icons/female.png | 3 - .../voxygen/element/icons/item_leather1.png | 3 + assets/voxygen/element/icons/male.png | 3 - assets/voxygen/i18n/de_DE.ron | 3 +- assets/voxygen/i18n/en.ron | 3 +- assets/voxygen/item_image_manifest.ron | 54 ++++ .../voxygen/voxel/armor/belt/bonerattler.vox | 3 + assets/voxygen/voxel/armor/belt/tarasque.vox | 3 + .../voxygen/voxel/armor/chest/bonerattler.vox | 3 + assets/voxygen/voxel/armor/chest/tarasque.vox | 3 + .../voxygen/voxel/armor/foot/bonerattler.vox | 3 + assets/voxygen/voxel/armor/foot/tarasque.vox | 3 + .../voxel/armor/hand/bonerattler_left.vox | 3 + .../voxel/armor/hand/bonerattler_right.vox | 3 + .../voxel/armor/hand/tarasque_left.vox | 3 + .../voxel/armor/hand/tarasque_right.vox | 3 + .../voxygen/voxel/armor/pants/bonerattler.vox | 3 + assets/voxygen/voxel/armor/pants/tarasque.vox | 3 + .../voxel/armor/shoulder/bonerattler_left.vox | 3 + .../armor/shoulder/bonerattler_right.vox | 3 + .../voxel/armor/shoulder/tarasque_left.vox | 3 + .../voxel/armor/shoulder/tarasque_right.vox | 3 + .../voxel/humanoid_armor_belt_manifest.ron | 8 + .../voxel/humanoid_armor_chest_manifest.ron | 8 + .../voxel/humanoid_armor_foot_manifest.ron | 8 + .../voxel/humanoid_armor_hand_manifest.ron | 20 ++ .../voxel/humanoid_armor_pants_manifest.ron | 8 + .../humanoid_armor_shoulder_manifest.ron | 24 +- .../voxel/humanoid_main_weapon_manifest.ron | 6 +- .../voxel/sprite/furniture/hanging_sign-0.vox | 4 +- .../voxygen/voxel/sprite/misc/street_lamp.vox | 4 +- .../voxygen/voxel/weapon/staff/ore-nature.vox | 3 + .../voxel/weapon/staff/wood-nature.vox | 4 +- common/src/comp/body.rs | 84 +++---- common/src/comp/inventory/item/mod.rs | 24 +- common/src/comp/inventory/item/tool.rs | 23 +- common/src/lottery.rs | 2 +- common/src/terrain/block.rs | 4 +- server/src/events/entity_manipulation.rs | 176 ++++++++++++- server/src/sys/terrain.rs | 32 ++- voxygen/src/hud/crafting.rs | 19 +- voxygen/src/hud/mod.rs | 59 ++++- voxygen/src/hud/overhead.rs | 6 +- voxygen/src/hud/skillbar.rs | 8 + voxygen/src/menu/char_selection/ui.rs | 86 ++++--- voxygen/src/scene/terrain.rs | 2 +- voxygen/src/session.rs | 2 +- world/src/layer/mod.rs | 55 ++-- world/src/lib.rs | 1 + world/src/site/dungeon/mod.rs | 52 +--- .../settlement/building/archetype/house.rs | 9 +- 106 files changed, 1338 insertions(+), 467 deletions(-) create mode 100644 assets/common/items/armor/belt/bonerattler.ron create mode 100644 assets/common/items/armor/belt/tarasque.ron create mode 100644 assets/common/items/armor/chest/bonerattler.ron create mode 100644 assets/common/items/armor/chest/tarasque.ron create mode 100644 assets/common/items/armor/foot/bonerattler.ron create mode 100644 assets/common/items/armor/foot/tarasque.ron create mode 100644 assets/common/items/armor/hand/bonerattler.ron create mode 100644 assets/common/items/armor/hand/tarasque.ron create mode 100644 assets/common/items/armor/pants/bonerattler.ron create mode 100644 assets/common/items/armor/pants/tarasque.ron create mode 100644 assets/common/items/armor/shoulder/bonerattler.ron create mode 100644 assets/common/items/armor/shoulder/tarasque.ron create mode 100644 assets/common/items/debug/cultist_purp_2h_boss-0.ron create mode 100644 assets/common/items/npc_armor/chest/worker_green_0.ron create mode 100644 assets/common/items/npc_armor/chest/worker_green_1.ron create mode 100644 assets/common/items/npc_armor/chest/worker_orange_0.ron create mode 100644 assets/common/items/npc_armor/chest/worker_orange_1.ron create mode 100644 assets/common/items/npc_armor/chest/worker_purple_0.ron create mode 100644 assets/common/items/npc_armor/chest/worker_purple_1.ron create mode 100644 assets/common/items/npc_armor/chest/worker_red_0.ron create mode 100644 assets/common/items/npc_armor/chest/worker_red_1.ron create mode 100644 assets/common/items/npc_armor/chest/worker_yellow_0.ron create mode 100644 assets/common/items/npc_armor/chest/worker_yellow_1.ron create mode 100644 assets/common/items/weapons/staff/sceptre_velorite_0.ron delete mode 100644 assets/common/loot_table.ron create mode 100644 assets/common/loot_tables/loot_table.ron create mode 100644 assets/common/loot_tables/loot_table_animal_parts.ron create mode 100644 assets/common/loot_tables/loot_table_armor_cloth.ron create mode 100644 assets/common/loot_tables/loot_table_armor_heavy.ron create mode 100644 assets/common/loot_tables/loot_table_armor_light.ron create mode 100644 assets/common/loot_tables/loot_table_armor_misc.ron create mode 100644 assets/common/loot_tables/loot_table_armor_nature.ron create mode 100644 assets/common/loot_tables/loot_table_boss_cultist-leader.ron create mode 100644 assets/common/loot_tables/loot_table_consumables.ron create mode 100644 assets/common/loot_tables/loot_table_crafting.ron create mode 100644 assets/common/loot_tables/loot_table_food.ron create mode 100644 assets/common/loot_tables/loot_table_humanoids.ron create mode 100644 assets/common/loot_tables/loot_table_rocks.ron create mode 100644 assets/common/loot_tables/loot_table_villager.ron create mode 100644 assets/common/loot_tables/loot_table_weapon_common.ron create mode 100644 assets/common/loot_tables/loot_table_weapon_rare.ron create mode 100644 assets/common/loot_tables/loot_table_weapon_uncommon.ron create mode 100644 assets/voxygen/element/frames/banner_bot.png delete mode 100644 assets/voxygen/element/icons/female.png create mode 100644 assets/voxygen/element/icons/item_leather1.png delete mode 100644 assets/voxygen/element/icons/male.png create mode 100644 assets/voxygen/voxel/armor/belt/bonerattler.vox create mode 100644 assets/voxygen/voxel/armor/belt/tarasque.vox create mode 100644 assets/voxygen/voxel/armor/chest/bonerattler.vox create mode 100644 assets/voxygen/voxel/armor/chest/tarasque.vox create mode 100644 assets/voxygen/voxel/armor/foot/bonerattler.vox create mode 100644 assets/voxygen/voxel/armor/foot/tarasque.vox create mode 100644 assets/voxygen/voxel/armor/hand/bonerattler_left.vox create mode 100644 assets/voxygen/voxel/armor/hand/bonerattler_right.vox create mode 100644 assets/voxygen/voxel/armor/hand/tarasque_left.vox create mode 100644 assets/voxygen/voxel/armor/hand/tarasque_right.vox create mode 100644 assets/voxygen/voxel/armor/pants/bonerattler.vox create mode 100644 assets/voxygen/voxel/armor/pants/tarasque.vox create mode 100644 assets/voxygen/voxel/armor/shoulder/bonerattler_left.vox create mode 100644 assets/voxygen/voxel/armor/shoulder/bonerattler_right.vox create mode 100644 assets/voxygen/voxel/armor/shoulder/tarasque_left.vox create mode 100644 assets/voxygen/voxel/armor/shoulder/tarasque_right.vox create mode 100644 assets/voxygen/voxel/weapon/staff/ore-nature.vox diff --git a/assets/common/items/armor/belt/bonerattler.ron b/assets/common/items/armor/belt/bonerattler.ron new file mode 100644 index 0000000000..808e808942 --- /dev/null +++ b/assets/common/items/armor/belt/bonerattler.ron @@ -0,0 +1,12 @@ +Item( + name: "Bonerattler Belt", + description: "Made from the strongest bones.", + kind: Armor( + ( + kind: Belt("Bonerattler"), + stats: ( + protection: Normal(0.0), + ), + ) + ), +) diff --git a/assets/common/items/armor/belt/tarasque.ron b/assets/common/items/armor/belt/tarasque.ron new file mode 100644 index 0000000000..848722dd4a --- /dev/null +++ b/assets/common/items/armor/belt/tarasque.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/armor/chest/bonerattler.ron b/assets/common/items/armor/chest/bonerattler.ron new file mode 100644 index 0000000000..ddc4e00e75 --- /dev/null +++ b/assets/common/items/armor/chest/bonerattler.ron @@ -0,0 +1,12 @@ +Item( + name: "Bonerattler Cuirass", + description: "Made from the strongest bones.", + kind: Armor( + ( + kind: Chest("Bonerattler"), + stats: ( + protection: Normal(25.0), + ), + ) + ), +) \ No newline at end of file diff --git a/assets/common/items/armor/chest/tarasque.ron b/assets/common/items/armor/chest/tarasque.ron new file mode 100644 index 0000000000..ef73a183e7 --- /dev/null +++ b/assets/common/items/armor/chest/tarasque.ron @@ -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), + ), + ) + ), +) \ No newline at end of file diff --git a/assets/common/items/armor/foot/bonerattler.ron b/assets/common/items/armor/foot/bonerattler.ron new file mode 100644 index 0000000000..8226749815 --- /dev/null +++ b/assets/common/items/armor/foot/bonerattler.ron @@ -0,0 +1,12 @@ +Item( + name: "Bonerattler Boots", + description: "Made from the strongest bones.", + kind: Armor( + ( + kind: Foot("Bonerattler"), + stats: ( + protection: Normal(5.0), + ), + ) + ), +) diff --git a/assets/common/items/armor/foot/tarasque.ron b/assets/common/items/armor/foot/tarasque.ron new file mode 100644 index 0000000000..11ad855d63 --- /dev/null +++ b/assets/common/items/armor/foot/tarasque.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/armor/hand/bonerattler.ron b/assets/common/items/armor/hand/bonerattler.ron new file mode 100644 index 0000000000..46d6816db8 --- /dev/null +++ b/assets/common/items/armor/hand/bonerattler.ron @@ -0,0 +1,12 @@ +Item( + name: "Bonerattler Gauntlets", + description: "Made from the strongest bones.", + kind: Armor( + ( + kind: Hand("Bonerattler"), + stats: ( + protection: Normal(10.0), + ), + ) + ), +) diff --git a/assets/common/items/armor/hand/tarasque.ron b/assets/common/items/armor/hand/tarasque.ron new file mode 100644 index 0000000000..b45f0e558a --- /dev/null +++ b/assets/common/items/armor/hand/tarasque.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/armor/neck/neck_0.ron b/assets/common/items/armor/neck/neck_0.ron index cf50e006c7..12c315a85a 100644 --- a/assets/common/items/armor/neck/neck_0.ron +++ b/assets/common/items/armor/neck/neck_0.ron @@ -5,7 +5,7 @@ Item( ( kind: Neck("Neck0"), stats: ( - protection: Normal(0.5), + protection: Normal(1.0), ), ) ), diff --git a/assets/common/items/armor/neck/neck_1.ron b/assets/common/items/armor/neck/neck_1.ron index e650268c91..a6b3f8d919 100644 --- a/assets/common/items/armor/neck/neck_1.ron +++ b/assets/common/items/armor/neck/neck_1.ron @@ -5,7 +5,7 @@ Item( ( kind: Neck("Neck1"), stats: ( - protection: Normal(1.0), + protection: Normal(2.0), ), ) ), diff --git a/assets/common/items/armor/pants/bonerattler.ron b/assets/common/items/armor/pants/bonerattler.ron new file mode 100644 index 0000000000..17dcc30fe5 --- /dev/null +++ b/assets/common/items/armor/pants/bonerattler.ron @@ -0,0 +1,12 @@ +Item( + name: "Bonerattler Chausses", + description: "Made from the strongest bones.", + kind: Armor( + ( + kind: Pants("Bonerattler"), + stats: ( + protection: Normal(20.0), + ), + ) + ), +) diff --git a/assets/common/items/armor/pants/tarasque.ron b/assets/common/items/armor/pants/tarasque.ron new file mode 100644 index 0000000000..12e61dc342 --- /dev/null +++ b/assets/common/items/armor/pants/tarasque.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/armor/shoulder/bonerattler.ron b/assets/common/items/armor/shoulder/bonerattler.ron new file mode 100644 index 0000000000..892e762b45 --- /dev/null +++ b/assets/common/items/armor/shoulder/bonerattler.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/armor/shoulder/tarasque.ron b/assets/common/items/armor/shoulder/tarasque.ron new file mode 100644 index 0000000000..8afbfb9fcf --- /dev/null +++ b/assets/common/items/armor/shoulder/tarasque.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/debug/cultist_purp_2h_boss-0.ron b/assets/common/items/debug/cultist_purp_2h_boss-0.ron new file mode 100644 index 0000000000..bdae5745c0 --- /dev/null +++ b/assets/common/items/debug/cultist_purp_2h_boss-0.ron @@ -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, + ), + ) + ), +) diff --git a/assets/common/items/lantern/black_0.ron b/assets/common/items/lantern/black_0.ron index 1b948eca89..f3bb7974e1 100644 --- a/assets/common/items/lantern/black_0.ron +++ b/assets/common/items/lantern/black_0.ron @@ -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, ), diff --git a/assets/common/items/npc_armor/chest/worker_green_0.ron b/assets/common/items/npc_armor/chest/worker_green_0.ron new file mode 100644 index 0000000000..fa343fddb7 --- /dev/null +++ b/assets/common/items/npc_armor/chest/worker_green_0.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/chest/worker_green_1.ron b/assets/common/items/npc_armor/chest/worker_green_1.ron new file mode 100644 index 0000000000..23b84137cf --- /dev/null +++ b/assets/common/items/npc_armor/chest/worker_green_1.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/chest/worker_orange_0.ron b/assets/common/items/npc_armor/chest/worker_orange_0.ron new file mode 100644 index 0000000000..bc07617dcf --- /dev/null +++ b/assets/common/items/npc_armor/chest/worker_orange_0.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/chest/worker_orange_1.ron b/assets/common/items/npc_armor/chest/worker_orange_1.ron new file mode 100644 index 0000000000..6c605d452c --- /dev/null +++ b/assets/common/items/npc_armor/chest/worker_orange_1.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/chest/worker_purple_0.ron b/assets/common/items/npc_armor/chest/worker_purple_0.ron new file mode 100644 index 0000000000..6a234e994e --- /dev/null +++ b/assets/common/items/npc_armor/chest/worker_purple_0.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/chest/worker_purple_1.ron b/assets/common/items/npc_armor/chest/worker_purple_1.ron new file mode 100644 index 0000000000..35bcc56647 --- /dev/null +++ b/assets/common/items/npc_armor/chest/worker_purple_1.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/chest/worker_red_0.ron b/assets/common/items/npc_armor/chest/worker_red_0.ron new file mode 100644 index 0000000000..bbee3cbc2a --- /dev/null +++ b/assets/common/items/npc_armor/chest/worker_red_0.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/chest/worker_red_1.ron b/assets/common/items/npc_armor/chest/worker_red_1.ron new file mode 100644 index 0000000000..4b0966ee51 --- /dev/null +++ b/assets/common/items/npc_armor/chest/worker_red_1.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/chest/worker_yellow_0.ron b/assets/common/items/npc_armor/chest/worker_yellow_0.ron new file mode 100644 index 0000000000..d59b94169c --- /dev/null +++ b/assets/common/items/npc_armor/chest/worker_yellow_0.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/npc_armor/chest/worker_yellow_1.ron b/assets/common/items/npc_armor/chest/worker_yellow_1.ron new file mode 100644 index 0000000000..d8db355878 --- /dev/null +++ b/assets/common/items/npc_armor/chest/worker_yellow_1.ron @@ -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), + ), + ) + ), +) diff --git a/assets/common/items/npc_weapons/tool/broom.ron b/assets/common/items/npc_weapons/tool/broom.ron index 9b62840b7e..dfb46a6da7 100644 --- a/assets/common/items/npc_weapons/tool/broom.ron +++ b/assets/common/items/npc_weapons/tool/broom.ron @@ -6,7 +6,7 @@ Item( kind: Farming("Broom"), stats: ( equip_time_millis: 400, - power: 0.5, + power: 1.5, ), ) ), diff --git a/assets/common/items/npc_weapons/tool/fishing_rod.ron b/assets/common/items/npc_weapons/tool/fishing_rod.ron index bf4b3a05c3..0768f74587 100644 --- a/assets/common/items/npc_weapons/tool/fishing_rod.ron +++ b/assets/common/items/npc_weapons/tool/fishing_rod.ron @@ -6,7 +6,7 @@ Item( kind: Farming("FishingRod0"), stats: ( equip_time_millis: 400, - power: 0.5, + power: 1.5, ), ) ), diff --git a/assets/common/items/npc_weapons/tool/hoe.ron b/assets/common/items/npc_weapons/tool/hoe.ron index 2f0ec0f257..7c66734bbf 100644 --- a/assets/common/items/npc_weapons/tool/hoe.ron +++ b/assets/common/items/npc_weapons/tool/hoe.ron @@ -6,7 +6,7 @@ Item( kind: Farming("Hoe0"), stats: ( equip_time_millis: 400, - power: 0.50, + power: 1.50, ), ) ), diff --git a/assets/common/items/npc_weapons/tool/pickaxe.ron b/assets/common/items/npc_weapons/tool/pickaxe.ron index e9ed64a5e4..303be8c20b 100644 --- a/assets/common/items/npc_weapons/tool/pickaxe.ron +++ b/assets/common/items/npc_weapons/tool/pickaxe.ron @@ -6,7 +6,7 @@ Item( kind: Farming("Pickaxe0"), stats: ( equip_time_millis: 400, - power: 0.50, + power: 1.50, ), ) ), diff --git a/assets/common/items/npc_weapons/tool/pitchfork.ron b/assets/common/items/npc_weapons/tool/pitchfork.ron index effc304483..3ddc68a41b 100644 --- a/assets/common/items/npc_weapons/tool/pitchfork.ron +++ b/assets/common/items/npc_weapons/tool/pitchfork.ron @@ -6,7 +6,7 @@ Item( kind: Farming("Pitchfork"), stats: ( equip_time_millis: 400, - power: 0.50, + power: 1.50, ), ) ), diff --git a/assets/common/items/npc_weapons/tool/rake.ron b/assets/common/items/npc_weapons/tool/rake.ron index 9430056099..774edea21e 100644 --- a/assets/common/items/npc_weapons/tool/rake.ron +++ b/assets/common/items/npc_weapons/tool/rake.ron @@ -6,7 +6,7 @@ Item( kind: Farming("Rake"), stats: ( equip_time_millis: 400, - power: 0.50, + power: 1.50, ), ) ), diff --git a/assets/common/items/npc_weapons/tool/shovel-0.ron b/assets/common/items/npc_weapons/tool/shovel-0.ron index 8814156245..77e7dc26eb 100644 --- a/assets/common/items/npc_weapons/tool/shovel-0.ron +++ b/assets/common/items/npc_weapons/tool/shovel-0.ron @@ -6,7 +6,7 @@ Item( kind: Farming("Shovel0"), stats: ( equip_time_millis: 400, - power: 0.50, + power: 1.50, ), ) ), diff --git a/assets/common/items/npc_weapons/tool/shovel-1.ron b/assets/common/items/npc_weapons/tool/shovel-1.ron index 01c8bbf3c1..ab4f5aae8f 100644 --- a/assets/common/items/npc_weapons/tool/shovel-1.ron +++ b/assets/common/items/npc_weapons/tool/shovel-1.ron @@ -6,7 +6,7 @@ Item( kind: Farming("Shovel1"), stats: ( equip_time_millis: 400, - power: 0.50, + power: 1.50, ), ) ), diff --git a/assets/common/items/weapons/staff/sceptre_velorite_0.ron b/assets/common/items/weapons/staff/sceptre_velorite_0.ron new file mode 100644 index 0000000000..dad5431206 --- /dev/null +++ b/assets/common/items/weapons/staff/sceptre_velorite_0.ron @@ -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, + ), + ) + ), +) diff --git a/assets/common/loot_table.ron b/assets/common/loot_table.ron deleted file mode 100644 index f0a98900c7..0000000000 --- a/assets/common/loot_table.ron +++ /dev/null @@ -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"), -] diff --git a/assets/common/loot_tables/loot_table.ron b/assets/common/loot_tables/loot_table.ron new file mode 100644 index 0000000000..5787e95a90 --- /dev/null +++ b/assets/common/loot_tables/loot_table.ron @@ -0,0 +1,4 @@ +[ + // Fallback loot table + (1, "common.items.food.cheese"), +] diff --git a/assets/common/loot_tables/loot_table_animal_parts.ron b/assets/common/loot_tables/loot_table_animal_parts.ron new file mode 100644 index 0000000000..6358ba4cbe --- /dev/null +++ b/assets/common/loot_tables/loot_table_animal_parts.ron @@ -0,0 +1,3 @@ +[ + (2, "common.items.crafting_ing.leather_scraps"), +] diff --git a/assets/common/loot_tables/loot_table_armor_cloth.ron b/assets/common/loot_tables/loot_table_armor_cloth.ron new file mode 100644 index 0000000000..5640a27b42 --- /dev/null +++ b/assets/common/loot_tables/loot_table_armor_cloth.ron @@ -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"), +] diff --git a/assets/common/loot_tables/loot_table_armor_heavy.ron b/assets/common/loot_tables/loot_table_armor_heavy.ron new file mode 100644 index 0000000000..66afe487b8 --- /dev/null +++ b/assets/common/loot_tables/loot_table_armor_heavy.ron @@ -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"), +] \ No newline at end of file diff --git a/assets/common/loot_tables/loot_table_armor_light.ron b/assets/common/loot_tables/loot_table_armor_light.ron new file mode 100644 index 0000000000..e25ec5760c --- /dev/null +++ b/assets/common/loot_tables/loot_table_armor_light.ron @@ -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"), +] \ No newline at end of file diff --git a/assets/common/loot_tables/loot_table_armor_misc.ron b/assets/common/loot_tables/loot_table_armor_misc.ron new file mode 100644 index 0000000000..601e013552 --- /dev/null +++ b/assets/common/loot_tables/loot_table_armor_misc.ron @@ -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"), +] \ No newline at end of file diff --git a/assets/common/loot_tables/loot_table_armor_nature.ron b/assets/common/loot_tables/loot_table_armor_nature.ron new file mode 100644 index 0000000000..fa371a7938 --- /dev/null +++ b/assets/common/loot_tables/loot_table_armor_nature.ron @@ -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"), +] \ No newline at end of file diff --git a/assets/common/loot_tables/loot_table_boss_cultist-leader.ron b/assets/common/loot_tables/loot_table_boss_cultist-leader.ron new file mode 100644 index 0000000000..b91e0f367d --- /dev/null +++ b/assets/common/loot_tables/loot_table_boss_cultist-leader.ron @@ -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"), +] \ No newline at end of file diff --git a/assets/common/loot_tables/loot_table_consumables.ron b/assets/common/loot_tables/loot_table_consumables.ron new file mode 100644 index 0000000000..f4dfab8089 --- /dev/null +++ b/assets/common/loot_tables/loot_table_consumables.ron @@ -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"), +] \ No newline at end of file diff --git a/assets/common/loot_tables/loot_table_crafting.ron b/assets/common/loot_tables/loot_table_crafting.ron new file mode 100644 index 0000000000..0e7185ff68 --- /dev/null +++ b/assets/common/loot_tables/loot_table_crafting.ron @@ -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"), + +] diff --git a/assets/common/loot_tables/loot_table_food.ron b/assets/common/loot_tables/loot_table_food.ron new file mode 100644 index 0000000000..c9db9c6578 --- /dev/null +++ b/assets/common/loot_tables/loot_table_food.ron @@ -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"), +] diff --git a/assets/common/loot_tables/loot_table_humanoids.ron b/assets/common/loot_tables/loot_table_humanoids.ron new file mode 100644 index 0000000000..5b25815f1c --- /dev/null +++ b/assets/common/loot_tables/loot_table_humanoids.ron @@ -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"), +] diff --git a/assets/common/loot_tables/loot_table_rocks.ron b/assets/common/loot_tables/loot_table_rocks.ron new file mode 100644 index 0000000000..e29e50f7f2 --- /dev/null +++ b/assets/common/loot_tables/loot_table_rocks.ron @@ -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"), +] diff --git a/assets/common/loot_tables/loot_table_villager.ron b/assets/common/loot_tables/loot_table_villager.ron new file mode 100644 index 0000000000..d2eb0f8d25 --- /dev/null +++ b/assets/common/loot_tables/loot_table_villager.ron @@ -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"), +] diff --git a/assets/common/loot_tables/loot_table_weapon_common.ron b/assets/common/loot_tables/loot_table_weapon_common.ron new file mode 100644 index 0000000000..0ba12913f2 --- /dev/null +++ b/assets/common/loot_tables/loot_table_weapon_common.ron @@ -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"), +] \ No newline at end of file diff --git a/assets/common/loot_tables/loot_table_weapon_rare.ron b/assets/common/loot_tables/loot_table_weapon_rare.ron new file mode 100644 index 0000000000..df5fa2a126 --- /dev/null +++ b/assets/common/loot_tables/loot_table_weapon_rare.ron @@ -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"), +] \ No newline at end of file diff --git a/assets/common/loot_tables/loot_table_weapon_uncommon.ron b/assets/common/loot_tables/loot_table_weapon_uncommon.ron new file mode 100644 index 0000000000..7211863eb4 --- /dev/null +++ b/assets/common/loot_tables/loot_table_weapon_uncommon.ron @@ -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"), +] \ No newline at end of file diff --git a/assets/common/recipe_book.ron b/assets/common/recipe_book.ron index 5c168ab31a..1a17d6f0c1 100644 --- a/assets/common/recipe_book.ron +++ b/assets/common/recipe_book.ron @@ -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)]), } diff --git a/assets/voxygen/element/frames/banner_bot.png b/assets/voxygen/element/frames/banner_bot.png new file mode 100644 index 0000000000..b1dbcfe112 --- /dev/null +++ b/assets/voxygen/element/frames/banner_bot.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:576f306f0770c69588da97bd135d5ba1ac4ff347a5bee562cc92951e25bc3399 +size 1638 diff --git a/assets/voxygen/element/icons/female.png b/assets/voxygen/element/icons/female.png deleted file mode 100644 index 405f424205..0000000000 --- a/assets/voxygen/element/icons/female.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:44b79da769deb373b40aab595bbab076c4102f1f387eafe88bb760a47c301f5e -size 19028 diff --git a/assets/voxygen/element/icons/item_leather1.png b/assets/voxygen/element/icons/item_leather1.png new file mode 100644 index 0000000000..a96818e076 --- /dev/null +++ b/assets/voxygen/element/icons/item_leather1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea821ab4ee7dd73c59a7300b213d8515265dcca290fa4e2532a8009c7ce741d1 +size 1739 diff --git a/assets/voxygen/element/icons/male.png b/assets/voxygen/element/icons/male.png deleted file mode 100644 index 17dbbdeac1..0000000000 --- a/assets/voxygen/element/icons/male.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f940f7e84784c5de5a9a56b4fc91c7ad1687465f3dfe3618a908652bd6df2e31 -size 18428 diff --git a/assets/voxygen/i18n/de_DE.ron b/assets/voxygen/i18n/de_DE.ron index 04e6bffe0f..f5ce2fa8f8 100644 --- a/assets/voxygen/i18n/de_DE.ron +++ b/assets/voxygen/i18n/de_DE.ron @@ -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", diff --git a/assets/voxygen/i18n/en.ron b/assets/voxygen/i18n/en.ron index d02cfc6b74..2760d7609d 100644 --- a/assets/voxygen/i18n/en.ron +++ b/assets/voxygen/i18n/en.ron @@ -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", diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 77d2638409..4d59015e54 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -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", diff --git a/assets/voxygen/voxel/armor/belt/bonerattler.vox b/assets/voxygen/voxel/armor/belt/bonerattler.vox new file mode 100644 index 0000000000..5a07ba7dd1 --- /dev/null +++ b/assets/voxygen/voxel/armor/belt/bonerattler.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0f042fc608dbf4b0184fbc888effe47b280ea8de07b46855e7b97c1eb6d9344 +size 1460 diff --git a/assets/voxygen/voxel/armor/belt/tarasque.vox b/assets/voxygen/voxel/armor/belt/tarasque.vox new file mode 100644 index 0000000000..6ed66156c9 --- /dev/null +++ b/assets/voxygen/voxel/armor/belt/tarasque.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b582508130116bc82a57c86f8b2f038f46e053f0bae3b04b73883df12cf58a5 +size 1472 diff --git a/assets/voxygen/voxel/armor/chest/bonerattler.vox b/assets/voxygen/voxel/armor/chest/bonerattler.vox new file mode 100644 index 0000000000..d516e45bd8 --- /dev/null +++ b/assets/voxygen/voxel/armor/chest/bonerattler.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:340ef35d35982e51f1d11bd0990bbf3e512aad52332026ccc138a81205faef54 +size 2624 diff --git a/assets/voxygen/voxel/armor/chest/tarasque.vox b/assets/voxygen/voxel/armor/chest/tarasque.vox new file mode 100644 index 0000000000..833d657b28 --- /dev/null +++ b/assets/voxygen/voxel/armor/chest/tarasque.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04b8bc823e3692bec955eb8994d1ce22025500e38adfaabf7d103cfb8dc6a6d5 +size 2944 diff --git a/assets/voxygen/voxel/armor/foot/bonerattler.vox b/assets/voxygen/voxel/armor/foot/bonerattler.vox new file mode 100644 index 0000000000..c6c00b3719 --- /dev/null +++ b/assets/voxygen/voxel/armor/foot/bonerattler.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6acc4e7c074ecfe9280151b8d81541c5310d4ec3d001284ae3e9f19e176ca224 +size 1480 diff --git a/assets/voxygen/voxel/armor/foot/tarasque.vox b/assets/voxygen/voxel/armor/foot/tarasque.vox new file mode 100644 index 0000000000..d07b797f44 --- /dev/null +++ b/assets/voxygen/voxel/armor/foot/tarasque.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4be8dfb78ff2f0bdcc2c38dbcb8cf72cae1c5e84b29c64fa3239231e5d154e5 +size 1480 diff --git a/assets/voxygen/voxel/armor/hand/bonerattler_left.vox b/assets/voxygen/voxel/armor/hand/bonerattler_left.vox new file mode 100644 index 0000000000..915741468d --- /dev/null +++ b/assets/voxygen/voxel/armor/hand/bonerattler_left.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5840f02a522774c8999ccded69b20f5de4104ad673bbba744cb03899deb49f4 +size 1240 diff --git a/assets/voxygen/voxel/armor/hand/bonerattler_right.vox b/assets/voxygen/voxel/armor/hand/bonerattler_right.vox new file mode 100644 index 0000000000..3e95dcbe63 --- /dev/null +++ b/assets/voxygen/voxel/armor/hand/bonerattler_right.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:db096bedf5ddf4412b30c005674bcb114f1c64eb6e59450f4cd8d383bf95e9c7 +size 1240 diff --git a/assets/voxygen/voxel/armor/hand/tarasque_left.vox b/assets/voxygen/voxel/armor/hand/tarasque_left.vox new file mode 100644 index 0000000000..d17f99af53 --- /dev/null +++ b/assets/voxygen/voxel/armor/hand/tarasque_left.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1467490474a15d5fe6f26c09aeac7462e1507ecc1d79058bb2bdf5047d5bed8c +size 55771 diff --git a/assets/voxygen/voxel/armor/hand/tarasque_right.vox b/assets/voxygen/voxel/armor/hand/tarasque_right.vox new file mode 100644 index 0000000000..cf510c8d5f --- /dev/null +++ b/assets/voxygen/voxel/armor/hand/tarasque_right.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7b3814791c774ed2c6ff4eedb808a8c014b7016254800a7eb8c5716433dd7c52 +size 1288 diff --git a/assets/voxygen/voxel/armor/pants/bonerattler.vox b/assets/voxygen/voxel/armor/pants/bonerattler.vox new file mode 100644 index 0000000000..829aab954a --- /dev/null +++ b/assets/voxygen/voxel/armor/pants/bonerattler.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d7a1a9485d0833834849a49f53bbf92b61ee2744f0500e6d80951ac1f8617133 +size 1896 diff --git a/assets/voxygen/voxel/armor/pants/tarasque.vox b/assets/voxygen/voxel/armor/pants/tarasque.vox new file mode 100644 index 0000000000..8c3d65b9e1 --- /dev/null +++ b/assets/voxygen/voxel/armor/pants/tarasque.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a6379161840e44f2c6eb7c1f858a40907dd109b396741fb9f40b7a2a249c7bd +size 2008 diff --git a/assets/voxygen/voxel/armor/shoulder/bonerattler_left.vox b/assets/voxygen/voxel/armor/shoulder/bonerattler_left.vox new file mode 100644 index 0000000000..c5570493ed --- /dev/null +++ b/assets/voxygen/voxel/armor/shoulder/bonerattler_left.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcdc7b084add4b4bf3933a4df56eeefa406c9cfb2f389aca26f71e53f66b70cd +size 1388 diff --git a/assets/voxygen/voxel/armor/shoulder/bonerattler_right.vox b/assets/voxygen/voxel/armor/shoulder/bonerattler_right.vox new file mode 100644 index 0000000000..c5570493ed --- /dev/null +++ b/assets/voxygen/voxel/armor/shoulder/bonerattler_right.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcdc7b084add4b4bf3933a4df56eeefa406c9cfb2f389aca26f71e53f66b70cd +size 1388 diff --git a/assets/voxygen/voxel/armor/shoulder/tarasque_left.vox b/assets/voxygen/voxel/armor/shoulder/tarasque_left.vox new file mode 100644 index 0000000000..3247ec5e8a --- /dev/null +++ b/assets/voxygen/voxel/armor/shoulder/tarasque_left.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:676346dbb34ab576bd882b9eeae9d07b0325806783779e8b25807471e6aa5713 +size 55999 diff --git a/assets/voxygen/voxel/armor/shoulder/tarasque_right.vox b/assets/voxygen/voxel/armor/shoulder/tarasque_right.vox new file mode 100644 index 0000000000..5ac2a29065 --- /dev/null +++ b/assets/voxygen/voxel/armor/shoulder/tarasque_right.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:daf3f9d27f98bf0665e7e836365044a3c215c2a6f34f4036340f36c9377684c3 +size 1516 diff --git a/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron b/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron index 1ddab8aa04..bfa38ec946 100644 --- a/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_belt_manifest.ron @@ -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 + ), }, )) diff --git a/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron b/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron index 93eb3a18a7..c17403b4e2 100644 --- a/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_chest_manifest.ron @@ -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 + ), }, ) ) diff --git a/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron b/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron index ca038be44d..b2432b066d 100644 --- a/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_foot_manifest.ron @@ -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 + ), }, )) diff --git a/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron b/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron index 109dbace12..9cf0fa7a07 100644 --- a/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_hand_manifest.ron @@ -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 + ) + ), }, )) diff --git a/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron b/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron index bb15cc6876..9b8e94c453 100644 --- a/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_pants_manifest.ron @@ -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 + ), }, )) diff --git a/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron b/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron index 873a88adc3..7f9fbc7fb6 100644 --- a/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron +++ b/assets/voxygen/voxel/humanoid_armor_shoulder_manifest.ron @@ -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 + ) + ), }, )) diff --git a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron index 96bec81511..5913a9819a 100644 --- a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron +++ b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron @@ -543,10 +543,14 @@ color: None ), // Healing staff - Staff("Sceptre"): ( + Staff("Sceptre"): ( 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)), diff --git a/assets/voxygen/voxel/sprite/furniture/hanging_sign-0.vox b/assets/voxygen/voxel/sprite/furniture/hanging_sign-0.vox index 6666e45ec9..11f387ffdc 100644 --- a/assets/voxygen/voxel/sprite/furniture/hanging_sign-0.vox +++ b/assets/voxygen/voxel/sprite/furniture/hanging_sign-0.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a9d01dd0c592aec309008561e5ec826e618fad10a22b05b8a0e3d19a24e84d77 -size 4484 +oid sha256:8e5ebf2bf30d37f6fdf116dab27f5d4bef7a4259741e625eb13b49ff4f084116 +size 2832 diff --git a/assets/voxygen/voxel/sprite/misc/street_lamp.vox b/assets/voxygen/voxel/sprite/misc/street_lamp.vox index 6f738e8bb5..ec36daeb42 100644 --- a/assets/voxygen/voxel/sprite/misc/street_lamp.vox +++ b/assets/voxygen/voxel/sprite/misc/street_lamp.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5909211edd73fe743f81ae280aaf2e6022a3e5d0430a7c79509479401a01dac0 -size 4776 +oid sha256:976da129142c18f06cdf0f4f89d50f328ba9a374985560d22fa1ae944843b0e4 +size 3608 diff --git a/assets/voxygen/voxel/weapon/staff/ore-nature.vox b/assets/voxygen/voxel/weapon/staff/ore-nature.vox new file mode 100644 index 0000000000..772fee747a --- /dev/null +++ b/assets/voxygen/voxel/weapon/staff/ore-nature.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f6949d842517a5fb70205f613c239ca3a9e32744cda67e5d4d9e16af8a99638 +size 1680 diff --git a/assets/voxygen/voxel/weapon/staff/wood-nature.vox b/assets/voxygen/voxel/weapon/staff/wood-nature.vox index cfb29487b3..772fee747a 100644 --- a/assets/voxygen/voxel/weapon/staff/wood-nature.vox +++ b/assets/voxygen/voxel/weapon/staff/wood-nature.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7d170f609ca3ec724429acdefb3c076f334265a9bed58d644bfb4e202e91ca94 -size 1448 +oid sha256:5f6949d842517a5fb70205f613c239ca3a9e32744cda67e5d4d9e16af8a99638 +size 1680 diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index fd30c24a20..9bc38b8c30 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -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, diff --git a/common/src/comp/inventory/item/mod.rs b/common/src/comp/inventory/item/mod.rs index 4a66786a8d..b4164ac03c 100644 --- a/common/src/comp/inventory/item/mod.rs +++ b/common/src/comp/inventory/item/mod.rs @@ -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 { + 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::>("common.loot_table"); + let chosen = match rng.gen_range(0, 5) { + 0 => { + assets::load_expect::>("common.loot_tables.loot_table_food") + }, + 1 => assets::load_expect::>( + "common.loot_tables.loot_table_crafting", + ), + 2 => assets::load_expect::>( + "common.loot_tables.loot_table_weapon_uncommon", + ), + 3 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_misc", + ), + _ => assets::load_expect::>("common.loot_tables.loot_table"), + }; + let chosen = chosen.choose(); + Some(assets::load_expect_cloned(chosen)) + }, + BlockKind::Crate => { + let chosen = + assets::load_expect::>("common.loot_tables.loot_table_food"); let chosen = chosen.choose(); Some(assets::load_expect_cloned(chosen)) diff --git a/common/src/comp/inventory/item/tool.rs b/common/src/comp/inventory/item/tool.rs index 335807ad3c..1356a3e636 100644 --- a/common/src/comp/inventory/item/tool.rs +++ b/common/src/comp/inventory/item/tool.rs @@ -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 { diff --git a/common/src/lottery.rs b/common/src/lottery.rs index 6e4546f88e..f25a5966b7 100644 --- a/common/src/lottery.rs +++ b/common/src/lottery.rs @@ -51,7 +51,7 @@ mod tests { use crate::{assets, comp::Item}; #[test] fn test_loot_table() { - let test = assets::load_expect::>("common.loot_table"); + let test = assets::load_expect::>("common.loot_tables.loot_table"); for (_, item) in test.iter() { assert!( diff --git a/common/src/terrain/block.rs b/common/src/terrain/block.rs index 19e5499dbd..f2899f69a7 100644 --- a/common/src/terrain/block.rs +++ b/common/src/terrain/block.rs @@ -440,6 +440,7 @@ impl BlockKind { BlockKind::Stones => true, BlockKind::Twigs => true, BlockKind::ShinyGem => true, + BlockKind::Crate => true, _ => false, } } @@ -495,8 +496,9 @@ impl Block { | BlockKind::WardrobeSingle | BlockKind::WardrobeDouble | BlockKind::Pot + | BlockKind::Chest | BlockKind::DropGate - | BlockKind::DropGateBottom + | BlockKind::DropGateBottom | BlockKind::Door => Some(self.color[0] & 0b111), _ => None, } diff --git a/server/src/events/entity_manipulation.rs b/server/src/events/entity_manipulation.rs index f03fa99906..1876e67431 100644 --- a/server/src/events/entity_manipulation.rs +++ b/server/src/events/entity_manipulation.rs @@ -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::() .insert(entity, comp::CharacterState::default()); } else if state.ecs().read_storage::().contains(entity) { - // Replace npc with loot + // Decide for a loot drop before turning into a lootbag + let old_body = state.ecs().write_storage::().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::>( + "common.loot_tables.loot_table_humanoids", + ), + 1 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_light", + ), + 2 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_cloth", + ), + 3 => assets::load_expect::>( + "common.loot_tables.loot_table_weapon_common", + ), + _ => assets::load_expect::>( + "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::>( + "common.loot_tables.loot_table_armor_misc", + ), + 1 => assets::load_expect::>( + "common.loot_tables.loot_table_rocks", + ), + _ => assets::load_expect::>( + "common.loot_tables.loot_table_rocks", + ), + }, + _ => match rng.gen_range(0, 4) { + 0 => assets::load_expect::>( + "common.loot_tables.loot_table_food", + ), + 1 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_misc", + ), + 2 => assets::load_expect::>( + "common.loot_tables.loot_table_animal_parts", + ), + _ => assets::load_expect::>( + "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::>( + "common.loot_tables.loot_table_food", + ), + 1 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_misc", + ), + 2 => assets::load_expect::>( + "common.loot_tables.loot_table_animal_parts", + ), + _ => assets::load_expect::>( + "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::>("common.loot_tables.loot_table_food") + }, + 1 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_misc", + ), + _ => assets::load_expect::>("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::>("common.loot_tables.loot_table_food") + }, + 1 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_misc", + ), + 2 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_light", + ), + 3 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_heavy", + ), + 4 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_misc", + ), + 5 => assets::load_expect::>( + "common.loot_tables.loot_table_weapon_common", + ), + 6 => assets::load_expect::>( + "common.loot_tables.loot_table_weapon_uncommon", + ), + 7 => assets::load_expect::>( + "common.loot_tables.loot_table_weapon_rare", + ), + _ => assets::load_expect::>("common.loot_tables.loot_table"), + }, + }, + Some(common::comp::Body::Golem(golem)) => match golem.species { + _ => match rng.gen_range(0, 9) { + 0 => { + assets::load_expect::>("common.loot_tables.loot_table_food") + }, + 1 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_misc", + ), + 2 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_light", + ), + 3 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_heavy", + ), + 4 => assets::load_expect::>( + "common.loot_tables.loot_table_armor_misc", + ), + 5 => assets::load_expect::>( + "common.loot_tables.loot_table_weapon_common", + ), + 6 => assets::load_expect::>( + "common.loot_tables.loot_table_weapon_uncommon", + ), + 7 => assets::load_expect::>( + "common.loot_tables.loot_table_weapon_rare", + ), + _ => assets::load_expect::>("common.loot_tables.loot_table"), + }, + }, + Some(common::comp::Body::Critter(critter)) => match critter.species { + _ => match rng.gen_range(0, 3) { + 0 => { + assets::load_expect::>("common.loot_tables.loot_table_food") + }, + 1 => assets::load_expect::>( + "common.loot_tables.loot_table_animal_parts", + ), + _ => assets::load_expect::>("common.loot_tables.loot_table"), + }, + }, + Some(common::comp::Body::Dragon(_)) => { + assets::load_expect::>("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::>("common.loot_tables.loot_table_food") + }, + 1 => assets::load_expect::>( + "common.loot_tables.loot_table_animal_parts", + ), + _ => assets::load_expect::>("common.loot_tables.loot_table"), + }, + }, + _ => assets::load_expect::>("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::(); 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::>("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); diff --git a/server/src/sys/terrain.rs b/server/src/sys/terrain.rs index 31a197d1c8..d64b73accf 100644 --- a/server/src/sys/terrain.rs +++ b/server/src/sys/terrain.rs @@ -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 diff --git a/voxygen/src/hud/crafting.rs b/voxygen/src/hud/crafting.rs index 99c706a5dc..799e275060 100644 --- a/voxygen/src/hud/crafting.rs +++ b/voxygen/src/hud/crafting.rs @@ -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 diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index ddf529cb09..9f4e7e2a71 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -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)); diff --git a/voxygen/src/hud/overhead.rs b/voxygen/src/hud/overhead.rs index f7ddf69a2f..5f7d059fcd 100644 --- a/voxygen/src/hud/overhead.rs +++ b/voxygen/src/hud/overhead.rs @@ -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); diff --git a/voxygen/src/hud/skillbar.rs b/voxygen/src/hud/skillbar.rs index 907ac4a5af..08e106cc27 100644 --- a/voxygen/src/hud/skillbar.rs +++ b/voxygen/src/hud/skillbar.rs @@ -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), diff --git a/voxygen/src/menu/char_selection/ui.rs b/voxygen/src/menu/char_selection/ui.rs index 526df2c80c..a3fd267cc1 100644 --- a/voxygen/src/menu/char_selection/ui.rs +++ b/voxygen/src/menu/char_selection/ui.rs @@ -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 { - 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", + 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); diff --git a/voxygen/src/scene/terrain.rs b/voxygen/src/scene/terrain.rs index 47cde9862b..e045467285 100644 --- a/voxygen/src/scene/terrain.rs +++ b/voxygen/src/scene/terrain.rs @@ -2109,7 +2109,7 @@ impl Terrain { make_models( (BlockKind::HangingSign, 0), "voxygen.voxel.sprite.furniture.hanging_sign-0", - Vec3::new(-3.5, -28.0, -4.0), + Vec3::new(-3.5, -16.0, 0.0), Vec3::one(), ), // WallLamp diff --git a/voxygen/src/session.rs b/voxygen/src/session.rs index 076b18901b..f83a6d3583 100644 --- a/voxygen/src/session.rs +++ b/voxygen/src/session.rs @@ -1146,7 +1146,7 @@ impl PlayState for SessionState { } /// Max distance an entity can be "targeted" -const MAX_TARGET_RANGE: f32 = 150.0; +const MAX_TARGET_RANGE: f32 = 300.0; /// Calculate what the cursor is pointing at within the 3d scene #[allow(clippy::type_complexity)] fn under_cursor( diff --git a/world/src/layer/mod.rs b/world/src/layer/mod.rs index 4cc286e2ec..4c2fa96f50 100644 --- a/world/src/layer/mod.rs +++ b/world/src/layer/mod.rs @@ -29,7 +29,7 @@ pub struct Colors { fn close(x: f32, tgt: f32, falloff: f32) -> f32 { (1.0 - (x - tgt).abs() / falloff).max(0.0).powf(0.5) } -const MUSH_FACT: f32 = 0.001; // To balance everything around the mushroom spawning rate +const MUSH_FACT: f32 = 0.0001; // To balance everything around the mushroom spawning rate pub fn apply_scatter_to<'a>( wpos2d: Vec2, mut get_column: impl FnMut(Vec2) -> Option<&'a ColumnSample<'a>>, @@ -130,10 +130,10 @@ pub fn apply_scatter_to<'a>( // Collecable Objects // Only spawn twigs in temperate forests (Twigs, false, |c| { - ((c.tree_density - 0.5).max(0.0) * MUSH_FACT, None) + ((c.tree_density - 0.5).max(0.0) * MUSH_FACT *0.5, None) }), (Stones, false, |c| { - ((c.rockiness - 0.5).max(0.0) * MUSH_FACT, None) + ((c.rockiness - 0.5).max(0.0) * MUSH_FACT *0.5, None) }), // Don't spawn Mushrooms in snowy regions (Mushroom, false, |c| { @@ -145,30 +145,41 @@ pub fn apply_scatter_to<'a>( // Grass (ShortGrass, false, |c| { ( - close(c.temp, 0.0, 0.6).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * 0.05, - Some((48.0, 0.7)), + close(c.temp, 0.3, 0.4).min(close(c.humidity, 0.6, 0.35)) * 0.5, + Some((48.0, 0.4)), ) }), (MediumGrass, false, |c| { ( - close(c.temp, 0.0, 0.5).min(close(c.humidity, CONFIG.forest_hum, 0.35)) * 0.05, - Some((48.0, 0.4)), + close(c.temp, 0.0, 0.6).min(close(c.humidity, 0.6, 0.35)) * 0.5, + Some((48.0, 0.2)), ) }), (LongGrass, false, |c| { ( - close(c.temp, 0.4, 0.5).min(close(c.humidity, CONFIG.forest_hum, 0.2)) * 0.05, - Some((48.0, 0.5)), + close(c.temp, 0.4, 0.4).min(close(c.humidity, 0.8, 0.2)) * 0.5, + Some((48.0, 0.1)), ) }), - (WheatGreen, false, |c| { + // Jungle Sprites + (LongGrass, false, |c| { + ( + close(c.temp, CONFIG.tropical_temp, 0.4).min(close( + c.humidity, + CONFIG.jungle_hum, + 0.6, + )) * 0.5, + Some((60.0, 5.0)), + ) + }), + /*(WheatGreen, false, |c| { ( close(c.temp, 0.4, 0.2).min(close(c.humidity, CONFIG.forest_hum, 0.1)) * MUSH_FACT * 0.001, None, ) - }), + }),*/ (GrassSnow, false, |c| { ( close(c.temp, CONFIG.snow_temp - 0.2, 0.4).min(close( @@ -186,8 +197,8 @@ pub fn apply_scatter_to<'a>( c.humidity, CONFIG.desert_hum, 0.3, - )) * MUSH_FACT - * 0.01, + )) * MUSH_FACT* 0.1, + None, ) }), @@ -197,19 +208,19 @@ pub fn apply_scatter_to<'a>( c.humidity, CONFIG.desert_hum, 0.2, - )) * MUSH_FACT - * 0.01, + )) * MUSH_FACT* 0.1, + None, ) }), - (BarrelCactus, false, |c| { + /*(BarrelCactus, false, |c| { ( close(c.temp, CONFIG.desert_temp + 0.2, 0.3).min(close( c.humidity, CONFIG.desert_hum, 0.2, )) * MUSH_FACT - * 0.01, + * 0.1, None, ) }), @@ -220,7 +231,7 @@ pub fn apply_scatter_to<'a>( CONFIG.desert_hum, 0.2, )) * MUSH_FACT - * 0.01, + * 0.1, None, ) }), @@ -231,7 +242,7 @@ pub fn apply_scatter_to<'a>( CONFIG.desert_hum, 0.2, )) * MUSH_FACT - * 0.01, + * 0.1, None, ) }), @@ -242,7 +253,7 @@ pub fn apply_scatter_to<'a>( CONFIG.desert_hum, 0.2, )) * MUSH_FACT - * 0.01, + * 0.1, None, ) }), @@ -253,10 +264,10 @@ pub fn apply_scatter_to<'a>( CONFIG.desert_hum, 0.2, )) * MUSH_FACT - * 0.01, + * 0.1, None, ) - }), + }),*/ ]; for y in 0..vol.size_xy().y as i32 { diff --git a/world/src/lib.rs b/world/src/lib.rs index 9d32ab1442..105859cb91 100644 --- a/world/src/lib.rs +++ b/world/src/lib.rs @@ -253,6 +253,7 @@ impl World { match quadruped_medium.species { quadruped_medium::Species::Catoblepas => is_hostile = false, quadruped_medium::Species::Mouflon => is_hostile = false, + quadruped_medium::Species::Tuskram => is_hostile = false, _ => is_hostile = true, } }, diff --git a/world/src/site/dungeon/mod.rs b/world/src/site/dungeon/mod.rs index 732cf06759..b6b04c5750 100644 --- a/world/src/site/dungeon/mod.rs +++ b/world/src/site/dungeon/mod.rs @@ -12,6 +12,7 @@ use common::{ astar::Astar, comp, generation::{ChunkSupplement, EntityInfo}, + lottery::Lottery, npc, store::{Id, Store}, terrain::{Block, BlockKind, Structure, TerrainChunkSize}, @@ -498,13 +499,17 @@ impl Floor { boss_spawn_tile + if boss_tile_is_pillar { 1 } else { 0 }; if tile_pos == boss_spawn_tile && tile_wcenter.xy() == wpos2d { + let chosen = assets::load_expect::>( + "common.loot_tables.loot_table_boss_cultist-leader", + ); + let chosen = chosen.choose(); let entity = EntityInfo::at(tile_wcenter.map(|e| e as f32)) .with_scale(4.0) .with_level(rng.gen_range(75, 100)) .with_alignment(comp::Alignment::Enemy) .with_body(comp::Body::Humanoid(comp::humanoid::Body::random())) .with_name(format!( - "{}, Cult Leader", + "{}\nCult Leader", npc::get_npc_name(npc::NpcKind::Humanoid) )) .with_main_tool(assets::load_expect_cloned( @@ -515,50 +520,7 @@ impl Floor { }, }, )) - .with_loot_drop(match rng.gen_range(0, 20) { - 0 => comp::Item::expect_from_asset( - "common.items.boss_drops.lantern", - ), - 1 => comp::Item::expect_from_asset( - "common.items.boss_drops.potions", - ), - 2 => comp::Item::expect_from_asset( - "common.items.armor.belt.cultist_belt", - ), - 3 => comp::Item::expect_from_asset( - "common.items.armor.chest.cultist_chest_purple", - ), - 4 => comp::Item::expect_from_asset( - "common.items.armor.foot.cultist_boots", - ), - 5 => comp::Item::expect_from_asset( - "common.items.armor.hand.cultist_hands_purple", - ), - 6 => comp::Item::expect_from_asset( - "common.items.armor.pants.cultist_legs_purple", - ), - 7 => comp::Item::expect_from_asset( - "common.items.armor.shoulder.cultist_shoulder_purple", - ), - 8 => comp::Item::expect_from_asset( - "common.items.weapons.staff.cultist_staff", - ), - 9 => comp::Item::expect_from_asset( - "common.items.weapons.sword.greatsword_2h_fine-1", - ), - 10 => comp::Item::expect_from_asset( - "common.items.weapons.hammer.cultist_purp_2h-0", - ), - 11 => comp::Item::expect_from_asset( - "common.items.weapons.sword.cultist_purp_2h-0", - ), - 12 => comp::Item::expect_from_asset( - "common.items.armor.back.dungeon_purple-0", - ), - _ => comp::Item::expect_from_asset( - "common.items.boss_drops.exp_flask", - ), - }); + .with_loot_drop(assets::load_expect_cloned(chosen)); supplement.add_entity(entity); } diff --git a/world/src/site/settlement/building/archetype/house.rs b/world/src/site/settlement/building/archetype/house.rs index aa15f844e8..daecf45a11 100644 --- a/world/src/site/settlement/building/archetype/house.rs +++ b/world/src/site/settlement/building/archetype/house.rs @@ -535,6 +535,7 @@ impl Archetype for House { .noise .chance(Vec3::new(center_offset.x, center_offset.y, z), 0.2) { + let mut rng = rand::thread_rng(); let furniture = match self.noise.get(Vec3::new( center_offset.x, center_offset.y, @@ -545,7 +546,13 @@ impl Archetype for House { 1 => BlockKind::ChairSingle, 2 => BlockKind::ChairDouble, 3 => BlockKind::CoatRack, - 4 => BlockKind::Crate, + 4 => { + if rng.gen_range(0, 8) == 0 { + BlockKind::Chest + } else { + BlockKind::Crate + } + }, 6 => BlockKind::DrawerMedium, 7 => BlockKind::DrawerSmall, 8 => BlockKind::TableSide,