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,