diff --git a/assets/common/items/crafting_ing/raptor_feather.ron b/assets/common/items/crafting_ing/raptor_feather.ron new file mode 100644 index 0000000000..83e6dea685 --- /dev/null +++ b/assets/common/items/crafting_ing/raptor_feather.ron @@ -0,0 +1,8 @@ +ItemDef( + name: "Raptor Feather", + description: "Large colorful feather from a raptor.", + kind: Ingredient( + kind: "RaptorFeather", + ), + quality: Common, +) diff --git a/assets/common/items/glider/glider_monarch.ron b/assets/common/items/glider/glider_monarch.ron new file mode 100644 index 0000000000..275ce27d47 --- /dev/null +++ b/assets/common/items/glider/glider_monarch.ron @@ -0,0 +1,10 @@ +ItemDef( + name: "Orange Monarch", + description: "The delicate wings flutter faintly.", + kind: Glider( + ( + kind: "ButterflyMonarch", + ), + ), + quality: High, +) diff --git a/assets/common/items/glider/glider_morpho.ron b/assets/common/items/glider/glider_morpho.ron new file mode 100644 index 0000000000..c1eea2a6dc --- /dev/null +++ b/assets/common/items/glider/glider_morpho.ron @@ -0,0 +1,10 @@ +ItemDef( + name: "Blue Morpho", + description: "The delicate wings flutter faintly.", + kind: Glider( + ( + kind: "ButterflyMorpho", + ), + ), + quality: High, +) diff --git a/assets/common/items/glider/glider_sandraptor.ron b/assets/common/items/glider/glider_sandraptor.ron new file mode 100644 index 0000000000..b5ca241472 --- /dev/null +++ b/assets/common/items/glider/glider_sandraptor.ron @@ -0,0 +1,10 @@ +ItemDef( + name: "Sand Raptor Wings", + description: "Take flight with the wings of a predator.", + kind: Glider( + ( + kind: "SandRaptor", + ), + ), + quality: High, +) diff --git a/assets/common/items/glider/glider_snowraptor.ron b/assets/common/items/glider/glider_snowraptor.ron new file mode 100644 index 0000000000..b3ee61f7a6 --- /dev/null +++ b/assets/common/items/glider/glider_snowraptor.ron @@ -0,0 +1,10 @@ +ItemDef( + name: "Snow Raptor Wings", + description: "Take flight with the wings of a predator.", + kind: Glider( + ( + kind: "SnowRaptor", + ), + ), + quality: High, +) diff --git a/assets/common/items/glider/glider_woodraptor.ron b/assets/common/items/glider/glider_woodraptor.ron new file mode 100644 index 0000000000..40f4e8a651 --- /dev/null +++ b/assets/common/items/glider/glider_woodraptor.ron @@ -0,0 +1,10 @@ +ItemDef( + name: "Wood Raptor Wings", + description: "Take flight with the wings of a predator.", + kind: Glider( + ( + kind: "WoodRaptor", + ), + ), + quality: High, +) diff --git a/assets/common/loot_tables/loot_table_boss_cultist-leader.ron b/assets/common/loot_tables/loot_table_boss_cultist-leader.ron index 15ca68b3f6..9abc2fdc06 100644 --- a/assets/common/loot_tables/loot_table_boss_cultist-leader.ron +++ b/assets/common/loot_tables/loot_table_boss_cultist-leader.ron @@ -14,4 +14,4 @@ // misc (1, "common.items.boss_drops.lantern"), (0.1, "common.items.glider.glider_purp"), -] \ No newline at end of file +] diff --git a/assets/common/loot_tables/loot_table_cave_large.ron b/assets/common/loot_tables/loot_table_cave_large.ron index 77aebb1428..6f2696d083 100644 --- a/assets/common/loot_tables/loot_table_cave_large.ron +++ b/assets/common/loot_tables/loot_table_cave_large.ron @@ -1,11 +1,13 @@ [ // Misc (0.25, "common.items.armor.neck.neck_1"), - (0.2, "common.items.crafting_ing.cloth_scraps"), + (0.2, "common.items.crafting_ing.cloth_scraps"), (1.0, "common.items.crafting_ing.empty_vial"), - (0.1, "common.items.glider.glider_blue"), + (0.1, "common.items.glider.glider_blue"), + (0.1, "common.items.glider.glider_morpho"), + (0.1, "common.items.glider.glider_monarch"), (0.05, "common.items.armor.ring.ring_gold_0"), - // swords + // swords (0.07, "common.items.weapons.sword.greatsword_2h_fine-1"), (0.07, "common.items.weapons.sword.greatsword_2h_fine-2"), (0.08, "common.items.weapons.sword.long_2h_orn-0"), @@ -55,6 +57,6 @@ (0.05, "common.items.weapons.hammer.steel_hammer-5"), // bows (0.1, "common.items.weapons.bow.nature_ore_longbow-0"), - -] \ No newline at end of file + +] diff --git a/assets/common/loot_tables/loot_table_raptor.ron b/assets/common/loot_tables/loot_table_raptor.ron new file mode 100644 index 0000000000..2561842b99 --- /dev/null +++ b/assets/common/loot_tables/loot_table_raptor.ron @@ -0,0 +1,4 @@ +[ + (2, "common.items.crafting_ing.raptor_feather"), + (1, "common.items.crafting_ing.leather_scraps"), +] diff --git a/assets/common/recipe_book.ron b/assets/common/recipe_book.ron index 2c0fedba2e..5fb252b86b 100644 --- a/assets/common/recipe_book.ron +++ b/assets/common/recipe_book.ron @@ -22,7 +22,10 @@ "mushroom_stick": (("common.items.food.mushroom_stick", 1),[("common.items.crafting_ing.twigs", 2), ("common.items.food.mushroom", 3)]), "sunflower_icetea": (("common.items.food.sunflower_icetea", 4),[("common.items.crafting_ing.empty_vial", 1), ("common.items.crafting_ing.icy_fang", 1),("common.items.flowers.sunflower", 4), ("common.items.crafting_ing.honey", 1)]), // Gliders - "Leaves Glider": (("common.items.glider.glider_leaves", 1),[("common.items.crafting_ing.twigs", 5), ("common.items.crafting_ing.leather_scraps", 5), ("common.items.crafting_ing.cloth_scraps", 5), ("common.items.crafting_ing.shiny_gem", 1), ("common.items.crafting_tools.craftsman_hammer", 0),("common.items.crafting_tools.sewing_set", 0)]), + "Leaves Glider": (("common.items.glider.glider_leaves", 1),[("common.items.crafting_ing.twigs", 5), ("common.items.crafting_ing.leather_scraps", 5), ("common.items.crafting_ing.cloth_scraps", 5), ("common.items.crafting_ing.shiny_gem", 1), ("common.items.crafting_tools.craftsman_hammer", 0),("common.items.crafting_tools.sewing_set", 0)]), + "Sand Raptor Wings": (("common.items.glider.glider_sandraptor", 1),[("common.items.crafting_ing.raptor_feather", 6), ("common.items.crafting_ing.twigs", 5), ("common.items.crafting_ing.leather_scraps", 5), ("common.items.crafting_ing.cloth_scraps", 5), ("common.items.crafting_ing.shiny_gem", 1), ("common.items.crafting_tools.craftsman_hammer", 0),("common.items.crafting_tools.sewing_set", 0)]), + "Snow Raptor Wings": (("common.items.glider.glider_snowraptor", 1),[("common.items.crafting_ing.raptor_feather", 6), ("common.items.crafting_ing.twigs", 5), ("common.items.crafting_ing.leather_scraps", 5), ("common.items.crafting_ing.cloth_scraps", 5), ("common.items.crafting_ing.icy_fang", 1), ("common.items.crafting_ing.shiny_gem", 1), ("common.items.crafting_tools.craftsman_hammer", 0),("common.items.crafting_tools.sewing_set", 0)]), + "Wood Raptor Wings": (("common.items.glider.glider_woodraptor", 1),[("common.items.crafting_ing.raptor_feather", 6), ("common.items.crafting_ing.twigs", 15), ("common.items.crafting_ing.leather_scraps", 5), ("common.items.crafting_ing.cloth_scraps", 5), ("common.items.crafting_ing.shiny_gem", 1), ("common.items.crafting_tools.craftsman_hammer", 0),("common.items.crafting_tools.sewing_set", 0)]), // Weapons "velorite_sceptre": (("common.items.weapons.sceptre.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)]), // Enhanced starting weapons diff --git a/assets/voxygen/element/icons/item_raptor_feather.png b/assets/voxygen/element/icons/item_raptor_feather.png new file mode 100644 index 0000000000..e9bda5bd96 --- /dev/null +++ b/assets/voxygen/element/icons/item_raptor_feather.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12ca29078bb8388e9cdcc09edd726aae8c67df4c9622ef1aa683dfe1e13b37f1 +size 691 diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 53ecff32b9..7249245ea2 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -1434,6 +1434,9 @@ Ingredient("IcyShard"): Png( "element.icons.item_ice_shard", ), + Ingredient("RaptorFeather"): Png( + "element.icons.item_raptor_feather", + ), Ingredient("Twigs"): VoxTrans( "voxel.sprite.twigs.twigs-0", (0.0, 0.0, 0.0), (-20.0, 10.0, 20.0), 0.9, @@ -1466,6 +1469,26 @@ "voxel.glider.glider_blue", (6.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 1.1, ), + Glider("ButterflyMorpho"): VoxTrans( + "voxel.glider.glider_butterfly1", + (6.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 1.1, + ), + Glider("ButterflyMonarch"): VoxTrans( + "voxel.glider.glider_butterfly2", + (6.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 1.1, + ), + Glider("SandRaptor"): VoxTrans( + "voxel.glider.glider_sandraptor", + (6.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 1.1, + ), + Glider("SnowRaptor"): VoxTrans( + "voxel.glider.glider_snowraptor", + (6.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 1.1, + ), + Glider("WoodRaptor"): VoxTrans( + "voxel.glider.glider_woodraptor", + (6.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 1.1, + ), Glider("Purple0"): VoxTrans( "voxel.glider.glider_cultists", (5.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 1.1, diff --git a/assets/voxygen/voxel/glider/glider_butterfly1.vox b/assets/voxygen/voxel/glider/glider_butterfly1.vox new file mode 100644 index 0000000000..780bf8d98e --- /dev/null +++ b/assets/voxygen/voxel/glider/glider_butterfly1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a0f12a94565b0fc207a64963caa25638f6df007ffe14989809c247a259265e5 +size 9880 diff --git a/assets/voxygen/voxel/glider/glider_butterfly2.vox b/assets/voxygen/voxel/glider/glider_butterfly2.vox new file mode 100644 index 0000000000..373cf350bc --- /dev/null +++ b/assets/voxygen/voxel/glider/glider_butterfly2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e0a48a5fc4f7f8feca4fad16c60f5fe7de95c6137f3b570a7bad77b4e353122 +size 9880 diff --git a/assets/voxygen/voxel/glider/glider_sandraptor.vox b/assets/voxygen/voxel/glider/glider_sandraptor.vox new file mode 100644 index 0000000000..4e1628702d --- /dev/null +++ b/assets/voxygen/voxel/glider/glider_sandraptor.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6af3a6f9f4b1b548e3dcd4b3f2418c7b8786132b33afee67d14cf4def9ac974e +size 10064 diff --git a/assets/voxygen/voxel/glider/glider_snowraptor.vox b/assets/voxygen/voxel/glider/glider_snowraptor.vox new file mode 100644 index 0000000000..dcdd001a5b --- /dev/null +++ b/assets/voxygen/voxel/glider/glider_snowraptor.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38ac55fd759ac6453a89ed5fac71998fa062333030a25ce657f915687ad8b5a2 +size 8832 diff --git a/assets/voxygen/voxel/glider/glider_woodraptor.vox b/assets/voxygen/voxel/glider/glider_woodraptor.vox new file mode 100644 index 0000000000..13fc8bc45b --- /dev/null +++ b/assets/voxygen/voxel/glider/glider_woodraptor.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8467fd6f32ae88b206145ee0ba3c668b433aa345e21d5d196ad9c75dff26e4fb +size 8912 diff --git a/assets/voxygen/voxel/humanoid_glider_manifest.ron b/assets/voxygen/voxel/humanoid_glider_manifest.ron index 70bd865e7e..f64d093d32 100644 --- a/assets/voxygen/voxel/humanoid_glider_manifest.ron +++ b/assets/voxygen/voxel/humanoid_glider_manifest.ron @@ -11,6 +11,26 @@ "Blue0": ( vox_spec: ("glider.glider_blue", (-26.0, -26.0, -5.0)), color: None + ), + "ButterflyMorpho": ( + vox_spec: ("glider.glider_butterfly1", (-26.0, -25.0, -5.0)), + color: None + ), + "ButterflyMonarch": ( + vox_spec: ("glider.glider_butterfly2", (-26.0, -25.0, -5.0)), + color: None + ), + "SandRaptor": ( + vox_spec: ("glider.glider_sandraptor", (-26.0, -25.0, -5.0)), + color: None + ), + "SnowRaptor": ( + vox_spec: ("glider.glider_snowraptor", (-26.0, -25.0, -5.0)), + color: None + ), + "WoodRaptor": ( + vox_spec: ("glider.glider_woodraptor", (-26.0, -25.0, -5.0)), + color: None ), "Purple0": ( vox_spec: ("glider.glider_cultists", (-26.0, -16.0, -5.0)), diff --git a/server/src/events/entity_manipulation.rs b/server/src/events/entity_manipulation.rs index c9c2bf81f9..1650d6c6fd 100644 --- a/server/src/events/entity_manipulation.rs +++ b/server/src/events/entity_manipulation.rs @@ -1,6 +1,6 @@ use crate::{ client::Client, - comp::{biped_large, quadruped_medium, quadruped_small, PhysicsState}, + comp::{biped_large, quadruped_medium, quadruped_small, theropod, PhysicsState}, rtsim::RtSim, Server, SpawnPoint, StateExt, }; @@ -338,8 +338,14 @@ pub fn handle_destroy(server: &mut Server, entity: EcsEntity, cause: HealthSourc 7 => "common.loot_tables.loot_table_weapon_rare", _ => "common.loot_tables.loot_table", }, - Some(common::comp::Body::Theropod(_)) => { - "common.loot_tables.loot_table_animal_parts" + Some(common::comp::Body::Theropod(theropod)) => match theropod.species { + theropod::Species::Sandraptor + | theropod::Species::Snowraptor + | theropod::Species::Woodraptor => match rng.gen_range(0, 3) { + 0 => "common.loot_tables.loot_table_raptor", + _ => "common.loot_tables.loot_table_animal_parts", + }, + _ => "common.loot_tables.loot_table_animal_parts", }, Some(common::comp::Body::Dragon(_)) => "common.loot_tables.loot_table_weapon_rare", Some(common::comp::Body::QuadrupedLow(_)) => match rng.gen_range(0, 3) { diff --git a/voxygen/src/hud/crafting.rs b/voxygen/src/hud/crafting.rs index 4bdffff9a0..480d335361 100644 --- a/voxygen/src/hud/crafting.rs +++ b/voxygen/src/hud/crafting.rs @@ -183,6 +183,7 @@ impl<'a> Widget for Crafting<'a> { .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) + .scroll_kids_vertically() .set(ids.align_ing, ui); let client = &self.client; // First available recipes, then unavailable ones @@ -231,6 +232,7 @@ impl<'a> Widget for Crafting<'a> { .label_font_id(self.fonts.cyri.conrod_id) .image_color(can_perform.then_some(TEXT_COLOR).unwrap_or(TEXT_GRAY_COLOR)) .mid_bottom_with_margin_on(ids.align_ing, -31.0) + .parent(ids.window_frame) .set(ids.btn_craft, ui) .was_clicked() {