diff --git a/.cargo/config b/.cargo/config index ae79b60dee..6a9b75f52a 100644 --- a/.cargo/config +++ b/.cargo/config @@ -3,3 +3,5 @@ rustflags = [ "-C", "link-arg=-fuse-ld=gold", ] +[alias] +generate = "run --package tools --" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 57bb68842f..8ca8fe2e6b 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,8 @@ run.sh maps screenshots todo.txt +armorstats.csv +weaponstats.csv # Game data *.sqlite diff --git a/CHANGELOG.md b/CHANGELOG.md index 48b76f69e8..e7ae3855bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -46,6 +46,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Initial crafting system implementation - Protection stat to armor that reduces incoming damage - Loading-Screen tips +- Feeding animation for some animals +- Power stat to weapons which affects weapon damage ### Changed @@ -64,7 +66,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Replaced `log` with `tracing` in all crates - Switch to a new network backend that will allow several improvements in the future - Connection screen fails after 4 minutes if it can't connect to the server instead of 80 minutes -- Rebuilt quadruped_medium animation and assets +- Rebuilt quadruped_medium/quadruped_small animation and assets - Disabled destruction of most blocks by explosions - Disable damage to pets - Made pets healable diff --git a/Cargo.lock b/Cargo.lock index 36880936d0..fe66c04fe0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -120,7 +120,7 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc755b23c19211c270ef000fa7ce871377825e6cc7d1bfd0311076f22c5e6ba1" dependencies = [ - "proc-macro-error", + "proc-macro-error 0.4.12", "proc-macro2 1.0.18", "quote 1.0.7", "syn 1.0.33", @@ -222,7 +222,7 @@ dependencies = [ [[package]] name = "auth-common" version = "0.1.0" -source = "git+https://gitlab.com/veloren/auth.git?rev=57784d2135a2c81ff0266f52a528da092ddf89e6#57784d2135a2c81ff0266f52a528da092ddf89e6" +source = "git+https://gitlab.com/veloren/auth.git?rev=b943c85e4a38f5ec60cd18c34c73097640162bfe#b943c85e4a38f5ec60cd18c34c73097640162bfe" dependencies = [ "rand 0.7.3", "serde", @@ -232,7 +232,7 @@ dependencies = [ [[package]] name = "authc" version = "1.0.0" -source = "git+https://gitlab.com/veloren/auth.git?rev=57784d2135a2c81ff0266f52a528da092ddf89e6#57784d2135a2c81ff0266f52a528da092ddf89e6" +source = "git+https://gitlab.com/veloren/auth.git?rev=b943c85e4a38f5ec60cd18c34c73097640162bfe#b943c85e4a38f5ec60cd18c34c73097640162bfe" dependencies = [ "auth-common", "fxhash", @@ -527,9 +527,13 @@ version = "2.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129" dependencies = [ + "ansi_term", + "atty", "bitflags", + "strsim 0.8.0", "textwrap", "unicode-width", + "vec_map", ] [[package]] @@ -1013,7 +1017,7 @@ dependencies = [ "ident_case", "proc-macro2 1.0.18", "quote 1.0.7", - "strsim", + "strsim 0.9.3", "syn 1.0.33", ] @@ -1899,6 +1903,15 @@ dependencies = [ "serde", ] +[[package]] +name = "heck" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "hermit-abi" version = "0.1.13" @@ -3137,7 +3150,20 @@ version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7" dependencies = [ - "proc-macro-error-attr", + "proc-macro-error-attr 0.4.12", + "proc-macro2 1.0.18", + "quote 1.0.7", + "syn 1.0.33", + "version_check 0.9.2", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880" +dependencies = [ + "proc-macro-error-attr 1.0.3", "proc-macro2 1.0.18", "quote 1.0.7", "syn 1.0.33", @@ -3157,6 +3183,19 @@ dependencies = [ "version_check 0.9.2", ] +[[package]] +name = "proc-macro-error-attr" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50" +dependencies = [ + "proc-macro2 1.0.18", + "quote 1.0.7", + "syn 1.0.33", + "syn-mid", + "version_check 0.9.2", +] + [[package]] name = "proc-macro-hack" version = "0.5.16" @@ -3982,12 +4021,42 @@ dependencies = [ "bytes", ] +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + [[package]] name = "strsim" version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" +[[package]] +name = "structopt" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c" +dependencies = [ + "clap", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118" +dependencies = [ + "heck", + "proc-macro-error 1.0.3", + "proc-macro2 1.0.18", + "quote 1.0.7", + "syn 1.0.33", +] + [[package]] name = "sum_type" version = "0.2.0" @@ -4293,6 +4362,15 @@ dependencies = [ "serde", ] +[[package]] +name = "tools" +version = "0.1.0" +dependencies = [ + "csv", + "structopt", + "veloren-common", +] + [[package]] name = "tracing" version = "0.1.15" @@ -4434,6 +4512,12 @@ dependencies = [ "smallvec 1.4.0", ] +[[package]] +name = "unicode-segmentation" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" + [[package]] name = "unicode-width" version = "0.1.7" diff --git a/Cargo.toml b/Cargo.toml index b87d9807fd..e73d2cd0a8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,8 @@ members = [ "voxygen", "world", "network", - "voxygen/src/anim" + "voxygen/src/anim", + "tools" ] # default profile for devs, fast to compile, okay enough to run, no debug information diff --git a/assets/common/items/boss_drops/potions.ron b/assets/common/items/boss_drops/potions.ron index 011a0c8d42..01650058e7 100644 --- a/assets/common/items/boss_drops/potions.ron +++ b/assets/common/items/boss_drops/potions.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: Potion, effect: Health(( - amount: 100, + amount: 1000, cause: Item, )), ), diff --git a/assets/common/items/consumable/potion_big.ron b/assets/common/items/consumable/potion_big.ron index 60ddf64298..7e903bb48a 100644 --- a/assets/common/items/consumable/potion_big.ron +++ b/assets/common/items/consumable/potion_big.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: PotionLarge, effect: Health(( - amount: 100, + amount: 1000, cause: Item, )), ), diff --git a/assets/common/items/consumable/potion_med.ron b/assets/common/items/consumable/potion_med.ron index ece9348e1b..3ec58e046d 100644 --- a/assets/common/items/consumable/potion_med.ron +++ b/assets/common/items/consumable/potion_med.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: PotionMed, effect: Health(( - amount: 70, + amount: 700, cause: Item, )), ), diff --git a/assets/common/items/consumable/potion_minor.ron b/assets/common/items/consumable/potion_minor.ron index 431af1fbe7..5dca958483 100644 --- a/assets/common/items/consumable/potion_minor.ron +++ b/assets/common/items/consumable/potion_minor.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: PotionMinor, effect: Health(( - amount: 50, + amount: 500, cause: Item, )), ), diff --git a/assets/common/items/debug/boost.ron b/assets/common/items/debug/boost.ron index b9ae0408fb..523a0c0704 100644 --- a/assets/common/items/debug/boost.ron +++ b/assets/common/items/debug/boost.ron @@ -3,8 +3,11 @@ Item( description: "You can hear him giggle whenever\nyou hit the ground a bit too hard...", kind: Tool( ( - kind: Debug(Boost), - equip_time_millis: 0, + kind: Debug("Boost"), + stats: ( + equip_time_millis: 0, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/debug/possess.ron b/assets/common/items/debug/possess.ron index b9ae0408fb..523a0c0704 100644 --- a/assets/common/items/debug/possess.ron +++ b/assets/common/items/debug/possess.ron @@ -3,8 +3,11 @@ Item( description: "You can hear him giggle whenever\nyou hit the ground a bit too hard...", kind: Tool( ( - kind: Debug(Boost), - equip_time_millis: 0, + kind: Debug("Boost"), + stats: ( + equip_time_millis: 0, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/food/apple.ron b/assets/common/items/food/apple.ron index abec0c62e3..48b7d56a5a 100644 --- a/assets/common/items/food/apple.ron +++ b/assets/common/items/food/apple.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: Apple, effect: Health(( - amount: 20, + amount: 200, cause: Item, )), ), diff --git a/assets/common/items/food/apple_mushroom_curry.ron b/assets/common/items/food/apple_mushroom_curry.ron index d8146e4c82..03aed62d4b 100644 --- a/assets/common/items/food/apple_mushroom_curry.ron +++ b/assets/common/items/food/apple_mushroom_curry.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: AppleShroomCurry, effect: Health(( - amount: 120, + amount: 1200, cause: Item, )), ), diff --git a/assets/common/items/food/apple_stick.ron b/assets/common/items/food/apple_stick.ron index 78bd97ce66..5d7b183e07 100644 --- a/assets/common/items/food/apple_stick.ron +++ b/assets/common/items/food/apple_stick.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: AppleStick, effect: Health(( - amount: 60, + amount: 600, cause: Item, )), ), diff --git a/assets/common/items/food/cheese.ron b/assets/common/items/food/cheese.ron index 8c4f618b96..037519d22b 100644 --- a/assets/common/items/food/cheese.ron +++ b/assets/common/items/food/cheese.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: Cheese, effect: Health(( - amount: 15, + amount: 150, cause: Item, )), ), diff --git a/assets/common/items/food/coconut.ron b/assets/common/items/food/coconut.ron index b38608652d..103d4c9b38 100644 --- a/assets/common/items/food/coconut.ron +++ b/assets/common/items/food/coconut.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: Coconut, effect: Health(( - amount: 30, + amount: 300, cause: Item, )), ), diff --git a/assets/common/items/food/mushroom.ron b/assets/common/items/food/mushroom.ron index d341a5f773..e612b1d2c7 100644 --- a/assets/common/items/food/mushroom.ron +++ b/assets/common/items/food/mushroom.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: Mushroom, effect: Health(( - amount: 10, + amount: 100, cause: Item, )), ), diff --git a/assets/common/items/food/mushroom_stick.ron b/assets/common/items/food/mushroom_stick.ron index d44bbbec48..5f0577d855 100644 --- a/assets/common/items/food/mushroom_stick.ron +++ b/assets/common/items/food/mushroom_stick.ron @@ -4,7 +4,7 @@ Item( kind: Consumable( kind: MushroomStick, effect: Health(( - amount: 50, + amount: 500, cause: Item, )), ), diff --git a/assets/common/items/weapons/axe/bloodsteel_axe-0.ron b/assets/common/items/weapons/axe/bloodsteel_axe-0.ron new file mode 100644 index 0000000000..edcfa314ef --- /dev/null +++ b/assets/common/items/weapons/axe/bloodsteel_axe-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Bloodsteel Axe", + description: "An axe forged from steel that thirsts for blood.", + kind: Tool( + ( + kind: Axe("BloodsteelAxe0"), + stats: ( + equip_time_millis: 400, + power: 1.60, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/bloodsteel_axe-1.ron b/assets/common/items/weapons/axe/bloodsteel_axe-1.ron new file mode 100644 index 0000000000..245078f4f2 --- /dev/null +++ b/assets/common/items/weapons/axe/bloodsteel_axe-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Executioner's Axe", + description: "An axe forged from steel that thirsts for blood.", + kind: Tool( + ( + kind: Axe("BloodsteelAxe1"), + stats: ( + equip_time_millis: 400, + power: 1.60, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/bloodsteel_axe-2.ron b/assets/common/items/weapons/axe/bloodsteel_axe-2.ron new file mode 100644 index 0000000000..99ffaf481f --- /dev/null +++ b/assets/common/items/weapons/axe/bloodsteel_axe-2.ron @@ -0,0 +1,13 @@ +Item( + name: "Tribal Axe", + description: "An axe forged from steel that thirsts for blood.", + kind: Tool( + ( + kind: Axe("BloodsteelAxe2"), + stats: ( + equip_time_millis: 400, + power: 1.60, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/bronze_axe-0.ron b/assets/common/items/weapons/axe/bronze_axe-0.ron new file mode 100644 index 0000000000..e0c22c91fc --- /dev/null +++ b/assets/common/items/weapons/axe/bronze_axe-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Bronze Axe", + description: "Forged from bronze.", + kind: Tool( + ( + kind: Axe("BronzeAxe0"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/bronze_axe-1.ron b/assets/common/items/weapons/axe/bronze_axe-1.ron new file mode 100644 index 0000000000..618edfd854 --- /dev/null +++ b/assets/common/items/weapons/axe/bronze_axe-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Discus Axe", + description: "Forged from bronze.", + kind: Tool( + ( + kind: Axe("BronzeAxe1"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/cobalt_axe-0.ron b/assets/common/items/weapons/axe/cobalt_axe-0.ron new file mode 100644 index 0000000000..33b9e5238e --- /dev/null +++ b/assets/common/items/weapons/axe/cobalt_axe-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Cobalt Axe", + description: "Forged from cobalt.", + kind: Tool( + ( + kind: Axe("CobaltAxe0"), + stats: ( + equip_time_millis: 400, + power: 1.80, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/iron_axe-0.ron b/assets/common/items/weapons/axe/iron_axe-0.ron new file mode 100644 index 0000000000..79a9d08f13 --- /dev/null +++ b/assets/common/items/weapons/axe/iron_axe-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Iron Greataxe", + description: "Forged from iron.", + kind: Tool( + ( + kind: Axe("IronAxe0"), + stats: ( + equip_time_millis: 400, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/iron_axe-1.ron b/assets/common/items/weapons/axe/iron_axe-1.ron new file mode 100644 index 0000000000..282c0d5239 --- /dev/null +++ b/assets/common/items/weapons/axe/iron_axe-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Ceremonial Axe", + description: "Forged from iron.", + kind: Tool( + ( + kind: Axe("IronAxe1"), + stats: ( + equip_time_millis: 400, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/iron_axe-2.ron b/assets/common/items/weapons/axe/iron_axe-2.ron new file mode 100644 index 0000000000..edd17eb97f --- /dev/null +++ b/assets/common/items/weapons/axe/iron_axe-2.ron @@ -0,0 +1,13 @@ +Item( + name: "Cyclone Axe", + description: "Forged from iron.", + kind: Tool( + ( + kind: Axe("IronAxe2"), + stats: ( + equip_time_millis: 400, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/iron_axe-3.ron b/assets/common/items/weapons/axe/iron_axe-3.ron new file mode 100644 index 0000000000..cb897d1b8c --- /dev/null +++ b/assets/common/items/weapons/axe/iron_axe-3.ron @@ -0,0 +1,13 @@ +Item( + name: "Iron Battleaxe", + description: "Forged from iron.", + kind: Tool( + ( + kind: Axe("IronAxe3"), + stats: ( + equip_time_millis: 400, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/iron_axe-4.ron b/assets/common/items/weapons/axe/iron_axe-4.ron new file mode 100644 index 0000000000..9958211250 --- /dev/null +++ b/assets/common/items/weapons/axe/iron_axe-4.ron @@ -0,0 +1,13 @@ +Item( + name: "Butcher's Axe", + description: "Forged from iron.", + kind: Tool( + ( + kind: Axe("IronAxe4"), + stats: ( + equip_time_millis: 400, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/iron_axe-5.ron b/assets/common/items/weapons/axe/iron_axe-5.ron new file mode 100644 index 0000000000..807d3e8e3b --- /dev/null +++ b/assets/common/items/weapons/axe/iron_axe-5.ron @@ -0,0 +1,13 @@ +Item( + name: "Barbarian's Axe", + description: "Forged from iron.", + kind: Tool( + ( + kind: Axe("IronAxe5"), + stats: ( + equip_time_millis: 400, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/iron_axe-6.ron b/assets/common/items/weapons/axe/iron_axe-6.ron new file mode 100644 index 0000000000..eb4b47ad9f --- /dev/null +++ b/assets/common/items/weapons/axe/iron_axe-6.ron @@ -0,0 +1,13 @@ +Item( + name: "Iron Axe", + description: "Forged from iron.", + kind: Tool( + ( + kind: Axe("IronAxe6"), + stats: ( + equip_time_millis: 400, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/iron_axe-7.ron b/assets/common/items/weapons/axe/iron_axe-7.ron new file mode 100644 index 0000000000..a55337f011 --- /dev/null +++ b/assets/common/items/weapons/axe/iron_axe-7.ron @@ -0,0 +1,13 @@ +Item( + name: "Iron Labrys", + description: "Forged from iron.", + kind: Tool( + ( + kind: Axe("IronAxe7"), + stats: ( + equip_time_millis: 400, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/iron_axe-8.ron b/assets/common/items/weapons/axe/iron_axe-8.ron new file mode 100644 index 0000000000..865cd472b6 --- /dev/null +++ b/assets/common/items/weapons/axe/iron_axe-8.ron @@ -0,0 +1,13 @@ +Item( + name: "Fanged Axe", + description: "Forged from iron.", + kind: Tool( + ( + kind: Axe("IronAxe8"), + stats: ( + equip_time_millis: 400, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/iron_axe-9.ron b/assets/common/items/weapons/axe/iron_axe-9.ron new file mode 100644 index 0000000000..fd5bfbe693 --- /dev/null +++ b/assets/common/items/weapons/axe/iron_axe-9.ron @@ -0,0 +1,13 @@ +Item( + name: "Wolfen Axe", + description: "Forged from iron.", + kind: Tool( + ( + kind: Axe("IronAxe9"), + stats: ( + equip_time_millis: 400, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/malachite_axe-0.ron b/assets/common/items/weapons/axe/malachite_axe-0.ron new file mode 100644 index 0000000000..20c8ac8dc1 --- /dev/null +++ b/assets/common/items/weapons/axe/malachite_axe-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Malachite Axe", + description: "An axe infused with malachite.", + kind: Tool( + ( + kind: Axe("MalachiteAxe0"), + stats: ( + equip_time_millis: 400, + power: 2.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/orc_axe-0.ron b/assets/common/items/weapons/axe/orc_axe-0.ron new file mode 100644 index 0000000000..0cfde653f3 --- /dev/null +++ b/assets/common/items/weapons/axe/orc_axe-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Beast Cleaver", + description: "Created by orcs to cleave beasts in 2.", + kind: Tool( + ( + kind: Axe("OrcAxe0"), + stats: ( + equip_time_millis: 400, + power: 0.60, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/starter_axe.ron b/assets/common/items/weapons/axe/starter_axe.ron index 7f8fc50946..ccdd0c527c 100644 --- a/assets/common/items/weapons/axe/starter_axe.ron +++ b/assets/common/items/weapons/axe/starter_axe.ron @@ -1,10 +1,13 @@ Item( name: "Notched Axe", - description: "Two-Hand Axe\n\nPower 3-14\n\nEvery dent tells the story of a chopped tree.\n\n", + description: "Every dent tells the story of a chopped tree.", kind: Tool( ( - kind: Axe(BasicAxe), - equip_time_millis: 400, + kind: Axe("BasicAxe"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), ) ), ) diff --git a/assets/common/items/weapons/axe/steel_axe-0.ron b/assets/common/items/weapons/axe/steel_axe-0.ron new file mode 100644 index 0000000000..9e29b23f3d --- /dev/null +++ b/assets/common/items/weapons/axe/steel_axe-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Steel Battleaxe", + description: "Forged from steel.", + kind: Tool( + ( + kind: Axe("SteelAxe0"), + stats: ( + equip_time_millis: 400, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/steel_axe-1.ron b/assets/common/items/weapons/axe/steel_axe-1.ron new file mode 100644 index 0000000000..49885d3695 --- /dev/null +++ b/assets/common/items/weapons/axe/steel_axe-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Steel Labrys", + description: "Forged from steel.", + kind: Tool( + ( + kind: Axe("SteelAxe1"), + stats: ( + equip_time_millis: 400, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/steel_axe-2.ron b/assets/common/items/weapons/axe/steel_axe-2.ron new file mode 100644 index 0000000000..8fbb652983 --- /dev/null +++ b/assets/common/items/weapons/axe/steel_axe-2.ron @@ -0,0 +1,13 @@ +Item( + name: "Steel Axe", + description: "Forged from steel.", + kind: Tool( + ( + kind: Axe("SteelAxe2"), + stats: ( + equip_time_millis: 400, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/steel_axe-3.ron b/assets/common/items/weapons/axe/steel_axe-3.ron new file mode 100644 index 0000000000..dd9d993321 --- /dev/null +++ b/assets/common/items/weapons/axe/steel_axe-3.ron @@ -0,0 +1,13 @@ +Item( + name: "Crescent Axe", + description: "Forged from steel.", + kind: Tool( + ( + kind: Axe("SteelAxe3"), + stats: ( + equip_time_millis: 400, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/steel_axe-4.ron b/assets/common/items/weapons/axe/steel_axe-4.ron new file mode 100644 index 0000000000..80e69a601e --- /dev/null +++ b/assets/common/items/weapons/axe/steel_axe-4.ron @@ -0,0 +1,13 @@ +Item( + name: "Moon Axe", + description: "Forged from steel.", + kind: Tool( + ( + kind: Axe("SteelAxe4"), + stats: ( + equip_time_millis: 400, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/steel_axe-5.ron b/assets/common/items/weapons/axe/steel_axe-5.ron new file mode 100644 index 0000000000..516a7c9425 --- /dev/null +++ b/assets/common/items/weapons/axe/steel_axe-5.ron @@ -0,0 +1,13 @@ +Item( + name: "Owl Axe", + description: "Forged from steel.", + kind: Tool( + ( + kind: Axe("SteelAxe5"), + stats: ( + equip_time_millis: 400, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/steel_axe-6.ron b/assets/common/items/weapons/axe/steel_axe-6.ron new file mode 100644 index 0000000000..f7507bb93b --- /dev/null +++ b/assets/common/items/weapons/axe/steel_axe-6.ron @@ -0,0 +1,13 @@ +Item( + name: "Spade Axe", + description: "Forged from steel.", + kind: Tool( + ( + kind: Axe("SteelAxe6"), + stats: ( + equip_time_millis: 400, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/worn_iron_axe-0.ron b/assets/common/items/weapons/axe/worn_iron_axe-0.ron new file mode 100644 index 0000000000..6d24976a90 --- /dev/null +++ b/assets/common/items/weapons/axe/worn_iron_axe-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Worn Dwarven Axe", + description: "Hopefully it's previous owner won't miss it.", + kind: Tool( + ( + kind: Axe("WornIronAxe0"), + stats: ( + equip_time_millis: 400, + power: 0.80, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/worn_iron_axe-1.ron b/assets/common/items/weapons/axe/worn_iron_axe-1.ron new file mode 100644 index 0000000000..1a167843d7 --- /dev/null +++ b/assets/common/items/weapons/axe/worn_iron_axe-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Worn Elven Axe", + description: "Hopefully it's previous owner won't miss it.", + kind: Tool( + ( + kind: Axe("WornIronAxe1"), + stats: ( + equip_time_millis: 400, + power: 0.80, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/worn_iron_axe-2.ron b/assets/common/items/weapons/axe/worn_iron_axe-2.ron new file mode 100644 index 0000000000..0e65b3e90d --- /dev/null +++ b/assets/common/items/weapons/axe/worn_iron_axe-2.ron @@ -0,0 +1,13 @@ +Item( + name: "Worn Human Axe", + description: "Hopefully it's previous owner won't miss it.", + kind: Tool( + ( + kind: Axe("WornIronAxe2"), + stats: ( + equip_time_millis: 400, + power: 0.80, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/worn_iron_axe-3.ron b/assets/common/items/weapons/axe/worn_iron_axe-3.ron new file mode 100644 index 0000000000..bac71c7db0 --- /dev/null +++ b/assets/common/items/weapons/axe/worn_iron_axe-3.ron @@ -0,0 +1,13 @@ +Item( + name: "Worn Orcish Axe", + description: "Hopefully it's previous owner won't miss it.", + kind: Tool( + ( + kind: Axe("WornIronAxe3"), + stats: ( + equip_time_millis: 400, + power: 0.80, + ), + ) + ), +) diff --git a/assets/common/items/weapons/axe/worn_iron_axe-4.ron b/assets/common/items/weapons/axe/worn_iron_axe-4.ron new file mode 100644 index 0000000000..011d63e566 --- /dev/null +++ b/assets/common/items/weapons/axe/worn_iron_axe-4.ron @@ -0,0 +1,13 @@ +Item( + name: "Beetle Axe", + description: "The blade is in the shape of a beetle.", + kind: Tool( + ( + kind: Axe("WornIronAxe4"), + stats: ( + equip_time_millis: 400, + power: 0.80, + ), + ) + ), +) diff --git a/assets/common/items/weapons/bow/horn_longbow-0.ron b/assets/common/items/weapons/bow/horn_longbow-0.ron new file mode 100644 index 0000000000..3a56a0ffa2 --- /dev/null +++ b/assets/common/items/weapons/bow/horn_longbow-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Horn Bow", + description: "You don't recognize the creature these horns belong to.", + kind: Tool( + ( + kind: Bow("HornLongbow0"), + stats: ( + equip_time_millis: 400, + power: 1.50, + ), + ) + ), +) diff --git a/assets/common/items/weapons/bow/iron_longbow-0.ron b/assets/common/items/weapons/bow/iron_longbow-0.ron new file mode 100644 index 0000000000..61392b82a1 --- /dev/null +++ b/assets/common/items/weapons/bow/iron_longbow-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Soldier's Bow", + description: "Has an insignia on it.", + kind: Tool( + ( + kind: Bow("IronLongbow0"), + stats: ( + equip_time_millis: 400, + power: 1.75, + ), + ) + ), +) diff --git a/assets/common/items/weapons/bow/leafy_longbow-0.ron b/assets/common/items/weapons/bow/leafy_longbow-0.ron new file mode 100644 index 0000000000..2a27bd55a9 --- /dev/null +++ b/assets/common/items/weapons/bow/leafy_longbow-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Elven Longbow", + description: "There's a new leaf starting to grow.", + kind: Tool( + ( + kind: Bow("LeafyLongbow0"), + stats: ( + equip_time_millis: 400, + power: 1.25, + ), + ) + ), +) diff --git a/assets/common/items/weapons/bow/leafy_shortbow-0.ron b/assets/common/items/weapons/bow/leafy_shortbow-0.ron new file mode 100644 index 0000000000..29f0810d58 --- /dev/null +++ b/assets/common/items/weapons/bow/leafy_shortbow-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Elven Shortbow", + description: "The wood still seems alive.", + kind: Tool( + ( + kind: Bow("LeafyShortbow0"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/bow/rare_longbow.ron b/assets/common/items/weapons/bow/rare_longbow.ron new file mode 100644 index 0000000000..0eaf6d4d32 --- /dev/null +++ b/assets/common/items/weapons/bow/rare_longbow.ron @@ -0,0 +1,13 @@ +Item( + name: "Enchanted Longbow", + description: "You can sense power resting in the bow.", + kind: Tool( + ( + kind: Bow("RareLongbow"), + stats: ( + equip_time_millis: 400, + power: 2.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/bow/starter_bow.ron b/assets/common/items/weapons/bow/starter_bow.ron index 9be6b10661..749283b4dc 100644 --- a/assets/common/items/weapons/bow/starter_bow.ron +++ b/assets/common/items/weapons/bow/starter_bow.ron @@ -1,10 +1,13 @@ Item( name: "Uneven Bow", - description: "Bow\n\nPower: 5\n\nSomeone carved his initials into it...\n\n", + description: "Someone carved his initials into it.", kind: Tool( ( - kind: Bow(ShortBow0), - equip_time_millis: 400, + kind: Bow("ShortBow0"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), ) ), ) diff --git a/assets/common/items/weapons/bow/wood_longbow-0.ron b/assets/common/items/weapons/bow/wood_longbow-0.ron new file mode 100644 index 0000000000..35f65f8c22 --- /dev/null +++ b/assets/common/items/weapons/bow/wood_longbow-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Longbow", + description: "It's been well used.", + kind: Tool( + ( + kind: Bow("WoodLongbow0"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/bow/wood_longbow-1.ron b/assets/common/items/weapons/bow/wood_longbow-1.ron new file mode 100644 index 0000000000..05370d16fd --- /dev/null +++ b/assets/common/items/weapons/bow/wood_longbow-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Recurve Bow", + description: "It's hard to pull all the way back.", + kind: Tool( + ( + kind: Bow("WoodLongbow1"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/bow/wood_shortbow-0.ron b/assets/common/items/weapons/bow/wood_shortbow-0.ron new file mode 100644 index 0000000000..6cddcfbff2 --- /dev/null +++ b/assets/common/items/weapons/bow/wood_shortbow-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Hunting Bow", + description: "Strips of leather are wrapped around the handle.", + kind: Tool( + ( + kind: Bow("WoodShortbow0"), + stats: ( + equip_time_millis: 400, + power: 0.75, + ), + ) + ), +) diff --git a/assets/common/items/weapons/bow/wood_shortbow-1.ron b/assets/common/items/weapons/bow/wood_shortbow-1.ron new file mode 100644 index 0000000000..37d8df0b3c --- /dev/null +++ b/assets/common/items/weapons/bow/wood_shortbow-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Horse Bow", + description: "Works on the ground too.", + kind: Tool( + ( + kind: Bow("WoodShortbow1"), + stats: ( + equip_time_millis: 400, + power: 0.75, + ), + ) + ), +) diff --git a/assets/common/items/weapons/dagger/starter_dagger.ron b/assets/common/items/weapons/dagger/starter_dagger.ron index 98924729be..9d24de8e09 100644 --- a/assets/common/items/weapons/dagger/starter_dagger.ron +++ b/assets/common/items/weapons/dagger/starter_dagger.ron @@ -1,10 +1,13 @@ Item( name: "Rusty Dagger", - description: "One-Hand Dagger\n\nPower 5-6\n\n#writing.\n\n", + description: "Easily concealed.", kind: Tool( ( - kind: Dagger(BasicDagger), - equip_time_millis: 300, + kind: Dagger("BasicDagger"), + stats: ( + equip_time_millis: 300, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/weapons/empty.ron b/assets/common/items/weapons/empty.ron deleted file mode 100644 index 62a2bf4785..0000000000 --- a/assets/common/items/weapons/empty.ron +++ /dev/null @@ -1,10 +0,0 @@ -Item( - name: "Empty", - description: "", - kind: Tool ( - ( - kind: Empty, - equip_time_millis: 200, - ) - ), -) diff --git a/assets/common/items/weapons/empty/empty.ron b/assets/common/items/weapons/empty/empty.ron new file mode 100644 index 0000000000..489101c9f0 --- /dev/null +++ b/assets/common/items/weapons/empty/empty.ron @@ -0,0 +1,13 @@ +Item( + name: "Empty", + description: "You expected a description?", + kind: Tool ( + ( + kind: Empty, + stats: ( + equip_time_millis: 200, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/bronze_hammer-0.ron b/assets/common/items/weapons/hammer/bronze_hammer-0.ron new file mode 100644 index 0000000000..d95c8ef6c8 --- /dev/null +++ b/assets/common/items/weapons/hammer/bronze_hammer-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Bronze Hammer", + description: "Forged with bronze.", + kind: Tool( + ( + kind: Hammer("BronzeHammer0"), + stats: ( + equip_time_millis: 500, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/bronze_hammer-1.ron b/assets/common/items/weapons/hammer/bronze_hammer-1.ron new file mode 100644 index 0000000000..6f35d21888 --- /dev/null +++ b/assets/common/items/weapons/hammer/bronze_hammer-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Bronze Club", + description: "Forged with bronze.", + kind: Tool( + ( + kind: Hammer("BronzeHammer1"), + stats: ( + equip_time_millis: 500, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/cobalt_hammer-0.ron b/assets/common/items/weapons/hammer/cobalt_hammer-0.ron new file mode 100644 index 0000000000..c479ec1ddb --- /dev/null +++ b/assets/common/items/weapons/hammer/cobalt_hammer-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Cobalt Hammer", + description: "Forged with cobalt.", + kind: Tool( + ( + kind: Hammer("CobaltHammer0"), + stats: ( + equip_time_millis: 500, + power: 1.60, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/cobalt_hammer-1.ron b/assets/common/items/weapons/hammer/cobalt_hammer-1.ron new file mode 100644 index 0000000000..b5d84c6ae5 --- /dev/null +++ b/assets/common/items/weapons/hammer/cobalt_hammer-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Cobalt Mace", + description: "Forged with cobalt.", + kind: Tool( + ( + kind: Hammer("CobaltHammer1"), + stats: ( + equip_time_millis: 500, + power: 1.60, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/flimsy_hammer.ron b/assets/common/items/weapons/hammer/flimsy_hammer.ron new file mode 100644 index 0000000000..5e425a53e8 --- /dev/null +++ b/assets/common/items/weapons/hammer/flimsy_hammer.ron @@ -0,0 +1,13 @@ +Item( + name: "Flimsy Hammer", + description: "The head is barely secured.", + kind: Tool( + ( + kind: Hammer("FlimsyHammer"), + stats: ( + equip_time_millis: 500, + power: 0.50, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/hammer_1.ron b/assets/common/items/weapons/hammer/hammer_1.ron index 02ba5d1069..582f9ce6a3 100644 --- a/assets/common/items/weapons/hammer/hammer_1.ron +++ b/assets/common/items/weapons/hammer/hammer_1.ron @@ -1,10 +1,13 @@ Item( name: "Crude Mallet", - description: "Two-Hand Hammer\n\nPower: 10-12\n\nBreaks bones like sticks and stones.\n\n", + description: "Breaks bones like sticks and stones.", kind: Tool( ( - kind: Hammer(BasicHammer), - equip_time_millis: 500, + kind: Hammer("BasicHammer"), + stats: ( + equip_time_millis: 500, + power: 0.50, + ), ) ) ) diff --git a/assets/common/items/weapons/hammer/iron_hammer-0.ron b/assets/common/items/weapons/hammer/iron_hammer-0.ron new file mode 100644 index 0000000000..d13b660690 --- /dev/null +++ b/assets/common/items/weapons/hammer/iron_hammer-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Iron Hammer", + description: "Forged with iron.", + kind: Tool( + ( + kind: Hammer("IronHammer0"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/iron_hammer-1.ron b/assets/common/items/weapons/hammer/iron_hammer-1.ron new file mode 100644 index 0000000000..754bd6f571 --- /dev/null +++ b/assets/common/items/weapons/hammer/iron_hammer-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Iron Battlehammer", + description: "Forged with iron.", + kind: Tool( + ( + kind: Hammer("IronHammer1"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/iron_hammer-2.ron b/assets/common/items/weapons/hammer/iron_hammer-2.ron new file mode 100644 index 0000000000..82ebea4ce4 --- /dev/null +++ b/assets/common/items/weapons/hammer/iron_hammer-2.ron @@ -0,0 +1,13 @@ +Item( + name: "Iron Mace", + description: "Forged with iron.", + kind: Tool( + ( + kind: Hammer("IronHammer2"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/iron_hammer-3.ron b/assets/common/items/weapons/hammer/iron_hammer-3.ron new file mode 100644 index 0000000000..74f7b7fa3e --- /dev/null +++ b/assets/common/items/weapons/hammer/iron_hammer-3.ron @@ -0,0 +1,13 @@ +Item( + name: "Crowned Mace", + description: "Forged with iron.", + kind: Tool( + ( + kind: Hammer("IronHammer3"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/iron_hammer-4.ron b/assets/common/items/weapons/hammer/iron_hammer-4.ron new file mode 100644 index 0000000000..c9c1e0199c --- /dev/null +++ b/assets/common/items/weapons/hammer/iron_hammer-4.ron @@ -0,0 +1,13 @@ +Item( + name: "Forge Hammer", + description: "Forged with iron.", + kind: Tool( + ( + kind: Hammer("IronHammer4"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/iron_hammer-5.ron b/assets/common/items/weapons/hammer/iron_hammer-5.ron new file mode 100644 index 0000000000..d48eacb6d6 --- /dev/null +++ b/assets/common/items/weapons/hammer/iron_hammer-5.ron @@ -0,0 +1,13 @@ +Item( + name: "Pike Hammer", + description: "Forged with iron.", + kind: Tool( + ( + kind: Hammer("IronHammer5"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/iron_hammer-6.ron b/assets/common/items/weapons/hammer/iron_hammer-6.ron new file mode 100644 index 0000000000..ca1f7bfaf3 --- /dev/null +++ b/assets/common/items/weapons/hammer/iron_hammer-6.ron @@ -0,0 +1,13 @@ +Item( + name: "Spiked Maul", + description: "Forged with iron.", + kind: Tool( + ( + kind: Hammer("IronHammer6"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/iron_hammer-7.ron b/assets/common/items/weapons/hammer/iron_hammer-7.ron new file mode 100644 index 0000000000..b8a02b1fd3 --- /dev/null +++ b/assets/common/items/weapons/hammer/iron_hammer-7.ron @@ -0,0 +1,13 @@ +Item( + name: "Giant's Fist", + description: "Forged with iron.", + kind: Tool( + ( + kind: Hammer("IronHammer7"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/iron_hammer-8.ron b/assets/common/items/weapons/hammer/iron_hammer-8.ron new file mode 100644 index 0000000000..a171f2a604 --- /dev/null +++ b/assets/common/items/weapons/hammer/iron_hammer-8.ron @@ -0,0 +1,13 @@ +Item( + name: "Lucerne Hammer", + description: "Forged with iron.", + kind: Tool( + ( + kind: Hammer("IronHammer8"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/mjolnir.ron b/assets/common/items/weapons/hammer/mjolnir.ron new file mode 100644 index 0000000000..b9fc92943b --- /dev/null +++ b/assets/common/items/weapons/hammer/mjolnir.ron @@ -0,0 +1,13 @@ +Item( + name: "Mjolnir", + description: "It's crackling with lightning.", + kind: Tool( + ( + kind: Hammer("Mjolnir"), + stats: ( + equip_time_millis: 500, + power: 2.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/ramshead_hammer.ron b/assets/common/items/weapons/hammer/ramshead_hammer.ron new file mode 100644 index 0000000000..b2662aaaea --- /dev/null +++ b/assets/common/items/weapons/hammer/ramshead_hammer.ron @@ -0,0 +1,13 @@ +Item( + name: "Ram's Head Mace", + description: "You feel an evil presence in the hammer.", + kind: Tool( + ( + kind: Hammer("RamsheadHammer"), + stats: ( + equip_time_millis: 500, + power: 1.80, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/runic_hammer.ron b/assets/common/items/weapons/hammer/runic_hammer.ron new file mode 100644 index 0000000000..33046cb565 --- /dev/null +++ b/assets/common/items/weapons/hammer/runic_hammer.ron @@ -0,0 +1,13 @@ +Item( + name: "Runic Hammer", + description: "There are strange runes inscribed into it.", + kind: Tool( + ( + kind: Hammer("RunicHammer"), + stats: ( + equip_time_millis: 500, + power: 1.80, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/starter_hammer.ron b/assets/common/items/weapons/hammer/starter_hammer.ron index 5e707614af..e871d6cc38 100644 --- a/assets/common/items/weapons/hammer/starter_hammer.ron +++ b/assets/common/items/weapons/hammer/starter_hammer.ron @@ -1,10 +1,13 @@ Item( name: "Sturdy Old Hammer", - description: "Two-Hand Hammer\n\nPower: 10-12\n\n'Property of...' The rest is missing.\n\n", + description: "'Property of...' The rest is missing.", kind: Tool( ( - kind: Hammer(BasicHammer), - equip_time_millis: 500, + kind: Hammer("BasicHammer"), + stats: ( + equip_time_millis: 500, + power: 0.50, + ), ) ), ) diff --git a/assets/common/items/weapons/hammer/steel_hammer-0.ron b/assets/common/items/weapons/hammer/steel_hammer-0.ron new file mode 100644 index 0000000000..d3aad2c12a --- /dev/null +++ b/assets/common/items/weapons/hammer/steel_hammer-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Steel Hammer", + description: "Forged with steel.", + kind: Tool( + ( + kind: Hammer("SteelHammer0"), + stats: ( + equip_time_millis: 500, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/steel_hammer-1.ron b/assets/common/items/weapons/hammer/steel_hammer-1.ron new file mode 100644 index 0000000000..cfcc1e110c --- /dev/null +++ b/assets/common/items/weapons/hammer/steel_hammer-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Steel Greathammer", + description: "Forged with steel.", + kind: Tool( + ( + kind: Hammer("SteelHammer1"), + stats: ( + equip_time_millis: 500, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/steel_hammer-2.ron b/assets/common/items/weapons/hammer/steel_hammer-2.ron new file mode 100644 index 0000000000..11ce5a083e --- /dev/null +++ b/assets/common/items/weapons/hammer/steel_hammer-2.ron @@ -0,0 +1,13 @@ +Item( + name: "Steel Club", + description: "Forged with steel.", + kind: Tool( + ( + kind: Hammer("SteelHammer2"), + stats: ( + equip_time_millis: 500, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/steel_hammer-3.ron b/assets/common/items/weapons/hammer/steel_hammer-3.ron new file mode 100644 index 0000000000..ab97c15a7c --- /dev/null +++ b/assets/common/items/weapons/hammer/steel_hammer-3.ron @@ -0,0 +1,13 @@ +Item( + name: "Battle Mace", + description: "Forged with steel.", + kind: Tool( + ( + kind: Hammer("SteelHammer3"), + stats: ( + equip_time_millis: 500, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/steel_hammer-4.ron b/assets/common/items/weapons/hammer/steel_hammer-4.ron new file mode 100644 index 0000000000..a999cf8692 --- /dev/null +++ b/assets/common/items/weapons/hammer/steel_hammer-4.ron @@ -0,0 +1,13 @@ +Item( + name: "Brute's Hammer", + description: "Forged with steel.", + kind: Tool( + ( + kind: Hammer("SteelHammer4"), + stats: ( + equip_time_millis: 500, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/steel_hammer-5.ron b/assets/common/items/weapons/hammer/steel_hammer-5.ron new file mode 100644 index 0000000000..1409c0121c --- /dev/null +++ b/assets/common/items/weapons/hammer/steel_hammer-5.ron @@ -0,0 +1,13 @@ +Item( + name: "Morning Star", + description: "Forged with steel.", + kind: Tool( + ( + kind: Hammer("SteelHammer5"), + stats: ( + equip_time_millis: 500, + power: 1.40, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/stone_hammer-0.ron b/assets/common/items/weapons/hammer/stone_hammer-0.ron new file mode 100644 index 0000000000..0a12b75c5f --- /dev/null +++ b/assets/common/items/weapons/hammer/stone_hammer-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Basalt Sledgehammer", + description: "It seems brittle.", + kind: Tool( + ( + kind: Hammer("StoneHammer0"), + stats: ( + equip_time_millis: 500, + power: 0.70, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/stone_hammer-1.ron b/assets/common/items/weapons/hammer/stone_hammer-1.ron new file mode 100644 index 0000000000..cb33efc4b6 --- /dev/null +++ b/assets/common/items/weapons/hammer/stone_hammer-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Granite Sledgehammer", + description: "It seems brittle.", + kind: Tool( + ( + kind: Hammer("StoneHammer1"), + stats: ( + equip_time_millis: 500, + power: 0.70, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/stone_hammer-2.ron b/assets/common/items/weapons/hammer/stone_hammer-2.ron new file mode 100644 index 0000000000..8490c9b468 --- /dev/null +++ b/assets/common/items/weapons/hammer/stone_hammer-2.ron @@ -0,0 +1,13 @@ +Item( + name: "Rocky Maul", + description: "It seems brittle.", + kind: Tool( + ( + kind: Hammer("StoneHammer2"), + stats: ( + equip_time_millis: 500, + power: 0.70, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/stone_hammer-3.ron b/assets/common/items/weapons/hammer/stone_hammer-3.ron new file mode 100644 index 0000000000..5e58f89be2 --- /dev/null +++ b/assets/common/items/weapons/hammer/stone_hammer-3.ron @@ -0,0 +1,13 @@ +Item( + name: "Stone Sledgehammer", + description: "It seems brittle.", + kind: Tool( + ( + kind: Hammer("StoneHammer3"), + stats: ( + equip_time_millis: 500, + power: 0.70, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/wood_hammer-0.ron b/assets/common/items/weapons/hammer/wood_hammer-0.ron new file mode 100644 index 0000000000..7f3ff8cb97 --- /dev/null +++ b/assets/common/items/weapons/hammer/wood_hammer-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Hardwood Mallet", + description: "Seems sturdy enough.", + kind: Tool( + ( + kind: Hammer("WoodHammer0"), + stats: ( + equip_time_millis: 500, + power: 0.60, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/worn_iron_hammer-0.ron b/assets/common/items/weapons/hammer/worn_iron_hammer-0.ron new file mode 100644 index 0000000000..666e0cfa3c --- /dev/null +++ b/assets/common/items/weapons/hammer/worn_iron_hammer-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Worn Dwarven Hammer", + description: "The previous owner won't miss it much.", + kind: Tool( + ( + kind: Hammer("WornIronHammer0"), + stats: ( + equip_time_millis: 500, + power: 0.85, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/worn_iron_hammer-1.ron b/assets/common/items/weapons/hammer/worn_iron_hammer-1.ron new file mode 100644 index 0000000000..f581ed5b17 --- /dev/null +++ b/assets/common/items/weapons/hammer/worn_iron_hammer-1.ron @@ -0,0 +1,13 @@ +Item( + name: "Worn Elven Hammer", + description: "The previous owner won't miss it much.", + kind: Tool( + ( + kind: Hammer("WornIronHammer1"), + stats: ( + equip_time_millis: 500, + power: 0.85, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/worn_iron_hammer-2.ron b/assets/common/items/weapons/hammer/worn_iron_hammer-2.ron new file mode 100644 index 0000000000..76d4ac2f24 --- /dev/null +++ b/assets/common/items/weapons/hammer/worn_iron_hammer-2.ron @@ -0,0 +1,13 @@ +Item( + name: "Worn Human Mace", + description: "The previous owner won't miss it much.", + kind: Tool( + ( + kind: Hammer("WornIronHammer2"), + stats: ( + equip_time_millis: 500, + power: 0.85, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/worn_iron_hammer-3.ron b/assets/common/items/weapons/hammer/worn_iron_hammer-3.ron new file mode 100644 index 0000000000..fe9020cbd2 --- /dev/null +++ b/assets/common/items/weapons/hammer/worn_iron_hammer-3.ron @@ -0,0 +1,13 @@ +Item( + name: "Worn Orcish Hammer", + description: "The previous owner won't miss it much.", + kind: Tool( + ( + kind: Hammer("WornIronHammer3"), + stats: ( + equip_time_millis: 500, + power: 0.85, + ), + ) + ), +) diff --git a/assets/common/items/weapons/shield/shield_1.ron b/assets/common/items/weapons/shield/shield_1.ron index a9d2119ba8..6fe9c4a971 100644 --- a/assets/common/items/weapons/shield/shield_1.ron +++ b/assets/common/items/weapons/shield/shield_1.ron @@ -1,10 +1,13 @@ Item( name: "A Tattered Targe", - description: "One-Hand Shield\n\nPower 5-6\n\n#writing.\n\n", + description: "Should withstand a few more hits, hopefully...", kind: Tool ( ( - kind: Shield(BasicShield), - equip_time_millis: 400, + kind: Shield("BasicShield"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/weapons/staff/amethyst_staff.ron b/assets/common/items/weapons/staff/amethyst_staff.ron new file mode 100644 index 0000000000..05f476e24b --- /dev/null +++ b/assets/common/items/weapons/staff/amethyst_staff.ron @@ -0,0 +1,13 @@ +Item( + name: "Amethyst Staff", + description: "The amethyst faintly glows.", + kind: Tool( + ( + kind: Staff("AmethystStaff"), + stats: ( + equip_time_millis: 300, + power: 1.50, + ), + ) + ), +) diff --git a/assets/common/items/weapons/staff/bone_staff.ron b/assets/common/items/weapons/staff/bone_staff.ron new file mode 100644 index 0000000000..ae9ba4076a --- /dev/null +++ b/assets/common/items/weapons/staff/bone_staff.ron @@ -0,0 +1,13 @@ +Item( + name: "Bone Staff", + description: "There's a red gem suspended in the bones.", + kind: Tool( + ( + kind: Staff("BoneStaff"), + stats: ( + equip_time_millis: 300, + power: 1.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/staff/cultist_staff.ron b/assets/common/items/weapons/staff/cultist_staff.ron new file mode 100644 index 0000000000..626351932c --- /dev/null +++ b/assets/common/items/weapons/staff/cultist_staff.ron @@ -0,0 +1,13 @@ +Item( + name: "Cultist Staff", + description: "The fire gives off no heat.", + kind: Tool( + ( + kind: Staff("CultistStaff"), + stats: ( + equip_time_millis: 300, + power: 2.00, + ), + ) + ), +) diff --git a/assets/common/items/weapons/staff/staff_1.ron b/assets/common/items/weapons/staff/staff_1.ron index 0654dc2b8b..275bc4ac4a 100644 --- a/assets/common/items/weapons/staff/staff_1.ron +++ b/assets/common/items/weapons/staff/staff_1.ron @@ -1,10 +1,13 @@ Item( name: "Humble Stick", - description: "Two-Hand Staff\n\nPower: 2-10\n\nWalking stick with a sharpened end\n\n", + description: "Walking stick with a sharpened end.", kind: Tool( ( - kind: Staff(BasicStaff), - equip_time_millis: 200, + kind: Staff("BasicStaff"), + stats: ( + equip_time_millis: 200, + power: 0.50, + ), ) ), ) diff --git a/assets/common/items/weapons/staff/staff_nature.ron b/assets/common/items/weapons/staff/staff_nature.ron index 11764ac526..6bac1e48eb 100644 --- a/assets/common/items/weapons/staff/staff_nature.ron +++ b/assets/common/items/weapons/staff/staff_nature.ron @@ -1,10 +1,13 @@ Item( name: "Sceptre of Regeneration", - description: "Healing-Sceptre\n\nPower 15-18\n\nHeals your allies with the power of nature.\n\n", + description: "Heals your allies with the power of nature.", kind: Tool( ( - kind: Staff(Sceptre), - equip_time_millis: 400, + kind: Staff("Sceptre"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/weapons/staff/starter_staff.ron b/assets/common/items/weapons/staff/starter_staff.ron index 8b8e8d6f88..0fb6f585d8 100644 --- a/assets/common/items/weapons/staff/starter_staff.ron +++ b/assets/common/items/weapons/staff/starter_staff.ron @@ -1,10 +1,13 @@ Item( name: "Gnarled Rod", - description: "Firestaff\n\nPower: 1-13\n\nSmells like resin and magic.\n\n", + description: "Smells like resin and magic.", kind: Tool( ( - kind: Staff(BasicStaff), - equip_time_millis: 300, + kind: Staff("BasicStaff"), + stats: ( + equip_time_millis: 300, + power: 0.50, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/cultist_purp_2h-0.ron b/assets/common/items/weapons/sword/cultist_purp_2h-0.ron index 869200b553..6f6af1bd99 100644 --- a/assets/common/items/weapons/sword/cultist_purp_2h-0.ron +++ b/assets/common/items/weapons/sword/cultist_purp_2h-0.ron @@ -1,10 +1,13 @@ Item( name: "Magical Cultist Greatsword", - description: "Two-Hand Sword\n\nPower: 6-20\n\nThis belonged to an evil Cult Leader\n\n", + description: "This belonged to an evil Cult Leader.", kind: Tool( ( - kind: Sword(CultPurp0), - equip_time_millis: 500, + kind: Sword("CultPurp0"), + stats: ( + equip_time_millis: 500, + power: 2.00, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_dam-0.ron b/assets/common/items/weapons/sword/greatsword_2h_dam-0.ron index 62e4a0826c..82416701d3 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_dam-0.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_dam-0.ron @@ -1,10 +1,13 @@ Item( name: "Damaged Greatsword", - description: "A Damaged Two-Handed Greatsword\n\nPower: 2-10\n\n", + description: "The blade has been chipped quite a few times.", kind: Tool( ( - kind: Sword(GreatswordDam0), - equip_time_millis: 500, + kind: Sword("GreatswordDam0"), + stats: ( + equip_time_millis: 500, + power: 0.80, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_dam-1.ron b/assets/common/items/weapons/sword/greatsword_2h_dam-1.ron index 6eda562d23..93c43c8a54 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_dam-1.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_dam-1.ron @@ -1,10 +1,13 @@ Item( name: "Damaged Greatsword", - description: "A Damaged Two-Handed Greatsword\n\nPower: 2-10\n\n", + description: "The blade has been chipped quite a few times.", kind: Tool( ( - kind: Sword(GreatswordDam1), - equip_time_millis: 500, + kind: Sword("GreatswordDam1"), + stats: ( + equip_time_millis: 500, + power: 0.80, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_dam-2.ron b/assets/common/items/weapons/sword/greatsword_2h_dam-2.ron index a18b0ca92c..e93d4f4f8f 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_dam-2.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_dam-2.ron @@ -1,10 +1,13 @@ Item( name: "Damaged Greatsword", - description: "A Damaged Two-Handed Greatsword\n\nPower: 2-10\n\n", + description: "The blade has been chipped quite a few times.", kind: Tool( ( - kind: Sword(GreatswordDam2), - equip_time_millis: 500, + kind: Sword("GreatswordDam2"), + stats: ( + equip_time_millis: 500, + power: 0.80, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_fine-0.ron b/assets/common/items/weapons/sword/greatsword_2h_fine-0.ron index ffc620be41..a446d358da 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_fine-0.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_fine-0.ron @@ -1,10 +1,13 @@ Item( name: "Fine Greatsword", - description: "A Fine Two-Handed Greatsword\n\nPower: 2-10\n\n", + description: "It's been polished and sharpened recently.", kind: Tool( ( - kind: Sword(GreatswordFine0), - equip_time_millis: 500, + kind: Sword("GreatswordFine0"), + stats: ( + equip_time_millis: 500, + power: 1.40, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_fine-1.ron b/assets/common/items/weapons/sword/greatsword_2h_fine-1.ron index 6cc55512cc..99a83724d3 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_fine-1.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_fine-1.ron @@ -1,10 +1,13 @@ Item( name: "Fine Greatsword", - description: "A Fine Two-Handed Greatsword\n\nPower: 2-10\n\n", + description: "It's been polished and sharpened recently.", kind: Tool( ( - kind: Sword(GreatswordFine1), - equip_time_millis: 500, + kind: Sword("GreatswordFine1"), + stats: ( + equip_time_millis: 500, + power: 1.40, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_fine-2.ron b/assets/common/items/weapons/sword/greatsword_2h_fine-2.ron index 660a61580c..b96587c493 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_fine-2.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_fine-2.ron @@ -1,10 +1,13 @@ Item( name: "Fine Greatsword", - description: "A Fine Two-Handed Greatsword\n\nPower: 2-10\n\n", + description: "It's been polished and sharpened recently.", kind: Tool( ( - kind: Sword(GreatswordFine2), - equip_time_millis: 500, + kind: Sword("GreatswordFine2"), + stats: ( + equip_time_millis: 500, + power: 1.40, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_orn-0.ron b/assets/common/items/weapons/sword/greatsword_2h_orn-0.ron index 8cb721b52e..5666f00c40 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_orn-0.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_orn-0.ron @@ -1,10 +1,13 @@ Item( - name: "Ornimented Greatsword", - description: "A Ornimented Two-Handed Greatsword\n\nPower: 2-10\n\n", + name: "Ornamented Greatsword", + description: "The sword's almost a work of art.", kind: Tool( ( - kind: Sword(GreatswordOrn0), - equip_time_millis: 500, + kind: Sword("GreatswordOrn0"), + stats: ( + equip_time_millis: 500, + power: 1.70, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_orn-1.ron b/assets/common/items/weapons/sword/greatsword_2h_orn-1.ron index 3f8818f308..af5df7d585 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_orn-1.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_orn-1.ron @@ -1,10 +1,13 @@ Item( - name: "Ornimented Greatsword", - description: "A Ornimented Two-Handed Greatsword\n\nPower: 2-10\n\n", + name: "Ornamented Greatsword", + description: "The sword's almost a work of art.", kind: Tool( ( - kind: Sword(GreatswordOrn1), - equip_time_millis: 500, + kind: Sword("GreatswordOrn1"), + stats: ( + equip_time_millis: 500, + power: 1.70, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_orn-2.ron b/assets/common/items/weapons/sword/greatsword_2h_orn-2.ron index bab5a60f9a..6b900cb700 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_orn-2.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_orn-2.ron @@ -1,10 +1,13 @@ Item( - name: "Ornimented Greatsword", - description: "A Ornimented Two-Handed Greatsword\n\nPower: 2-10\n\n", + name: "Ornamented Greatsword", + description: "The sword's almost a work of art.", kind: Tool( ( - kind: Sword(GreatswordOrn2), - equip_time_millis: 500, + kind: Sword("GreatswordOrn2"), + stats: ( + equip_time_millis: 500, + power: 1.70, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_simple-0.ron b/assets/common/items/weapons/sword/greatsword_2h_simple-0.ron index c757d1d3d4..022fa7fc63 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_simple-0.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_simple-0.ron @@ -1,10 +1,13 @@ Item( name: "Simple Greatsword", - description: "A Simple Two-Handed Greatsword\n\nPower: 2-10\n\n", + description: "It's been well used.", kind: Tool( ( - kind: Sword(GreatswordSimple0), - equip_time_millis: 500, + kind: Sword("GreatswordSimple0"), + stats: ( + equip_time_millis: 500, + power: 1.10, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_simple-1.ron b/assets/common/items/weapons/sword/greatsword_2h_simple-1.ron index 4dedbb496e..23be1fa330 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_simple-1.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_simple-1.ron @@ -1,10 +1,13 @@ Item( name: "Simple Greatsword", - description: "A Simple Two-Handed Greatsword\n\nPower: 2-10\n\n", + description: "It's been well used.", kind: Tool( ( - kind: Sword(GreatswordSimple1), - equip_time_millis: 500, + kind: Sword("GreatswordSimple1"), + stats: ( + equip_time_millis: 500, + power: 1.10, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/greatsword_2h_simple-2.ron b/assets/common/items/weapons/sword/greatsword_2h_simple-2.ron index 4c72bc3cbf..11c1a1788d 100644 --- a/assets/common/items/weapons/sword/greatsword_2h_simple-2.ron +++ b/assets/common/items/weapons/sword/greatsword_2h_simple-2.ron @@ -1,10 +1,13 @@ Item( name: "Simple Greatsword", - description: "A Simple Two-Handed Greatsword\n\nPower: 2-10\n\n", + description: "It's been well used.", kind: Tool( ( - kind: Sword(GreatswordSimple2), - equip_time_millis: 500, + kind: Sword("GreatswordSimple2"), + stats: ( + equip_time_millis: 500, + power: 1.10, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_dam-0.ron b/assets/common/items/weapons/sword/long_2h_dam-0.ron index 20174e74c7..eb4e6fca3f 100644 --- a/assets/common/items/weapons/sword/long_2h_dam-0.ron +++ b/assets/common/items/weapons/sword/long_2h_dam-0.ron @@ -1,10 +1,13 @@ Item( name: "Damaged Longsword", - description: "A Damaged Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It's slightly cracked.", kind: Tool( ( - kind: Sword(LongDam0), - equip_time_millis: 500, + kind: Sword("LongDam0"), + stats: ( + equip_time_millis: 500, + power: 0.60, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_dam-1.ron b/assets/common/items/weapons/sword/long_2h_dam-1.ron index 01a01ca543..a15b765bb1 100644 --- a/assets/common/items/weapons/sword/long_2h_dam-1.ron +++ b/assets/common/items/weapons/sword/long_2h_dam-1.ron @@ -1,10 +1,13 @@ Item( name: "Damaged Longsword", - description: "A Damaged Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It's slightly cracked.", kind: Tool( ( - kind: Sword(LongDam1), - equip_time_millis: 500, + kind: Sword("LongDam1"), + stats: ( + equip_time_millis: 500, + power: 0.60, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_dam-2.ron b/assets/common/items/weapons/sword/long_2h_dam-2.ron index afd1dedebb..b1405fa475 100644 --- a/assets/common/items/weapons/sword/long_2h_dam-2.ron +++ b/assets/common/items/weapons/sword/long_2h_dam-2.ron @@ -1,10 +1,13 @@ Item( name: "Damaged Longsword", - description: "A Damaged Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It's slightly cracked.", kind: Tool( ( - kind: Sword(LongDam2), - equip_time_millis: 500, + kind: Sword("LongDam2"), + stats: ( + equip_time_millis: 500, + power: 0.60, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_dam-3.ron b/assets/common/items/weapons/sword/long_2h_dam-3.ron index ba0857975b..4420dbec12 100644 --- a/assets/common/items/weapons/sword/long_2h_dam-3.ron +++ b/assets/common/items/weapons/sword/long_2h_dam-3.ron @@ -1,10 +1,13 @@ Item( name: "Damaged Longsword", - description: "A Damaged Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It's slightly cracked.", kind: Tool( ( - kind: Sword(LongDam3), - equip_time_millis: 500, + kind: Sword("LongDam3"), + stats: ( + equip_time_millis: 500, + power: 0.60, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_dam-4.ron b/assets/common/items/weapons/sword/long_2h_dam-4.ron index 118a4a2a4f..cfe9c8da80 100644 --- a/assets/common/items/weapons/sword/long_2h_dam-4.ron +++ b/assets/common/items/weapons/sword/long_2h_dam-4.ron @@ -1,10 +1,13 @@ Item( name: "Damaged Longsword", - description: "A Damaged Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It's slightly cracked.", kind: Tool( ( - kind: Sword(LongDam4), - equip_time_millis: 500, + kind: Sword("LongDam4"), + stats: ( + equip_time_millis: 500, + power: 0.60, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_dam-5.ron b/assets/common/items/weapons/sword/long_2h_dam-5.ron index a5b1eb35eb..879165b971 100644 --- a/assets/common/items/weapons/sword/long_2h_dam-5.ron +++ b/assets/common/items/weapons/sword/long_2h_dam-5.ron @@ -1,10 +1,13 @@ Item( name: "Damaged Longsword", - description: "A Damaged Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It's slightly cracked.", kind: Tool( ( - kind: Sword(LongDam5), - equip_time_millis: 500, + kind: Sword("LongDam5"), + stats: ( + equip_time_millis: 500, + power: 0.60, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_fine-0.ron b/assets/common/items/weapons/sword/long_2h_fine-0.ron index 62a08d3ca1..9713113fdf 100644 --- a/assets/common/items/weapons/sword/long_2h_fine-0.ron +++ b/assets/common/items/weapons/sword/long_2h_fine-0.ron @@ -1,10 +1,13 @@ Item( name: "Fine Longsword", - description: "A Very Fine Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + description: "It shines when you hold it up to the light.", kind: Tool( ( - kind: Sword(LongFine0), - equip_time_millis: 500, + kind: Sword("LongFine0"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_fine-1.ron b/assets/common/items/weapons/sword/long_2h_fine-1.ron index 37e45ab9f4..3097707106 100644 --- a/assets/common/items/weapons/sword/long_2h_fine-1.ron +++ b/assets/common/items/weapons/sword/long_2h_fine-1.ron @@ -1,10 +1,13 @@ Item( name: "Fine Longsword", - description: "A Very Fine Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + description: "It shines when you hold it up to the light.", kind: Tool( ( - kind: Sword(LongFine1), - equip_time_millis: 500, + kind: Sword("LongFine1"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_fine-2.ron b/assets/common/items/weapons/sword/long_2h_fine-2.ron index 463712a64f..ff4fa5bdaf 100644 --- a/assets/common/items/weapons/sword/long_2h_fine-2.ron +++ b/assets/common/items/weapons/sword/long_2h_fine-2.ron @@ -1,10 +1,13 @@ Item( name: "Fine Longsword", - description: "A Very Fine Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + description: "It shines when you hold it up to the light.", kind: Tool( ( - kind: Sword(LongFine2), - equip_time_millis: 500, + kind: Sword("LongFine2"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_fine-3.ron b/assets/common/items/weapons/sword/long_2h_fine-3.ron index 457993ae29..cf2d4e7a5c 100644 --- a/assets/common/items/weapons/sword/long_2h_fine-3.ron +++ b/assets/common/items/weapons/sword/long_2h_fine-3.ron @@ -1,10 +1,13 @@ Item( name: "Fine Longsword", - description: "A Very Fine Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + description: "It shines when you hold it up to the light.", kind: Tool( ( - kind: Sword(LongFine3), - equip_time_millis: 500, + kind: Sword("LongFine3"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_fine-4.ron b/assets/common/items/weapons/sword/long_2h_fine-4.ron index d1ea6cd56d..801cf19f62 100644 --- a/assets/common/items/weapons/sword/long_2h_fine-4.ron +++ b/assets/common/items/weapons/sword/long_2h_fine-4.ron @@ -1,10 +1,13 @@ Item( name: "Fine Longsword", - description: "A Very Fine Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + description: "It shines when you hold it up to the light.", kind: Tool( ( - kind: Sword(LongFine4), - equip_time_millis: 500, + kind: Sword("LongFine4"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_fine-5.ron b/assets/common/items/weapons/sword/long_2h_fine-5.ron index f2e1a4a8b2..2670fda4cc 100644 --- a/assets/common/items/weapons/sword/long_2h_fine-5.ron +++ b/assets/common/items/weapons/sword/long_2h_fine-5.ron @@ -1,10 +1,13 @@ Item( name: "Fine Longsword", - description: "A Very Fine Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + description: "It shines when you hold it up to the light.", kind: Tool( ( - kind: Sword(LongFine5), - equip_time_millis: 500, + kind: Sword("LongFine5"), + stats: ( + equip_time_millis: 500, + power: 1.20, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_orn-0.ron b/assets/common/items/weapons/sword/long_2h_orn-0.ron index ee2d8007b0..8634a6a135 100644 --- a/assets/common/items/weapons/sword/long_2h_orn-0.ron +++ b/assets/common/items/weapons/sword/long_2h_orn-0.ron @@ -1,10 +1,13 @@ Item( - name: "Ornimented Longsword", - description: "An Ornimanted Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + name: "Ornamented Longsword", + description: "It's probably the weapon of some noble.", kind: Tool( ( - kind: Sword(LongOrn0), - equip_time_millis: 500, + kind: Sword("LongOrn0"), + stats: ( + equip_time_millis: 500, + power: 1.50, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_orn-1.ron b/assets/common/items/weapons/sword/long_2h_orn-1.ron index 49bb90e103..686b1635a2 100644 --- a/assets/common/items/weapons/sword/long_2h_orn-1.ron +++ b/assets/common/items/weapons/sword/long_2h_orn-1.ron @@ -1,10 +1,13 @@ Item( - name: "Ornimented Longsword", - description: "An Ornimanted Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + name: "Ornamented Longsword", + description: "It's probably the weapon of some noble.", kind: Tool( ( - kind: Sword(LongOrn1), - equip_time_millis: 500, + kind: Sword("LongOrn1"), + stats: ( + equip_time_millis: 500, + power: 1.50, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_orn-2.ron b/assets/common/items/weapons/sword/long_2h_orn-2.ron index 3814a1f31c..3ffe180aee 100644 --- a/assets/common/items/weapons/sword/long_2h_orn-2.ron +++ b/assets/common/items/weapons/sword/long_2h_orn-2.ron @@ -1,10 +1,13 @@ Item( - name: "Ornimented Longsword", - description: "An Ornimanted Double-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + name: "Ornamented Longsword", + description: "It's probably the weapon of some noble.", kind: Tool( ( - kind: Sword(LongOrn2), - equip_time_millis: 500, + kind: Sword("LongOrn2"), + stats: ( + equip_time_millis: 500, + power: 1.50, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_orn-3.ron b/assets/common/items/weapons/sword/long_2h_orn-3.ron index b43ecddb7b..fc831ee3f4 100644 --- a/assets/common/items/weapons/sword/long_2h_orn-3.ron +++ b/assets/common/items/weapons/sword/long_2h_orn-3.ron @@ -1,10 +1,13 @@ Item( - name: "Ornimented Longsword", - description: "An Ornimanted Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + name: "Ornamented Longsword", + description: "It's probably the weapon of some noble.", kind: Tool( ( - kind: Sword(LongOrn3), - equip_time_millis: 500, + kind: Sword("LongOrn3"), + stats: ( + equip_time_millis: 500, + power: 1.50, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_orn-4.ron b/assets/common/items/weapons/sword/long_2h_orn-4.ron index 357d9433bd..bcc54c8a2f 100644 --- a/assets/common/items/weapons/sword/long_2h_orn-4.ron +++ b/assets/common/items/weapons/sword/long_2h_orn-4.ron @@ -1,10 +1,13 @@ Item( - name: "Ornimented Longsword", - description: "An Ornimanted Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + name: "Ornamented Longsword", + description: "It's probably the weapon of some noble.", kind: Tool( ( - kind: Sword(LongOrn4), - equip_time_millis: 500, + kind: Sword("LongOrn4"), + stats: ( + equip_time_millis: 500, + power: 1.50, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_orn-5.ron b/assets/common/items/weapons/sword/long_2h_orn-5.ron index 4edfb6f01c..148aeb56ad 100644 --- a/assets/common/items/weapons/sword/long_2h_orn-5.ron +++ b/assets/common/items/weapons/sword/long_2h_orn-5.ron @@ -1,10 +1,13 @@ Item( - name: "Ornimented Longsword", - description: "An Ornimanted Single-Edged, Two-Hand LongSword\n\nPower: 2-10\n\n", + name: "Ornamented Longsword", + description: "It's probably the weapon of some noble.", kind: Tool( ( - kind: Sword(LongOrn5), - equip_time_millis: 500, + kind: Sword("LongOrn5"), + stats: ( + equip_time_millis: 500, + power: 1.50, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_simple-0.ron b/assets/common/items/weapons/sword/long_2h_simple-0.ron index b2ad9a59d0..bae0afc87d 100644 --- a/assets/common/items/weapons/sword/long_2h_simple-0.ron +++ b/assets/common/items/weapons/sword/long_2h_simple-0.ron @@ -1,10 +1,13 @@ Item( name: "Simple Longsword", - description: "A Simple Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It was well maintained by it's previous owner.", kind: Tool( ( - kind: Sword(LongSimple0), - equip_time_millis: 500, + kind: Sword("LongSimple0"), + stats: ( + equip_time_millis: 500, + power: 0.90, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_simple-1.ron b/assets/common/items/weapons/sword/long_2h_simple-1.ron index e4eb4b123c..72a0d0f411 100644 --- a/assets/common/items/weapons/sword/long_2h_simple-1.ron +++ b/assets/common/items/weapons/sword/long_2h_simple-1.ron @@ -1,10 +1,13 @@ Item( name: "Simple Longsword", - description: "A Simple Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It was well maintained by it's previous owner.", kind: Tool( ( - kind: Sword(LongSimple1), - equip_time_millis: 500, + kind: Sword("LongSimple1"), + stats: ( + equip_time_millis: 500, + power: 0.90, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_simple-2.ron b/assets/common/items/weapons/sword/long_2h_simple-2.ron index 9aa2ab80a7..8b1bf62e17 100644 --- a/assets/common/items/weapons/sword/long_2h_simple-2.ron +++ b/assets/common/items/weapons/sword/long_2h_simple-2.ron @@ -1,10 +1,13 @@ Item( name: "Simple Longsword", - description: "A Simple Double-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It was well maintained by it's previous owner.", kind: Tool( ( - kind: Sword(LongSimple2), - equip_time_millis: 500, + kind: Sword("LongSimple2"), + stats: ( + equip_time_millis: 500, + power: 0.90, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_simple-3.ron b/assets/common/items/weapons/sword/long_2h_simple-3.ron index 9ee608f6f0..ce66e82c0b 100644 --- a/assets/common/items/weapons/sword/long_2h_simple-3.ron +++ b/assets/common/items/weapons/sword/long_2h_simple-3.ron @@ -1,10 +1,13 @@ Item( name: "Simple Longsword", - description: "A Simple Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It was well maintained by it's previous owner.", kind: Tool( ( - kind: Sword(LongSimple3), - equip_time_millis: 500, + kind: Sword("LongSimple3"), + stats: ( + equip_time_millis: 500, + power: 0.90, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_simple-4.ron b/assets/common/items/weapons/sword/long_2h_simple-4.ron index e92bed29e9..b56926e289 100644 --- a/assets/common/items/weapons/sword/long_2h_simple-4.ron +++ b/assets/common/items/weapons/sword/long_2h_simple-4.ron @@ -1,10 +1,13 @@ Item( name: "Simple Longsword", - description: "A Simple Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It was well maintained by it's previous owner.", kind: Tool( ( - kind: Sword(LongSimple4), - equip_time_millis: 500, + kind: Sword("LongSimple4"), + stats: ( + equip_time_millis: 500, + power: 0.90, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/long_2h_simple-5.ron b/assets/common/items/weapons/sword/long_2h_simple-5.ron index 59f6a199b4..6f66fe30be 100644 --- a/assets/common/items/weapons/sword/long_2h_simple-5.ron +++ b/assets/common/items/weapons/sword/long_2h_simple-5.ron @@ -1,10 +1,13 @@ Item( name: "Simple Longsword", - description: "A Simple Single-Edged, Two-Handed Longsword\n\nPower: 2-10\n\n", + description: "It was well maintained by it's previous owner.", kind: Tool( ( - kind: Sword(LongSimple5), - equip_time_millis: 500, + kind: Sword("LongSimple5"), + stats: ( + equip_time_millis: 500, + power: 0.90, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/short_sword_0.ron b/assets/common/items/weapons/sword/short_sword_0.ron index cdec6c999e..98e746af7c 100644 --- a/assets/common/items/weapons/sword/short_sword_0.ron +++ b/assets/common/items/weapons/sword/short_sword_0.ron @@ -1,10 +1,13 @@ Item( name: "Vicious Gladius", - description: "Two-Hand Sword\n\nPower: 2-10\n\n", + description: "There's blood encrusted on the blade.", kind: Tool( ( - kind: Sword(Short0), - equip_time_millis: 400, + kind: Sword("Short0"), + stats: ( + equip_time_millis: 400, + power: 0.75, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/starter_sword.ron b/assets/common/items/weapons/sword/starter_sword.ron index 0348998a8e..5eef68dca3 100644 --- a/assets/common/items/weapons/sword/starter_sword.ron +++ b/assets/common/items/weapons/sword/starter_sword.ron @@ -1,10 +1,13 @@ Item( name: "Battered Sword", - description: "Two-Hand Sword\n\nPower: 2-10\n\nHeld together by Rust and hope.\n\n", + description: "Held together by Rust and hope.", kind: Tool( ( - kind: Sword(BasicSword), - equip_time_millis: 300, + kind: Sword("BasicSword"), + stats: ( + equip_time_millis: 300, + power: 0.50, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/wood_sword.ron b/assets/common/items/weapons/sword/wood_sword.ron index 038468636c..dc985ebae6 100644 --- a/assets/common/items/weapons/sword/wood_sword.ron +++ b/assets/common/items/weapons/sword/wood_sword.ron @@ -1,10 +1,13 @@ Item( name: "Wooden Training Sword", - description: "Two-Hand Sword\n\nPower: 2-10\n\n", + description: "It's not sharp.", kind: Tool( ( - kind: Sword(WoodTraining), - equip_time_millis: 400, + kind: Sword("WoodTraining"), + stats: ( + equip_time_millis: 400, + power: 0.50, + ), ) ), ) diff --git a/assets/common/items/weapons/sword/zweihander_sword_0.ron b/assets/common/items/weapons/sword/zweihander_sword_0.ron index a3bc54faa4..d68cef20d5 100644 --- a/assets/common/items/weapons/sword/zweihander_sword_0.ron +++ b/assets/common/items/weapons/sword/zweihander_sword_0.ron @@ -1,10 +1,13 @@ Item( - name: "Sturdy Bihander", - description: "Two-Hand Sword\n\nPower: 2-10\n\n", + name: "Sturdy Zweihander", + description: "It's a big sword, and sharp too.", kind: Tool( ( - kind: Sword(Zweihander0), - equip_time_millis: 500, + kind: Sword("Zweihander0"), + stats: ( + equip_time_millis: 500, + power: 1.50, + ), ) ), ) diff --git a/assets/common/items/weapons/tool/broom.ron b/assets/common/items/weapons/tool/broom.ron index 8edc349d37..a4343a6a7d 100644 --- a/assets/common/items/weapons/tool/broom.ron +++ b/assets/common/items/weapons/tool/broom.ron @@ -1,10 +1,13 @@ Item( name: "Broom", - description: "", + description: "It's beginning to fall apart.", kind: Tool ( ( - kind: Farming(Broom), - equip_time_millis: 400, + kind: Farming("Broom"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/weapons/tool/fishing_rod.ron b/assets/common/items/weapons/tool/fishing_rod.ron index 4c28cd5598..03a66f82c1 100644 --- a/assets/common/items/weapons/tool/fishing_rod.ron +++ b/assets/common/items/weapons/tool/fishing_rod.ron @@ -1,10 +1,13 @@ Item( name: "Fishing Rod", - description: "", + description: "Smells of fish.", kind: Tool ( ( - kind: Farming(FishingRod0), - equip_time_millis: 400, + kind: Farming("FishingRod0"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/weapons/tool/hoe.ron b/assets/common/items/weapons/tool/hoe.ron index 528eb22309..a9551af028 100644 --- a/assets/common/items/weapons/tool/hoe.ron +++ b/assets/common/items/weapons/tool/hoe.ron @@ -1,10 +1,13 @@ Item( name: "Hoe", - description: "", + description: "It's stained with dirt.", kind: Tool ( ( - kind: Farming(Hoe0), - equip_time_millis: 400, + kind: Farming("Hoe0"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/weapons/tool/pickaxe.ron b/assets/common/items/weapons/tool/pickaxe.ron index 197724284b..00bf38958f 100644 --- a/assets/common/items/weapons/tool/pickaxe.ron +++ b/assets/common/items/weapons/tool/pickaxe.ron @@ -1,10 +1,13 @@ Item( name: "Pickaxe", - description: "", + description: "It has a chipped edge.", kind: Tool ( ( - kind: Farming(Pickaxe0), - equip_time_millis: 400, + kind: Farming("Pickaxe0"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/weapons/tool/pitchfork.ron b/assets/common/items/weapons/tool/pitchfork.ron index ca2474db74..d1887c4908 100644 --- a/assets/common/items/weapons/tool/pitchfork.ron +++ b/assets/common/items/weapons/tool/pitchfork.ron @@ -1,10 +1,13 @@ Item( name: "Pitchfork", - description: "", + description: "One of the prongs is broken.", kind: Tool ( ( - kind: Farming(Pitchfork), - equip_time_millis: 400, + kind: Farming("Pitchfork"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/weapons/tool/rake.ron b/assets/common/items/weapons/tool/rake.ron index 43aa815603..6b210a92f0 100644 --- a/assets/common/items/weapons/tool/rake.ron +++ b/assets/common/items/weapons/tool/rake.ron @@ -1,10 +1,13 @@ Item( name: "Rake", - description: "", + description: "Held together with twine.", kind: Tool ( ( - kind: Farming(Rake), - equip_time_millis: 400, + kind: Farming("Rake"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/weapons/tool/shovel-0.ron b/assets/common/items/weapons/tool/shovel-0.ron index 2cd8adb761..6f30d8356d 100644 --- a/assets/common/items/weapons/tool/shovel-0.ron +++ b/assets/common/items/weapons/tool/shovel-0.ron @@ -1,10 +1,13 @@ Item( name: "Shovel", - description: "", + description: "It's covered in manure.", kind: Tool ( ( - kind: Farming(Shovel0), - equip_time_millis: 400, + kind: Farming("Shovel0"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), ) ), ) diff --git a/assets/common/items/weapons/tool/shovel-1.ron b/assets/common/items/weapons/tool/shovel-1.ron index 033d72b89a..e4db84bbfe 100644 --- a/assets/common/items/weapons/tool/shovel-1.ron +++ b/assets/common/items/weapons/tool/shovel-1.ron @@ -1,10 +1,13 @@ Item( name: "Shovel", - description: "", + description: "It's been recently cleaned.", kind: Tool ( ( - kind: Farming(Shovel1), - equip_time_millis: 400, + kind: Farming("Shovel1"), + stats: ( + equip_time_millis: 400, + power: 1.00, + ), ) ), ) diff --git a/assets/common/loot_table.ron b/assets/common/loot_table.ron index fa609e55c6..0b00677652 100644 --- a/assets/common/loot_table.ron +++ b/assets/common/loot_table.ron @@ -49,15 +49,91 @@ (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 - (1, "common.items.weapons.axe.starter_axe"), + (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 - (1, "common.items.weapons.staff.staff_nature"), - (1, "common.items.weapons.staff.starter_staff"), + (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 - (1, "common.items.weapons.hammer.starter_hammer"), + (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 - (1, "common.items.weapons.bow.starter_bow"), + (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"), diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index 8ce9de1f25..22e221deeb 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -278,6 +278,14 @@ "mouflon": { "keyword": "mouflon", "generic": "Mouflon" + }, + "catoblepas": { + "keyword": "catoblepas", + "generic": "Catoblepas" + }, + "bonerattler": { + "keyword": "bonerattler", + "generic": "Bonerattler" } } }, @@ -441,6 +449,18 @@ "hyena": { "keyword": "hyena", "generic": "Hyena" + }, + "rabbit": { + "keyword": "rabbit", + "generic": "Rabbit" + }, + "truffler": { + "keyword": "truffler", + "generic": "Truffler" + }, + "frog": { + "keyword": "frog", + "generic": "Frog" } } }, @@ -501,6 +521,14 @@ "cyclops": { "keyword": "cyclops", "generic": "Cyclops" + }, + "wendigo": { + "keyword": "wendigo", + "generic": "Wendigo" + }, + "troll": { + "keyword": "troll", + "generic": "Troll" } } }, @@ -633,6 +661,10 @@ "pangolin": { "keyword": "pangolin", "generic": "Pangolin" + }, + "maneater": { + "keyword": "maneater", + "generic": "Maneater" } } } diff --git a/assets/voxygen/i18n/de_DE.ron b/assets/voxygen/i18n/de_DE.ron index 1e0c591b3b..e267bbc22c 100644 --- a/assets/voxygen/i18n/de_DE.ron +++ b/assets/voxygen/i18n/de_DE.ron @@ -92,6 +92,8 @@ VoxygenLocalization( /// Start Main screen section "main.connecting": "Verbinde ", "main.creating_world": "Erschaffe Welt ", + "main.tip": "Tip:", + "hud.settings.loading_tips": "Ladebildschirm Tips", /// Start Main screen section @@ -118,14 +120,11 @@ Danke, dass Ihr Euch die Zeit genommen habt diese Zeilen zu lesen und wir hoffen /// Login process description "main.login_process": r#"Information zum Login: -Zum Spielen wird ein Account benötigt. - -Diesen könnt Ihr Euch hier erstellen: +Erstellt euch hier einen Account zum Spielen: https://account.veloren.net. -Aktuell wird nur das Aussehen -eurer erstellen Charaktere gespeichert."#, +"#, "main.login.server_not_found": "Server nicht gefunden.", "main.login.authentication_error": "Authentifizierung fehlgeschlagen", "main.login.server_full": "Server ist voll", diff --git a/assets/voxygen/i18n/es_la.ron b/assets/voxygen/i18n/es_la.ron index 092de3d000..237643234b 100644 --- a/assets/voxygen/i18n/es_la.ron +++ b/assets/voxygen/i18n/es_la.ron @@ -54,7 +54,7 @@ VoxygenLocalization( "common.interface": "Interfaz", "common.gameplay": "Jugabilidad", "common.controls": "Controles", - "common.video": "Video", + "common.video": "Gráficos", "common.sound": "Sonido", "common.resume": "Continuar", "common.characters": "Personajes", @@ -86,7 +86,7 @@ El cliente esta actualizado?"#, "common.weapons.axe": "Hacha", "common.weapons.sword": "Espada", - "common.weapons.staff": "Baston", + "common.weapons.staff": "Báculo", "common.weapons.bow": "Arco", "common.weapons.hammer": "Martillo", /// End Common section @@ -99,16 +99,16 @@ El cliente esta actualizado?"#, // Welcome notice that appears the first time Veloren is started "main.notice": r#"Bienvenido a la version alfa de Veloren! -Antes de que te diviertas, por favor ten algunas cosas en mente: +Antes de que te diviertas, por favor ten en cuenta lo siguiente: -- Esta es una alfa muy temprana, espera fallos, jugabilidad extremadamente incompleta, mecanicas sin pulir y caracteristicas faltantes. +- Esta es una alfa muy temprana, espera fallos, jugabilidad extremadamente incompleta, mecánicas sin pulir y características faltantes. -- Si tienes criticas constructivas o reportes de fallos, puedes contactarnos por reddit, GitLab, o el server de Discord de nuestra comunidad. +- Si tienes críticas constructivas o reportes de fallos, puedes contactarnos por reddit, GitLab, o por el server de Discord de nuestra comunidad. -- Veloren esta licenciado bajo la licencia GPL 3 open-source (codigo abierto). -Eso significa que tienes la libertad de jugar, modificar, y redistribuir el juego como desees (siempre y cuando dicho trabajo tambien este licenciado como GPL 3). +- Veloren esta licenciado bajo la licencia GPL 3 open-source (código abierto). +Eso significa que tienes la libertad de jugar, modificar, y redistribuir el juego como desees (siempre y cuando dicho trabajo también este licenciado como GPL 3). -- Veloren es un proyecto de la comunidad sin animo de lucro, y todos los que trabajan en el son voluntarios. +- Veloren es un proyecto en comunidad sin ánimo de lucro, y todos los que trabajan en el son voluntarios. Si te gusta lo que ves, eres bienvenido a unirte a los equipos de desarrollo o de arte! Gracias por tomarte el tiempo de leer este mensaje, esperamos que disfrutes el juego! @@ -129,15 +129,15 @@ https://account.veloren.net."#, "main.login.server_not_found": "No se encontró el servidor", "main.login.authentication_error": "Error de autenticación en el servidor", "main.login.server_full": "El servidor esta lleno", - "main.login.untrusted_auth_server": "El servidor de autenticacion no es confiable", + "main.login.untrusted_auth_server": "El servidor de autenticación no es confiable", "main.login.outdated_client_or_server": "ServidorEnloquecido: Probablemente las versiones son incompatibles, intenta actualizar tu cliente.", "main.login.timeout": "Tiempo de espera agotado: El servidor no respondio a tiempo. (Puede estar sobrecargado o tener problemas de red).", - "main.login.server_shut_down": "El servidor se apago", - "main.login.already_logged_in": "Ya tienes una sesion iniciada en el servidor.", + "main.login.server_shut_down": "El servidor se apagó", + "main.login.already_logged_in": "Ya estas en una sesión en el servidor.", "main.login.network_error": "Error de red", "main.login.failed_sending_request": "El pedido al servidor de autenticacion fallo", - "main.login.invalid_character": "El personaje seleccionado no es valido", - "main.login.client_crashed": "El cliente crasheo", + "main.login.invalid_character": "El personaje seleccionado no es válido", + "main.login.client_crashed": "El cliente crasheó", "main.login.not_on_whitelist": "No estas en la lista blanca. Contacta al Dueño del Servidor si quieres unirte.", /// End Main screen section @@ -147,7 +147,7 @@ https://account.veloren.net."#, "hud.do_not_show_on_startup": "No muestres esto al iniciar", "hud.show_tips": "Mostrar Consejos", "hud.quests": "Misiones", - "hud.you_died": "Has Muerto", + "hud.you_died": "Moriste", "hud.waypoint_saved": "Marcador Guardado", "hud.press_key_to_show_keybindings_fmt": "Presiona {key} para mostrar los controles del teclado", @@ -177,35 +177,35 @@ https://account.veloren.net."#, Algunos consejos antes de que empieces: -Presiona F1 para ver los comandos del teclado disponibles. +Presiona F1 para ver los controles del teclado disponibles. Escribe /help en el chat para ver los comandos del chat Hay cofres y otros objetos que aparecen al azar en el Mundo! -Click-Derecho para recogerlos. +Presiona E para recogerlos. -Para usar lo que consigas de los cofres que abras abre tu inventario con 'B'. +Para usar lo que consigas de los cofres abre tu inventario con 'B'. Doble click en los objetos en tu bolsa para usarlos o equiparlos. -Deshazte de ellos haciendo click en ellos y luego fuera de la bolsa +Deshazte de ellos haciendo click en ellos y luego arrastralos fuera de la bolsa. Las noches pueden volverse bastante oscuras en Veloren. -Enciende tu farol escribiendo /lantern en el chat +Enciende tu farol escribiendo /lantern en el chat o presionando la G. Quieres liberar tu cursor para cerrar esta ventana? Presiona TAB! -Disfruta tu estadia en el Mundo de Veloren."#, +Disfruta tu estadía en el Mundo de Veloren."#, "hud.temp_quest_headline": r#"Porfavor, ayudanos Viajero!"#, "hud.temp_quest_text": r#"Calabozos llenos de cultistas malvados - han emergido alrededor de nuestros pacificos pueblos! + han emergido alrededor de nuestros pacíficos pueblos! Consigue alguien que te acompañe, re-abastecete con comida @@ -219,10 +219,10 @@ objetos infundidos con magia?"#, // Inventory "hud.bag.inventory": "Inventario de {playername}", - "hud.bag.stats_title": "Estadisticas de {playername}", + "hud.bag.stats_title": "Estadísticas de {playername}", "hud.bag.exp": "Exp", "hud.bag.armor": "Armadura", - "hud.bag.stats": "Estadisticas", + "hud.bag.stats": "Estadísticas", "hud.bag.head": "Cabeza", "hud.bag.neck": "Cuello", "hud.bag.tabard": "Tabardo", @@ -235,8 +235,8 @@ objetos infundidos con magia?"#, "hud.bag.back": "Espalda", "hud.bag.legs": "Piernas", "hud.bag.feet": "Pies", - "hud.bag.mainhand": "Mano Dominante", - "hud.bag.offhand": "Otra Mano", + "hud.bag.mainhand": "Mano Principal", + "hud.bag.offhand": "Mano Secundaria", // Map and Questlog @@ -260,28 +260,28 @@ objetos infundidos con magia?"#, "hud.settings.toggle_shortcuts": "Alternar Atajos", "hud.settings.toggle_bar_experience": "Alternar Barra de Experiencia", "hud.settings.scrolling_combat_text": "Texto de Combate con Desplazamiento", - "hud.settings.single_damage_number": "Números de Daño Singulares", + "hud.settings.single_damage_number": "Números de Daño Singular", "hud.settings.cumulated_damage": "Daño Acumulado", "hud.settings.incoming_damage": "Daño Recibido", "hud.settings.cumulated_incoming_damage": "Daño Recibido Acumulado", "hud.settings.speech_bubble": "Burbuja de Diálogo", "hud.settings.speech_bubble_dark_mode": "Burbuja de Diálogo en Modo Oscuro", "hud.settings.speech_bubble_icon": "Icono de Burbuja de Diálogo", - "hud.settings.energybar_numbers": "Números de la Barras de Energia", + "hud.settings.energybar_numbers": "Números de la Barra de Energia", "hud.settings.values": "Valores", "hud.settings.percentages": "Porcentajes", "hud.settings.chat": "Chat", - "hud.settings.background_transparency": "Transparencia de Fondo", + "hud.settings.background_transparency": "Transparencia del Fondo", "hud.settings.chat_character_name": "Nombres de Personajes en el chat", - "hud.settings.pan_sensitivity": "Sensibilidad de Desplazamiento", + "hud.settings.pan_sensitivity": "Sensibilidad de Desplazamiento de la Cámara", "hud.settings.zoom_sensitivity": "Sensibilidad del Zoom", "hud.settings.invert_scroll_zoom": "Invertir Desplazamiento de Zoom", "hud.settings.invert_mouse_y_axis": "Invertir eje Y del Ratón", - "hud.settings.enable_mouse_smoothing": "Suavizado de la Camara", + "hud.settings.enable_mouse_smoothing": "Suavizado de la Cámara", "hud.settings.free_look_behavior": "Comportamiento de vista libre", - "hud.settings.auto_walk_behavior": "Comportamiento al auto caminar", - "hud.settings.stop_auto_walk_on_input": "Parar de auto caminar al moverte", + "hud.settings.auto_walk_behavior": "Comportamiento al caminar automaticamente", + "hud.settings.stop_auto_walk_on_input": "Frenar caminata automática", "hud.settings.view_distance": "Distancia de Visión", "hud.settings.sprites_view_distance": "Distancia de Visión de Sprites", @@ -309,21 +309,21 @@ objetos infundidos con magia?"#, "hud.social": "Social", "hud.social.online": "En Linea", "hud.social.friends": "Amigos", - "hud.social.not_yet_available": "Aun no esta disponible", + "hud.social.not_yet_available": "Aún no esta disponible", "hud.social.faction": "Facción", "hud.social.play_online_fmt": "{nb_player} jugador(es) en linea", "hud.spell": "Hechizos", "hud.free_look_indicator": "Vista libre activa", - "hud.auto_walk_indicator": "Auto caminar activado", + "hud.auto_walk_indicator": "Caminata automática activa", /// End HUD section /// Start GameInput section - "gameinput.primary": "Ataque Basico", + "gameinput.primary": "Ataque Básico", "gameinput.secondary": "Ataque Secundario/Bloquear/Apuntar", "gameinput.slot1": "Ranura de Inventario Rápido 1", "gameinput.slot2": "Ranura de Inventario Rápido 2", @@ -335,14 +335,14 @@ objetos infundidos con magia?"#, "gameinput.slot8": "Ranura de Inventario Rápido 8", "gameinput.slot9": "Ranura de Inventario Rápido 9", "gameinput.slot10": "Ranura de Inventario Rápido 10", - "gameinput.swaploadout": "Intercambiar Equipamiento", + "gameinput.swaploadout": "Cambiar Equipamiento", "gameinput.togglecursor": "Alternar Cursor", "gameinput.help": "Alternar Ventana de Ayuda", "gameinput.toggleinterface": "Alternar Interfaz", "gameinput.toggledebug": "Alternar FPS y la Info de Depuración", "gameinput.screenshot": "Tomar Captura de Pantalla", "gameinput.toggleingameui": "Alternar Nombres", - "gameinput.fullscreen": "Alternar Pantalla Completa", + "gameinput.fullscreen": "Pantalla Completa", "gameinput.moveforward": "Moverse hacia Adelante", "gameinput.moveleft": "Moverse hacia la Izquierda", "gameinput.moveright": "Moverse hacia la Derecha", @@ -366,10 +366,10 @@ objetos infundidos con magia?"#, "gameinput.settings": "Configuración", "gameinput.respawn": "Re-aparecer", "gameinput.charge": "Cargar", - "gameinput.togglewield": "Alternar Empuñar", + "gameinput.togglewield": "Alternar empuñadura", "gameinput.interact": "Interactuar", "gameinput.freelook": "Vista Libre", - "gameinput.autowalk": "Auto Caminar", + "gameinput.autowalk": "Caminata Automática", "gameinput.dance": "Bailar", /// End GameInput section @@ -384,16 +384,16 @@ objetos infundidos con magia?"#, "char_selection.logout": "Cerrar Sesión", "char_selection.create_new_charater": "Crear Nuevo Personaje", "char_selection.creating_character": "Creando Personaje...", - "char_selection.character_creation": "Creacion de Personaje", + "char_selection.character_creation": "Creación de Personaje", "char_selection.human_default": "Humano por defecto", "char_selection.level_fmt": "Nivel {level_nb}", - "char_selection.uncanny_valley": "Valle Extraño", + "char_selection.uncanny_valley": "Valle Misterioso", "char_selection.plains_of_uncertainty": "Planicies de la Incertidumbre", "char_selection.beard": "Barba", "char_selection.hair_style": "Estilo de Pelo", - "char_selection.hair_color": "Color de pelo", - "char_selection.chest_color": "Color de Torso", + "char_selection.hair_color": "Color de Pelo", + "char_selection.chest_color": "Color del Torso", "char_selection.eye_color": "Color de Ojos", "char_selection.skin": "Piel", "char_selection.eyebrows": "Cejas", @@ -407,7 +407,7 @@ objetos infundidos con magia?"#, // Charater stats "character_window.character_stats": r#"Resistencia -Estado Fisico +Estado Físico Fuerza de Voluntad "#, @@ -415,49 +415,49 @@ Fuerza de Voluntad /// Start Escape Menu Section - "esc_menu.logout": "Cerrar Sesion", + "esc_menu.logout": "Cerrar Sesión", "esc_menu.quit_game": "Salir del Juego", /// End Escape Menu Section } vector_map: { "npc.speech.villager_under_attack": [ - "Ayuda, ¡Me estan atacando!", - "¡Ayuda! ¡Me estan atacando!", - "¡Auch! ¡Me estan atacando!", - "¡Auch! ¡Me estan atacando! Ayuda!", - "¡Ayudenme! ¡Me estan atacando!", - "¡Me estan atacando! ¡Ayuda!", - "¡Me estan atacando! ¡Ayudenme!", + "Ayuda, ¡Me están atacando!", + "¡Ayuda! ¡Me están atacando!", + "¡Auch! ¡Me están atacando!", + "¡Auch! ¡Me están atacando! ¡Ayuda!", + "¡Ayudenme! ¡Me están atacando!", + "¡Me están atacando! ¡Ayuda!", + "¡Me están atacando! ¡Ayudenme!", "¡Ayuda!", "¡Ayuda! ¡Ayuda!", "¡Ayuda! ¡Ayuda! ¡Ayuda!", - "¡Me estan atacando!", - "¡AAAHH! ¡Me estan atacando!", - "¡AAAHH! ¡Me estan atacando! ¡Ayuda!", - "Ayuda! Nos estan atacando!", + "¡Me están atacando!", + "¡AAAHH! ¡Me están atacando!", + "¡AAAHH! ¡Me están atacando! ¡Ayuda!", + "Ayuda! Nos están atacando!", "¡Ayuda! ¡Asesino!", "¡Ayuda! ¡Hay un asesino suelto!", - "¡Ayuda! ¡Estan intentando matarme!", - "Guardias, ¡Me estan atacando!", - "¡Guardias! ¡Me estan atacando!", - "¡Me estan atacando! ¡Guardias!", - "¡Ayuda! ¡Guardias! ¡Me estan atacando!", + "¡Ayuda! ¡están intentando matarme!", + "Guardias, ¡Me están atacando!", + "¡Guardias! ¡Me están atacando!", + "¡Me están atacando! ¡Guardias!", + "¡Ayuda! ¡Guardias! ¡Me están atacando!", "¡Guardias! ¡Vengan rapido!", - "¡Guardias! Guardias!", + "¡Guardias, Guardias!", "¡Guardias! ¡Me esta atacando un villano!", "¡Guardias, eliminen a este desagradable villano!", "¡Guardias! ¡Ahi esta el asesino!", - "¡Guardias! ¡Ayudenme!", - "¡No te saldras con la tuya! Guardias!", - "¡Seras despreciable!", - "¡Ayudenme!", - "¡Help! ¡Porfavor!", + "¡Guardias! ¡Ayúdenme!", + "No te saldrás con la tuya, ¡Guardias!", + "¡Serás despreciable!", + "¡Ayúdenme!", + "¡Ayuda! ¡Porfavor!", "¡Auch! ¡Guardias! ¡Ayuda!", "¡Vienen por mi!", "¡Ayuda! ¡Ayuda! Estoy siendo oprimido", "Ah, se nota que la violencia es parte del sistema.", - "¡Esto no es mas que un rasguño!" + "¡Esto no es más que un rasguño!" ], } ) diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 5f6e0daa18..b352dd9655 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -4,205 +4,506 @@ ({ // Weapons // Bows - Tool(Bow(ShortBow0)): VoxTrans( - "voxel.weapon.bow.shortbow-0", + Tool(Bow("ShortBow0")): VoxTrans( + "voxel.weapon.bow.shortbow_starter", + (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, + ), + Tool(Bow("WoodShortbow0")): VoxTrans( + "voxel.weapon.bow.shortbow_wood-0", + (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, + ), + Tool(Bow("WoodShortbow1")): VoxTrans( + "voxel.weapon.bow.shortbow_wood-1", + (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, + ), + Tool(Bow("LeafyShortbow0")): VoxTrans( + "voxel.weapon.bow.shortbow_leafy-0", + (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, + ), + Tool(Bow("WoodLongbow0")): VoxTrans( + "voxel.weapon.bow.longbow_wood-0", + (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, + ), + Tool(Bow("WoodLongbow1")): VoxTrans( + "voxel.weapon.bow.longbow_wood-1", + (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, + ), + Tool(Bow("LeafyLongbow0")): VoxTrans( + "voxel.weapon.bow.longbow_leafy-0", + (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, + ), + Tool(Bow("HornLongbow0")): VoxTrans( + "voxel.weapon.bow.longbow_horn-0", + (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, + ), + Tool(Bow("IronLongbow0")): VoxTrans( + "voxel.weapon.bow.longbow_iron-0", + (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, + ), + Tool(Bow("RareLongbow")): VoxTrans( + "voxel.weapon.bow.longbow_rare", (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, ), // Daggers - Tool(Dagger(BasicDagger)): VoxTrans( + Tool(Dagger("BasicDagger")): VoxTrans( "voxel.weapon.dagger.dagger_rusty", (0.0, 0.0, -4.0), (-120.0, 90.0, 0.0), 1.1, ), // Swords - Tool(Sword(Short0)): VoxTrans( + Tool(Sword("Short0")): VoxTrans( "voxel.weapon.sword.short_2h-0", (-3.0, 3.0, 0.0), (-135.0, 90.0, 0.0), 1.60, ), - Tool(Sword(BasicSword)): VoxTrans( + Tool(Sword("BasicSword")): VoxTrans( "voxel.weapon.sword.rusty_2h", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.3, ), - Tool(Sword(Zweihander0)): VoxTrans( + Tool(Sword("Zweihander0")): VoxTrans( "voxel.weapon.sword.zweihander_2h-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.2, ), - Tool(Sword(WoodTraining)): VoxTrans( + Tool(Sword("WoodTraining")): VoxTrans( "voxel.weapon.sword.wood_2h", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.3, ), - Tool(Sword(LongFine3)): VoxTrans( + Tool(Sword("LongFine3")): VoxTrans( "voxel.weapon.sword.long_2h_fine-3", (0.0, 9.0, 0.0), (-90.0, 90.0, 0.0), 2.4, ), - Tool(Sword(GreatswordDam0)): VoxTrans( + Tool(Sword("GreatswordDam0")): VoxTrans( "voxel.weapon.sword.greatsword_2h_dam-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordDam1)): VoxTrans( + Tool(Sword("GreatswordDam1")): VoxTrans( "voxel.weapon.sword.greatsword_2h_dam-1", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordDam2)): VoxTrans( + Tool(Sword("GreatswordDam2")): VoxTrans( "voxel.weapon.sword.greatsword_2h_dam-2", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordSimple0)): VoxTrans( + Tool(Sword("GreatswordSimple0")): VoxTrans( "voxel.weapon.sword.greatsword_2h_simple-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordSimple1)): VoxTrans( + Tool(Sword("GreatswordSimple1")): VoxTrans( "voxel.weapon.sword.greatsword_2h_simple-1", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordSimple2)): VoxTrans( + Tool(Sword("GreatswordSimple2")): VoxTrans( "voxel.weapon.sword.greatsword_2h_simple-2", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordOrn0)): VoxTrans( + Tool(Sword("GreatswordOrn0")): VoxTrans( "voxel.weapon.sword.greatsword_2h_orn-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordOrn1)): VoxTrans( + Tool(Sword("GreatswordOrn1")): VoxTrans( "voxel.weapon.sword.greatsword_2h_orn-1", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordOrn2)): VoxTrans( + Tool(Sword("GreatswordOrn2")): VoxTrans( "voxel.weapon.sword.greatsword_2h_orn-2", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordFine0)): VoxTrans( + Tool(Sword("GreatswordFine0")): VoxTrans( "voxel.weapon.sword.greatsword_2h_fine-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordFine1)): VoxTrans( + Tool(Sword("GreatswordFine1")): VoxTrans( "voxel.weapon.sword.greatsword_2h_fine-1", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(GreatswordFine2)): VoxTrans( + Tool(Sword("GreatswordFine2")): VoxTrans( "voxel.weapon.sword.greatsword_2h_fine-2", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongDam0)): VoxTrans( + Tool(Sword("LongDam0")): VoxTrans( "voxel.weapon.sword.long_2h_dam-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongDam1)): VoxTrans( + Tool(Sword("LongDam1")): VoxTrans( "voxel.weapon.sword.long_2h_dam-1", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongDam2)): VoxTrans( + Tool(Sword("LongDam2")): VoxTrans( "voxel.weapon.sword.long_2h_dam-2", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongDam3)): VoxTrans( + Tool(Sword("LongDam3")): VoxTrans( "voxel.weapon.sword.long_2h_dam-3", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongDam4)): VoxTrans( + Tool(Sword("LongDam4")): VoxTrans( "voxel.weapon.sword.long_2h_dam-4", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongDam5)): VoxTrans( + Tool(Sword("LongDam5")): VoxTrans( "voxel.weapon.sword.long_2h_dam-5", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongSimple0)): VoxTrans( + Tool(Sword("LongSimple0")): VoxTrans( "voxel.weapon.sword.long_2h_simple-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongSimple1)): VoxTrans( + Tool(Sword("LongSimple1")): VoxTrans( "voxel.weapon.sword.long_2h_simple-1", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongSimple2)): VoxTrans( + Tool(Sword("LongSimple2")): VoxTrans( "voxel.weapon.sword.long_2h_simple-2", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongSimple3)): VoxTrans( + Tool(Sword("LongSimple3")): VoxTrans( "voxel.weapon.sword.long_2h_simple-3", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongSimple4)): VoxTrans( + Tool(Sword("LongSimple4")): VoxTrans( "voxel.weapon.sword.long_2h_simple-4", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongSimple5)): VoxTrans( + Tool(Sword("LongSimple5")): VoxTrans( "voxel.weapon.sword.long_2h_simple-5", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongOrn0)): VoxTrans( + Tool(Sword("LongOrn0")): VoxTrans( "voxel.weapon.sword.long_2h_orn-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongOrn1)): VoxTrans( + Tool(Sword("LongOrn1")): VoxTrans( "voxel.weapon.sword.long_2h_orn-1", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongOrn2)): VoxTrans( + Tool(Sword("LongOrn2")): VoxTrans( "voxel.weapon.sword.long_2h_orn-2", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongOrn3)): VoxTrans( + Tool(Sword("LongOrn3")): VoxTrans( "voxel.weapon.sword.long_2h_orn-3", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongOrn4)): VoxTrans( + Tool(Sword("LongOrn4")): VoxTrans( "voxel.weapon.sword.long_2h_orn-4", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongOrn5)): VoxTrans( + Tool(Sword("LongOrn5")): VoxTrans( "voxel.weapon.sword.long_2h_orn-5", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongFine0)): VoxTrans( + Tool(Sword("LongFine0")): VoxTrans( "voxel.weapon.sword.long_2h_fine-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongFine1)): VoxTrans( + Tool(Sword("LongFine1")): VoxTrans( "voxel.weapon.sword.long_2h_fine-1", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongFine2)): VoxTrans( + Tool(Sword("LongFine2")): VoxTrans( "voxel.weapon.sword.long_2h_fine-2", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongFine3)): VoxTrans( + Tool(Sword("LongFine3")): VoxTrans( "voxel.weapon.sword.long_2h_fine-3", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongFine4)): VoxTrans( + Tool(Sword("LongFine4")): VoxTrans( "voxel.weapon.sword.long_2h_fine-4", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(LongFine5)): VoxTrans( + Tool(Sword("LongFine5")): VoxTrans( "voxel.weapon.sword.long_2h_fine-5", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), - Tool(Sword(CultPurp0)): VoxTrans( + Tool(Sword("CultPurp0")): VoxTrans( "voxel.weapon.sword.cultist_purp_2h-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.5, ), // Axes - Tool(Axe(BasicAxe)): VoxTrans( - "voxel.weapon.axe.rusty_2h", + Tool(Axe("BasicAxe")): VoxTrans( + "voxel.weapon.axe.2haxe_rusty", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("OrcAxe0")): VoxTrans( + "voxel.weapon.axe.2haxe_orc-0", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("WornIronAxe0")): VoxTrans( + "voxel.weapon.axe.2haxe_worn_iron-0", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("WornIronAxe1")): VoxTrans( + "voxel.weapon.axe.2haxe_worn_iron-1", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("WornIronAxe2")): VoxTrans( + "voxel.weapon.axe.2haxe_worn_iron-2", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("WornIronAxe3")): VoxTrans( + "voxel.weapon.axe.2haxe_worn_iron-3", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("WornIronAxe4")): VoxTrans( + "voxel.weapon.axe.2haxe_worn_iron-4", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("BronzeAxe0")): VoxTrans( + "voxel.weapon.axe.2haxe_bronze-0", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("BronzeAxe1")): VoxTrans( + "voxel.weapon.axe.2haxe_bronze-1", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe0")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-0", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe1")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-1", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe2")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-2", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe3")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-3", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe4")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-4", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe5")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-5", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe6")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-6", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe7")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-7", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe8")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-8", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe8")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-8", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("IronAxe9")): VoxTrans( + "voxel.weapon.axe.2haxe_iron-9", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("SteelAxe0")): VoxTrans( + "voxel.weapon.axe.2haxe_steel-0", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("SteelAxe1")): VoxTrans( + "voxel.weapon.axe.2haxe_steel-1", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("SteelAxe2")): VoxTrans( + "voxel.weapon.axe.2haxe_steel-2", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("SteelAxe3")): VoxTrans( + "voxel.weapon.axe.2haxe_steel-3", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("SteelAxe4")): VoxTrans( + "voxel.weapon.axe.2haxe_steel-4", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("SteelAxe5")): VoxTrans( + "voxel.weapon.axe.2haxe_steel-5", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("SteelAxe6")): VoxTrans( + "voxel.weapon.axe.2haxe_steel-6", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("BloodsteelAxe0")): VoxTrans( + "voxel.weapon.axe.2haxe_bloodsteel-0", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("BloodsteelAxe1")): VoxTrans( + "voxel.weapon.axe.2haxe_bloodsteel-1", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("BloodsteelAxe2")): VoxTrans( + "voxel.weapon.axe.2haxe_bloodsteel-2", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("CobaltAxe0")): VoxTrans( + "voxel.weapon.axe.2haxe_cobalt-0", + (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, + ), + Tool(Axe("MalachiteAxe0")): VoxTrans( + "voxel.weapon.axe.2haxe_malachite-0", (1.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.2, ), // Hammers - Tool(Hammer(BasicHammer)): VoxTrans( - "voxel.weapon.hammer.rusty_2h", + Tool(Hammer("BasicHammer")): VoxTrans( + "voxel.weapon.hammer.2hhammer_rusty", (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, - ), + ), + Tool(Hammer("WoodHammer0")): VoxTrans( + "voxel.weapon.hammer.2hhammer_wood-0", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("FlimsyHammer")): VoxTrans( + "voxel.weapon.hammer.2hhammer_flimsy", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("StoneHammer0")): VoxTrans( + "voxel.weapon.hammer.2hhammer_stone-0", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("StoneHammer1")): VoxTrans( + "voxel.weapon.hammer.2hhammer_stone-1", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("StoneHammer2")): VoxTrans( + "voxel.weapon.hammer.2hhammer_stone-2", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("StoneHammer3")): VoxTrans( + "voxel.weapon.hammer.2hhammer_stone-3", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("WornIronHammer0")): VoxTrans( + "voxel.weapon.hammer.2hhammer_worn_iron-0", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("WornIronHammer1")): VoxTrans( + "voxel.weapon.hammer.2hhammer_worn_iron-1", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("WornIronHammer2")): VoxTrans( + "voxel.weapon.hammer.2hhammer_worn_iron-2", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("WornIronHammer3")): VoxTrans( + "voxel.weapon.hammer.2hhammer_worn_iron-3", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("BronzeHammer0")): VoxTrans( + "voxel.weapon.hammer.2hhammer_bronze-0", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("BronzeHammer1")): VoxTrans( + "voxel.weapon.hammer.2hhammer_bronze-1", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("IronHammer0")): VoxTrans( + "voxel.weapon.hammer.2hhammer_iron-0", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("IronHammer1")): VoxTrans( + "voxel.weapon.hammer.2hhammer_iron-1", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("IronHammer2")): VoxTrans( + "voxel.weapon.hammer.2hhammer_iron-2", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("IronHammer3")): VoxTrans( + "voxel.weapon.hammer.2hhammer_iron-3", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("IronHammer4")): VoxTrans( + "voxel.weapon.hammer.2hhammer_iron-4", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("IronHammer5")): VoxTrans( + "voxel.weapon.hammer.2hhammer_iron-5", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("IronHammer6")): VoxTrans( + "voxel.weapon.hammer.2hhammer_iron-6", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("IronHammer7")): VoxTrans( + "voxel.weapon.hammer.2hhammer_iron-7", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("IronHammer8")): VoxTrans( + "voxel.weapon.hammer.2hhammer_iron-8", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("SteelHammer0")): VoxTrans( + "voxel.weapon.hammer.2hhammer_steel-0", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("SteelHammer1")): VoxTrans( + "voxel.weapon.hammer.2hhammer_steel-1", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("SteelHammer2")): VoxTrans( + "voxel.weapon.hammer.2hhammer_steel-2", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("SteelHammer3")): VoxTrans( + "voxel.weapon.hammer.2hhammer_steel-3", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("SteelHammer4")): VoxTrans( + "voxel.weapon.hammer.2hhammer_steel-4", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("SteelHammer5")): VoxTrans( + "voxel.weapon.hammer.2hhammer_steel-5", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("CobaltHammer0")): VoxTrans( + "voxel.weapon.hammer.2hhammer_Cobalt-0", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("CobaltHammer1")): VoxTrans( + "voxel.weapon.hammer.2hhammer_Cobalt-1", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("RunicHammer")): VoxTrans( + "voxel.weapon.hammer.2hhammer_runic", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("RamsheadHammer")): VoxTrans( + "voxel.weapon.hammer.2hhammer_ramshead", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), + Tool(Hammer("Mjolnir")): VoxTrans( + "voxel.weapon.hammer.2hhammer_mjolnir", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), // Staffs - Tool(Staff(BasicStaff)): VoxTrans( - "voxel.weapon.staff.wood-fire", + Tool(Staff("BasicStaff")): VoxTrans( + "voxel.weapon.staff.firestaff_starter", (1.0, 0.0, 0.0), (-310., 90.0, 0.0), 1.2, ), - Tool(Staff(Sceptre)): VoxTrans( + Tool(Staff("BoneStaff")): VoxTrans( + "voxel.weapon.staff.firestaff_bone", + (1.0, 0.0, 0.0), (-310., 90.0, 0.0), 1.2, + ), + Tool(Staff("AmethystStaff")): VoxTrans( + "voxel.weapon.staff.firestaff_amethyst", + (1.0, 0.0, 0.0), (-310., 90.0, 0.0), 1.2, + ), + Tool(Staff("CultistStaff")): VoxTrans( + "voxel.weapon.staff.firestaff_cultist", + (1.0, 0.0, 0.0), (-310., 90.0, 0.0), 1.2, + ), + // Healing staff + Tool(Staff("Sceptre")): VoxTrans( "voxel.weapon.staff.wood-nature", (1.0, -1.0, 0.0), (-310., 90.0, 0.0), 1.2, ), // Shields - Tool(Shield(BasicShield)): VoxTrans( + Tool(Shield("BasicShield")): VoxTrans( "voxel.weapon.shield.wood-0", (0.0, 0.0, 0.0), (-90.0, 90.0, 0.0), 2.4, ), @@ -220,43 +521,43 @@ "element.icons.lantern_red-0", ), // Farming Equipment - Tool(Farming(Broom)): VoxTrans( + Tool(Farming("Broom")): VoxTrans( "voxel.weapon.tool.broom-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.1, ), - Tool(Farming(Hoe0)): VoxTrans( + Tool(Farming("Hoe0")): VoxTrans( "voxel.weapon.tool.hoe_green", (0.0, 0.0, 0.0), (130.0, 35.0, 180.0), 1.0, ), - Tool(Farming(Hoe1)): VoxTrans( + Tool(Farming("Hoe1")): VoxTrans( "voxel.weapon.tool.hoe_blue", (0.0, 0.0, 0.0), (130.0, 35.0, 180.0), 1.0, ), - Tool(Farming(Pitchfork)): VoxTrans( + Tool(Farming("Pitchfork")): VoxTrans( "voxel.weapon.tool.pitchfork-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.1, ), - Tool(Farming(Rake)): VoxTrans( + Tool(Farming("Rake")): VoxTrans( "voxel.weapon.tool.rake-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.0, ), - Tool(Farming(FishingRod0)): VoxTrans( + Tool(Farming("FishingRod0")): VoxTrans( "voxel.weapon.tool.fishing_rod_blue-0", (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.5, ), - Tool(Farming(FishingRod0)): VoxTrans( + Tool(Farming("FishingRod0")): VoxTrans( "voxel.weapon.tool.fishing_rod_orange-0", (0.0, 0.0, 0.0), (90.0, 90.0, 0.0), 1.0, ), - Tool(Farming(Pickaxe0)): VoxTrans( + Tool(Farming("Pickaxe0")): VoxTrans( "voxel.weapon.tool.pickaxe_green-0", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.0, ), - Tool(Farming(Shovel0)): VoxTrans( + Tool(Farming("Shovel0")): VoxTrans( "voxel.weapon.tool.shovel_green", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.2, ), - Tool(Farming(Shovel1)): VoxTrans( + Tool(Farming("Shovel1")): VoxTrans( "voxel.weapon.tool.shovel_gold", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.2, ), @@ -842,7 +1143,7 @@ (0.0, 0.0, 0.0), (-50.0, 30.0, 20.0), 0.8, ), // Debug Items - Tool(Debug(Boost)): VoxTrans( + Tool(Debug("Boost")): VoxTrans( "voxel.weapon.tool.broom_belzeshrub_purple", (0.0, 0.0, 0.0), (-135.0, 90.0, 0.0), 1.1, ), diff --git a/assets/voxygen/voxel/biped_large_center_manifest.ron b/assets/voxygen/voxel/biped_large_center_manifest.ron index bd6ec60904..78447fca21 100644 --- a/assets/voxygen/voxel/biped_large_center_manifest.ron +++ b/assets/voxygen/voxel/biped_large_center_manifest.ron @@ -9,8 +9,12 @@ center: ("npc.ogre.male.torso_upper"), ), torso_lower: ( - offset: (-5.0, -4.5, -4.5), + offset: (-5.0, -4.5, -9.0), center: ("npc.ogre.male.torso_lower"), + ), + main: ( + offset: (-8.0, -4.5, -5.0), + center: ("armor.empty"), ) ), (Ogre, Female): ( @@ -23,8 +27,12 @@ center: ("npc.ogre.male.torso_upper"), ), torso_lower: ( - offset: (-5.0, -4.5, -4.5), + offset: (-5.0, -4.5, -9.0), center: ("npc.ogre.male.torso_lower"), + ), + main: ( + offset: (-8.0, -4.5, -5.0), + center: ("armor.empty"), ) ), (Cyclops, Male): ( @@ -37,8 +45,12 @@ center: ("npc.cyclops.male.torso_upper"), ), torso_lower: ( - offset: (-6.0, -5.5, -6.0), + offset: (-6.0, -5.5, -12.0), center: ("npc.cyclops.male.torso_lower"), + ), + main: ( + offset: (-5.0, -6.5, -4.0), + center: ("npc.cyclops.male.hammer"), ) ), (Cyclops, Female): ( @@ -51,8 +63,84 @@ center: ("npc.cyclops.male.torso_upper"), ), torso_lower: ( - offset: (-6.0, -5.5, -6.0), + offset: (-6.0, -5.5, -12.0), center: ("npc.cyclops.male.torso_lower"), + ), + main: ( + offset: (-5.0, -6.5, -4.0), + center: ("npc.cyclops.male.hammer"), + ) + ), + (Wendigo, Male): ( + head: ( + offset: (-15.0, -4.5, -9.5), + center: ("npc.wendigo.male.head"), + ), + torso_upper: ( + offset: (-6.0, -5.5, -6.5), + center: ("npc.wendigo.male.torso_upper"), + ), + torso_lower: ( + offset: (-4.0, -2.0, -4.0), + center: ("npc.wendigo.male.torso_lower"), + ), + main: ( + offset: (-8.0, -4.5, -5.0), + center: ("armor.empty"), + ) + ), + (Wendigo, Female): ( + head: ( + offset: (-15.0, -4.5, -9.5), + center: ("npc.wendigo.male.head"), + ), + torso_upper: ( + offset: (-6.0, -5.5, -6.5), + center: ("npc.wendigo.male.torso_upper"), + ), + torso_lower: ( + offset: (-4.0, -2.0, -4.0), + center: ("npc.wendigo.male.torso_lower"), + ), + main: ( + offset: (-8.0, -4.5, -5.0), + center: ("armor.empty"), + ) + ), + (Troll, Male): ( + head: ( + offset: (-8.0, -8.5, -9.0), + center: ("npc.troll.male.head"), + ), + torso_upper: ( + offset: (-8.0, -7.5, -11.0), + center: ("npc.troll.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -3.5, -5.0), + center: ("npc.troll.male.torso_lower"), + ), + main: ( + offset: (-8.0, -4.5, -5.0), + center: ("armor.empty"), + ) + ), + (Troll, Female): ( + head: ( + offset: (-8.0, -8.5, -9.0), + center: ("npc.troll.male.head"), + ), + torso_upper: ( + offset: (-8.0, -7.5, -11.0), + center: ("npc.troll.male.torso_upper"), + ), + torso_lower: ( + offset: (-6.0, -3.5, -5.0), + center: ("npc.troll.male.torso_lower"), + ), + main: ( + offset: (-8.0, -4.5, -5.0), + center: ("armor.empty"), ) ), }) diff --git a/assets/voxygen/voxel/biped_large_lateral_manifest.ron b/assets/voxygen/voxel/biped_large_lateral_manifest.ron index 32a3a55245..f93a9bdf5c 100644 --- a/assets/voxygen/voxel/biped_large_lateral_manifest.ron +++ b/assets/voxygen/voxel/biped_large_lateral_manifest.ron @@ -135,4 +135,140 @@ lateral: ("npc.cyclops.male.foot_r"), ) ), + (Wendigo, Male): ( + shoulder_l: ( + offset: (-3.0, -4.0, -5.0), + lateral: ("npc.wendigo.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -4.0, -5.0), + lateral: ("npc.wendigo.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -3.5, -18.0), + lateral: ("npc.wendigo.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -3.5, -18.0), + lateral: ("npc.wendigo.male.hand_r"), + ), + leg_l: ( + offset: (-4.0, -2.5, -9.0), + lateral: ("npc.wendigo.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -2.5, -9.0), + lateral: ("npc.wendigo.male.leg_r"), + ), + foot_l: ( + offset: (-4.0, -5.0, -5.5), + lateral: ("npc.wendigo.male.foot_l"), + ), + foot_r: ( + offset: (-4.0, -5.0, -5.5), + lateral: ("npc.wendigo.male.foot_r"), + ) + ), + (Wendigo, Female): ( + shoulder_l: ( + offset: (-3.0, -4.0, -5.0), + lateral: ("npc.wendigo.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-3.0, -4.0, -5.0), + lateral: ("npc.wendigo.male.shoulder_r"), + ), + hand_l: ( + offset: (-4.0, -3.5, -18.0), + lateral: ("npc.wendigo.male.hand_l"), + ), + hand_r: ( + offset: (-4.0, -3.5, -18.0), + lateral: ("npc.wendigo.male.hand_r"), + ), + leg_l: ( + offset: (-4.0, -2.5, -9.0), + lateral: ("npc.wendigo.male.leg_l"), + ), + leg_r: ( + offset: (0.0, -2.5, -9.0), + lateral: ("npc.wendigo.male.leg_r"), + ), + foot_l: ( + offset: (-4.0, -5.0, -5.5), + lateral: ("npc.wendigo.male.foot_l"), + ), + foot_r: ( + offset: (-4.0, -5.0, -5.5), + lateral: ("npc.wendigo.male.foot_r"), + ) + ), + (Troll, Male): ( + shoulder_l: ( + offset: (-5.0, -4.5, -7.0), + lateral: ("npc.troll.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.0, -4.5, -7.0), + lateral: ("npc.troll.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -4.0, -15.0), + lateral: ("npc.troll.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -4.0, -15.0), + lateral: ("npc.troll.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -2.5, -4.5), + lateral: ("npc.troll.male.leg_l"), + ), + leg_r: ( + offset: (-3.0, -2.5, -4.5), + lateral: ("npc.troll.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll.male.foot_r"), + ) + ), + (Troll, Female): ( + shoulder_l: ( + offset: (-5.0, -4.5, -7.0), + lateral: ("npc.troll.male.shoulder_l"), + ), + shoulder_r: ( + offset: (-5.0, -4.5, -7.0), + lateral: ("npc.troll.male.shoulder_r"), + ), + hand_l: ( + offset: (-3.5, -4.0, -15.0), + lateral: ("npc.troll.male.hand_l"), + ), + hand_r: ( + offset: (-3.5, -4.0, -15.0), + lateral: ("npc.troll.male.hand_r"), + ), + leg_l: ( + offset: (-3.0, -2.5, -4.5), + lateral: ("npc.troll.male.leg_l"), + ), + leg_r: ( + offset: (-3.0, -2.5, -4.5), + lateral: ("npc.troll.male.leg_r"), + ), + foot_l: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll.male.foot_l"), + ), + foot_r: ( + offset: (-3.0, -5.0, -2.5), + lateral: ("npc.troll.male.foot_r"), + ) + ), }) diff --git a/assets/voxygen/voxel/bird_medium_center_manifest.ron b/assets/voxygen/voxel/bird_medium_center_manifest.ron index 7f79179c51..6657154280 100644 --- a/assets/voxygen/voxel/bird_medium_center_manifest.ron +++ b/assets/voxygen/voxel/bird_medium_center_manifest.ron @@ -57,7 +57,7 @@ ), (Goose, Male): ( head: ( - offset: (-2.0, -3.5, -2.5), + offset: (-2.0, -3.5, -0.0), center: ("npc.goose.male.head"), ), torso: ( @@ -71,7 +71,7 @@ ), (Goose, Female): ( head: ( - offset: (-2.0, -3.5, -2.5), + offset: (-2.0, -3.5, -0.0), center: ("npc.goose.male.head"), ), torso: ( @@ -85,7 +85,7 @@ ), (Peacock, Male): ( head: ( - offset: (-2.0, -1.5, -6.5), + offset: (-2.0, -1.5, -0.0), center: ("npc.peacock.male.head"), ), torso: ( @@ -99,7 +99,7 @@ ), (Peacock, Female): ( head: ( - offset: (-2.0, -1.5, -6.5), + offset: (-2.0, -1.5, -0.0), center: ("npc.peacock.female.head"), ), torso: ( @@ -197,7 +197,7 @@ ), (Cockatrice, Male): ( head: ( - offset: (-2.5, -3.5, -8.0), + offset: (-2.5, 0.0, -8.0), center: ("npc.cockatrice.male.head"), ), torso: ( @@ -211,7 +211,7 @@ ), (Cockatrice, Female): ( head: ( - offset: (-2.5, -3.5, -8.0), + offset: (-2.5, 0.0, -8.0), center: ("npc.cockatrice.male.head"), ), torso: ( diff --git a/assets/voxygen/voxel/dragon_center_manifest.ron b/assets/voxygen/voxel/dragon_center_manifest.ron index 953e6bf35a..317e5183b1 100644 --- a/assets/voxygen/voxel/dragon_center_manifest.ron +++ b/assets/voxygen/voxel/dragon_center_manifest.ron @@ -17,7 +17,7 @@ center: ("npc.reddragon.male.chest_front"), ), chest_rear: ( - offset: (-6.5, -7.0, -7.0), + offset: (-6.5, -13.0, -7.0), center: ("npc.reddragon.male.chest_rear"), ), tail_front: ( @@ -47,7 +47,7 @@ center: ("npc.reddragon.male.chest_front"), ), chest_rear: ( - offset: (-6.5, -7.0, -7.0), + offset: (-6.5, -13.0, -7.0), center: ("npc.reddragon.male.chest_rear"), ), tail_front: ( diff --git a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron index 3efea95da9..f9269bbe00 100644 --- a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron +++ b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron @@ -1,269 +1,550 @@ ({ //Swords - Sword(BasicSword): ( + Sword("BasicSword"): ( vox_spec: ("weapon.sword.rusty_2h", (-1.5, -6.5, -4.0)), color: None ), - Sword(Rapier): ( + Sword("Rapier"): ( vox_spec: ("weapon.sword.rusty_2h", (-1.5, -6.5, -4.0)), color: None ), - Sword(WoodTraining): ( + Sword("WoodTraining"): ( vox_spec: ("weapon.sword.wood_2h", (-1.5, -6.5, -4.0)), color: None ), - Sword(Zweihander0): ( + Sword("Zweihander0"): ( vox_spec: ("weapon.sword.zweihander_2h-0", (-1.5, -6.5, -4.0)), color: None ), - Sword(Short0): ( + Sword("Short0"): ( vox_spec: ("weapon.sword.short_2h-0", (-1.5, -6.5, -1.0)), color: None ), - Sword(GreatswordDam0): ( + Sword("GreatswordDam0"): ( vox_spec: ("weapon.sword.greatsword_2h_dam-0", (-1.0, -4.5, -6.5)), color: None ), - Sword(GreatswordDam1): ( + Sword("GreatswordDam1"): ( vox_spec: ("weapon.sword.greatsword_2h_dam-1", (-1.0, -4.5, -6.5)), color: None ), - Sword(GreatswordDam2): ( + Sword("GreatswordDam2"): ( vox_spec: ("weapon.sword.greatsword_2h_dam-2", (-1.0, -4.5, -6.5)), color: None ), - Sword(GreatswordSimple0): ( + Sword("GreatswordSimple0"): ( vox_spec: ("weapon.sword.greatsword_2h_simple-0", (-1.0, -4.5, -6.5)), color: None ), - Sword(GreatswordSimple1): ( + Sword("GreatswordSimple1"): ( vox_spec: ("weapon.sword.greatsword_2h_simple-1", (-1.0, -4.5, -6.5)), color: None ), - Sword(GreatswordSimple2): ( + Sword("GreatswordSimple2"): ( vox_spec: ("weapon.sword.greatsword_2h_simple-2", (-1.0, -4.5, -6.5)), color: None ), - Sword(GreatswordOrn0): ( + Sword("GreatswordOrn0"): ( vox_spec: ("weapon.sword.greatsword_2h_orn-0", (-1.0, -4.5, -7.5)), color: None ), - Sword(GreatswordOrn1): ( + Sword("GreatswordOrn1"): ( vox_spec: ("weapon.sword.greatsword_2h_orn-1", (-1.0, -4.5, -7.5)), color: None ), - Sword(GreatswordOrn2): ( + Sword("GreatswordOrn2"): ( vox_spec: ("weapon.sword.greatsword_2h_orn-2", (-1.0, -4.5, -7.5)), color: None ), - Sword(GreatswordFine0): ( + Sword("GreatswordFine0"): ( vox_spec: ("weapon.sword.greatsword_2h_fine-0", (-2.0, -6.5, -8.0)), color: None ), - Sword(GreatswordFine1): ( + Sword("GreatswordFine1"): ( vox_spec: ("weapon.sword.greatsword_2h_fine-1", (-2.0, -6.5, -8.0)), color: None ), - Sword(GreatswordFine2): ( + Sword("GreatswordFine2"): ( vox_spec: ("weapon.sword.greatsword_2h_fine-2", (-2.0, -6.5, -8.0)), color: None ), - Sword(LongDam0): ( + Sword("LongDam0"): ( vox_spec: ("weapon.sword.long_2h_dam-0", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongDam1): ( + Sword("LongDam1"): ( vox_spec: ("weapon.sword.long_2h_dam-1", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongDam2): ( + Sword("LongDam2"): ( vox_spec: ("weapon.sword.long_2h_dam-2", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongDam3): ( + Sword("LongDam3"): ( vox_spec: ("weapon.sword.long_2h_dam-3", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongDam4): ( + Sword("LongDam4"): ( vox_spec: ("weapon.sword.long_2h_dam-4", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongDam5): ( + Sword("LongDam5"): ( vox_spec: ("weapon.sword.long_2h_dam-5", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongSimple0): ( + Sword("LongSimple0"): ( vox_spec: ("weapon.sword.long_2h_simple-0", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongSimple1): ( + Sword("LongSimple1"): ( vox_spec: ("weapon.sword.long_2h_simple-1", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongSimple2): ( + Sword("LongSimple2"): ( vox_spec: ("weapon.sword.long_2h_simple-2", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongSimple3): ( + Sword("LongSimple3"): ( vox_spec: ("weapon.sword.long_2h_simple-3", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongSimple4): ( + Sword("LongSimple4"): ( vox_spec: ("weapon.sword.long_2h_simple-4", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongSimple5): ( + Sword("LongSimple5"): ( vox_spec: ("weapon.sword.long_2h_simple-5", (-1.0, -3.5, -5.0)), color: None ), - Sword(LongOrn0): ( + Sword("LongOrn0"): ( vox_spec: ("weapon.sword.long_2h_orn-0", (-1.0, -3.5, -6.0)), color: None ), - Sword(LongOrn1): ( + Sword("LongOrn1"): ( vox_spec: ("weapon.sword.long_2h_orn-1", (-1.0, -3.5, -6.0)), color: None ), - Sword(LongOrn2): ( + Sword("LongOrn2"): ( vox_spec: ("weapon.sword.long_2h_orn-2", (-1.0, -3.5, -6.0)), color: None ), - Sword(LongOrn3): ( + Sword("LongOrn3"): ( vox_spec: ("weapon.sword.long_2h_orn-3", (-1.0, -3.5, -6.0)), color: None ), - Sword(LongOrn4): ( + Sword("LongOrn4"): ( vox_spec: ("weapon.sword.long_2h_orn-4", (-1.0, -3.5, -6.0)), color: None ), - Sword(LongOrn5): ( + Sword("LongOrn5"): ( vox_spec: ("weapon.sword.long_2h_orn-5", (-1.0, -3.5, -6.0)), color: None ), - Sword(LongFine0): ( + Sword("LongFine0"): ( vox_spec: ("weapon.sword.long_2h_fine-0", (-2.0, -4.5, -6.0)), color: None ), - Sword(LongFine1): ( + Sword("LongFine1"): ( vox_spec: ("weapon.sword.long_2h_fine-1", (-2.0, -4.5, -6.0)), color: None ), - Sword(LongFine2): ( + Sword("LongFine2"): ( vox_spec: ("weapon.sword.long_2h_fine-2", (-2.0, -4.5, -6.0)), color: None ), - Sword(LongFine3): ( + Sword("LongFine3"): ( vox_spec: ("weapon.sword.long_2h_fine-3", (-2.0, -4.5, -6.0)), color: None ), - Sword(LongFine4): ( + Sword("LongFine4"): ( vox_spec: ("weapon.sword.long_2h_fine-4", (-2.0, -4.5, -6.0)), color: None ), - Sword(LongFine5): ( + Sword("LongFine5"): ( vox_spec: ("weapon.sword.long_2h_fine-5", (-2.0, -4.5, -6.0)), color: None ), - Sword(CultPurp0): ( + Sword("CultPurp0"): ( vox_spec: ("weapon.sword.cultist_purp_2h-0", (-2.0, -4.5, -7.5)), color: None ), - Axe(BasicAxe): ( - vox_spec: ("weapon.axe.rusty_2h", (-1.5, -5.0, -4.0)), + // Axes + Axe("BasicAxe"): ( + vox_spec: ("weapon.axe.2haxe_rusty", (-1.5, -5.0, -4.0)), + color: None + ), + Axe("OrcAxe0"): ( + vox_spec: ("weapon.axe.2haxe_orc-0", (-1.5, -3.0, -4.5)), + color: None + ), + Axe("WornIronAxe0"): ( + vox_spec: ("weapon.axe.2haxe_worn_iron-0", (-1.5, -3.0, -4.0)), + color: None + ), + Axe("WornIronAxe1"): ( + vox_spec: ("weapon.axe.2haxe_worn_iron-1", (-1.5, -4.0, -4.0)), + color: None + ), + Axe("WornIronAxe2"): ( + vox_spec: ("weapon.axe.2haxe_worn_iron-2", (-1.5, -4.0, -4.0)), + color: None + ), + Axe("WornIronAxe3"): ( + vox_spec: ("weapon.axe.2haxe_worn_iron-3", (-1.5, -4.5, -4.0)), + color: None + ), + Axe("WornIronAxe4"): ( + vox_spec: ("weapon.axe.2haxe_worn_iron-4", (-1.5, -4.0, -5.5)), + color: None + ), + Axe("BronzeAxe0"): ( + vox_spec: ("weapon.axe.2haxe_bronze-0", (-1.5, -4.0, -4.5)), + color: None + ), + Axe("BronzeAxe1"): ( + vox_spec: ("weapon.axe.2haxe_bronze-1", (-1.5, -3.0, -5.5)), + color: None + ), + Axe("IronAxe0"): ( + vox_spec: ("weapon.axe.2haxe_iron-0", (-1.5, -5.0, -5.5)), + color: None + ), + Axe("IronAxe1"): ( + vox_spec: ("weapon.axe.2haxe_iron-1", (-1.5, -5.0, -5.5)), + color: None + ), + Axe("IronAxe2"): ( + vox_spec: ("weapon.axe.2haxe_iron-2", (-1.5, -5.0, -5.5)), + color: None + ), + Axe("IronAxe3"): ( + vox_spec: ("weapon.axe.2haxe_iron-3", (-1.5, -6.0, -6.5)), + color: None + ), + Axe("IronAxe4"): ( + vox_spec: ("weapon.axe.2haxe_iron-4", (-1.5, -6.0, -5.5)), + color: None + ), + Axe("IronAxe5"): ( + vox_spec: ("weapon.axe.2haxe_iron-5", (-1.5, -6.0, -5.0)), + color: None + ), + Axe("IronAxe6"): ( + vox_spec: ("weapon.axe.2haxe_iron-6", (-1.5, -5.0, -6.0)), + color: None + ), + Axe("IronAxe7"): ( + vox_spec: ("weapon.axe.2haxe_iron-7", (-1.5, -5.0, -5.0)), + color: None + ), + Axe("IronAxe8"): ( + vox_spec: ("weapon.axe.2haxe_iron-8", (-1.5, -5.0, -5.0)), + color: None + ), + Axe("IronAxe9"): ( + vox_spec: ("weapon.axe.2haxe_iron-9", (-1.5, -4.0, -5.0)), + color: None + ), + Axe("SteelAxe0"): ( + vox_spec: ("weapon.axe.2haxe_steel-0", (-1.5, -6.0, -4.5)), + color: None + ), + Axe("SteelAxe1"): ( + vox_spec: ("weapon.axe.2haxe_steel-1", (-1.5, -7.0, -5.5)), + color: None + ), + Axe("SteelAxe2"): ( + vox_spec: ("weapon.axe.2haxe_steel-2", (-1.5, -3.5, -3.5)), + color: None + ), + Axe("SteelAxe3"): ( + vox_spec: ("weapon.axe.2haxe_steel-3", (-1.5, -4.0, -6.0)), + color: None + ), + Axe("SteelAxe4"): ( + vox_spec: ("weapon.axe.2haxe_steel-4", (-1.5, -4.0, -5.5)), + color: None + ), + Axe("SteelAxe5"): ( + vox_spec: ("weapon.axe.2haxe_steel-5", (-1.5, -5.5, -5.5)), + color: None + ), + Axe("SteelAxe6"): ( + vox_spec: ("weapon.axe.2haxe_steel-6", (-1.5, -4.0, -4.0)), + color: None + ), + Axe("BloodsteelAxe0"): ( + vox_spec: ("weapon.axe.2haxe_bloodsteel-0", (-1.5, -5.0, -6.0)), + color: None + ), + Axe("BloodsteelAxe1"): ( + vox_spec: ("weapon.axe.2haxe_bloodsteel-1", (-1.5, -5.5, -5.0)), + color: None + ), + Axe("BloodsteelAxe2"): ( + vox_spec: ("weapon.axe.2haxe_bloodsteel-2", (-1.5, -5.0, -4.0)), + color: None + ), + Axe("CobaltAxe0"): ( + vox_spec: ("weapon.axe.2haxe_cobalt-0", (-1.5, -5.0, -5.5)), + color: None + ), + Axe("MalachiteAxe0"): ( + vox_spec: ("weapon.axe.2haxe_malachite-0", (-1.5, -5.0, -6.0)), color: None ), // Hammers - Hammer(BasicHammer): ( - vox_spec: ("weapon.hammer.rusty_2h", (-2.5, -5.5, -4.0)), + Hammer("BasicHammer"): ( + vox_spec: ("weapon.hammer.2hhammer_rusty", (-2.5, -5.5, -4.5)), color: None ), - /*Dagger(Craftsman): ( //TODO This should be a 1h hammer! + Hammer("WoodHammer0"): ( + vox_spec: ("weapon.hammer.2hhammer_wood-0", (-3.5, -5.5, -4.5)), + color: None + ), + Hammer("FlimsyHammer"): ( + vox_spec: ("weapon.hammer.2hhammer_flimsy", (-2.5, -5.5, -4.0)), + color: None + ), + Hammer("StoneHammer0"): ( + vox_spec: ("weapon.hammer.2hhammer_stone-0", (-3.5, -6.5, -5.0)), + color: None + ), + Hammer("StoneHammer1"): ( + vox_spec: ("weapon.hammer.2hhammer_stone-1", (-3.5, -6.5, -5.0)), + color: None + ), + Hammer("StoneHammer2"): ( + vox_spec: ("weapon.hammer.2hhammer_stone-2", (-3.5, -6.5, -5.0)), + color: None + ), + Hammer("StoneHammer3"): ( + vox_spec: ("weapon.hammer.2hhammer_stone-3", (-2.5, -6.5, -5.0)), + color: None + ), + Hammer("WornIronHammer0"): ( + vox_spec: ("weapon.hammer.2hhammer_worn_iron-0", (-2.5, -4.5, -4.0)), + color: None + ), + Hammer("WornIronHammer1"): ( + vox_spec: ("weapon.hammer.2hhammer_worn_iron-1", (-2.5, -4.5, -3.0)), + color: None + ), + Hammer("WornIronHammer2"): ( + vox_spec: ("weapon.hammer.2hhammer_worn_iron-2", (-2.5, -3.5, -3.0)), + color: None + ), + Hammer("WornIronHammer3"): ( + vox_spec: ("weapon.hammer.2hhammer_worn_iron-3", (-2.5, -4.5, -3.0)), + color: None + ), + Hammer("BronzeHammer0"): ( + vox_spec: ("weapon.hammer.2hhammer_bronze-0", (-2.5, -6.5, -5.0)), + color: None + ), + Hammer("BronzeHammer1"): ( + vox_spec: ("weapon.hammer.2hhammer_bronze-1", (-3.5, -3.5, -4.0)), + color: None + ), + Hammer("IronHammer0"): ( + vox_spec: ("weapon.hammer.2hhammer_iron-0", (-2.5, -6.5, -4.0)), + color: None + ), + Hammer("IronHammer1"): ( + vox_spec: ("weapon.hammer.2hhammer_iron-1", (-3.5, -7.5, -5.0)), + color: None + ), + Hammer("IronHammer2"): ( + vox_spec: ("weapon.hammer.2hhammer_iron-2", (-3.5, -3.5, -5.0)), + color: None + ), + Hammer("IronHammer3"): ( + vox_spec: ("weapon.hammer.2hhammer_iron-3", (-3.5, -3.5, -5.0)), + color: None + ), + Hammer("IronHammer4"): ( + vox_spec: ("weapon.hammer.2hhammer_iron-4", (-3.5, -7.5, -4.0)), + color: None + ), + Hammer("IronHammer5"): ( + vox_spec: ("weapon.hammer.2hhammer_iron-5", (-1.5, -7.0, -5.0)), + color: None + ), + Hammer("IronHammer6"): ( + vox_spec: ("weapon.hammer.2hhammer_iron-6", (-2.5, -7.0, -5.0)), + color: None + ), + Hammer("IronHammer7"): ( + vox_spec: ("weapon.hammer.2hhammer_iron-7", (-3.5, -7.5, -5.0)), + color: None + ), + Hammer("IronHammer8"): ( + vox_spec: ("weapon.hammer.2hhammer_iron-8", (-1.5, -5.5, -7.0)), + color: None + ), + Hammer("SteelHammer0"): ( + vox_spec: ("weapon.hammer.2hhammer_steel-0", (-2.5, -5.5, -5.0)), + color: None + ), + Hammer("SteelHammer1"): ( + vox_spec: ("weapon.hammer.2hhammer_steel-1", (-3.5, -7.5, -5.0)), + color: None + ), + Hammer("SteelHammer2"): ( + vox_spec: ("weapon.hammer.2hhammer_steel-2", (-3.5, -3.5, -3.0)), + color: None + ), + Hammer("SteelHammer3"): ( + vox_spec: ("weapon.hammer.2hhammer_steel-3", (-5.5, -5.5, -4.5)), + color: None + ), + Hammer("SteelHammer4"): ( + vox_spec: ("weapon.hammer.2hhammer_steel-4", (-3.5, -7.5, -4.0)), + color: None + ), + Hammer("SteelHammer5"): ( + vox_spec: ("weapon.hammer.2hhammer_steel-5", (-5.5, -5.5, -5.0)), + color: None + ), + Hammer("CobaltHammer0"): ( + vox_spec: ("weapon.hammer.2hhammer_cobalt-0", (-2.5, -7.5, -6.0)), + color: None + ), + Hammer("CobaltHammer1"): ( + vox_spec: ("weapon.hammer.2hhammer_cobalt-1", (-4.5, -4.5, -4.0)), + color: None + ), + Hammer("RunicHammer"): ( + vox_spec: ("weapon.hammer.2hhammer_runic", (-2.5, -7.5, -5.0)), + color: None + ), + Hammer("RamsheadHammer"): ( + vox_spec: ("weapon.hammer.2hhammer_ramshead", (-4.5, -5.5, -5.0)), + color: None + ), + Hammer("Mjolnir"): ( + vox_spec: ("weapon.hammer.2hhammer_mjolnir", (-2.5, -8.5, -4.0)), + color: None + ), + /*Dagger("Craftsman"): ( //TODO This should be a 1h hammer! vox_spec: ("weapon.hammer.craftsman", (-2.0, -5.0, -5.5)), color: None ),*/ // Daggers - Dagger(BasicDagger): ( + Dagger("BasicDagger"): ( vox_spec: ("weapon.dagger.dagger_rusty", (-1.5, -3.0, -3.0)), color: None ), // Shields - Shield(BasicShield): ( + Shield("BasicShield"): ( vox_spec: ("weapon.shield.wood-0", (-2.5, -5.5, -5.5)), color: None ), // Bows - Bow(ShortBow0): ( - vox_spec: ("weapon.bow.shortbow-0", (-1.0, -6.0, 2.5)), + Bow("ShortBow0"): ( + vox_spec: ("weapon.bow.shortbow_starter", (-1.0, -6.0, 3.0)), color: None ), - Bow(ShortBow1): ( - vox_spec: ("weapon.bow.shortbow-1", (-1.0, -6.0, 2.5)), - color: None - ), - Bow(LongBow0): ( - vox_spec: ("weapon.bow.longbow-0", (-1.0, -6.0, 2.5)), + Bow("WoodShortbow0"): ( + vox_spec: ("weapon.bow.shortbow_wood-0", (-1.0, -6.0, 2.5)), color: None ), - Bow(LongBow1): ( - vox_spec: ("weapon.bow.longbow-1", (-1.0, -6.0, 2.5)), + Bow("WoodShortbow1"): ( + vox_spec: ("weapon.bow.shortbow_wood-1", (-1.0, -6.5, 2.5)), color: None ), - Bow(RareBow0): ( - vox_spec: ("weapon.bow.rare_bow-0", (-1.0, -6.0, 2.5)), + Bow("LeafyShortbow0"): ( + vox_spec: ("weapon.bow.shortbow_leafy-0", (-1.0, -8.0, 3.5)), + color: None + ), + Bow("WoodLongbow0"): ( + vox_spec: ("weapon.bow.longbow_wood-0", (-1.0, -6.0, -0.5)), + color: None + ), + Bow("WoodLongbow1"): ( + vox_spec: ("weapon.bow.longbow_wood-1", (-1.0, -6.0, 0.0)), + color: None + ), + Bow("LeafyLongbow0"): ( + vox_spec: ("weapon.bow.longbow_leafy-0", (-1.0, -8.0, -0.5)), + color: None + ), + Bow("HornLongbow0"): ( + vox_spec: ("weapon.bow.longbow_horn-0", (-2.0, -6.0, -6.5)), + color: None + ), + Bow("IronLongbow0"): ( + vox_spec: ("weapon.bow.longbow_iron-0", (-2.0, -6.0, -5.5)), + color: None + ), + Bow("RareLongbow"): ( + vox_spec: ("weapon.bow.longbow_rare", (-2.0, -6.0, -2.5)), color: None ), // Farming Equipment - Farming(Broom): ( + Farming("Broom"): ( vox_spec: ("weapon.tool.broom-0", (-1.5, -4.0, -4.0)), color: None ), - Farming(Hoe0): ( + Farming("Hoe0"): ( vox_spec: ("weapon.tool.hoe_green", (-2.5, -4.5, -4.0)), color: None ), - Farming(Hoe1): ( + Farming("Hoe1"): ( vox_spec: ("weapon.tool.hoe_blue", (-2.5, -4.5, -4.0)), color: None ), - Farming(Pitchfork): ( + Farming("Pitchfork"): ( vox_spec: ("weapon.tool.pitchfork-0", (-1.0, -3.5, -4.0)), color: None ), - Farming(FishingRod0): ( + Farming("FishingRod0"): ( vox_spec: ("weapon.tool.fishing_rod_blue-0", (-2.5, -4.5, -4.0)), color: None ), - Farming(Rake): ( + Farming("Rake"): ( vox_spec: ("weapon.tool.rake-0", (-1.0, -5.5, -4.0)), color: None ), - Farming(FishingRod1): ( + Farming("FishingRod1"): ( vox_spec: ("weapon.tool.fishing_rod_orange-0", (-2.5, -4.5, -4.0)), color: None ), - Farming(Pickaxe0): ( + Farming("Pickaxe0"): ( vox_spec: ("weapon.tool.pickaxe_green-0", (-1.5, -7.5, -4.0)), color: None ), - Farming(Shovel0): ( + Farming("Shovel0"): ( vox_spec: ("weapon.tool.shovel_green", (-1.0, -2.5, -4.0)), color: None ), - Farming(Shovel1): ( + Farming("Shovel1"): ( vox_spec: ("weapon.tool.shovel_gold", (-1.0, -2.5, -4.0)), color: None ), // Staves - Staff(BasicStaff): ( - vox_spec: ("weapon.staff.wood-fire", (-1.0, -6.0, -3.0)), + Staff("BasicStaff"): ( + vox_spec: ("weapon.staff.firestaff_starter", (-1.0, -6.0, -3.0)), color: None ), - // Sceptres - Staff(Sceptre): ( + Staff("BoneStaff"): ( + vox_spec: ("weapon.staff.firestaff_bone", (-1.0, -6.0, -3.0)), + color: None + ), + Staff("AmethystStaff"): ( + vox_spec: ("weapon.staff.firestaff_amethyst", (-1.0, -8.0, -4.0)), + color: None + ), + Staff("CultistStaff"): ( + vox_spec: ("weapon.staff.firestaff_cultist", (-2.0, -6.0, -4.0)), + color: None + ), + // Healing staff + Staff("Sceptre"): ( vox_spec: ("weapon.staff.wood-nature", (-1.0, -6.0, -5.0)), color: None ), // Misc - Debug(Boost): ( + Debug("Boost"): ( vox_spec: ("weapon.tool.broom_belzeshrub_purple", (-3.0, -4.0, -4.0)), color: None ), diff --git a/assets/voxygen/voxel/npc/batfox/male/chest.vox b/assets/voxygen/voxel/npc/batfox/male/chest.vox index d881ed37e7..d411e5e2d7 100644 --- a/assets/voxygen/voxel/npc/batfox/male/chest.vox +++ b/assets/voxygen/voxel/npc/batfox/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a8d287c59cea5854e8df4508a933013252f82297bf4cefde89c2eab3f71b1be1 -size 1620 +oid sha256:c7efdbd4516ab0d6cb0593513af7b3e00544c25439403db2d1f9af30bc923c11 +size 1988 diff --git a/assets/voxygen/voxel/npc/batfox/male/foot_bl.vox b/assets/voxygen/voxel/npc/batfox/male/foot_bl.vox index 5971164c37..8616e9ea18 100644 --- a/assets/voxygen/voxel/npc/batfox/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/batfox/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:db72317bcb09fd25c24b7979b75b9bc178413bc2f22e56b2c0ad3152725e50a2 -size 1196 +oid sha256:40e3801e2ed880743b36dc9d4d5ff3ed74a3473cbfa7fc3b9064aa09d9f690eb +size 1216 diff --git a/assets/voxygen/voxel/npc/batfox/male/foot_br.vox b/assets/voxygen/voxel/npc/batfox/male/foot_br.vox index fbd0fac997..58bda39f48 100644 --- a/assets/voxygen/voxel/npc/batfox/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/batfox/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:025a4dcf7972217b6a0d2fd76700d495d3ad34d60a2317362031f0ceaa8144c5 -size 1196 +oid sha256:f6199d579d0aeacf09bb787d26aed52aaa15b8d36818ca4dc9e105374d7e6002 +size 1216 diff --git a/assets/voxygen/voxel/npc/batfox/male/foot_fl.vox b/assets/voxygen/voxel/npc/batfox/male/foot_fl.vox index f3c6e19eaa..af85963dab 100644 --- a/assets/voxygen/voxel/npc/batfox/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/batfox/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4caf7814802ca78f55f5a6322ce142327dfe807b96d14251a65fa562047f284e -size 1164 +oid sha256:7e40fc893b8588a905ac7b57702fa93a34ca13895395ce5810c3a697f90eb46f +size 1204 diff --git a/assets/voxygen/voxel/npc/batfox/male/foot_fr.vox b/assets/voxygen/voxel/npc/batfox/male/foot_fr.vox index f67f646001..24458f8143 100644 --- a/assets/voxygen/voxel/npc/batfox/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/batfox/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4f343e07bdb993c08d4d04ead02e966e6ca842be761d0828819c60eeebb6f8b9 -size 1164 +oid sha256:ba604e2785401b09aa4b403853e25677ab33c1134474cb59f905d91c5ed7395e +size 1204 diff --git a/assets/voxygen/voxel/npc/batfox/male/head.vox b/assets/voxygen/voxel/npc/batfox/male/head.vox index 0413f0fc58..35d724544c 100644 --- a/assets/voxygen/voxel/npc/batfox/male/head.vox +++ b/assets/voxygen/voxel/npc/batfox/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9ee85abf7381b659cdf8eb149ac8c8d9e52a75b3588d6b67206548143503f91d -size 2024 +oid sha256:3d2d9a6735632bdcb7413a38fec726818b9a9f387ef03842a3fef397eaa8d772 +size 2204 diff --git a/assets/voxygen/voxel/npc/boar/female/chest.vox b/assets/voxygen/voxel/npc/boar/female/chest.vox index 660ecc950e..9a7db6ecbb 100644 --- a/assets/voxygen/voxel/npc/boar/female/chest.vox +++ b/assets/voxygen/voxel/npc/boar/female/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0060a57e3e3f2a08811f4aaea754cd9f336ee0e36fc10d20ed5b34d5ddd648a5 -size 2836 +oid sha256:31984779941f7e23b705908be96b37d559f470b4b6b277f58aef92099352676a +size 3544 diff --git a/assets/voxygen/voxel/npc/boar/female/foot_bl.vox b/assets/voxygen/voxel/npc/boar/female/foot_bl.vox index a3c237ae89..17e883e386 100644 --- a/assets/voxygen/voxel/npc/boar/female/foot_bl.vox +++ b/assets/voxygen/voxel/npc/boar/female/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:966a70b915d1fdbd1307d43071942cb07cd7494b6e8c484a6cd9f1b7ab21a22f -size 1256 +oid sha256:0ec159e28721d8a809abb35ecf9e951475014c92a5db7ccb8709f430dd4aef04 +size 1296 diff --git a/assets/voxygen/voxel/npc/boar/female/foot_br.vox b/assets/voxygen/voxel/npc/boar/female/foot_br.vox index aeac19e52f..c2eba36ad7 100644 --- a/assets/voxygen/voxel/npc/boar/female/foot_br.vox +++ b/assets/voxygen/voxel/npc/boar/female/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:778eb369e58f108ab4e4be7547a84622d3b52d4677360e2a1214c5068cec3c71 -size 1256 +oid sha256:2ad1f182485cec3f98cad49a70286a5c8d2a8dfa2638b0ab52d19dc3c76aff4f +size 1296 diff --git a/assets/voxygen/voxel/npc/boar/female/foot_fl.vox b/assets/voxygen/voxel/npc/boar/female/foot_fl.vox index 6a7eb90734..6fd4869d46 100644 --- a/assets/voxygen/voxel/npc/boar/female/foot_fl.vox +++ b/assets/voxygen/voxel/npc/boar/female/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:381858b085cb93df0f13c26c77bc0d21ed81b6b8fcbd28752b6e430c50c908b9 -size 1272 +oid sha256:e74af40426a02e80f4d30e64619a20aaef3da687f6f14febb65c8be19928dace +size 1316 diff --git a/assets/voxygen/voxel/npc/boar/female/foot_fr.vox b/assets/voxygen/voxel/npc/boar/female/foot_fr.vox index e1cdd727c1..8036a2b758 100644 --- a/assets/voxygen/voxel/npc/boar/female/foot_fr.vox +++ b/assets/voxygen/voxel/npc/boar/female/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d4e703d5b4ea0cec57690e58d05fd2761814a43d18084383ae22744bb544d552 -size 1272 +oid sha256:a3a0cec1dcd7af4fccb75bfe4b467458f5ed0f67abe63b7d633e0726cdf77e31 +size 1316 diff --git a/assets/voxygen/voxel/npc/boar/female/head.vox b/assets/voxygen/voxel/npc/boar/female/head.vox index 055972a439..cd122221d0 100644 --- a/assets/voxygen/voxel/npc/boar/female/head.vox +++ b/assets/voxygen/voxel/npc/boar/female/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:aae059e0e5796dc063df58edf4338b7a20fcd2b29109630adbb65dbc07ff7960 -size 2152 +oid sha256:2ab6b12a08a71f3c6e93e0aa18f489fb8d10b6eaca4bc3187f4913a7a2772c3c +size 2280 diff --git a/assets/voxygen/voxel/npc/boar/female/tail.vox b/assets/voxygen/voxel/npc/boar/female/tail.vox index d264ccae47..4e88dbc097 100644 --- a/assets/voxygen/voxel/npc/boar/female/tail.vox +++ b/assets/voxygen/voxel/npc/boar/female/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cfa0bb01aedde2ede23f359e77e03212a3c850e2939487c2417693fc65b2665f -size 1144 +oid sha256:2fc204bea99f4ce72e9fdca64bf4c247cd8c9d92b350bd05b4e006eb844db695 +size 1148 diff --git a/assets/voxygen/voxel/npc/boar/male/chest.vox b/assets/voxygen/voxel/npc/boar/male/chest.vox index 92252a14c1..538626fc20 100644 --- a/assets/voxygen/voxel/npc/boar/male/chest.vox +++ b/assets/voxygen/voxel/npc/boar/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:81e6d0dc56e79ef24e608615d7294174c024d94a5744560fb2fc3a03ad1ed022 -size 2876 +oid sha256:5f1b2ffbcb79b159a5133fa95f469f25f8d48de7691df23b19fc94c9931b5114 +size 3620 diff --git a/assets/voxygen/voxel/npc/boar/male/foot_bl.vox b/assets/voxygen/voxel/npc/boar/male/foot_bl.vox index a3c237ae89..4bcb1c9453 100644 --- a/assets/voxygen/voxel/npc/boar/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/boar/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:966a70b915d1fdbd1307d43071942cb07cd7494b6e8c484a6cd9f1b7ab21a22f -size 1256 +oid sha256:ec7c85de24d042fe7985f0fe4946f3c076aa82ebcc47b597950811341c125391 +size 1296 diff --git a/assets/voxygen/voxel/npc/boar/male/foot_br.vox b/assets/voxygen/voxel/npc/boar/male/foot_br.vox index aeac19e52f..0b67161cab 100644 --- a/assets/voxygen/voxel/npc/boar/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/boar/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:778eb369e58f108ab4e4be7547a84622d3b52d4677360e2a1214c5068cec3c71 -size 1256 +oid sha256:d20c6aa533c285b38c2b5fa29b93be8117196b0c8d280d2503dd8526059fba6b +size 1296 diff --git a/assets/voxygen/voxel/npc/boar/male/foot_fl.vox b/assets/voxygen/voxel/npc/boar/male/foot_fl.vox index 6a7eb90734..9469a8ebf1 100644 --- a/assets/voxygen/voxel/npc/boar/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/boar/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:381858b085cb93df0f13c26c77bc0d21ed81b6b8fcbd28752b6e430c50c908b9 -size 1272 +oid sha256:ff819f1f4863b460c58025f781f32dfb76188350c3453450054d9ba8b6adf267 +size 1316 diff --git a/assets/voxygen/voxel/npc/boar/male/foot_fr.vox b/assets/voxygen/voxel/npc/boar/male/foot_fr.vox index e1cdd727c1..12731d1d81 100644 --- a/assets/voxygen/voxel/npc/boar/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/boar/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d4e703d5b4ea0cec57690e58d05fd2761814a43d18084383ae22744bb544d552 -size 1272 +oid sha256:46cb8c8f81eae371961bc3536ee6c4e3ea610f40a9d361c314d203b01bb4511a +size 1316 diff --git a/assets/voxygen/voxel/npc/boar/male/head.vox b/assets/voxygen/voxel/npc/boar/male/head.vox index dbd27eae9a..9bc3a3e7b5 100644 --- a/assets/voxygen/voxel/npc/boar/male/head.vox +++ b/assets/voxygen/voxel/npc/boar/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:96488b885a3f5af3e54939144254dec1885c076878199417adb85e5455263bab -size 2220 +oid sha256:fb2e1ac83e47303da81f153f0d426be23cfdd281b6b40a7d1932913b01f90e95 +size 2392 diff --git a/assets/voxygen/voxel/npc/boar/male/tail.vox b/assets/voxygen/voxel/npc/boar/male/tail.vox index a5d9fb159d..bcc3204bc6 100644 --- a/assets/voxygen/voxel/npc/boar/male/tail.vox +++ b/assets/voxygen/voxel/npc/boar/male/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ef70b16cbf8bf6800456afeeddb4315345018903172ffd0b58afb67d0e2004d9 -size 1144 +oid sha256:c977a9bc905c827dafebbb80675f6593cffd2b606c10e57cc6496b7a1964686b +size 1148 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/foot_bl.vox b/assets/voxygen/voxel/npc/bonerattler/male/foot_bl.vox new file mode 100644 index 0000000000..b0bb504145 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1622ffa38acfb820ccc9eb103b7f64eb772de3d59cc006e98ee7cb3bf0d12ae +size 1444 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/foot_br.vox b/assets/voxygen/voxel/npc/bonerattler/male/foot_br.vox new file mode 100644 index 0000000000..b0bb504145 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1622ffa38acfb820ccc9eb103b7f64eb772de3d59cc006e98ee7cb3bf0d12ae +size 1444 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/foot_fl.vox b/assets/voxygen/voxel/npc/bonerattler/male/foot_fl.vox new file mode 100644 index 0000000000..4bf1ef1587 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfbfd577f6fa485c60db1821f0e12dce816e7c61e81bbb765c541af28b383ec1 +size 1520 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/foot_fr.vox b/assets/voxygen/voxel/npc/bonerattler/male/foot_fr.vox new file mode 100644 index 0000000000..99cea330d6 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b7cecc26df39fcce03fb33287bfe1196b030cf253bf115d25dba76f60240f9c +size 1520 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/head_lower.vox b/assets/voxygen/voxel/npc/bonerattler/male/head_lower.vox new file mode 100644 index 0000000000..335a3a7c98 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/head_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23f91e808672eb10b9bbcdde13defbfa43d3e90a7dbbc0fbcdd1bf69292e5bca +size 1776 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/head_upper.vox b/assets/voxygen/voxel/npc/bonerattler/male/head_upper.vox new file mode 100644 index 0000000000..54b6474e0e --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/head_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d858e70ec0e6a073385946702a80543c8ea291f4d8bb40119c0d4b46364c0af +size 2560 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/jaw.vox b/assets/voxygen/voxel/npc/bonerattler/male/jaw.vox new file mode 100644 index 0000000000..0506f87361 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91862ad1ed40c80a3bc758b9d03b8c6140c128d834a61aa9dd8344793b7b9067 +size 1564 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/leg_bl.vox b/assets/voxygen/voxel/npc/bonerattler/male/leg_bl.vox new file mode 100644 index 0000000000..f7b13031f4 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/leg_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2e114bd3371dd6ebd668ae25caf495803443084cda576c6ebf1dd1f46d19846 +size 1360 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/leg_br.vox b/assets/voxygen/voxel/npc/bonerattler/male/leg_br.vox new file mode 100644 index 0000000000..234abdc5ce --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/leg_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fd4aea00832cbe833fd715050f0967b01157475c610ebb144b95f23ca84681c +size 1360 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/leg_fl.vox b/assets/voxygen/voxel/npc/bonerattler/male/leg_fl.vox new file mode 100644 index 0000000000..3e6b39d8f9 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/leg_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eff214991064df1052f9329331197983a9d370287a7d6fc8e381052c334d2b1f +size 1360 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/leg_fr.vox b/assets/voxygen/voxel/npc/bonerattler/male/leg_fr.vox new file mode 100644 index 0000000000..a913386790 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/leg_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:973330909a7bddc0439a2b5cb11e67ee3b6b829b8593e9fdc6e70f566eabd29b +size 1360 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/tail.vox b/assets/voxygen/voxel/npc/bonerattler/male/tail.vox new file mode 100644 index 0000000000..49dc63306e --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:012690465f9201032a05a4b9f42bdaa603bb224bd5e1b5b497aff0885f53bde5 +size 2256 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/torso_back.vox b/assets/voxygen/voxel/npc/bonerattler/male/torso_back.vox new file mode 100644 index 0000000000..777ff34207 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/torso_back.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b8af0b5b16f02620586543f24d55ff5dd4f81f040a6744a32e851fd466d5628 +size 4252 diff --git a/assets/voxygen/voxel/npc/bonerattler/male/torso_front.vox b/assets/voxygen/voxel/npc/bonerattler/male/torso_front.vox new file mode 100644 index 0000000000..62971b44a9 --- /dev/null +++ b/assets/voxygen/voxel/npc/bonerattler/male/torso_front.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:988a6748225bcf58117d8bae88c06e17e2e54da82b6b765dcb4a89291c78ab43 +size 5600 diff --git a/assets/voxygen/voxel/npc/cat/female/chest.vox b/assets/voxygen/voxel/npc/cat/female/chest.vox index 83ab2066d7..e932b99d17 100644 --- a/assets/voxygen/voxel/npc/cat/female/chest.vox +++ b/assets/voxygen/voxel/npc/cat/female/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5e630fde2861dbc46916398a6478931c16bac43bda1e3119e40e321b7423c9b4 -size 1480 +oid sha256:12b91aa9d166ba79ec548156befdb284b1d7d8d71756045556c78bddc1467731 +size 1640 diff --git a/assets/voxygen/voxel/npc/cat/female/foot_bl.vox b/assets/voxygen/voxel/npc/cat/female/foot_bl.vox index 7ce51f8ef4..44e50cc23e 100644 --- a/assets/voxygen/voxel/npc/cat/female/foot_bl.vox +++ b/assets/voxygen/voxel/npc/cat/female/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f8a2992d2046e9ce7282411e698d4a517047935f300bc506ad7aea5a874940e -size 1208 +oid sha256:f83dd059cdc963ecb6f6407132e94c2646a7bdd288bd389c5b4e224f726c8a43 +size 1184 diff --git a/assets/voxygen/voxel/npc/cat/female/foot_br.vox b/assets/voxygen/voxel/npc/cat/female/foot_br.vox index 4a9d9180f0..4920e71948 100644 --- a/assets/voxygen/voxel/npc/cat/female/foot_br.vox +++ b/assets/voxygen/voxel/npc/cat/female/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:95ab9658db4afd6eef0ce23d1daf67ab6d07fff35aea641164e57f6963505ef2 -size 1208 +oid sha256:46e291eeb7e7fd9ba428d448bd516e277c00437e790f28f411f761c30e8c5551 +size 1184 diff --git a/assets/voxygen/voxel/npc/cat/female/foot_fl.vox b/assets/voxygen/voxel/npc/cat/female/foot_fl.vox index 1187956984..78423aab90 100644 --- a/assets/voxygen/voxel/npc/cat/female/foot_fl.vox +++ b/assets/voxygen/voxel/npc/cat/female/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8bfd8c0a663563adb544a6a260bcb11442003fef1ee6ec41e1856aef54ab5ea0 -size 1168 +oid sha256:0ee9dc8c6473c45da834a8e0ff47adc4f7d6da16f015b0f41c04042e9ab642f2 +size 1172 diff --git a/assets/voxygen/voxel/npc/cat/female/foot_fr.vox b/assets/voxygen/voxel/npc/cat/female/foot_fr.vox index 69426e6eca..902b33d228 100644 --- a/assets/voxygen/voxel/npc/cat/female/foot_fr.vox +++ b/assets/voxygen/voxel/npc/cat/female/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0cb8500173296a3319987ccf7683a45d6e745151e23a551c1deac0b72908894b -size 1168 +oid sha256:fbd1f030f20e96d75095d84b4c1add0926b6f5cc0eaf2df9061f77d1e6c011ea +size 1172 diff --git a/assets/voxygen/voxel/npc/cat/female/head.vox b/assets/voxygen/voxel/npc/cat/female/head.vox index d209a50e34..5d407d1c1f 100644 --- a/assets/voxygen/voxel/npc/cat/female/head.vox +++ b/assets/voxygen/voxel/npc/cat/female/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fc31311dece576f3b17776baee1ff6de05bf3247490b084cd801ff008d52fde8 -size 1592 +oid sha256:0fba3733fd4e156fdaf7ff26dd6b1dff253b90cbb3d390bd1c83ab0445704cb2 +size 1620 diff --git a/assets/voxygen/voxel/npc/cat/female/tail.vox b/assets/voxygen/voxel/npc/cat/female/tail.vox index a1c44ae308..2aedc13346 100644 --- a/assets/voxygen/voxel/npc/cat/female/tail.vox +++ b/assets/voxygen/voxel/npc/cat/female/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:58a6a70e62fd1b88f32f780bb33f1ca565e71bca32dfbc7eca3de19b3bdedfa1 -size 1120 +oid sha256:988e2cd5fe47a4ec86d92040fd395021e3f34ffbef999b1d3331d3f825c591ea +size 1140 diff --git a/assets/voxygen/voxel/npc/cat/male/chest.vox b/assets/voxygen/voxel/npc/cat/male/chest.vox index eeefa51f4d..147c10dc5a 100644 --- a/assets/voxygen/voxel/npc/cat/male/chest.vox +++ b/assets/voxygen/voxel/npc/cat/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0bc8779d489cf33ca7fa47cb8068aa51c5da7a07f5aa1d76df848a2a4cc88215 -size 1480 +oid sha256:cc23288c94c411eba2956d17ea16f9689d7d3990489d2ce502e214db2e55437e +size 1640 diff --git a/assets/voxygen/voxel/npc/cat/male/foot_bl.vox b/assets/voxygen/voxel/npc/cat/male/foot_bl.vox index 8c47b3ef56..782b6f7783 100644 --- a/assets/voxygen/voxel/npc/cat/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/cat/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:da74ca43f9ddf35b387ac7d7521b9bcebb2f7305b59adc0a3d583400ccd3cdd5 -size 1208 +oid sha256:59b28e2f43072929871ab8117dbb6a215bafd10925fc7326180aac9c8d54264f +size 1184 diff --git a/assets/voxygen/voxel/npc/cat/male/foot_br.vox b/assets/voxygen/voxel/npc/cat/male/foot_br.vox index 039940b998..5831158106 100644 --- a/assets/voxygen/voxel/npc/cat/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/cat/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:95157bdf1ebcdbae5e808abda74d5e6cc64456807c1e5ff4e3ce967bda6b904f -size 1208 +oid sha256:4e1443f73fe5837393f608bc29f172ef6dceae54a96a03b4d2693287f83479ff +size 1184 diff --git a/assets/voxygen/voxel/npc/cat/male/foot_fl.vox b/assets/voxygen/voxel/npc/cat/male/foot_fl.vox index b53dc867e9..9661ebb608 100644 --- a/assets/voxygen/voxel/npc/cat/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/cat/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c583a50a87ed31f5b5d6110fe5790b9d322165cb437425709b7f755c9946686c -size 1168 +oid sha256:de06e552c49af6f98e69ddab1a602cffe3e9d7fc324fd6d402462f8c834e5b2b +size 1172 diff --git a/assets/voxygen/voxel/npc/cat/male/foot_fr.vox b/assets/voxygen/voxel/npc/cat/male/foot_fr.vox index 77fbb446e9..a41c50316b 100644 --- a/assets/voxygen/voxel/npc/cat/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/cat/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:63eee23d23176b12908fd5a472c049d13fc9a3b6cfcdfe0291f6e52887b0e33f -size 1168 +oid sha256:5a2a361634fcdebf6e69959cb3f183a59ea1f3afc31b863b86cc5ee904dad385 +size 1172 diff --git a/assets/voxygen/voxel/npc/cat/male/head.vox b/assets/voxygen/voxel/npc/cat/male/head.vox index c6b038fe5c..302f0e2eec 100644 --- a/assets/voxygen/voxel/npc/cat/male/head.vox +++ b/assets/voxygen/voxel/npc/cat/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0c9cc7605a79f308302fdb21177c3a2ae6d0f632995cdcc5e1bdb8816e3b726f -size 1592 +oid sha256:84cfd68362da86c2bba0d53238ec3239f3ceb9360e37e0846e7e82ef04961cf7 +size 1620 diff --git a/assets/voxygen/voxel/npc/cat/male/tail.vox b/assets/voxygen/voxel/npc/cat/male/tail.vox index 82a86cbcd3..5c9bee918d 100644 --- a/assets/voxygen/voxel/npc/cat/male/tail.vox +++ b/assets/voxygen/voxel/npc/cat/male/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6d97c77e754998ac3e3bf8afdf0533a76f19d801655fcb65114a02dd3cc8582b -size 1120 +oid sha256:98a5a483ee308d459819aa61dd670d64f0e52bb0ab7fa35344849c495ce078bd +size 1140 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/foot_bl.vox b/assets/voxygen/voxel/npc/catoblepas/male/foot_bl.vox new file mode 100644 index 0000000000..bacff6706a --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c0f1f9806038e8f2044eb8c7ad779352613493e4f4e76c80d5cb07b9fab41f9 +size 1584 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/foot_br.vox b/assets/voxygen/voxel/npc/catoblepas/male/foot_br.vox new file mode 100644 index 0000000000..2d68ed2773 --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c0e46a53c86110af6728ae03b029aee41bb51d3b4dcb40b0c7d2d2ac56edcb5 +size 1584 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/foot_fl.vox b/assets/voxygen/voxel/npc/catoblepas/male/foot_fl.vox new file mode 100644 index 0000000000..0bb861a008 --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36cd396b6676ebae90614b0b23b6234768cbf3feec21e89e9d7af1c1cf748365 +size 1984 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/foot_fr.vox b/assets/voxygen/voxel/npc/catoblepas/male/foot_fr.vox new file mode 100644 index 0000000000..e5b4696b11 --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:299eaedeee8acb0b4e0ff9a6b7ab85dde9f788e5f3a4a37da9ca9c705b7d9411 +size 1984 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/head_lower.vox b/assets/voxygen/voxel/npc/catoblepas/male/head_lower.vox new file mode 100644 index 0000000000..7724dd9390 --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/head_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adb278bc8570878d00f4f9c67a31011c29586764ff45635cd402e5f687ed70d0 +size 3048 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/head_upper.vox b/assets/voxygen/voxel/npc/catoblepas/male/head_upper.vox new file mode 100644 index 0000000000..ca324679cf --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/head_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:959ef7e3c3bf7a8b0153b4397c8712f2d2b7df5786cd8c932080eadaad62423c +size 2992 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/jaw.vox b/assets/voxygen/voxel/npc/catoblepas/male/jaw.vox new file mode 100644 index 0000000000..ee3e42ca9c --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fe4b3d77f1e9f7ea8af52863553c5d0f73605e83f777e0662c1b2174bbc1abf +size 1760 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/leg_bl.vox b/assets/voxygen/voxel/npc/catoblepas/male/leg_bl.vox new file mode 100644 index 0000000000..7da0477bf4 --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/leg_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df65aa79a2af8e9420536f1fad888576e53d9ec5897c7d8f299d0380cccd77f8 +size 1612 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/leg_br.vox b/assets/voxygen/voxel/npc/catoblepas/male/leg_br.vox new file mode 100644 index 0000000000..61dda63ee8 --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/leg_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6f9ef91309073c2248e203c99621372002df70c9d02becfde097a4653380ae8 +size 1612 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/leg_fl.vox b/assets/voxygen/voxel/npc/catoblepas/male/leg_fl.vox new file mode 100644 index 0000000000..fa70793c8c --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/leg_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3caf6830cf45638f5bebc71e1a95c0af5a685bbed19983700e6826e5e7f74025 +size 2224 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/leg_fr.vox b/assets/voxygen/voxel/npc/catoblepas/male/leg_fr.vox new file mode 100644 index 0000000000..0cb7d1d311 --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/leg_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3686d1afbcbe88864e782208c38b0e0c77278d8cd9be3950b267f31b6a1d96bc +size 2224 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/tail.vox b/assets/voxygen/voxel/npc/catoblepas/male/tail.vox new file mode 100644 index 0000000000..b145e6d075 --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3f3cece921f859686b2fda746732a7e2e2fd4d6aca1a0fc08b760ebfda6d5b3 +size 1696 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/torso_back.vox b/assets/voxygen/voxel/npc/catoblepas/male/torso_back.vox new file mode 100644 index 0000000000..5b72744199 --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/torso_back.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:252a232930d941ae0de0c950f78d59281b24cea02188f0364cbdc17ad9faf62a +size 3968 diff --git a/assets/voxygen/voxel/npc/catoblepas/male/torso_front.vox b/assets/voxygen/voxel/npc/catoblepas/male/torso_front.vox new file mode 100644 index 0000000000..e563f4e3c9 --- /dev/null +++ b/assets/voxygen/voxel/npc/catoblepas/male/torso_front.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1dfbc6489d60283c515e387106ad1336395a944ebd021e478f6ca7628fc26b1e +size 14056 diff --git a/assets/voxygen/voxel/npc/cyclops/male/hammer.vox b/assets/voxygen/voxel/npc/cyclops/male/hammer.vox index 225e1b06eb..0b94730c5b 100644 --- a/assets/voxygen/voxel/npc/cyclops/male/hammer.vox +++ b/assets/voxygen/voxel/npc/cyclops/male/hammer.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:80441437d997cb0a4c04f2376efc43ab30e32206778f5d3ad3be5d1bdd6e1910 -size 2952 +oid sha256:3dee24b5cefaf4879cb275c07eb0e52c9300606d60ebaf8cddad072a110e5594 +size 3112 diff --git a/assets/voxygen/voxel/npc/dodarock/male/chest.vox b/assets/voxygen/voxel/npc/dodarock/male/chest.vox index 9ed2e87887..59dc7b843a 100644 --- a/assets/voxygen/voxel/npc/dodarock/male/chest.vox +++ b/assets/voxygen/voxel/npc/dodarock/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7fa581ce169d998d8ad26289b46418cf88bc5c397b84e0ea36abb12cd53c7483 -size 3868 +oid sha256:a5b99efdd84befab454aaaece9ff2685da8316bfff3c7b02e8b57be75f5db943 +size 3608 diff --git a/assets/voxygen/voxel/npc/dodarock/male/foot_bl.vox b/assets/voxygen/voxel/npc/dodarock/male/foot_bl.vox index bfbdd68728..ec14d2c0bd 100644 --- a/assets/voxygen/voxel/npc/dodarock/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/dodarock/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b8e4b030554994fded35de771cdc04f699b0d5dfab7ced47b9ea684652b2c63e -size 1232 +oid sha256:d07af60b66655a4cb072e4e3d6b5ee06b527e69ccac0378e15d4fb1ada5cf119 +size 1252 diff --git a/assets/voxygen/voxel/npc/dodarock/male/foot_br.vox b/assets/voxygen/voxel/npc/dodarock/male/foot_br.vox index 0c7ad50b24..689ab86790 100644 --- a/assets/voxygen/voxel/npc/dodarock/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/dodarock/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2c1569a875d6218b1a51796a93ac7b9985350ad6fa71fe6b5622415d7bbca424 -size 1232 +oid sha256:6b6dad625318c31c13ca8c6a035877109e08a7e2c72ea1eff2d6155b47d4ec7b +size 1252 diff --git a/assets/voxygen/voxel/npc/dodarock/male/foot_fl.vox b/assets/voxygen/voxel/npc/dodarock/male/foot_fl.vox index 3cf115fee0..4373de546c 100644 --- a/assets/voxygen/voxel/npc/dodarock/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/dodarock/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:65f05a9b69715cb5fffb6c82166e59fa2054619783aa9cbec44849bdbb593607 -size 1548 +oid sha256:f53eb4d341d318dbfd903e37cff5b6893eb3b79619665b8447f7120b8c98170f +size 1552 diff --git a/assets/voxygen/voxel/npc/dodarock/male/foot_fr.vox b/assets/voxygen/voxel/npc/dodarock/male/foot_fr.vox index be2a1b29ed..0129e65c20 100644 --- a/assets/voxygen/voxel/npc/dodarock/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/dodarock/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1306dc7261b141997acdebb492c9ac766245618963c8bc18355e4b705e8b2d36 -size 1548 +oid sha256:843dead8905b5b753843a55775a89b6f8b07a4fb94376ccfc6a032d7fdc448a7 +size 1552 diff --git a/assets/voxygen/voxel/npc/dodarock/male/head.vox b/assets/voxygen/voxel/npc/dodarock/male/head.vox index b61653abea..04237a7cb1 100644 --- a/assets/voxygen/voxel/npc/dodarock/male/head.vox +++ b/assets/voxygen/voxel/npc/dodarock/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cf5051514e840a46cf38c6b44e6b1f3cf10a1c7f0ef1945e334315d313e6b414 -size 3236 +oid sha256:d773d52265a88f9ff32f98506796235832f8fa5342ff19867aebf6e6e228791a +size 3476 diff --git a/assets/voxygen/voxel/npc/fox/female/chest.vox b/assets/voxygen/voxel/npc/fox/female/chest.vox index f422564504..1e55043472 100644 --- a/assets/voxygen/voxel/npc/fox/female/chest.vox +++ b/assets/voxygen/voxel/npc/fox/female/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0bb520b57096709fcb3ae1006ae80d49805544292e7a4dae22965d010db7f8c0 -size 1464 +oid sha256:903770699331d7368a3f8b56cef97e8eff2490b56c45df3aca39b8db4e328250 +size 2048 diff --git a/assets/voxygen/voxel/npc/fox/female/foot_bl.vox b/assets/voxygen/voxel/npc/fox/female/foot_bl.vox index 4d19cdbbba..46ddc26f3f 100644 --- a/assets/voxygen/voxel/npc/fox/female/foot_bl.vox +++ b/assets/voxygen/voxel/npc/fox/female/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bb3fb3ffee0736247c7187d14a2f7efae7f6ce517fec4c0ab49137605494efa4 -size 1200 +oid sha256:faececdab6b18288de2aa1107bc49d63be715f89c5c8392b8155e7a3a44d4dae +size 1216 diff --git a/assets/voxygen/voxel/npc/fox/female/foot_br.vox b/assets/voxygen/voxel/npc/fox/female/foot_br.vox index 4fa88e72a1..6a8d38fa9b 100644 --- a/assets/voxygen/voxel/npc/fox/female/foot_br.vox +++ b/assets/voxygen/voxel/npc/fox/female/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:95e5f826066196bc85bb226e756768f3df8cbc91c5f7e48a3fb7af671683b7b2 -size 1200 +oid sha256:cc9c5a5b92c09a6e2eb47407cdfad5870087c73b84d38f57cb806566a09c5abf +size 1216 diff --git a/assets/voxygen/voxel/npc/fox/female/foot_fl.vox b/assets/voxygen/voxel/npc/fox/female/foot_fl.vox index 858d72a1a9..31a87141f4 100644 --- a/assets/voxygen/voxel/npc/fox/female/foot_fl.vox +++ b/assets/voxygen/voxel/npc/fox/female/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9c337dd67a451dbd4e0f4eb005f19fc1948186c8212604d3debf8bd60dbb933c -size 1156 +oid sha256:f303cff97d0131704eb2d009df7d0fdeed1c72a96475d86048546b7350510164 +size 1208 diff --git a/assets/voxygen/voxel/npc/fox/female/foot_fr.vox b/assets/voxygen/voxel/npc/fox/female/foot_fr.vox index 793ff41f2a..2cf7269f93 100644 --- a/assets/voxygen/voxel/npc/fox/female/foot_fr.vox +++ b/assets/voxygen/voxel/npc/fox/female/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:97c17c8090213ac8bdd0b76190ddc5ab65ea2ef34ee50cdde95549446a370431 -size 1156 +oid sha256:04fa1d2be597e2dd54171bdf99be59d0c9b8a7c5d1d381b9646dc6304c77428f +size 1208 diff --git a/assets/voxygen/voxel/npc/fox/female/head.vox b/assets/voxygen/voxel/npc/fox/female/head.vox index f109ad02ac..4f0db6cd60 100644 --- a/assets/voxygen/voxel/npc/fox/female/head.vox +++ b/assets/voxygen/voxel/npc/fox/female/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e3bae3afdb8853e7a104d47e408c9c76538ad9fc938ad382363fc9fbaa9bb12c -size 1460 +oid sha256:a5079b98ca1914817c055eb7025ced99ab7fda5bfe286a5eb6e71e21d9253856 +size 1760 diff --git a/assets/voxygen/voxel/npc/fox/female/tail.vox b/assets/voxygen/voxel/npc/fox/female/tail.vox index 6d6422540e..a565028505 100644 --- a/assets/voxygen/voxel/npc/fox/female/tail.vox +++ b/assets/voxygen/voxel/npc/fox/female/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c651753367d96ac3ec2f921923697fffd69b7ba357d22509d1241f378853ae37 -size 1264 +oid sha256:48533bd1be1dec4bb1f8d46bf6e877c5bd3e719caec6a27dbdf65c46a60ed805 +size 1464 diff --git a/assets/voxygen/voxel/npc/fox/male/chest.vox b/assets/voxygen/voxel/npc/fox/male/chest.vox index 592aac3dc9..5679cc5123 100644 --- a/assets/voxygen/voxel/npc/fox/male/chest.vox +++ b/assets/voxygen/voxel/npc/fox/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bbccd9c68b9ef04717d15e2ba98f74a74b1ab578664df0ab28ae114c66c2a90a -size 1464 +oid sha256:bda9e08c532df7fbd9340c92b64c41435857ddf80773276764e917f335ed243e +size 1904 diff --git a/assets/voxygen/voxel/npc/fox/male/foot_bl.vox b/assets/voxygen/voxel/npc/fox/male/foot_bl.vox index e444e3e6d0..4808f939d6 100644 --- a/assets/voxygen/voxel/npc/fox/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/fox/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9dac3eb3e69f7c82a3f070a8c61868469a1562ada1b5f4266e15ff769d86622e -size 1200 +oid sha256:7811991f5addd3fb91d2d75cc644510a8e73e692c86edf1d245527a710b15ba6 +size 1216 diff --git a/assets/voxygen/voxel/npc/fox/male/foot_br.vox b/assets/voxygen/voxel/npc/fox/male/foot_br.vox index 05635c403e..e881400891 100644 --- a/assets/voxygen/voxel/npc/fox/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/fox/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:81dadb018ee78ca56bb4bf6a34ed42ee82ff76f693250b6dff2781a4099ece84 -size 1200 +oid sha256:5c9b793a15ea73300b5902e8a6c1bd755699ae2a24f0dbfe0916dfd26b619a2e +size 1216 diff --git a/assets/voxygen/voxel/npc/fox/male/foot_fl.vox b/assets/voxygen/voxel/npc/fox/male/foot_fl.vox index e241d4fbdd..7e2971bb93 100644 --- a/assets/voxygen/voxel/npc/fox/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/fox/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9cd0197f2e6d0434101866f1d9587f521145649ae4b5073587c854948d2bab8e -size 1156 +oid sha256:bc8993716402a56f5dda9eedb6506ac3c878c835e6004738cf6580f6046d4115 +size 1208 diff --git a/assets/voxygen/voxel/npc/fox/male/foot_fr.vox b/assets/voxygen/voxel/npc/fox/male/foot_fr.vox index 17b9098872..b4b48a0c9c 100644 --- a/assets/voxygen/voxel/npc/fox/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/fox/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:14ebd8bce42b7eb5981eb6386aa9465d3a281dc016a23491d34d91607ba91794 -size 1156 +oid sha256:6c42a1c241699df6b8efa501ec8cf9ab71e63ed2c85f3892af63e53ceefc240b +size 1208 diff --git a/assets/voxygen/voxel/npc/fox/male/head.vox b/assets/voxygen/voxel/npc/fox/male/head.vox index d4d9c8a322..e05c2b2c9b 100644 --- a/assets/voxygen/voxel/npc/fox/male/head.vox +++ b/assets/voxygen/voxel/npc/fox/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:667ac08f1728516487e4b5d2f29527354a2c549211386a1070580a3ec2ce315c -size 1460 +oid sha256:5e7c9c826323f89b8455b602674e092764087beccf0405b517bbbb3f7dfffae2 +size 1712 diff --git a/assets/voxygen/voxel/npc/fox/male/tail.vox b/assets/voxygen/voxel/npc/fox/male/tail.vox index f70316f75a..aef37bdcd0 100644 --- a/assets/voxygen/voxel/npc/fox/male/tail.vox +++ b/assets/voxygen/voxel/npc/fox/male/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a51ba48f622afb0447e6e16893b79dac5d34fc85076373f3e41b5b07d30b17ac -size 1264 +oid sha256:102bf4fa91b0e707387587f57f38d381cd5be8a77be02d7330aeb4f687645968 +size 1464 diff --git a/assets/voxygen/voxel/npc/frog/male/chest.vox b/assets/voxygen/voxel/npc/frog/male/chest.vox new file mode 100644 index 0000000000..910a6bf96f --- /dev/null +++ b/assets/voxygen/voxel/npc/frog/male/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed7842d9ea39d89d7bc30ae087d148431f9ac98aebc216c790c11726bddb5c50 +size 1980 diff --git a/assets/voxygen/voxel/npc/frog/male/foot_bl.vox b/assets/voxygen/voxel/npc/frog/male/foot_bl.vox new file mode 100644 index 0000000000..6a71af4f1b --- /dev/null +++ b/assets/voxygen/voxel/npc/frog/male/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73639cb81b4346ed81cbec74e463271b908b8d4cf64ff460f96cd4a56e97fb67 +size 1240 diff --git a/assets/voxygen/voxel/npc/frog/male/foot_br.vox b/assets/voxygen/voxel/npc/frog/male/foot_br.vox new file mode 100644 index 0000000000..9b6f8bd9ae --- /dev/null +++ b/assets/voxygen/voxel/npc/frog/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a793f98374657cfceb9b9bebbf09de5e987b7740f1794806a35d285d41c8b66b +size 1240 diff --git a/assets/voxygen/voxel/npc/frog/male/foot_fl.vox b/assets/voxygen/voxel/npc/frog/male/foot_fl.vox new file mode 100644 index 0000000000..33e9134b53 --- /dev/null +++ b/assets/voxygen/voxel/npc/frog/male/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55c7a3fb00a34206552249f6bdc6f5caf9ae441545769de9a1952eb2dabc42ba +size 1164 diff --git a/assets/voxygen/voxel/npc/frog/male/foot_fr.vox b/assets/voxygen/voxel/npc/frog/male/foot_fr.vox new file mode 100644 index 0000000000..a0aa5f1930 --- /dev/null +++ b/assets/voxygen/voxel/npc/frog/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6397928ad51e341ca36336aff868db8a5407ee2b02f4b26bf07e4222865a1011 +size 1164 diff --git a/assets/voxygen/voxel/npc/frog/male/head.vox b/assets/voxygen/voxel/npc/frog/male/head.vox new file mode 100644 index 0000000000..3dac017559 --- /dev/null +++ b/assets/voxygen/voxel/npc/frog/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c4ca0329f5e75269b38d21031e958605cde7d054b99a9a54357af163587ea93 +size 1868 diff --git a/assets/voxygen/voxel/npc/holladon/male/chest.vox b/assets/voxygen/voxel/npc/holladon/male/chest.vox index 99bd964c2d..f8f5e969c1 100644 --- a/assets/voxygen/voxel/npc/holladon/male/chest.vox +++ b/assets/voxygen/voxel/npc/holladon/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:01d2624d38eff5729e36c02ecf5f55c200dc5f3cd54bc0ef4406bdfba25bb5b7 -size 2320 +oid sha256:e32eb52109eb7a867c97ad0abf4ebbd3424b63e8c84fa9d222f7680dbaa51799 +size 3048 diff --git a/assets/voxygen/voxel/npc/holladon/male/foot_bl.vox b/assets/voxygen/voxel/npc/holladon/male/foot_bl.vox index a8bf362869..7874d827e4 100644 --- a/assets/voxygen/voxel/npc/holladon/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/holladon/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dcce6b18422e3e3b642e62e689cab55e2070b5256bc223b52d72d7c518d4b0ed -size 1196 +oid sha256:e4f0879993c621a3ca92436f9e996386cdf6a3124c3a543179a91f70f07c7441 +size 1200 diff --git a/assets/voxygen/voxel/npc/holladon/male/foot_br.vox b/assets/voxygen/voxel/npc/holladon/male/foot_br.vox index e4184c7690..cbe85510a3 100644 --- a/assets/voxygen/voxel/npc/holladon/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/holladon/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9e7dee876086a5856742a805f8ab80c321ebb64c21b0a7f857e5d2aec7453306 -size 1196 +oid sha256:33048ece0e3630d27ca1f5b6faa9043402f692397f853588f408f8129c22198d +size 1200 diff --git a/assets/voxygen/voxel/npc/holladon/male/foot_fl.vox b/assets/voxygen/voxel/npc/holladon/male/foot_fl.vox index 20436cd81a..ad790ca7a8 100644 --- a/assets/voxygen/voxel/npc/holladon/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/holladon/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fdd7fe6dafd0b74416463a988418d9ae4e0b5ea3c014c6fdf8200f4b0b8973a0 -size 1184 +oid sha256:afd75ceb7ef757f1ba0886a9227090a987a1c01a049e9293a204c7fa733833b7 +size 1248 diff --git a/assets/voxygen/voxel/npc/holladon/male/foot_fr.vox b/assets/voxygen/voxel/npc/holladon/male/foot_fr.vox index 05167204d8..5dcd26b1f9 100644 --- a/assets/voxygen/voxel/npc/holladon/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/holladon/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd8d4ba6094dc6c83b25d57f16fdcf036e4c157dac7470743411fc77592e8ef7 -size 1184 +oid sha256:ded3693f264d8abb2c0039814fb0c936b40539c16416b9fa6eb7d996c45ec621 +size 1248 diff --git a/assets/voxygen/voxel/npc/holladon/male/head.vox b/assets/voxygen/voxel/npc/holladon/male/head.vox index 6b319d7fcc..5816ee49af 100644 --- a/assets/voxygen/voxel/npc/holladon/male/head.vox +++ b/assets/voxygen/voxel/npc/holladon/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dfba8f3bd8a34f05963c3644634495c1567a13d0cc42e1881bb3f8522af4d4f9 -size 1676 +oid sha256:9f29147d3d1e50418dfa0f9b009a8303a13c4256c8410813f41e86e3e6bd8b0c +size 1796 diff --git a/assets/voxygen/voxel/npc/hyena/male/chest.vox b/assets/voxygen/voxel/npc/hyena/male/chest.vox index 4f1b98929f..e09c55d1d2 100644 --- a/assets/voxygen/voxel/npc/hyena/male/chest.vox +++ b/assets/voxygen/voxel/npc/hyena/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0f69811441014a42ce4fb5f70e2d86db8081038f191baa982d8c3ee6edd56153 -size 2704 +oid sha256:597c7bfe6c5144e0b0978095375f649cec614bb6a19a34e2de7c464f15b46574 +size 2936 diff --git a/assets/voxygen/voxel/npc/hyena/male/foot_bl.vox b/assets/voxygen/voxel/npc/hyena/male/foot_bl.vox index 6042e19d34..17acb920a7 100644 --- a/assets/voxygen/voxel/npc/hyena/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/hyena/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:275c8b8d5a083f64fbde416df87547d0d9606cf602816d478e0af55aeac0bb7c -size 1244 +oid sha256:ccaa64d65281b1781cb8aa16620c8196b9841d4cb3574b04403fb23c807b2509 +size 1272 diff --git a/assets/voxygen/voxel/npc/hyena/male/foot_br.vox b/assets/voxygen/voxel/npc/hyena/male/foot_br.vox index 097ab61953..17acb920a7 100644 --- a/assets/voxygen/voxel/npc/hyena/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/hyena/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cb678cfb93421a60a6f8858a7c79a4cfdfcdd279d24b044b01b9dcd4cb899ea8 -size 1244 +oid sha256:ccaa64d65281b1781cb8aa16620c8196b9841d4cb3574b04403fb23c807b2509 +size 1272 diff --git a/assets/voxygen/voxel/npc/hyena/male/foot_fl.vox b/assets/voxygen/voxel/npc/hyena/male/foot_fl.vox index 06237aeedd..6c90343ea2 100644 --- a/assets/voxygen/voxel/npc/hyena/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/hyena/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e51c5791f3322f02b62b1acf269a4d9338255cf2d74a6476fa8b4ea3eef48d94 -size 1272 +oid sha256:435225bdb49373f5e45bddc13396b7f477b25599f2caac75886e3f9f00297eab +size 1284 diff --git a/assets/voxygen/voxel/npc/hyena/male/foot_fr.vox b/assets/voxygen/voxel/npc/hyena/male/foot_fr.vox index 53e6a5754c..7c0bfdd7e9 100644 --- a/assets/voxygen/voxel/npc/hyena/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/hyena/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5a668bc6325d38faf2ca0bd1a969ee3d255cafccf11c5f544a19ac72cfb83e19 -size 1272 +oid sha256:ee258d50b407aacc32a4f59b17d31395b201e64745523f2de34df3eb2fa02b5b +size 1284 diff --git a/assets/voxygen/voxel/npc/hyena/male/head.vox b/assets/voxygen/voxel/npc/hyena/male/head.vox index 8ea905996a..77e647204a 100644 --- a/assets/voxygen/voxel/npc/hyena/male/head.vox +++ b/assets/voxygen/voxel/npc/hyena/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3948a5ef12beff539ff08a6a202d70fb0bda075ffa5ec596b32b6497fa882017 -size 1528 +oid sha256:327464dc14180cb5e7bccac534f65553ad286a8c130f81774243aca89d4fa759 +size 1640 diff --git a/assets/voxygen/voxel/npc/hyena/male/tail.vox b/assets/voxygen/voxel/npc/hyena/male/tail.vox index 0758e9cf3b..6cf707b992 100644 --- a/assets/voxygen/voxel/npc/hyena/male/tail.vox +++ b/assets/voxygen/voxel/npc/hyena/male/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bf057bd10925867cbc89706abfbeece5f677ed6c8f961e1910f32ddd3c3aa067 +oid sha256:6f205ec5a3c6816631d57b9e74656a7da4fd240cf26e03589940b6d6a7bde1e1 size 1176 diff --git a/assets/voxygen/voxel/npc/jackalope/male/chest.vox b/assets/voxygen/voxel/npc/jackalope/male/chest.vox index 7cb3b89cf1..4a49032577 100644 --- a/assets/voxygen/voxel/npc/jackalope/male/chest.vox +++ b/assets/voxygen/voxel/npc/jackalope/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4bb982aa17793394e9972cd27259222bd9d87bd56801e9fb37cbeefb2f460767 -size 1748 +oid sha256:c02ef90b83e6facd9ca08809842db12cc6aacce8f27af9b0047166b68af39aec +size 2068 diff --git a/assets/voxygen/voxel/npc/jackalope/male/foot_bl.vox b/assets/voxygen/voxel/npc/jackalope/male/foot_bl.vox index efbc0f88ba..dae8b99501 100644 --- a/assets/voxygen/voxel/npc/jackalope/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/jackalope/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8ff7aaaf7fb12c68f29e90121862efd7f4500df902b9d83e3828de3a628389df -size 1296 +oid sha256:20d8d1bb0baa44be27d956d2af8db5bba5c56b6e6a3c579b7f4283a310324015 +size 1272 diff --git a/assets/voxygen/voxel/npc/jackalope/male/foot_br.vox b/assets/voxygen/voxel/npc/jackalope/male/foot_br.vox index 55b9b9d21c..c81c5f7824 100644 --- a/assets/voxygen/voxel/npc/jackalope/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/jackalope/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:04da13ca9c68dfdc58f32d385d482ae37544fabac4c92ac13820ae858d3a4be1 -size 1296 +oid sha256:69c4f63beb7b8bb8ac784b5d5520a64a1a3f85b37c4823d5b4f6deaca2186f10 +size 1272 diff --git a/assets/voxygen/voxel/npc/jackalope/male/foot_fl.vox b/assets/voxygen/voxel/npc/jackalope/male/foot_fl.vox index 7ebcb26e49..952c180d2e 100644 --- a/assets/voxygen/voxel/npc/jackalope/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/jackalope/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f05e59572f10d14316f5633e11dadbb64b74fe2fe92542c0c78630770b52827f -size 1164 +oid sha256:89b051e86f59eccfc98d3808d89ec01d00c0a05f99e03879a6a9237bae72711d +size 1192 diff --git a/assets/voxygen/voxel/npc/jackalope/male/foot_fr.vox b/assets/voxygen/voxel/npc/jackalope/male/foot_fr.vox index 1ca33a3960..ea9ebe3296 100644 --- a/assets/voxygen/voxel/npc/jackalope/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/jackalope/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:61cb8ee173957ff56da0a5372d2d75091e00ad4384a766daffe53f5448e8b016 -size 1164 +oid sha256:40337a7aacb8ec092b71719d3332d578763cfbc7350227ea1da38a517f2a2691 +size 1192 diff --git a/assets/voxygen/voxel/npc/jackalope/male/head.vox b/assets/voxygen/voxel/npc/jackalope/male/head.vox index 6c1ff8243f..098144e1b1 100644 --- a/assets/voxygen/voxel/npc/jackalope/male/head.vox +++ b/assets/voxygen/voxel/npc/jackalope/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:00f90c53bafe5cf31ddd6ddd847f8c99d2693835ac184a8ef0cc10503469595d -size 1628 +oid sha256:ed02747e6f5e6766faf9da9ab473255dac8f99fb6045bf37a3ff49a42b679908 +size 1932 diff --git a/assets/voxygen/voxel/npc/jackalope/male/tail.vox b/assets/voxygen/voxel/npc/jackalope/male/tail.vox new file mode 100644 index 0000000000..f328309214 --- /dev/null +++ b/assets/voxygen/voxel/npc/jackalope/male/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:debc2f9c8e0cd929a9ddc7deb5c02834b68752f8e19c20f8f38734d8296b1826 +size 1196 diff --git a/assets/voxygen/voxel/npc/maneater/male/chest.vox b/assets/voxygen/voxel/npc/maneater/male/chest.vox new file mode 100644 index 0000000000..5f84a6a1ed --- /dev/null +++ b/assets/voxygen/voxel/npc/maneater/male/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e6c07bc69f792c5ceca945fefdd3b718ef8223f8f9f63aba9ecd4b05b2f39a6 +size 4676 diff --git a/assets/voxygen/voxel/npc/maneater/male/foot_bl.vox b/assets/voxygen/voxel/npc/maneater/male/foot_bl.vox new file mode 100644 index 0000000000..1e351d142f --- /dev/null +++ b/assets/voxygen/voxel/npc/maneater/male/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63f8b9c9811b7b1eaa5368793014431fb6bd329a6117c19646ccdf300dbd3b15 +size 1648 diff --git a/assets/voxygen/voxel/npc/maneater/male/foot_br.vox b/assets/voxygen/voxel/npc/maneater/male/foot_br.vox new file mode 100644 index 0000000000..746ecdf96f --- /dev/null +++ b/assets/voxygen/voxel/npc/maneater/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f6d31b0d8bfd7856c730fee8a1da2470452003f1f9cb7411506d9354e26b320 +size 1648 diff --git a/assets/voxygen/voxel/npc/maneater/male/foot_fl.vox b/assets/voxygen/voxel/npc/maneater/male/foot_fl.vox new file mode 100644 index 0000000000..677939e776 --- /dev/null +++ b/assets/voxygen/voxel/npc/maneater/male/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37e29cbcc2ed259549c83ad0bfb2f55cb78c649eecc72e0e96f6c8789bd8fe3a +size 1648 diff --git a/assets/voxygen/voxel/npc/maneater/male/foot_fr.vox b/assets/voxygen/voxel/npc/maneater/male/foot_fr.vox new file mode 100644 index 0000000000..30212e2e49 --- /dev/null +++ b/assets/voxygen/voxel/npc/maneater/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0622a6997ed3f18f9b70d24a382f9d1d582b3cca430a0ee433fd7f71d0c6a3b +size 1648 diff --git a/assets/voxygen/voxel/npc/maneater/male/head_lower.vox b/assets/voxygen/voxel/npc/maneater/male/head_lower.vox new file mode 100644 index 0000000000..fb5f0a789e --- /dev/null +++ b/assets/voxygen/voxel/npc/maneater/male/head_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c7e37a8a73a1b6f5551022e4c7b7d0bd9ea5cf1b5637cd6d4af6ddef9af3a32 +size 3064 diff --git a/assets/voxygen/voxel/npc/maneater/male/head_upper.vox b/assets/voxygen/voxel/npc/maneater/male/head_upper.vox new file mode 100644 index 0000000000..38d6ebdbaf --- /dev/null +++ b/assets/voxygen/voxel/npc/maneater/male/head_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35da859bff5c8d59e1c38e3b1de823f32b70fdd06fb2cf2b904a2fdbdeb077b0 +size 1744 diff --git a/assets/voxygen/voxel/npc/maneater/male/jaw.vox b/assets/voxygen/voxel/npc/maneater/male/jaw.vox new file mode 100644 index 0000000000..b3b1cfa502 --- /dev/null +++ b/assets/voxygen/voxel/npc/maneater/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:428c973ed7e3806c0494419c4628ce326bd86760a8434cee10a98ac7cac9343d +size 5980 diff --git a/assets/voxygen/voxel/npc/maneater/male/tail_front.vox b/assets/voxygen/voxel/npc/maneater/male/tail_front.vox new file mode 100644 index 0000000000..429d56c39b --- /dev/null +++ b/assets/voxygen/voxel/npc/maneater/male/tail_front.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:baad7f1d7cc8c5f38b7777a0d1bab6e1c7c3651ede9d42f96b16abddaa92d374 +size 1668 diff --git a/assets/voxygen/voxel/npc/maneater/male/tail_rear.vox b/assets/voxygen/voxel/npc/maneater/male/tail_rear.vox new file mode 100644 index 0000000000..4446447579 --- /dev/null +++ b/assets/voxygen/voxel/npc/maneater/male/tail_rear.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:213dfc75204d14fe7304a79d7a221e460c6a54324d2ac57f61bfb633cc959566 +size 1288 diff --git a/assets/voxygen/voxel/npc/peacock/male/chest.vox b/assets/voxygen/voxel/npc/peacock/male/chest.vox deleted file mode 100644 index efec8ac0ca..0000000000 --- a/assets/voxygen/voxel/npc/peacock/male/chest.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:24688eaad7d459d4a4c0eba71edaca1ba83ec09552b970ac581c6e2e2081f880 -size 1932 diff --git a/assets/voxygen/voxel/npc/peacock/male/torso.vox b/assets/voxygen/voxel/npc/peacock/male/torso.vox index 58b5a9b000..efec8ac0ca 100644 --- a/assets/voxygen/voxel/npc/peacock/male/torso.vox +++ b/assets/voxygen/voxel/npc/peacock/male/torso.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3887edeebda253b90f44441205a28eadd1e5b94c9f3868c0f8f610d31af02aba -size 2296 +oid sha256:24688eaad7d459d4a4c0eba71edaca1ba83ec09552b970ac581c6e2e2081f880 +size 1932 diff --git a/assets/voxygen/voxel/npc/pig/female/chest.vox b/assets/voxygen/voxel/npc/pig/female/chest.vox deleted file mode 100644 index da66786e5e..0000000000 --- a/assets/voxygen/voxel/npc/pig/female/chest.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:febe5a7a2959574cf9873db2fcd2dd61644cb1a1fac818b0d157fb8f8abf8e2e -size 2728 diff --git a/assets/voxygen/voxel/npc/pig/female/foot_l.vox b/assets/voxygen/voxel/npc/pig/female/foot_l.vox deleted file mode 100644 index 518432bf67..0000000000 --- a/assets/voxygen/voxel/npc/pig/female/foot_l.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:55a443d2826d552d8bf102c4914a8e8f320a9560c29a1dcf77c8c08212f7bc9e -size 1144 diff --git a/assets/voxygen/voxel/npc/pig/female/foot_r.vox b/assets/voxygen/voxel/npc/pig/female/foot_r.vox deleted file mode 100644 index 2506fc9a35..0000000000 --- a/assets/voxygen/voxel/npc/pig/female/foot_r.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0fcb492dc6627ad5a1e1519a18eef5e477ffc2b204f022ae77f477213e6da75d -size 1144 diff --git a/assets/voxygen/voxel/npc/pig/female/head.vox b/assets/voxygen/voxel/npc/pig/female/head.vox deleted file mode 100644 index 4559259d51..0000000000 --- a/assets/voxygen/voxel/npc/pig/female/head.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4a773dc802bff2d93a62a0c495c37c1de61002a5ad642441253d848c0b621e5e -size 2720 diff --git a/assets/voxygen/voxel/npc/pig/female/tail.vox b/assets/voxygen/voxel/npc/pig/female/tail.vox deleted file mode 100644 index 18bd5abd07..0000000000 --- a/assets/voxygen/voxel/npc/pig/female/tail.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d9cf49f35b190575852475f5b6105c387c9ce06a2e96ae822d930b7269945c1b -size 1120 diff --git a/assets/voxygen/voxel/npc/pig/male/chest.vox b/assets/voxygen/voxel/npc/pig/male/chest.vox index 5e73b2d591..314fe26fde 100644 --- a/assets/voxygen/voxel/npc/pig/male/chest.vox +++ b/assets/voxygen/voxel/npc/pig/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6d66ecfd9935a08918afce0182d1ba683670b385a4eb83517987f01b43fe9dc9 -size 2728 +oid sha256:170ab26eb390edb51611472158d2ec684544ae8554d5f68e2dce0ebba2c71885 +size 3176 diff --git a/assets/voxygen/voxel/npc/pig/male/foot_bl.vox b/assets/voxygen/voxel/npc/pig/male/foot_bl.vox new file mode 100644 index 0000000000..8aba943b41 --- /dev/null +++ b/assets/voxygen/voxel/npc/pig/male/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8538576cb07634d5b65d1770c964aedd44f308503b26c60e74f42a74e10d2a1 +size 1240 diff --git a/assets/voxygen/voxel/npc/pig/male/foot_br.vox b/assets/voxygen/voxel/npc/pig/male/foot_br.vox new file mode 100644 index 0000000000..4e807ca0ac --- /dev/null +++ b/assets/voxygen/voxel/npc/pig/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f8d95c0e4565826aac2d4b6af22fb0d9cd902d71fe52cce74ffa8220367ddbc6 +size 1240 diff --git a/assets/voxygen/voxel/npc/pig/male/foot_fl.vox b/assets/voxygen/voxel/npc/pig/male/foot_fl.vox new file mode 100644 index 0000000000..cf95caec8f --- /dev/null +++ b/assets/voxygen/voxel/npc/pig/male/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3ec823e5b628dabf27526524603feb436fe7b8123b5c8aee540dae984f5bb44 +size 1196 diff --git a/assets/voxygen/voxel/npc/pig/male/foot_fr.vox b/assets/voxygen/voxel/npc/pig/male/foot_fr.vox new file mode 100644 index 0000000000..3f798e3660 --- /dev/null +++ b/assets/voxygen/voxel/npc/pig/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36c019f483b17f8e35f3965f0408178b88b79d2ae953367ca2bf2986fda8aad8 +size 1196 diff --git a/assets/voxygen/voxel/npc/pig/male/foot_l.vox b/assets/voxygen/voxel/npc/pig/male/foot_l.vox deleted file mode 100644 index d016d1b2b0..0000000000 --- a/assets/voxygen/voxel/npc/pig/male/foot_l.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d1fd44f8c1bd1eb9cab7a4d0632b6db52e9aada97b01a7fca8ea4f2f98186685 -size 1144 diff --git a/assets/voxygen/voxel/npc/pig/male/foot_r.vox b/assets/voxygen/voxel/npc/pig/male/foot_r.vox deleted file mode 100644 index bf5a48a400..0000000000 --- a/assets/voxygen/voxel/npc/pig/male/foot_r.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:79a83692fb7a5791cef6848ad14e27a79585f7a0cf872f20b2b556b9cd18838e -size 1144 diff --git a/assets/voxygen/voxel/npc/pig/male/head.vox b/assets/voxygen/voxel/npc/pig/male/head.vox index 39ac9d39b6..56d62f1ca7 100644 --- a/assets/voxygen/voxel/npc/pig/male/head.vox +++ b/assets/voxygen/voxel/npc/pig/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a56643b54eb4d39ad58b3bcab88390ddea58cf41351b39ad32b83612900b71c1 -size 2720 +oid sha256:77d5da151969f69eb05efa02a8ff6e66c71de1333680761f06261e7a1d6e231b +size 2576 diff --git a/assets/voxygen/voxel/npc/pig/male/tail.vox b/assets/voxygen/voxel/npc/pig/male/tail.vox index bd318d8f38..65bddb32a6 100644 --- a/assets/voxygen/voxel/npc/pig/male/tail.vox +++ b/assets/voxygen/voxel/npc/pig/male/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a0585aaeca7f094336d38c62ff0d58dca4ff38c1787abd00fd11c600bc2d297f -size 1120 +oid sha256:08ba2dc4816001364968f8080b049e11c6cbe157970cf1f2ff1938fe32321258 +size 1140 diff --git a/assets/voxygen/voxel/npc/quokka/male/chest.vox b/assets/voxygen/voxel/npc/quokka/male/chest.vox index af2069b4f1..0573a960fb 100644 --- a/assets/voxygen/voxel/npc/quokka/male/chest.vox +++ b/assets/voxygen/voxel/npc/quokka/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:84140cc082752707b15a5f7e8342820ec5d8ae41c9dd61249352d35179fa4461 -size 3928 +oid sha256:946d3c0ba8b65edf010030cbe503b744469ffd8df56d0bcaa29979e60e16879c +size 2868 diff --git a/assets/voxygen/voxel/npc/quokka/male/foot_bl.vox b/assets/voxygen/voxel/npc/quokka/male/foot_bl.vox index 895fe053b8..a354da08aa 100644 --- a/assets/voxygen/voxel/npc/quokka/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/quokka/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:615cfbbbb395c89695963347f99103fa2f291f040898038ba3d05e66d4cfa927 -size 1188 +oid sha256:36b6413c289b05d9507645f4cbd1da124dbd41411d67ecb808e123944756c2fa +size 1260 diff --git a/assets/voxygen/voxel/npc/quokka/male/foot_br.vox b/assets/voxygen/voxel/npc/quokka/male/foot_br.vox index d72af08983..175f47168d 100644 --- a/assets/voxygen/voxel/npc/quokka/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/quokka/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f560e45d3d7cd70e913bb009a3eebb2390304cad1fec4611da8b2020a79dd904 -size 1188 +oid sha256:56a1d9c31d391686264b22320c5d97c3b8a364666ce84a14e4a2153fd646c777 +size 1260 diff --git a/assets/voxygen/voxel/npc/quokka/male/foot_fl.vox b/assets/voxygen/voxel/npc/quokka/male/foot_fl.vox index 1c213ffda6..1881d416c7 100644 --- a/assets/voxygen/voxel/npc/quokka/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/quokka/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:77c5bf0656594dc80ff47f2fdf0afd0ffa7c96045a8e0f80e03eaeeae20dba87 -size 1164 +oid sha256:d122132ae892a25c2592460832272afe139f237774b1baeadf1fb62f96a33da6 +size 1204 diff --git a/assets/voxygen/voxel/npc/quokka/male/foot_fr.vox b/assets/voxygen/voxel/npc/quokka/male/foot_fr.vox index cba098f695..65e5bab6ca 100644 --- a/assets/voxygen/voxel/npc/quokka/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/quokka/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:789b7ce6793bcc9bdc2f1edfd627788ae0187ecfe2937c67d4f31a2d468c75c0 -size 1164 +oid sha256:8266a7b988e8c33ff6c4c4532138b20016155cb2483c79c043f926842c13c341 +size 1204 diff --git a/assets/voxygen/voxel/npc/quokka/male/head.vox b/assets/voxygen/voxel/npc/quokka/male/head.vox index 0cd442286b..cd7e324bc2 100644 --- a/assets/voxygen/voxel/npc/quokka/male/head.vox +++ b/assets/voxygen/voxel/npc/quokka/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bde80d9aada68898e93c03a1be4a39ac5116283990f61ce57e6daa4726281535 -size 1668 +oid sha256:fe015a51c3b18d8df86d8ad36de57159dce01ce233796c84e405e868bbf5569a +size 1808 diff --git a/assets/voxygen/voxel/npc/quokka/male/tail.vox b/assets/voxygen/voxel/npc/quokka/male/tail.vox new file mode 100644 index 0000000000..4533f5baa1 --- /dev/null +++ b/assets/voxygen/voxel/npc/quokka/male/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddb2978bb65c62fae398c15aa2882fbd5ff42b71a20e6913c1dcac6d28474322 +size 1200 diff --git a/assets/voxygen/voxel/npc/rabbit/male/chest.vox b/assets/voxygen/voxel/npc/rabbit/male/chest.vox new file mode 100644 index 0000000000..1126349101 --- /dev/null +++ b/assets/voxygen/voxel/npc/rabbit/male/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:936e1644606921c1d2943ac2c86079ce5cf3631b895898578adcfbca93aebcb5 +size 2000 diff --git a/assets/voxygen/voxel/npc/rabbit/male/foot_bl.vox b/assets/voxygen/voxel/npc/rabbit/male/foot_bl.vox new file mode 100644 index 0000000000..868c822d9b --- /dev/null +++ b/assets/voxygen/voxel/npc/rabbit/male/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5f985c6875dee0144b547f7448a6cdc111332a1d260f597e71f3b627359e3a5 +size 1208 diff --git a/assets/voxygen/voxel/npc/rabbit/male/foot_br.vox b/assets/voxygen/voxel/npc/rabbit/male/foot_br.vox new file mode 100644 index 0000000000..28df650559 --- /dev/null +++ b/assets/voxygen/voxel/npc/rabbit/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95a2e8d8511d4841bf3a10f552e864fd4368b0549e7982a59b1ec3e1c13fe08c +size 1208 diff --git a/assets/voxygen/voxel/npc/rabbit/male/foot_fl.vox b/assets/voxygen/voxel/npc/rabbit/male/foot_fl.vox new file mode 100644 index 0000000000..0de756b69f --- /dev/null +++ b/assets/voxygen/voxel/npc/rabbit/male/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d91b461f9623b85a98e37bb327700b932dfa5cff077f7705017ee4b1ee4f90fa +size 1148 diff --git a/assets/voxygen/voxel/npc/rabbit/male/foot_fr.vox b/assets/voxygen/voxel/npc/rabbit/male/foot_fr.vox new file mode 100644 index 0000000000..08568fb0ca --- /dev/null +++ b/assets/voxygen/voxel/npc/rabbit/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d8c36d1e5f1ce92df161bd3c7b7bdff3568b69a185b638c69275cba1c762c96 +size 1148 diff --git a/assets/voxygen/voxel/npc/rabbit/male/head.vox b/assets/voxygen/voxel/npc/rabbit/male/head.vox new file mode 100644 index 0000000000..3a65521a3c --- /dev/null +++ b/assets/voxygen/voxel/npc/rabbit/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8dba0a36d564b41610d1d88824c2af978eae9049704a91bb934bc5f167baa08 +size 1760 diff --git a/assets/voxygen/voxel/npc/rabbit/male/tail.vox b/assets/voxygen/voxel/npc/rabbit/male/tail.vox new file mode 100644 index 0000000000..5118f628d5 --- /dev/null +++ b/assets/voxygen/voxel/npc/rabbit/male/tail.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb7e8ee6d19a70bd32aa43b3d5625bcb5aabc749b7869aa3000914b4cdadebba +size 1156 diff --git a/assets/voxygen/voxel/npc/raccoon/male/chest.vox b/assets/voxygen/voxel/npc/raccoon/male/chest.vox index 660dd88009..27ba40a372 100644 --- a/assets/voxygen/voxel/npc/raccoon/male/chest.vox +++ b/assets/voxygen/voxel/npc/raccoon/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c23b2de4e28c1d7037bd7d2bc29dde4bebe0fb423afd05176432f25d73fe1d2 -size 2000 +oid sha256:56862e63c0e24946a8626a073b219b3ba76f5e9a0477296ef00ceed42ee0fe19 +size 2944 diff --git a/assets/voxygen/voxel/npc/raccoon/male/foot_bl.vox b/assets/voxygen/voxel/npc/raccoon/male/foot_bl.vox index 00f545a150..22258dac64 100644 --- a/assets/voxygen/voxel/npc/raccoon/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/raccoon/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6356277a1f8d2ba4fae22cb8bd591a9670857cfd4436293975bc6094775f9600 -size 1156 +oid sha256:96aaa0de2bc320f2f1208111e115bd88b52147d87daeb558eafd0b7b0e9fdcdf +size 1420 diff --git a/assets/voxygen/voxel/npc/raccoon/male/foot_br.vox b/assets/voxygen/voxel/npc/raccoon/male/foot_br.vox index 4c82095d3b..83417c2449 100644 --- a/assets/voxygen/voxel/npc/raccoon/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/raccoon/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b4f0333e558b9d737de8b2710fe271b82b9c1d9c22539dfa6a78eb77230e1310 -size 1156 +oid sha256:606aab33e28451102d2c027d851bf79f9f847104a96713c39c683333e5a56dd0 +size 1420 diff --git a/assets/voxygen/voxel/npc/raccoon/male/foot_fl.vox b/assets/voxygen/voxel/npc/raccoon/male/foot_fl.vox index 8ce37308f4..81e6c8c86b 100644 --- a/assets/voxygen/voxel/npc/raccoon/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/raccoon/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0adf6fc53289f95c27f2460d62bf0a70e59559f2a1ef310e6e850c73ba6f79f4 -size 1128 +oid sha256:c6d0e52becc669f11c2e4287f6e770c89a7062698842f68e42a72b14f9d5a894 +size 1240 diff --git a/assets/voxygen/voxel/npc/raccoon/male/foot_fr.vox b/assets/voxygen/voxel/npc/raccoon/male/foot_fr.vox index 8ce37308f4..6fe5635dad 100644 --- a/assets/voxygen/voxel/npc/raccoon/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/raccoon/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0adf6fc53289f95c27f2460d62bf0a70e59559f2a1ef310e6e850c73ba6f79f4 -size 1128 +oid sha256:b863044a40dd813529b4ab83979df69da78926c6856512f8effe2ef70e61190a +size 1240 diff --git a/assets/voxygen/voxel/npc/raccoon/male/head.vox b/assets/voxygen/voxel/npc/raccoon/male/head.vox index 055cee1293..1b80d46b5a 100644 --- a/assets/voxygen/voxel/npc/raccoon/male/head.vox +++ b/assets/voxygen/voxel/npc/raccoon/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:12770477f8bb15304a622926c43d52d9ef7ff38b45e8fa8e6983411fd3fd0232 -size 1584 +oid sha256:c81a8a31efdd6a81720d1807b884bc7c4644b0008c3a6e5d78d11ae28b95cb72 +size 2008 diff --git a/assets/voxygen/voxel/npc/raccoon/male/tail.vox b/assets/voxygen/voxel/npc/raccoon/male/tail.vox index 8efdc25588..ef4cd86185 100644 --- a/assets/voxygen/voxel/npc/raccoon/male/tail.vox +++ b/assets/voxygen/voxel/npc/raccoon/male/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7a9ae036b292c7ca32aa8111fd512ebbd281f79f99009a5340ce2bd2800f32d0 -size 1176 +oid sha256:acaaaad14862338f1d40364c5aa8e9a9c7fd2c6d6536cb79390bf56fe1a5b6f9 +size 1664 diff --git a/assets/voxygen/voxel/npc/sheep/female/chest.vox b/assets/voxygen/voxel/npc/sheep/female/chest.vox index 58fdfc22c0..e207a4de88 100644 --- a/assets/voxygen/voxel/npc/sheep/female/chest.vox +++ b/assets/voxygen/voxel/npc/sheep/female/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d28768d19e54b8e396588e97cafab4f3ccf1e417c8f292380588062067798c92 -size 3336 +oid sha256:e1ea627aae8f3976f3efe00c05a61bc6ded7ea3234b5040f9c2ac186890f0831 +size 3352 diff --git a/assets/voxygen/voxel/npc/sheep/female/foot_bl.vox b/assets/voxygen/voxel/npc/sheep/female/foot_bl.vox new file mode 100644 index 0000000000..abc6a06dfc --- /dev/null +++ b/assets/voxygen/voxel/npc/sheep/female/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e88930cefb61d3624440c81fb610f112cdd0266978a7dc2ddb5c37bad3030924 +size 1232 diff --git a/assets/voxygen/voxel/npc/sheep/female/foot_br.vox b/assets/voxygen/voxel/npc/sheep/female/foot_br.vox new file mode 100644 index 0000000000..5fbef3849f --- /dev/null +++ b/assets/voxygen/voxel/npc/sheep/female/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:496f52b3adecc213ef14ab84c6fd42ec49605b0515e23ee6abf7d8ddb8aa8976 +size 1232 diff --git a/assets/voxygen/voxel/npc/sheep/female/foot_fl.vox b/assets/voxygen/voxel/npc/sheep/female/foot_fl.vox new file mode 100644 index 0000000000..9d5376fbea --- /dev/null +++ b/assets/voxygen/voxel/npc/sheep/female/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c20c088b32b90d5ec41f95f16b032665d0cdaf11e5f1df60d3dde90b81ff2a1c +size 1208 diff --git a/assets/voxygen/voxel/npc/sheep/female/foot_fr.vox b/assets/voxygen/voxel/npc/sheep/female/foot_fr.vox new file mode 100644 index 0000000000..b099eb9af4 --- /dev/null +++ b/assets/voxygen/voxel/npc/sheep/female/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c98e924793aebb7dbddcf621009903c6fc2cf875c840b187bfb6d62b4f8462c0 +size 1208 diff --git a/assets/voxygen/voxel/npc/sheep/female/foot_l.vox b/assets/voxygen/voxel/npc/sheep/female/foot_l.vox deleted file mode 100644 index 420983704f..0000000000 --- a/assets/voxygen/voxel/npc/sheep/female/foot_l.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ff2f232823f1aaeb218908d568678ad54c9955243a711e1e30b2f93efeacfa4 -size 1176 diff --git a/assets/voxygen/voxel/npc/sheep/female/foot_r.vox b/assets/voxygen/voxel/npc/sheep/female/foot_r.vox deleted file mode 100644 index fe9d7eaac8..0000000000 --- a/assets/voxygen/voxel/npc/sheep/female/foot_r.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0a92a0148e46f2127b9d04b3bbfc874ed0ab670b4821f684b7ac83768c58f3a7 -size 1176 diff --git a/assets/voxygen/voxel/npc/sheep/female/head.vox b/assets/voxygen/voxel/npc/sheep/female/head.vox index b73deee331..118008209e 100644 --- a/assets/voxygen/voxel/npc/sheep/female/head.vox +++ b/assets/voxygen/voxel/npc/sheep/female/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9afd4b0377c1a29586d614cd40b1b8bafb9bbc0e6655386eb2a4c97e9ed645a6 -size 1568 +oid sha256:03aac8c8bfd942727da9470cc4ca7d2025811fe10f9ae1dadfe8b516bf22dc1b +size 1744 diff --git a/assets/voxygen/voxel/npc/sheep/male/chest.vox b/assets/voxygen/voxel/npc/sheep/male/chest.vox index 58fdfc22c0..e207a4de88 100644 --- a/assets/voxygen/voxel/npc/sheep/male/chest.vox +++ b/assets/voxygen/voxel/npc/sheep/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d28768d19e54b8e396588e97cafab4f3ccf1e417c8f292380588062067798c92 -size 3336 +oid sha256:e1ea627aae8f3976f3efe00c05a61bc6ded7ea3234b5040f9c2ac186890f0831 +size 3352 diff --git a/assets/voxygen/voxel/npc/sheep/male/foot_bl.vox b/assets/voxygen/voxel/npc/sheep/male/foot_bl.vox new file mode 100644 index 0000000000..abc6a06dfc --- /dev/null +++ b/assets/voxygen/voxel/npc/sheep/male/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e88930cefb61d3624440c81fb610f112cdd0266978a7dc2ddb5c37bad3030924 +size 1232 diff --git a/assets/voxygen/voxel/npc/sheep/male/foot_br.vox b/assets/voxygen/voxel/npc/sheep/male/foot_br.vox new file mode 100644 index 0000000000..5fbef3849f --- /dev/null +++ b/assets/voxygen/voxel/npc/sheep/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:496f52b3adecc213ef14ab84c6fd42ec49605b0515e23ee6abf7d8ddb8aa8976 +size 1232 diff --git a/assets/voxygen/voxel/npc/sheep/male/foot_fl.vox b/assets/voxygen/voxel/npc/sheep/male/foot_fl.vox new file mode 100644 index 0000000000..b099eb9af4 --- /dev/null +++ b/assets/voxygen/voxel/npc/sheep/male/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c98e924793aebb7dbddcf621009903c6fc2cf875c840b187bfb6d62b4f8462c0 +size 1208 diff --git a/assets/voxygen/voxel/npc/sheep/male/foot_fr.vox b/assets/voxygen/voxel/npc/sheep/male/foot_fr.vox new file mode 100644 index 0000000000..9d5376fbea --- /dev/null +++ b/assets/voxygen/voxel/npc/sheep/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c20c088b32b90d5ec41f95f16b032665d0cdaf11e5f1df60d3dde90b81ff2a1c +size 1208 diff --git a/assets/voxygen/voxel/npc/sheep/male/foot_l.vox b/assets/voxygen/voxel/npc/sheep/male/foot_l.vox deleted file mode 100644 index 420983704f..0000000000 --- a/assets/voxygen/voxel/npc/sheep/male/foot_l.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7ff2f232823f1aaeb218908d568678ad54c9955243a711e1e30b2f93efeacfa4 -size 1176 diff --git a/assets/voxygen/voxel/npc/sheep/male/foot_r.vox b/assets/voxygen/voxel/npc/sheep/male/foot_r.vox deleted file mode 100644 index fe9d7eaac8..0000000000 --- a/assets/voxygen/voxel/npc/sheep/male/foot_r.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0a92a0148e46f2127b9d04b3bbfc874ed0ab670b4821f684b7ac83768c58f3a7 -size 1176 diff --git a/assets/voxygen/voxel/npc/sheep/male/head.vox b/assets/voxygen/voxel/npc/sheep/male/head.vox index cb211c0131..1adf34dec7 100644 --- a/assets/voxygen/voxel/npc/sheep/male/head.vox +++ b/assets/voxygen/voxel/npc/sheep/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b75c4cb4644689cef72262e9e5ebf2e975c05ee349a8fa90320149ef314e851b -size 1920 +oid sha256:3fb5c82b8cd219fbc07197a315c9d12361fa5c283ae67f7fcc578d781cd552f0 +size 2072 diff --git a/assets/voxygen/voxel/npc/skunk/male/chest.vox b/assets/voxygen/voxel/npc/skunk/male/chest.vox index 3d24ecc8dc..ac2fa2f7db 100644 --- a/assets/voxygen/voxel/npc/skunk/male/chest.vox +++ b/assets/voxygen/voxel/npc/skunk/male/chest.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:740dfac589c9bdf53e4c096dee5ed4d414e398881d2a05aeb7cd801f975d6633 -size 2280 +oid sha256:521dd65e1a541d1b66d25ae497c2eb8622cd3976bdbd3d7706ec4d4833bc2961 +size 2576 diff --git a/assets/voxygen/voxel/npc/skunk/male/foot_bl.vox b/assets/voxygen/voxel/npc/skunk/male/foot_bl.vox index c93c67d71d..bf6f2ae841 100644 --- a/assets/voxygen/voxel/npc/skunk/male/foot_bl.vox +++ b/assets/voxygen/voxel/npc/skunk/male/foot_bl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:19a023c1991305c934b2591bb0ee45bf49fb828c101009d48fffe30e105af8b2 -size 1152 +oid sha256:189a1dfccfe94573c1ac6d9e6948bc2b399f9d48fee2b4510f852f692cde5eb9 +size 1272 diff --git a/assets/voxygen/voxel/npc/skunk/male/foot_br.vox b/assets/voxygen/voxel/npc/skunk/male/foot_br.vox index c93c67d71d..f9b67dd801 100644 --- a/assets/voxygen/voxel/npc/skunk/male/foot_br.vox +++ b/assets/voxygen/voxel/npc/skunk/male/foot_br.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:19a023c1991305c934b2591bb0ee45bf49fb828c101009d48fffe30e105af8b2 -size 1152 +oid sha256:36c50a2976124064b5fc0a05d9c528fe06fcb91a44792ae5922f675b58e93e5e +size 1272 diff --git a/assets/voxygen/voxel/npc/skunk/male/foot_fl.vox b/assets/voxygen/voxel/npc/skunk/male/foot_fl.vox index 710980ea33..84e7815f4b 100644 --- a/assets/voxygen/voxel/npc/skunk/male/foot_fl.vox +++ b/assets/voxygen/voxel/npc/skunk/male/foot_fl.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b7318ab936d59e1a90d408a0caabda086bb15abe91d342f76d888e25ca7ed3ad -size 1140 +oid sha256:dfac9a2796b701c728ecf70500d524ebcc6c13e03b4e0057fa1c4c5eb3bd3e9b +size 1196 diff --git a/assets/voxygen/voxel/npc/skunk/male/foot_fr.vox b/assets/voxygen/voxel/npc/skunk/male/foot_fr.vox index 0bc8b5f991..f738c5f83f 100644 --- a/assets/voxygen/voxel/npc/skunk/male/foot_fr.vox +++ b/assets/voxygen/voxel/npc/skunk/male/foot_fr.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9604864b8c09add4efe7efc2ef467992cb224777acaf07c3996815024cd00c1b -size 1140 +oid sha256:9a9c42a5090173ee30c73afaf46040781be4d367e52b9c58594147b8d340d79c +size 1196 diff --git a/assets/voxygen/voxel/npc/skunk/male/head.vox b/assets/voxygen/voxel/npc/skunk/male/head.vox index 56b0427ea6..d7a412a5c7 100644 --- a/assets/voxygen/voxel/npc/skunk/male/head.vox +++ b/assets/voxygen/voxel/npc/skunk/male/head.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:052d951e90d925540d348168b974f62756d90dcc3cea0d062cc2d0d8a7017820 -size 1232 +oid sha256:08a7ce2866fcd0bbcb6fad76ed8f8d39e4d4ab29257eadb872f3f471f14735eb +size 1688 diff --git a/assets/voxygen/voxel/npc/skunk/male/tail.vox b/assets/voxygen/voxel/npc/skunk/male/tail.vox index 5bc867817c..e692b5b679 100644 --- a/assets/voxygen/voxel/npc/skunk/male/tail.vox +++ b/assets/voxygen/voxel/npc/skunk/male/tail.vox @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:26a1388485abf8fda1a8c44628e7dc7d85c7ade4c95bccbdf4175579f07fe153 -size 1808 +oid sha256:3d18d2b517779ea30d05e792c23aae070e94f04e427b1c45fc138ff2601eebdb +size 2168 diff --git a/assets/voxygen/voxel/npc/troll/male/foot_l.vox b/assets/voxygen/voxel/npc/troll/male/foot_l.vox new file mode 100644 index 0000000000..4d01fb8f7b --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/foot_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7841f6c64137537d9339ce27f57530714f7da32a05570abc5a53df5755c733bc +size 1772 diff --git a/assets/voxygen/voxel/npc/troll/male/foot_r.vox b/assets/voxygen/voxel/npc/troll/male/foot_r.vox new file mode 100644 index 0000000000..614e74f9e0 --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/foot_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dadb50f16c2ecec316b734490125ceec5600dd3814fba5aa7c69b39f3bc6d163 +size 1772 diff --git a/assets/voxygen/voxel/npc/troll/male/hand_l.vox b/assets/voxygen/voxel/npc/troll/male/hand_l.vox new file mode 100644 index 0000000000..0eac100b7e --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/hand_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6499cdfbca1a5fd80a3160709345f486475e531556bbf1967a7597c4adcf493 +size 2912 diff --git a/assets/voxygen/voxel/npc/troll/male/hand_r.vox b/assets/voxygen/voxel/npc/troll/male/hand_r.vox new file mode 100644 index 0000000000..4802cd12a1 --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65d2871153549e7de7eb336d0d8b2d240c99d97285b44bc80442a37711f85963 +size 2912 diff --git a/assets/voxygen/voxel/npc/troll/male/head.vox b/assets/voxygen/voxel/npc/troll/male/head.vox new file mode 100644 index 0000000000..6d56c9ee94 --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6090d7c9b1b722fe84eabaaa3fd7b0678dd16b35ac59ffa4f997e8d5fdb52253 +size 4704 diff --git a/assets/voxygen/voxel/npc/troll/male/jaw.vox b/assets/voxygen/voxel/npc/troll/male/jaw.vox new file mode 100644 index 0000000000..23ccf45db1 --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/jaw.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3560d24655bb6dfc1e54e8f526814f99a43d626af7b3fc5a4404acd0093048aa +size 1940 diff --git a/assets/voxygen/voxel/npc/troll/male/leg_l.vox b/assets/voxygen/voxel/npc/troll/male/leg_l.vox new file mode 100644 index 0000000000..e80f022e90 --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/leg_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd23c042d142e17a606119472bc52c2e3f773dd83ef8bee9d368baca65320ab6 +size 1664 diff --git a/assets/voxygen/voxel/npc/troll/male/leg_r.vox b/assets/voxygen/voxel/npc/troll/male/leg_r.vox new file mode 100644 index 0000000000..4db2576313 --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/leg_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61f27cd9bdf30ac16748abfa090eacc6113097ca73f7e937f9201c40a6bae57a +size 1664 diff --git a/assets/voxygen/voxel/npc/troll/male/shoulder_l.vox b/assets/voxygen/voxel/npc/troll/male/shoulder_l.vox new file mode 100644 index 0000000000..f1c7a99037 --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/shoulder_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:15606bec0680a834eff98efab9a06331c857a2a3dea9f140af3d0dc0ec169af2 +size 2964 diff --git a/assets/voxygen/voxel/npc/troll/male/shoulder_r.vox b/assets/voxygen/voxel/npc/troll/male/shoulder_r.vox new file mode 100644 index 0000000000..0ae5491411 --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/shoulder_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55c200bbadb757e63fb2d09fcacffddf7ce2cbd3309fd732f9091be7db623393 +size 2964 diff --git a/assets/voxygen/voxel/npc/troll/male/torso_lower.vox b/assets/voxygen/voxel/npc/troll/male/torso_lower.vox new file mode 100644 index 0000000000..e69fe423eb --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/torso_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04cb99c4a0fe61494d022df4b7a557d00017e3672e3244fe1123a1d6b3b81ac7 +size 2336 diff --git a/assets/voxygen/voxel/npc/troll/male/torso_upper.vox b/assets/voxygen/voxel/npc/troll/male/torso_upper.vox new file mode 100644 index 0000000000..8c900374a4 --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/torso_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4abae28c1df2eaaa2b75fec7b3b754f330f159590a66fd89a69387781de22ab7 +size 10424 diff --git a/assets/voxygen/voxel/npc/troll/male/weapon_r.vox b/assets/voxygen/voxel/npc/troll/male/weapon_r.vox new file mode 100644 index 0000000000..c284ff1af6 --- /dev/null +++ b/assets/voxygen/voxel/npc/troll/male/weapon_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3b000db8520e52cadef06fcd9e94ed922d311ce123a44f4601f1636a4636869 +size 2864 diff --git a/assets/voxygen/voxel/npc/truffler/male/chest.vox b/assets/voxygen/voxel/npc/truffler/male/chest.vox new file mode 100644 index 0000000000..258a2112a2 --- /dev/null +++ b/assets/voxygen/voxel/npc/truffler/male/chest.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f8b9125aae9e8c363e156c24501326a7477adb916f3053b926894e30b65c461 +size 15840 diff --git a/assets/voxygen/voxel/npc/truffler/male/foot_bl.vox b/assets/voxygen/voxel/npc/truffler/male/foot_bl.vox new file mode 100644 index 0000000000..603e677bed --- /dev/null +++ b/assets/voxygen/voxel/npc/truffler/male/foot_bl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48402fcea0ca0d40993c2b07ab6cec6421bb1c320c736bee8c214812761a590d +size 1412 diff --git a/assets/voxygen/voxel/npc/truffler/male/foot_br.vox b/assets/voxygen/voxel/npc/truffler/male/foot_br.vox new file mode 100644 index 0000000000..603e677bed --- /dev/null +++ b/assets/voxygen/voxel/npc/truffler/male/foot_br.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48402fcea0ca0d40993c2b07ab6cec6421bb1c320c736bee8c214812761a590d +size 1412 diff --git a/assets/voxygen/voxel/npc/truffler/male/foot_fl.vox b/assets/voxygen/voxel/npc/truffler/male/foot_fl.vox new file mode 100644 index 0000000000..603e677bed --- /dev/null +++ b/assets/voxygen/voxel/npc/truffler/male/foot_fl.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48402fcea0ca0d40993c2b07ab6cec6421bb1c320c736bee8c214812761a590d +size 1412 diff --git a/assets/voxygen/voxel/npc/truffler/male/foot_fr.vox b/assets/voxygen/voxel/npc/truffler/male/foot_fr.vox new file mode 100644 index 0000000000..603e677bed --- /dev/null +++ b/assets/voxygen/voxel/npc/truffler/male/foot_fr.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48402fcea0ca0d40993c2b07ab6cec6421bb1c320c736bee8c214812761a590d +size 1412 diff --git a/assets/voxygen/voxel/npc/truffler/male/head.vox b/assets/voxygen/voxel/npc/truffler/male/head.vox new file mode 100644 index 0000000000..fee07482e7 --- /dev/null +++ b/assets/voxygen/voxel/npc/truffler/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a9d6e31cd84c7aa683619f94a93518841797d6766a95ec49c547ff9d423fa4c +size 2992 diff --git a/assets/voxygen/voxel/npc/wendigo/male/foot_l.vox b/assets/voxygen/voxel/npc/wendigo/male/foot_l.vox new file mode 100644 index 0000000000..b8fc5b5d33 --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/foot_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a68f4b7ef3d21864a4f3f3cc49cdbfb38739716348c33fd4d7db333ded31bd2b +size 2132 diff --git a/assets/voxygen/voxel/npc/wendigo/male/foot_r.vox b/assets/voxygen/voxel/npc/wendigo/male/foot_r.vox new file mode 100644 index 0000000000..2afb59e7df --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/foot_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc03d509646c7d36601c3192e0e34fb923235ed897c089777c2c1634a3b473b8 +size 2128 diff --git a/assets/voxygen/voxel/npc/wendigo/male/hand_l.vox b/assets/voxygen/voxel/npc/wendigo/male/hand_l.vox new file mode 100644 index 0000000000..7f373fc02f --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/hand_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a4a1f52764631289cef59fa9706bde8a1de9dd0ae0ff2317398900770c218e8 +size 1772 diff --git a/assets/voxygen/voxel/npc/wendigo/male/hand_r.vox b/assets/voxygen/voxel/npc/wendigo/male/hand_r.vox new file mode 100644 index 0000000000..177e575324 --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/hand_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc4b57fe690c03eb92f5cd09f5a06720f01ede1615d710da0a015ca83e90260b +size 1772 diff --git a/assets/voxygen/voxel/npc/wendigo/male/head.vox b/assets/voxygen/voxel/npc/wendigo/male/head.vox new file mode 100644 index 0000000000..64008fec9b --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/head.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:171e6e77433183a96512add717026f32295b647a34c9b7162e4910116a2d5704 +size 3164 diff --git a/assets/voxygen/voxel/npc/wendigo/male/leg_l.vox b/assets/voxygen/voxel/npc/wendigo/male/leg_l.vox new file mode 100644 index 0000000000..d2ffcb0c41 --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/leg_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab15118cb52881b826e03689e4d313e2e3cd92bde062d38b453ed42f896120f0 +size 1528 diff --git a/assets/voxygen/voxel/npc/wendigo/male/leg_r.vox b/assets/voxygen/voxel/npc/wendigo/male/leg_r.vox new file mode 100644 index 0000000000..d24b30d0c5 --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/leg_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:001a507945e754f7f9ac289b5bc8154a283feb9f651afe7f43cac21f5991b97d +size 1528 diff --git a/assets/voxygen/voxel/npc/wendigo/male/shoulder_l.vox b/assets/voxygen/voxel/npc/wendigo/male/shoulder_l.vox new file mode 100644 index 0000000000..8cd02c8101 --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/shoulder_l.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10eb19dcfe66e46fafc53ac3476d8cf7503e4e1f6c78562ae5af35af888ce700 +size 2004 diff --git a/assets/voxygen/voxel/npc/wendigo/male/shoulder_r.vox b/assets/voxygen/voxel/npc/wendigo/male/shoulder_r.vox new file mode 100644 index 0000000000..bb992c3186 --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/shoulder_r.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:527fbb9574bd72b7ad882a8752bcc76b2b60dd6d8192accaff07b466da322639 +size 2036 diff --git a/assets/voxygen/voxel/npc/wendigo/male/torso_lower.vox b/assets/voxygen/voxel/npc/wendigo/male/torso_lower.vox new file mode 100644 index 0000000000..6e8be15292 --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/torso_lower.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:daeceb800eb744f7b81563faa5bf97e11ebb093edfb4130019bac5a7fca2473e +size 1424 diff --git a/assets/voxygen/voxel/npc/wendigo/male/torso_upper.vox b/assets/voxygen/voxel/npc/wendigo/male/torso_upper.vox new file mode 100644 index 0000000000..1adbb7f6b1 --- /dev/null +++ b/assets/voxygen/voxel/npc/wendigo/male/torso_upper.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:112e29bd44b78dd20e32070f49e709b0a0add87c04a6b6b7107e4e99a7134856 +size 4228 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 727f31ee13..5df288e77b 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -416,4 +416,56 @@ central: ("npc.pangolin.male.tail_front"), ), ), + (Maneater, Male): ( + upper: ( + offset: (-5.5, 0.0, 0.0), + central: ("npc.maneater.male.head_upper"), + ), + lower: ( + offset: (-14.5, -5.5, -0.0), + central: ("npc.maneater.male.head_lower"), + ), + jaw: ( + offset: (-7.5, 0.0, -19.0), + central: ("npc.maneater.male.jaw"), + ), + chest: ( + offset: (-6.5, -6.5, -6.0), + central: ("npc.maneater.male.chest"), + ), + tail_rear: ( + offset: (-0.5, -14.0, -6.5), + central: ("npc.maneater.male.tail_rear"), + ), + tail_front: ( + offset: (-4.5, -15.0, -0.0), + central: ("npc.maneater.male.tail_front"), + ), + ), + (Maneater, Female): ( + upper: ( + offset: (-5.5, 0.0, 0.0), + central: ("npc.maneater.male.head_upper"), + ), + lower: ( + offset: (-14.5, -5.5, -0.0), + central: ("npc.maneater.male.head_lower"), + ), + jaw: ( + offset: (-7.5, 0.0, -19.0), + central: ("npc.maneater.male.jaw"), + ), + chest: ( + offset: (-6.5, -6.5, -6.0), + central: ("npc.maneater.male.chest"), + ), + tail_rear: ( + offset: (-0.5, -14.0, -6.5), + central: ("npc.maneater.male.tail_rear"), + ), + tail_front: ( + offset: (-4.5, -15.0, -0.0), + central: ("npc.maneater.male.tail_front"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index c02fc81839..ce8d8db9ac 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -225,11 +225,11 @@ lateral: ("npc.rocksnapper.male.foot_fr"), ), back_left: ( - offset: (-11.0, 0.0, -9.0), + offset: (-11.0, -6.0, -9.0), lateral: ("npc.rocksnapper.male.foot_bl"), ), back_right: ( - offset: (0.0, 0.0, -9.0), + offset: (0.0, -6.0, -9.0), lateral: ("npc.rocksnapper.male.foot_br"), ), ), @@ -287,4 +287,40 @@ lateral: ("npc.pangolin.male.foot_br"), ), ), + (Maneater, Male): ( + front_left: ( + offset: (-6.0, 0.0, -6.5), + lateral: ("npc.maneater.male.foot_fl"), + ), + front_right: ( + offset: (-2.0, 0.0, -6.5), + lateral: ("npc.maneater.male.foot_fr"), + ), + back_left: ( + offset: (-6.0, -8.0, -9.0), + lateral: ("npc.maneater.male.foot_bl"), + ), + back_right: ( + offset: (-2.0, -8.0, -9.0), + lateral: ("npc.maneater.male.foot_br"), + ), + ), + (Maneater, Female): ( + front_left: ( + offset: (-6.0, 0.0, -6.5), + lateral: ("npc.maneater.male.foot_fl"), + ), + front_right: ( + offset: (-2.0, 0.0, -6.5), + lateral: ("npc.maneater.male.foot_fr"), + ), + back_left: ( + offset: (-6.0, -8.0, -9.0), + lateral: ("npc.maneater.male.foot_bl"), + ), + back_right: ( + offset: (-2.0, -8.0, -9.0), + lateral: ("npc.maneater.male.foot_br"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 3f3e4b3084..0a88edcb1c 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -539,4 +539,124 @@ central: ("npc.mouflon.male.tail"), ), ), + (Catoblepas, Male): ( + upper: ( + offset: (-13.0, 0.0, -4.5), + central: ("npc.catoblepas.male.head_upper"), + ), + lower: ( + offset: (-4.0, -10.0, -12.0), + central: ("npc.catoblepas.male.head_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -3.0), + central: ("npc.catoblepas.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -10.0, -11.5), + central: ("npc.catoblepas.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -9.0, -6.5), + central: ("npc.catoblepas.male.torso_back"), + ), + ears: ( + offset: (-2.0, -12.0, -10.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -12.0, -10.0), + central: ("npc.catoblepas.male.tail"), + ), + ), + (Catoblepas, Female): ( + upper: ( + offset: (-13.0, 0.0, -4.5), + central: ("npc.catoblepas.male.head_upper"), + ), + lower: ( + offset: (-4.0, -10.0, -12.0), + central: ("npc.catoblepas.male.head_lower"), + ), + jaw: ( + offset: (-4.0, 0.0, -3.0), + central: ("npc.catoblepas.male.jaw"), + ), + torso_front: ( + offset: (-7.0, -10.0, -11.5), + central: ("npc.catoblepas.male.torso_front"), + ), + torso_back: ( + offset: (-5.0, -9.0, -6.5), + central: ("npc.catoblepas.male.torso_back"), + ), + ears: ( + offset: (-2.0, -12.0, -10.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -12.0, -10.0), + central: ("npc.catoblepas.male.tail"), + ), + ), + (Bonerattler, Male): ( + upper: ( + offset: (-4.5, 0.0, -4.5), + central: ("npc.bonerattler.male.head_upper"), + ), + lower: ( + offset: (-4.5, -2.0, -5.0), + central: ("npc.bonerattler.male.head_lower"), + ), + jaw: ( + offset: (-3.5, 0.0, -2.0), + central: ("npc.bonerattler.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -7.0, -6.5), + central: ("npc.bonerattler.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -11.0, -6.5), + central: ("npc.bonerattler.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-3.5, -14.0, -10.0), + central: ("npc.bonerattler.male.tail"), + ), + ), + (Bonerattler, Female): ( + upper: ( + offset: (-4.5, 0.0, -4.5), + central: ("npc.bonerattler.male.head_upper"), + ), + lower: ( + offset: (-4.5, -2.0, -5.0), + central: ("npc.bonerattler.male.head_lower"), + ), + jaw: ( + offset: (-3.5, 0.0, -2.0), + central: ("npc.bonerattler.male.jaw"), + ), + torso_front: ( + offset: (-5.5, -7.0, -6.5), + central: ("npc.bonerattler.male.torso_front"), + ), + torso_back: ( + offset: (-5.5, -11.0, -6.5), + central: ("npc.bonerattler.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-3.5, -14.0, -10.0), + central: ("npc.bonerattler.male.tail"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index ceb6ab940c..77d283c7a6 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -611,4 +611,140 @@ lateral: ("npc.mouflon.male.foot_br"), ), ), + (Catoblepas, Male): ( + leg_fl: ( + offset: (-2.5, -4.0, -4.5), + lateral: ("npc.catoblepas.male.leg_fl"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -4.5), + lateral: ("npc.catoblepas.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0 , -4.0), + lateral: ("npc.catoblepas.male.leg_bl"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.catoblepas.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -7.0, -11.0), + lateral: ("npc.catoblepas.male.foot_fl"), + ), + foot_fr: ( + offset: (-3.0, -7.0, -11.0), + lateral: ("npc.catoblepas.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.catoblepas.male.foot_bl"), + ), + foot_br: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.catoblepas.male.foot_br"), + ), + ), + (Catoblepas, Female): ( + leg_fl: ( + offset: (-2.5, -4.0, -4.5), + lateral: ("npc.catoblepas.male.leg_fl"), + ), + leg_fr: ( + offset: (-2.5, -4.0, -4.5), + lateral: ("npc.catoblepas.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -3.0 , -4.0), + lateral: ("npc.catoblepas.male.leg_bl"), + ), + leg_br: ( + offset: (-2.0, -3.0, -4.0), + lateral: ("npc.catoblepas.male.leg_br"), + ), + foot_fl: ( + offset: (-3.0, -7.0, -11.0), + lateral: ("npc.catoblepas.male.foot_fl"), + ), + foot_fr: ( + offset: (-3.0, -7.0, -11.0), + lateral: ("npc.catoblepas.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.catoblepas.male.foot_bl"), + ), + foot_br: ( + offset: (-2.5, -3.5, -9.0), + lateral: ("npc.catoblepas.male.foot_br"), + ), + ), + (Bonerattler, Male): ( + leg_fl: ( + offset: (-1.5, -6.0, -3.0), + lateral: ("npc.bonerattler.male.leg_fl"), + ), + leg_fr: ( + offset: (-1.5, -6.0, -3.0), + lateral: ("npc.bonerattler.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -1.0, -3.0), + lateral: ("npc.bonerattler.male.leg_bl"), + ), + leg_br: ( + offset: (-1.5, -1.0, -3.0), + lateral: ("npc.bonerattler.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.bonerattler.male.foot_fl"), + ), + foot_fr: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.bonerattler.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bonerattler.male.foot_bl"), + ), + foot_br: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bonerattler.male.foot_br"), + ), + ), + (Bonerattler, Female): ( + leg_fl: ( + offset: (-1.5, -6.0, -3.0), + lateral: ("npc.bonerattler.male.leg_fl"), + ), + leg_fr: ( + offset: (-1.5, -6.0, -3.0), + lateral: ("npc.bonerattler.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -1.0, -3.0), + lateral: ("npc.bonerattler.male.leg_bl"), + ), + leg_br: ( + offset: (-1.5, -1.0, -3.0), + lateral: ("npc.bonerattler.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.bonerattler.male.foot_fl"), + ), + foot_fr: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.bonerattler.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bonerattler.male.foot_bl"), + ), + foot_br: ( + offset: (-2.5, -4.0, -6.0), + lateral: ("npc.bonerattler.male.foot_br"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_small_central_manifest.ron b/assets/voxygen/voxel/quadruped_small_central_manifest.ron index dc0336da13..d1d5628738 100644 --- a/assets/voxygen/voxel/quadruped_small_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_small_central_manifest.ron @@ -1,66 +1,66 @@ ({ (Pig, Male): ( head: ( - offset: (-6.0, -2.5, -4.5), + offset: (-5.0, 0.0, -4.0), central: ("npc.pig.male.head"), ), chest: ( - offset: (-5.0, -4.5, -4.5), + offset: (-5.0, -5.0, -3.5), central: ("npc.pig.male.chest"), ), tail: ( - offset: (-2.0, -1.0, -2.0), + offset: (-2.0, -3.0, -0.0), central: ("npc.pig.male.tail"), ), ), (Pig, Female):( head: ( - offset: (-6.0, -2.5, -4.5), - central: ("npc.pig.female.head"), + offset: (-5.0, 0.0, -4.0), + central: ("npc.pig.male.head"), ), chest: ( - offset: (-5.0, -4.5, -4.5), - central: ("npc.pig.female.chest"), + offset: (-5.0, -5.0, -3.5), + central: ("npc.pig.male.chest"), ), tail: ( - offset: (-2.0, -1.0, -2.0), - central: ("npc.pig.female.tail"), + offset: (-2.0, -3.0, -0.0), + central: ("npc.pig.male.tail"), ), ), (Fox, Male):( head: ( - offset: (-3.5, -3.0, -3.5), + offset: (-4.5, 0.0, -3.5), central: ("npc.fox.male.head"), ), chest: ( - offset: (-1.5, -4.5, -2.5), + offset: (-2.5, -5.5, -2.5), central: ("npc.fox.male.chest"), ), tail: ( - offset: (-2.0, -7.0, -1.5), + offset: (-1.5, -11.0, -6.0), central: ("npc.fox.male.tail"), ), ), (Fox, Female):( head: ( - offset: (-3.5, -3.0, -3.5), + offset: (-4.5, 0.0, -3.5), central: ("npc.fox.female.head"), ), chest: ( - offset: (-1.5, -4.5, -2.5), + offset: (-2.5, -5.5, -3.0), central: ("npc.fox.female.chest"), ), tail: ( - offset: (-1.5, -7.0, -1.5), + offset: (-1.5, -11.0, -6.0), central: ("npc.fox.female.tail"), ), ), (Sheep, Male):( head: ( - offset: (-6.0, -5.5, -4.0), + offset: (-5.0, 0.0, -5.0), central: ("npc.sheep.male.head"), ), chest: ( @@ -75,7 +75,7 @@ (Sheep, Female):( head: ( - offset: (-5.0, -4.5, -3.5), + offset: (-5.0, 0.0, -3.5), central: ("npc.sheep.female.head"), ), chest: ( @@ -89,123 +89,123 @@ ), (Boar, Male):( head: ( - offset: (-5.5, -6.5, -4.0), + offset: (-4.5, 0.0, -5.0), central: ("npc.boar.male.head"), ), chest: ( - offset: (-3.5, -8.0, -4.0), + offset: (-4.5, -7.5, -5.5), central: ("npc.boar.male.chest"), ), tail: ( - offset: (-1.5, -2.0, -6.0), + offset: (-1.5, -5.0, -7.0), central: ("npc.boar.male.tail"), ), ), (Boar, Female):( head: ( - offset: (-5.5, -6.5, -4.0), + offset: (-4.5, 0.0, -4.5), central: ("npc.boar.female.head"), ), chest: ( - offset: (-3.5, -8.0, -4.0), + offset: (-4.5, -7.5, -5.0), central: ("npc.boar.female.chest"), ), tail: ( - offset: (-1.5, -2.0, -6.0), + offset: (-1.5, -5.0, -7.0), central: ("npc.boar.female.tail"), ), ), (Jackalope, Male):( head: ( - offset: (-3.5, -4.5, -4.5), + offset: (-3.5, 0.0, -4.0), central: ("npc.jackalope.male.head"), ), chest: ( - offset: (-1.5, -7.5, -2.5), + offset: (-2.5, -5.0, -3.5), central: ("npc.jackalope.male.chest"), ), tail: ( - offset: (-1.5, -7.5, -2.5), - central: ("armor.empty"), + offset: (-1.5, -2.0, -3.0), + central: ("npc.jackalope.male.tail"), ), ), (Jackalope, Female):( head: ( - offset: (-3.5, -4.5, -4.5), + offset: (-3.5, 0.0, -4.0), central: ("npc.jackalope.male.head"), ), chest: ( - offset: (-1.5, -7.5, -2.5), + offset: (-2.5, -5.0, -3.5), central: ("npc.jackalope.male.chest"), ), tail: ( - offset: (-1.5, -7.5, -2.5), - central: ("armor.empty"), + offset: (-1.5, -2.0, -3.0), + central: ("npc.jackalope.male.tail"), ), ), (Skunk, Male):( head: ( - offset: (-2.0, -1.0, -2.0), + offset: (-3.0,0.0, -2.5), central: ("npc.skunk.male.head"), ), chest: ( - offset: (-3.0, -4.5, -2.5), + offset: (-4.0, -5.5, -3.0), central: ("npc.skunk.male.chest"), ), tail: ( - offset: (-3.0, -10.0, -4.5), + offset: (-5.0, -11.0, -4.0), central: ("npc.skunk.male.tail"), ), ), (Skunk, Female):( head: ( - offset: (-2.0, -1.0, -2.0), + offset: (-3.0, 0.0, -2.5), central: ("npc.skunk.male.head"), ), chest: ( - offset: (-3.0, -4.5, -2.5), + offset: (-4.0, -5.5, -3.0), central: ("npc.skunk.male.chest"), ), tail: ( - offset: (-3.0, -10.0, -4.5), + offset: (-5.0, -11.0, -4.0), central: ("npc.skunk.male.tail"), ), ), (Cat, Male):( head: ( - offset: (-3.5, -3.0, -3.5), + offset: (-4.5, 0.0, -3.5), central: ("npc.cat.male.head"), ), chest: ( - offset: (-1.5, -3.0, -2.0), + offset: (-2.5, -4.5, -2.0), central: ("npc.cat.male.chest"), ), tail: ( - offset: (-0.5, -3.0, -4.0), + offset: (-0.5, -7.0, -5.0), central: ("npc.cat.male.tail"), ), ), (Cat, Female):( head: ( - offset: (-3.5, -3.0, -3.5), + offset: (-4.5, 0.0, -3.5), central: ("npc.cat.female.head"), ), chest: ( - offset: (-1.5, -3.0, -2.0), + offset: (-2.5, -4.5, -2.0), central: ("npc.cat.female.chest"), ), tail: ( - offset: (-0.5, -3.0, -4.0), + offset: (-0.5, -7.0, -5.0), central: ("npc.cat.female.tail"), ), ), (Batfox, Male):( head: ( - offset: (-9.5, -6.0, -4.0), + offset: (-7.5, 0.0, -3.0), central: ("npc.batfox.male.head"), ), chest: ( - offset: (-1.5, -7.5, -2.5), + offset: (-2.5, -7.0, -3.0), central: ("npc.batfox.male.chest"), ), tail: ( @@ -216,11 +216,11 @@ (Batfox, Female):( head: ( - offset: (-9.5, -6.0, -4.0), + offset: (-7.5, 0.0, -3.0), central: ("npc.batfox.male.head"), ), chest: ( - offset: (-1.5, -7.5, -2.5), + offset: (-2.5, -7.0, -3.0), central: ("npc.batfox.male.chest"), ), tail: ( @@ -231,71 +231,71 @@ (Raccoon, Male):( head: ( - offset: (-4.0, -4.0, -3.5), + offset: (-5.0, 0.0, -4.0), central: ("npc.raccoon.male.head"), ), chest: ( - offset: (-3.0, -5.5, -3.0), + offset: (-4.0, -6.0, -3.5), central: ("npc.raccoon.male.chest"), ), tail: ( - offset: (-1.0, -5.0, -1.5), + offset: (-2.0, -11.0, -2.5), central: ("npc.raccoon.male.tail"), ), ), (Raccoon, Female):( head: ( - offset: (-4.0, -4.0, -3.5), + offset: (-5.0, 0.0, -4.0), central: ("npc.raccoon.male.head"), ), chest: ( - offset: (-3.0, -5.5, -3.0), + offset: (-4.0, -6.0, -3.5), central: ("npc.raccoon.male.chest"), ), tail: ( - offset: (-1.0, -5.0, -1.5), + offset: (-2.0, -11.0, -2.5), central: ("npc.raccoon.male.tail"), ), ), (Quokka, Male):( head: ( - offset: (-4.5, -3.0, -4.0), + offset: (-4.5, 0.0, -3.5), central: ("npc.quokka.male.head"), ), chest: ( - offset: (-5.0, -7.5, -4.0), + offset: (-3.5, -6.5, -4.0), central: ("npc.quokka.male.chest"), ), tail: ( - offset: (-1.5, -7.5, -2.5), - central: ("armor.empty"), + offset: (-1.5, -8.0, -3.5), + central: ("npc.quokka.male.tail"), ), ), (Quokka, Female):( head: ( - offset: (-4.5, -3.0, -4.0), + offset: (-4.5, 0.0, -3.5), central: ("npc.quokka.male.head"), ), chest: ( - offset: (-5.0, -7.5, -4.0), + offset: (-3.5, -6.5, -4.0), central: ("npc.quokka.male.chest"), ), tail: ( - offset: (-1.5, -7.5, -2.5), - central: ("armor.empty"), + offset: (-1.5, -8.0, -3.5), + central: ("npc.quokka.male.tail"), ), ), (Dodarock, Male):( head: ( - offset: (-5.0, -3.5, -4.5), + offset: (-4.5, 0.0, -2.5), central: ("npc.dodarock.male.head"), ), chest: ( - offset: (-5.0, -7.5, -4.5), + offset: (-4.5, -8.0, -4.5), central: ("npc.dodarock.male.chest"), ), tail: ( @@ -306,11 +306,11 @@ (Dodarock, Female):( head: ( - offset: (-5.0, -3.5, -4.5), + offset: (-4.5, 0.0, -2.5), central: ("npc.dodarock.male.head"), ), chest: ( - offset: (-5.0, -7.5, -4.5), + offset: (-4.5, -8.0, -4.5), central: ("npc.dodarock.male.chest"), ), tail: ( @@ -321,11 +321,11 @@ ), (Holladon, Male):( head: ( - offset: (-3.5, -3.5, -4.0), + offset: (-3.5, 0.0, -4.0), central: ("npc.holladon.male.head"), ), chest: ( - offset: (-3.0, -7.5, -3.0), + offset: (-4.5, -8.0, -5.0), central: ("npc.holladon.male.chest"), ), tail: ( @@ -336,11 +336,11 @@ (Holladon, Female):( head: ( - offset: (-3.5, -3.5, -4.0), + offset: (-3.5, 0.0, -4.0), central: ("npc.holladon.male.head"), ), chest: ( - offset: (-3.0, -7.5, -3.0), + offset: (-4.5, -8.0, -5.0), central: ("npc.holladon.male.chest"), ), tail: ( @@ -351,31 +351,115 @@ (Hyena, Male):( head: ( - offset: (-3.0, -2.0, -4.0), + offset: (-4.0, 0.0, -4.0), central: ("npc.hyena.male.head"), ), chest: ( - offset: (-3.0, -8.0, -4.0), + offset: (-3.0, -8.0, -4.5), central: ("npc.hyena.male.chest"), ), tail: ( - offset: (-1.0, -3.0, -6.0), + offset: (-1.0, -4.0, -6.0), central: ("npc.hyena.male.tail"), ), ), (Hyena, Female):( head: ( - offset: (-3.0, -2.0, -4.0), + offset: (-4.0, 0.0, -4.0), central: ("npc.hyena.male.head"), ), chest: ( - offset: (-3.0, -8.0, -4.0), + offset: (-3.0, -8.0, -4.5), central: ("npc.hyena.male.chest"), ), tail: ( - offset: (-1.0, -3.0, -6.0), + offset: (-1.0, -4.0, -6.0), central: ("npc.hyena.male.tail"), ), ), + (Rabbit, Male):( + head: ( + offset: (-3.5, 0.0, -3.0), + central: ("npc.rabbit.male.head"), + ), + chest: ( + offset: (-2.5, -5.5, -3.0), + central: ("npc.rabbit.male.chest"), + ), + tail: ( + offset: (-1.5, -2.0, -1.0), + central: ("npc.rabbit.male.tail"), + ), + ), + (Rabbit, Female):( + head: ( + offset: (-3.5, 0.0, -3.0), + central: ("npc.rabbit.male.head"), + ), + chest: ( + offset: (-2.5, -5.5, -3.0), + central: ("npc.rabbit.male.chest"), + ), + tail: ( + offset: (-1.5, -2.0, -1.0), + central: ("npc.rabbit.male.tail"), + ), + ), + (Truffler, Male):( + head: ( + offset: (-8.5, 0.0, -4.5), + central: ("npc.truffler.male.head"), + ), + chest: ( + offset: (-10.5, -11.0, -15.0), + central: ("npc.truffler.male.chest"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Truffler, Female):( + head: ( + offset: (-8.5, 0.0, -4.5), + central: ("npc.truffler.male.head"), + ), + chest: ( + offset: (-10.5, -11.0, -15.0), + central: ("npc.truffler.male.chest"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Frog, Male):( + head: ( + offset: (-3.5, 0.0, -3.0), + central: ("npc.frog.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -3.0), + central: ("npc.frog.male.chest"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), + (Frog, Female):( + head: ( + offset: (-3.5, 0.0, -3.0), + central: ("npc.frog.male.head"), + ), + chest: ( + offset: (-3.5, -5.0, -3.0), + central: ("npc.frog.male.chest"), + ), + tail: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron index c84d2fe64c..d89037e22b 100644 --- a/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron @@ -1,62 +1,62 @@ ({ (Pig, Male): ( left_front: ( - offset: (-1.0, -1.0, -1.5), - lateral: ("npc.pig.male.foot_l"), + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.pig.male.foot_fl"), ), right_front: ( - offset: (-1.0, -1.0, -1.5), - lateral: ("npc.pig.male.foot_r"), + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.pig.male.foot_fr"), ), left_back: ( - offset: (-1.0, -1.0, -1.5), - lateral: ("npc.pig.male.foot_l"), + offset: (-1.0, -2.0, -6.0), + lateral: ("npc.pig.male.foot_bl"), ), right_back: ( - offset: (-1.0, -1.0, -1.5), - lateral: ("npc.pig.male.foot_r"), + offset: (-1.0, -2.0, -6.0), + lateral: ("npc.pig.male.foot_br"), ), ), (Pig, Female): ( left_front: ( - offset: (-1.0, -1.0, -1.5), - lateral: ("npc.pig.female.foot_l"), + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.pig.male.foot_fl"), ), right_front: ( - offset: (-1.0, -1.0, -1.5), - lateral: ("npc.pig.female.foot_r"), + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.pig.male.foot_fr"), ), left_back: ( - offset: (-1.0, -1.0, -1.5), - lateral: ("npc.pig.female.foot_l"), + offset: (-1.0, -2.0, -6.0), + lateral: ("npc.pig.male.foot_bl"), ), right_back: ( - offset: (-1.0, -1.0, -1.5), - lateral: ("npc.pig.female.foot_r"), + offset: (-1.0, -2.0, -6.0), + lateral: ("npc.pig.male.foot_br"), ), ), (Fox, Male): ( left_front: ( - offset: (-1.0, -2.5, -2.5), + offset: (-1.0, -2.0, -2.5), lateral: ("npc.fox.male.foot_fl"), ), right_front: ( - offset: (-1.0, -2.5, -2.5), + offset: (-1.0, -2.0, -2.5), lateral: ("npc.fox.male.foot_fr"), ), left_back: ( - offset: (-1.0, -2.0, -2.5), + offset: (-1.0, -2.0, -5.0), lateral: ("npc.fox.male.foot_bl"), ), right_back: ( - offset: (-1.0, -2.0, -2.5), + offset: (-1.0, -2.0, -5.0), lateral: ("npc.fox.male.foot_br"), ), ), (Fox, Female): ( left_front: ( - offset: (-1.0, -2.5, -2.5), + offset: (-1.0, -2.0, -2.5), lateral: ("npc.fox.female.foot_fl"), ), right_front: ( @@ -64,56 +64,56 @@ lateral: ("npc.fox.female.foot_fr"), ), left_back: ( - offset: (-1.0, -2.0, -2.5), + offset: (-1.0, -2.0, -5.0), lateral: ("npc.fox.female.foot_bl"), ), right_back: ( - offset: (-1.0, -2.0, -2.5), + offset: (-1.0, -2.0, -5.0), lateral: ("npc.fox.female.foot_br"), ), ), (Sheep, Male): ( left_front: ( - offset: (-1.0, -1.0, -3.5), - lateral: ("npc.sheep.male.foot_l"), + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.sheep.male.foot_fl"), ), right_front: ( - offset: (-1.0, -1.0, -3.5), - lateral: ("npc.sheep.male.foot_r"), + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.sheep.male.foot_fr"), ), left_back: ( - offset: (-1.0, -1.0, -3.5), - lateral: ("npc.sheep.male.foot_l"), + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.sheep.male.foot_bl"), ), right_back: ( - offset: (-1.0, -1.0, -3.5), - lateral: ("npc.sheep.male.foot_r"), + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.sheep.male.foot_br"), ), ), (Sheep, Female): ( left_front: ( - offset: (-1.0, -1.0, -3.5), - lateral: ("npc.sheep.female.foot_l"), + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.sheep.female.foot_fl"), ), right_front: ( - offset: (-1.0, -1.0, -3.5), - lateral: ("npc.sheep.female.foot_r"), + offset: (-1.0, -1.5, -5.0), + lateral: ("npc.sheep.female.foot_fr"), ), left_back: ( - offset: (-1.0, -1.0, -3.5), - lateral: ("npc.sheep.female.foot_l"), + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.sheep.female.foot_bl"), ), right_back: ( - offset: (-1.0, -1.0, -3.5), - lateral: ("npc.sheep.female.foot_r"), + offset: (-1.0, -1.5, -5.5), + lateral: ("npc.sheep.female.foot_br"), ), ), (Boar, Male): ( left_front: ( - offset: (-1.5, -3.5, -4.0), + offset: (-1.5, -2.5, -4.0), lateral: ("npc.boar.male.foot_fl"), ), right_front: ( @@ -121,11 +121,11 @@ lateral: ("npc.boar.male.foot_fr"), ), left_back: ( - offset: (-1.5, -2.5, -6.0), + offset: (-1.5, -2.0, -7.0), lateral: ("npc.boar.male.foot_bl"), ), right_back: ( - offset: (-1.5, -2.5, -6.0), + offset: (-1.5, -2.0, -7.0), lateral: ("npc.boar.male.foot_br"), ), ), @@ -140,21 +140,21 @@ lateral: ("npc.boar.female.foot_fr"), ), left_back: ( - offset: (-1.5, -2.5, -6.0), + offset: (-1.5, -2.0, -7.0), lateral: ("npc.boar.female.foot_bl"), ), right_back: ( - offset: (-1.5, -2.5, -6.0), + offset: (-1.5, -2.0, -7.0), lateral: ("npc.boar.female.foot_br"), ), ), (Jackalope, Male): ( left_front: ( - offset: (-1.5, -3.5, -4.0), + offset: (-1.0, -2.0, -4.0), lateral: ("npc.jackalope.male.foot_fl"), ), right_front: ( - offset: (-1.5, -3.5, -4.0), + offset: (-1.0, -2.0, -4.0), lateral: ("npc.jackalope.male.foot_fr"), ), left_back: ( @@ -169,11 +169,11 @@ (Jackalope, Female): ( left_front: ( - offset: (-1.5, -2.5, -4.0), + offset: (-1.0, -2.0, -4.0), lateral: ("npc.jackalope.male.foot_fl"), ), right_front: ( - offset: (-1.5, -2.5, -4.0), + offset: (-1.0, -2.0, -4.0), lateral: ("npc.jackalope.male.foot_fr"), ), left_back: ( @@ -187,11 +187,11 @@ ), (Skunk, Male): ( left_front: ( - offset: (-1.0, -1.0, -3.5), + offset: (-1.5, -2.0, -4.5), lateral: ("npc.skunk.male.foot_fl"), ), right_front: ( - offset: (-1.0, -1.0, -3.5), + offset: (-1.5, -2.0, -4.5), lateral: ("npc.skunk.male.foot_fr"), ), left_back: ( @@ -206,244 +206,244 @@ (Skunk, Female): ( left_front: ( - offset: (-1.0, -1.0, -3.5), + offset: (-1.5, -2.0, -4.5), lateral: ("npc.skunk.male.foot_fl"), ), right_front: ( - offset: (-1.0, -1.0, -3.5), + offset: (-1.5, -2.0, -4.5), lateral: ("npc.skunk.male.foot_fr"), ), left_back: ( - offset: (-1.0, -1.0, -3.5), + offset: (-1.5, -2.0, -4.5), lateral: ("npc.skunk.male.foot_bl"), ), right_back: ( - offset: (-1.0, -1.0, -3.5), + offset: (-1.5, -2.0, -4.5), lateral: ("npc.skunk.male.foot_br"), ), ), (Cat, Male): ( left_front: ( - offset: (-1.0, -1.5, -3.0), + offset: (-1.0, -1.5, -5.0), lateral: ("npc.cat.male.foot_fl"), ), right_front: ( - offset: (-1.0, -1.5, -3.0), + offset: (-1.0, -1.5, -5.0), lateral: ("npc.cat.male.foot_fr"), ), left_back: ( - offset: (-1.0, -2.0, -3.0), + offset: (-1.0, -1.5, -5.0), lateral: ("npc.cat.male.foot_bl"), ), right_back: ( - offset: (-1.0, -2.0, -3.0), + offset: (-1.0, -1.5, -5.0), lateral: ("npc.cat.male.foot_br"), ), ), (Cat, Female): ( left_front: ( - offset: (-1.0, -1.5, -3.0), + offset: (-1.0, -1.5, -5.0), lateral: ("npc.cat.female.foot_fl"), ), right_front: ( - offset: (-1.0, -1.5, -3.0), + offset: (-1.0, -1.5, -5.0), lateral: ("npc.cat.female.foot_fr"), ), left_back: ( - offset: (-1.0, -2.0, -3.0), + offset: (-1.0, -1.5, -5.0), lateral: ("npc.cat.female.foot_bl"), ), right_back: ( - offset: (-1.0, -2.0, -3.0), + offset: (-1.0, -1.5, -5.0), lateral: ("npc.cat.female.foot_br"), ), ), (Batfox, Male): ( left_front: ( - offset: (-1.0, -1.5, -3.0), + offset: (-2.0, -2.5, -5.0), lateral: ("npc.batfox.male.foot_fl"), ), right_front: ( - offset: (-1.0, -1.5, -3.0), + offset: (-2.0, -2.5, -5.0), lateral: ("npc.batfox.male.foot_fr"), ), left_back: ( - offset: (-1.0, -2.5, -3.5), + offset: (-1.5, -2.0, -5.0), lateral: ("npc.batfox.male.foot_bl"), ), right_back: ( - offset: (-1.0, -2.5, -3.5), + offset: (-1.5, -2.0, -5.0), lateral: ("npc.batfox.male.foot_br"), ), ), (Batfox, Female): ( left_front: ( - offset: (-1.0, -1.5, -2.5), + offset: (-2.0, -2.5, -5.0), lateral: ("npc.batfox.male.foot_fl"), ), right_front: ( - offset: (-1.0, -1.5, -2.5), + offset: (-2.0, -2.5, -5.0), lateral: ("npc.batfox.male.foot_fr"), ), left_back: ( - offset: (-1.0, -2.5, -3.5), + offset: (-1.5, -2.0, -5.0), lateral: ("npc.batfox.male.foot_bl"), ), right_back: ( - offset: (-1.0, -2.5, -3.5), + offset: (-1.5, -2.0, -5.0), lateral: ("npc.batfox.male.foot_br"), ), ), (Raccoon, Male): ( left_front: ( - offset: (-0.5, -0.5, -2.5), + offset: (-1.5, -2.0, -5.5), lateral: ("npc.raccoon.male.foot_fl"), ), right_front: ( - offset: (-0.5, -0.5, -2.5), + offset: (-1.5, -2.0, -5.5), lateral: ("npc.raccoon.male.foot_fr"), ), left_back: ( - offset: (-1.0, -1.5, -2.5), + offset: (-2.0, -2.5, -6.0), lateral: ("npc.raccoon.male.foot_bl"), ), right_back: ( - offset: (-1.0, -1.5, -2.5), + offset: (-2.0, -2.5, -6.0), lateral: ("npc.raccoon.male.foot_br"), ), ), (Raccoon, Female): ( left_front: ( - offset: (-0.5, -0.5, -2.5), + offset: (-1.5, -2.0, -5.5), lateral: ("npc.raccoon.male.foot_fl"), ), right_front: ( - offset: (-0.5, -0.5, -2.5), + offset: (-1.5, -2.0, -5.5), lateral: ("npc.raccoon.male.foot_fr"), ), left_back: ( - offset: (-1.0, -1.5, -2.5), + offset: (-2.0, -2.5, -6.0), lateral: ("npc.raccoon.male.foot_bl"), ), right_back: ( - offset: (-1.0, -1.5, -2.5), + offset: (-2.0, -2.5, -6.0), lateral: ("npc.raccoon.male.foot_br"), ), ), (Quokka, Male): ( left_front: ( - offset: (-1.0, -1.0, -2.5), + offset: (-1.0, -1.5, -5.5), lateral: ("npc.quokka.male.foot_fl"), ), right_front: ( - offset: (-1.0, -1.0, -2.5), + offset: (-1.0, -1.5, -5.5), lateral: ("npc.quokka.male.foot_fr"), ), left_back: ( - offset: (-1.0, -1.5, -2.5), + offset: (-1.0, -2.5, -5.5), lateral: ("npc.quokka.male.foot_bl"), ), right_back: ( - offset: (-1.0, -1.5, -2.5), + offset: (-1.0, -2.5, -5.5), lateral: ("npc.quokka.male.foot_br"), ), ), (Quokka, Female): ( left_front: ( - offset: (-1.0, -1.0, -2.5), + offset: (-1.0, -1.5, -5.5), lateral: ("npc.quokka.male.foot_fl"), ), right_front: ( - offset: (-1.0, -1.0, -2.5), + offset: (-1.0, -1.5, -5.5), lateral: ("npc.quokka.male.foot_fr"), ), left_back: ( - offset: (-1.0, -1.5, -2.5), + offset: (-1.0, -2.5, -5.5), lateral: ("npc.quokka.male.foot_bl"), ), right_back: ( - offset: (-1.0, -1.5, -2.5), + offset: (-1.0, -2.5, -5.5), lateral: ("npc.quokka.male.foot_br"), ), ), (Dodarock, Male): ( left_front: ( - offset: (-2.0, -3.0, -4.0), + offset: (-2.0, -3.0, -6.5), lateral: ("npc.dodarock.male.foot_fl"), ), right_front: ( - offset: (-2.0, -3.0, -4.0), + offset: (-2.0, -3.0, -6.5), lateral: ("npc.dodarock.male.foot_fr"), ), left_back: ( - offset: (-1.5, -2.0, -2.5), + offset: (-1.5, -2.0, -5.0), lateral: ("npc.dodarock.male.foot_bl"), ), right_back: ( - offset: (-1.5, -2.0, -2.5), + offset: (-1.5, -2.0, -5.0), lateral: ("npc.dodarock.male.foot_br"), ), ), (Dodarock, Female): ( left_front: ( - offset: (-2.0, -3.0, -4.0), + offset: (-2.0, -3.0, -6.5), lateral: ("npc.dodarock.male.foot_fl"), ), right_front: ( - offset: (-2.0, -3.0, -4.0), + offset: (-2.0, -3.0, -6.5), lateral: ("npc.dodarock.male.foot_fr"), ), left_back: ( - offset: (-1.5, -2.0, -2.5), + offset: (-1.5, -2.0, -5.0), lateral: ("npc.dodarock.male.foot_bl"), ), right_back: ( - offset: (-1.5, -2.0, -2.5), + offset: (-1.5, -2.0, -5.0), lateral: ("npc.dodarock.male.foot_br"), ), ), (Holladon, Male): ( left_front: ( - offset: (-1.0, -3.0, -4.0), + offset: (-1.0, -2.5, -6.0), lateral: ("npc.holladon.male.foot_fl"), ), right_front: ( - offset: (-1.0, -3.0, -4.0), + offset: (-1.0, -2.5, -6.0), lateral: ("npc.holladon.male.foot_fr"), ), left_back: ( - offset: (-1.0, -2.0, -2.5), + offset: (-1.0, -2.0, -5.5), lateral: ("npc.holladon.male.foot_bl"), ), right_back: ( - offset: (-1.0, -2.0, -2.5), + offset: (-1.0, -2.0, -5.5), lateral: ("npc.holladon.male.foot_br"), ), ), (Holladon, Female): ( left_front: ( - offset: (-1.0, -2.0, -2.5), + offset: (-1.0, -2.5, -6.0), lateral: ("npc.holladon.male.foot_fl"), ), right_front: ( - offset: (-1.0, -2.0, -2.5), + offset: (-1.0, -2.5, -6.0), lateral: ("npc.holladon.male.foot_fr"), ), left_back: ( - offset: (-1.0, -2.0, -2.5), + offset: (-1.0, -2.0, -5.5), lateral: ("npc.holladon.male.foot_bl"), ), right_back: ( - offset: (-1.0, -2.0, -2.5), + offset: (-1.0, -2.0, -5.5), lateral: ("npc.holladon.male.foot_br"), ), ), @@ -457,11 +457,11 @@ lateral: ("npc.hyena.male.foot_fr"), ), left_back: ( - offset: (-1.5, -2.0, -4.5), + offset: (-1.5, -2.0, -6.5), lateral: ("npc.hyena.male.foot_bl"), ), right_back: ( - offset: (-1.5, -2.0, -4.5), + offset: (-1.5, -2.0, -6.5), lateral: ("npc.hyena.male.foot_br"), ), ), @@ -476,12 +476,122 @@ lateral: ("npc.hyena.male.foot_fr"), ), left_back: ( - offset: (-1.5, -2.0, -4.5), + offset: (-1.5, -2.0, -6.5), lateral: ("npc.hyena.male.foot_bl"), ), right_back: ( - offset: (-1.5, -2.0, -4.5), + offset: (-1.5, -2.0, -6.5), lateral: ("npc.hyena.male.foot_br"), ), ), + (Rabbit, Male): ( + left_front: ( + offset: (-1.5, -0.0, -2.0), + lateral: ("npc.rabbit.male.foot_fl"), + ), + right_front: ( + offset: (-1.5, -0.0, -2.0), + lateral: ("npc.rabbit.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.rabbit.male.foot_bl"), + ), + right_back: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.rabbit.male.foot_br"), + ), + ), + (Rabbit, Female): ( + left_front: ( + offset: (-1.5, -0.0, -2.0), + lateral: ("npc.rabbit.male.foot_fl"), + ), + right_front: ( + offset: (-1.5, -0.0, -2.0), + lateral: ("npc.rabbit.male.foot_fr"), + ), + left_back: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.rabbit.male.foot_bl"), + ), + right_back: ( + offset: (-1.5, -3.0, -4.0), + lateral: ("npc.rabbit.male.foot_br"), + ), + ), + (Truffler, Male): ( + left_front: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_fl"), + ), + right_front: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_fr"), + ), + left_back: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_bl"), + ), + right_back: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_br"), + ), + ), + + (Truffler, Female): ( + left_front: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_fl"), + ), + right_front: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_fr"), + ), + left_back: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_bl"), + ), + right_back: ( + offset: (-2.5, -3.0, -6.5), + lateral: ("npc.truffler.male.foot_br"), + ), + ), + (Frog, Male): ( + left_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("npc.frog.male.foot_fl"), + ), + right_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("npc.frog.male.foot_fr"), + ), + left_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.frog.male.foot_bl"), + ), + right_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.frog.male.foot_br"), + ), + ), + + (Frog, Female): ( + left_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("npc.frog.male.foot_fl"), + ), + right_front: ( + offset: (-2.5, -2.5, -4.0), + lateral: ("npc.frog.male.foot_fr"), + ), + left_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.frog.male.foot_bl"), + ), + right_back: ( + offset: (-2.5, -3.5, -4.0), + lateral: ("npc.frog.male.foot_br"), + ), + ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-0.vox new file mode 100644 index 0000000000..59c2d8ab5d --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2219accdf462c16b495833d97e2224f43b6cf7397589df6e3f500031a48901ae +size 56404 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-1.vox b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-1.vox new file mode 100644 index 0000000000..20131e428c --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:151285f6be236c03fe4dc0122d2a2067f1cbb8a849e523d9844a776d9b3d5bb4 +size 56192 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-2.vox b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-2.vox new file mode 100644 index 0000000000..de890613ba --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_bloodsteel-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cffa04024b39d678926a48e344db17241e5867d55767b37c86db00cc206c24e8 +size 1492 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_bronze-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_bronze-0.vox new file mode 100644 index 0000000000..8d395a93f4 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_bronze-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8ad34423456e635be9240aa1db68526599dda69b3f408ea953d8b10b2f360703 +size 55944 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_bronze-1.vox b/assets/voxygen/voxel/weapon/axe/2haxe_bronze-1.vox new file mode 100644 index 0000000000..80341bd468 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_bronze-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa232f630d2fad7aa7ec67ae22646a89a12594330606f7f832479648ecb59bc9 +size 56028 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_cobalt-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_cobalt-0.vox new file mode 100644 index 0000000000..5d2e72f026 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_cobalt-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e298bdd6eacd07a74307f7b9208a9978c9b25b51e2b72dbbb2261c3cb115dab +size 56116 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-0.vox new file mode 100644 index 0000000000..d207abacce --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_iron-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4323dfaffaf8ff3f6c8ecc2f9fc083fc485cd43dc4abceae5190b4e68e628040 +size 56316 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-1.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-1.vox new file mode 100644 index 0000000000..b06db29ab4 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_iron-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05d6d7af8e37ba199c1a99758480282f4e61dad727cc456d4abac9c5c6a1c8a3 +size 56212 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-2.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-2.vox new file mode 100644 index 0000000000..2e96cdbed4 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_iron-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc64b373c659f9ba948ab739609144beee852a06db83e890b80b1e1021faa2d2 +size 27855 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-3.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-3.vox new file mode 100644 index 0000000000..d7f92e0068 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_iron-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e9c73bf5229b642a3de24c45901ea68360f16258be503c94695c1ef46303a747 +size 56324 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-4.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-4.vox new file mode 100644 index 0000000000..dd7507d28c --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_iron-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:538616bf682939f7fc9b7e6881fa18361cf6e50e49ea77d356a3b05b358c1f09 +size 27980 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-5.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-5.vox new file mode 100644 index 0000000000..95b4f04443 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_iron-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e1c8e041598a796b32b440f39caf5941d9de0fd89ccaec56fcc5013a7594d9ec +size 27852 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-6.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-6.vox new file mode 100644 index 0000000000..2b187d7070 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_iron-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a3ba9218443433a96f680521d0ac2d1d76abe507cfb5e56641302ba11acf8f1 +size 56220 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-7.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-7.vox new file mode 100644 index 0000000000..3bfce45118 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_iron-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c87716d625fff08b177f428d28f3d5211afa3b9be957a454f9409cb30fcf93c6 +size 56284 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-8.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-8.vox new file mode 100644 index 0000000000..cd1a4a287a --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_iron-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36c86878d1b17432dfca581da6283fff0650ef77287a938cec542bbc285f1e4d +size 56276 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_iron-9.vox b/assets/voxygen/voxel/weapon/axe/2haxe_iron-9.vox new file mode 100644 index 0000000000..c9adc4c98a --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_iron-9.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:94cc203e74566aa9db35dccd8ffb50e010eb2b591dac86b15ae8f3f57dc88c68 +size 56092 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_malachite-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_malachite-0.vox new file mode 100644 index 0000000000..2fc294cbce --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_malachite-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d1f790e51e0935b3af380468d861c5f4f58c975ca7f0343514d000a3fac1bb4 +size 56276 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_orc-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_orc-0.vox new file mode 100644 index 0000000000..591186d1f3 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_orc-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2d0e9ae5f82e48a78b0ffc9edc05f5419368d4cb6abe03e44e9c30d9050c6f5 +size 27712 diff --git a/assets/voxygen/voxel/weapon/axe/rusty_2h.vox b/assets/voxygen/voxel/weapon/axe/2haxe_rusty.vox similarity index 100% rename from assets/voxygen/voxel/weapon/axe/rusty_2h.vox rename to assets/voxygen/voxel/weapon/axe/2haxe_rusty.vox diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-0.vox new file mode 100644 index 0000000000..512310e578 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_steel-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c693d3b8cd79fa32912f81f3835825ac38d020c6db438e5e7b7ae1d6b0e5a3b8 +size 27951 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-1.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-1.vox new file mode 100644 index 0000000000..7a21b3db1b --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_steel-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84ad2ab24e429353212fec93961d7a61e47f0e695c767893e2bbbe429553521d +size 56380 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-2.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-2.vox new file mode 100644 index 0000000000..db3cb689c0 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_steel-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9295f85a2176600beb74edc044c33d9dcdc9f7f8afed52029cdf679655dab90 +size 56144 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-3.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-3.vox new file mode 100644 index 0000000000..07bb7bcb00 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_steel-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28094aa91089c30e3123d16e90143cfa65aacc0189be7c512430674e2e9f73f4 +size 27779 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-4.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-4.vox new file mode 100644 index 0000000000..b19122398d --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_steel-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ba7ea8e9b63b7ee87647d1d9b61cadb7d02e961dedd758599b1e36e71ec8335 +size 56172 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-5.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-5.vox new file mode 100644 index 0000000000..6b71e87ee0 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_steel-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4e58536b0134788a0561c84044f3cabcf6a76f4854831a6cd946f32b15a318b +size 56532 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_steel-6.vox b/assets/voxygen/voxel/weapon/axe/2haxe_steel-6.vox new file mode 100644 index 0000000000..194bc5857c --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_steel-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abbe13c66a8a822144678ad56d149eaf07bae9e9f4d29e88f451fd85af4673e5 +size 56116 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-0.vox b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-0.vox new file mode 100644 index 0000000000..febcb11050 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:53159b66a67f5b6cd6f4650ba69e30c4ac49c6d8af0d1e7bfb647866a2b1e3ec +size 27643 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-1.vox b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-1.vox new file mode 100644 index 0000000000..278e7ed0b9 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36e274c626a6ef45e43b6df56300491c5d827fd47a5e04896afd9d7b0b210427 +size 27599 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-2.vox b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-2.vox new file mode 100644 index 0000000000..50efd7c681 --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b501cf5dd7c137fe01fa9a957195a6c02cdd2fbf499f97d7a6526d2cce1a2479 +size 27603 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-3.vox b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-3.vox new file mode 100644 index 0000000000..7b3777576f --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76d86dd874db42726bcadb5f14aac4cfc1bf5baf4b2a24f3b258db514da1f448 +size 27663 diff --git a/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-4.vox b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-4.vox new file mode 100644 index 0000000000..e9734c04ce --- /dev/null +++ b/assets/voxygen/voxel/weapon/axe/2haxe_worn_iron-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04e6c1395118a83c43394dc6d3374d439ebfe74d28e7c0cc7db8583c12ac21db +size 56116 diff --git a/assets/voxygen/voxel/weapon/axe/orc-0.vox b/assets/voxygen/voxel/weapon/axe/orc-0.vox deleted file mode 100644 index f135b207e5..0000000000 --- a/assets/voxygen/voxel/weapon/axe/orc-0.vox +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:122f08460e44fbcc59e835e47c312ad22c2c2f41faf11f1eade23604080ae707 -size 1556 diff --git a/assets/voxygen/voxel/weapon/bow/longbow_horn-0.vox b/assets/voxygen/voxel/weapon/bow/longbow_horn-0.vox new file mode 100644 index 0000000000..8e289457d2 --- /dev/null +++ b/assets/voxygen/voxel/weapon/bow/longbow_horn-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70f9d979cabb149f691ef69944d17f3cff46eafd43eb448fe852324088be646c +size 28027 diff --git a/assets/voxygen/voxel/weapon/bow/longbow_iron-0.vox b/assets/voxygen/voxel/weapon/bow/longbow_iron-0.vox new file mode 100644 index 0000000000..bc28cdaa38 --- /dev/null +++ b/assets/voxygen/voxel/weapon/bow/longbow_iron-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5f65ec302b6c9f1270e56d6815bc69f8d6900ae3265b944c62043a6aafd4998 +size 27787 diff --git a/assets/voxygen/voxel/weapon/bow/longbow_leafy-0.vox b/assets/voxygen/voxel/weapon/bow/longbow_leafy-0.vox new file mode 100644 index 0000000000..8fafcfd26d --- /dev/null +++ b/assets/voxygen/voxel/weapon/bow/longbow_leafy-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a55d16de16c33e0be42993e13d4322560cff078e41858363685754b6739c3935 +size 23910 diff --git a/assets/voxygen/voxel/weapon/bow/rare_bow-0.vox b/assets/voxygen/voxel/weapon/bow/longbow_rare.vox similarity index 100% rename from assets/voxygen/voxel/weapon/bow/rare_bow-0.vox rename to assets/voxygen/voxel/weapon/bow/longbow_rare.vox diff --git a/assets/voxygen/voxel/weapon/bow/longbow-0.vox b/assets/voxygen/voxel/weapon/bow/longbow_wood-0.vox similarity index 100% rename from assets/voxygen/voxel/weapon/bow/longbow-0.vox rename to assets/voxygen/voxel/weapon/bow/longbow_wood-0.vox diff --git a/assets/voxygen/voxel/weapon/bow/longbow-1.vox b/assets/voxygen/voxel/weapon/bow/longbow_wood-1.vox similarity index 100% rename from assets/voxygen/voxel/weapon/bow/longbow-1.vox rename to assets/voxygen/voxel/weapon/bow/longbow_wood-1.vox diff --git a/assets/voxygen/voxel/weapon/bow/shortbow_leafy-0.vox b/assets/voxygen/voxel/weapon/bow/shortbow_leafy-0.vox new file mode 100644 index 0000000000..270fa53526 --- /dev/null +++ b/assets/voxygen/voxel/weapon/bow/shortbow_leafy-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d8921632effb6b05c52481eaa84276fa19aa06521880c2db4c60851a416f6644 +size 27426 diff --git a/assets/voxygen/voxel/weapon/bow/shortbow_starter.vox b/assets/voxygen/voxel/weapon/bow/shortbow_starter.vox new file mode 100644 index 0000000000..11c8b5ab68 --- /dev/null +++ b/assets/voxygen/voxel/weapon/bow/shortbow_starter.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7dae3066f3797ee82502d215f516dfd39ffe23142dc588bbeba6e5302b55ae1 +size 27414 diff --git a/assets/voxygen/voxel/weapon/bow/shortbow-0.vox b/assets/voxygen/voxel/weapon/bow/shortbow_wood-0.vox similarity index 100% rename from assets/voxygen/voxel/weapon/bow/shortbow-0.vox rename to assets/voxygen/voxel/weapon/bow/shortbow_wood-0.vox diff --git a/assets/voxygen/voxel/weapon/bow/shortbow-1.vox b/assets/voxygen/voxel/weapon/bow/shortbow_wood-1.vox similarity index 100% rename from assets/voxygen/voxel/weapon/bow/shortbow-1.vox rename to assets/voxygen/voxel/weapon/bow/shortbow_wood-1.vox diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-0.vox new file mode 100644 index 0000000000..ad225b6ddd --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:367f6a26cd0241c3ebbe82c0ea4b9f7b658cd3ce0f7aefd2f849377ef1eb7db9 +size 57052 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-1.vox new file mode 100644 index 0000000000..93bac8489f --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_bronze-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:348246e450e75c2ead2cf41d8404f9b407647054c68ba5b70ab6b2317ed23b44 +size 56596 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-0.vox new file mode 100644 index 0000000000..fe76cf6370 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18ebcd1b8c46d4400e1a93a776b8d1e73587cbc50a555462d35f4b1e15b312cf +size 57432 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-1.vox new file mode 100644 index 0000000000..16d3e53d33 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_cobalt-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0d0847115517ba7d34e2fb800aa1e9bddad9386b04b230038968e18bb31d4e2 +size 56824 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_flimsy.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_flimsy.vox new file mode 100644 index 0000000000..83006366e6 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_flimsy.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6b87f3110b5992074fc6461b9de9f6483d610b186abda714534aa0f7df6b819 +size 1668 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-0.vox new file mode 100644 index 0000000000..e00c67dcd7 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c2ed42947ead14889882cb42ec884bb467b2ded6af719e7fedfac24dfe3770f +size 2952 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-1.vox new file mode 100644 index 0000000000..b703b87b0a --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63560b389e727f8df1f8036915441aed7a6f21347f4add7ff27553dcb28b3fd0 +size 3436 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-2.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-2.vox new file mode 100644 index 0000000000..32774ef5c8 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a875549b839312cfef915ee30445a67bfe50f3c4f1e331af3f14f2053b6adadf +size 56552 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-3.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-3.vox new file mode 100644 index 0000000000..5af7aaefe9 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b6665a395989bebece8172f9aef3c0d46fb39e86e9535e20437874ea544744c +size 56672 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-4.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-4.vox new file mode 100644 index 0000000000..b72e0c8989 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9263308cd5d024f7d787ddbeeeed664312c703380c38e2ebd90b0f4e3be31dd +size 57352 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-5.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-5.vox new file mode 100644 index 0000000000..8f9d9c276a --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5674cfb08bc8a78bc619a8b9fde1aca171e8fbcb3665ff178936871469570203 +size 28111 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-6.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-6.vox new file mode 100644 index 0000000000..1dc846009b --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-6.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d731f7d28429b15675eda888d738251cb4e38a39d8384098ba413ae0e917bb14 +size 56816 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-7.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-7.vox new file mode 100644 index 0000000000..5f721cb4ed --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-7.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eea212c1c91c7e32e1b5e11ac3ed17f135e7dd31e250398370780cba25ca93c2 +size 3332 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-8.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-8.vox new file mode 100644 index 0000000000..c7ac086b8e --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_iron-8.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d82df6a126c6c17784e5894aa90c446a08df70dadff9d7a223fe33b4b1c04770 +size 27827 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_mjolnir.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_mjolnir.vox new file mode 100644 index 0000000000..f752213c39 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_mjolnir.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:daac5c34a9fad348c458cb9df19cafb77db0fdbd58cf4929aaa240fe1b3bb3c6 +size 57740 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_ramshead.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_ramshead.vox new file mode 100644 index 0000000000..b27e55db60 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_ramshead.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a39cb62f210fd35468c60e6a39c33da76316fcd7241d49f9c422951cd1e679fd +size 57744 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_runic.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_runic.vox new file mode 100644 index 0000000000..cc0458d85c --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_runic.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c76a033c2851a4954607a2baa485c560f7c41b6c3cddc2fd11ad7afea43151a +size 57436 diff --git a/assets/voxygen/voxel/weapon/hammer/rusty_2h.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_rusty.vox similarity index 100% rename from assets/voxygen/voxel/weapon/hammer/rusty_2h.vox rename to assets/voxygen/voxel/weapon/hammer/2hhammer_rusty.vox diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-0.vox new file mode 100644 index 0000000000..fd3c6fd38d --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2969d5134696f1040f6bd7aa42df53fb099d2fe94e158bfe82e7375f941e3a1b +size 56696 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-1.vox new file mode 100644 index 0000000000..d176601b10 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f57550f660d7e0268728a3d7a3f6f45d8c28763962e64941176799274a46f904 +size 58228 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-2.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-2.vox new file mode 100644 index 0000000000..76701b269d --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e23acc123a178b23fcd27c2ca6e8fd6539bfa8422ddefade79056d708c50846 +size 56604 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-3.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-3.vox new file mode 100644 index 0000000000..f954636988 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:858774d10729705a472dfb8d70ccd1293b14c919e69cd70e7a2b9171921ff021 +size 57188 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-4.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-4.vox new file mode 100644 index 0000000000..b1f2f1a95c --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-4.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:421a28a08a07935be0d7d34ae1ce0364d2921715465f659f912f40a28b4c7ef0 +size 57300 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-5.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-5.vox new file mode 100644 index 0000000000..b86505e349 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_steel-5.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a83adbb2db2bc9ee1d7aac0be8b6264892bc4d7161bbf056a37bc79650fa87ac +size 56968 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-0.vox new file mode 100644 index 0000000000..2cb084911e --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:743a7ad6a0aa7d6ac6505f0f6569492bcca948abf5bb6951ecc08165fb725709 +size 57784 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-1.vox new file mode 100644 index 0000000000..3917be7ad5 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36d27e84caca195849e5c4007de8d701c6015779af1bb42ea4ec885b9d870b0a +size 57800 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-2.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-2.vox new file mode 100644 index 0000000000..12279439cf --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b09818dce17f02a91f59774f16ad88431b6a37ec12c7b91d573ba8075bb3958 +size 57544 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-3.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-3.vox new file mode 100644 index 0000000000..f0a0dc3509 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_stone-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3133c77eeb3e9bca471785100f2840a10e1edaf2b593a9ea1a129879f36cb05 +size 57560 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_wood-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_wood-0.vox new file mode 100644 index 0000000000..756aa5a054 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_wood-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f45e78fda3b90fb888faf83c01392dad561ea2b347282c069c3ffd5fa09a259c +size 57352 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-0.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-0.vox new file mode 100644 index 0000000000..89751968ab --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df22d293c048fdf992fda94bebc209ab2906e084328edd89d23dfbd061587d12 +size 27867 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-1.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-1.vox new file mode 100644 index 0000000000..ec89f4832a --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-1.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9d60c1042c4ae220566b0d4b886c695f95282ccdf7cb246fa9561a4ab85bede +size 28023 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-2.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-2.vox new file mode 100644 index 0000000000..bba8fd9594 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-2.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:075a09c318b305b8b980e1771916d84dbcf3bbc5ba7992b848f4963a17471ccf +size 27731 diff --git a/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-3.vox b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-3.vox new file mode 100644 index 0000000000..de5b65dbc8 --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/2hhammer_worn_iron-3.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c3c88356a634afbd8ca62db501877749c86e3520dfb03110c2fdeceddfb9657 +size 28155 diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_amethyst.vox b/assets/voxygen/voxel/weapon/staff/firestaff_amethyst.vox new file mode 100644 index 0000000000..b35b431f38 --- /dev/null +++ b/assets/voxygen/voxel/weapon/staff/firestaff_amethyst.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cefd61e370671c019a81b822c05b111474f7506f79e4ba89e2c0396210ebfa25 +size 27535 diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_bone.vox b/assets/voxygen/voxel/weapon/staff/firestaff_bone.vox new file mode 100644 index 0000000000..cc95d94c9d --- /dev/null +++ b/assets/voxygen/voxel/weapon/staff/firestaff_bone.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a008037e3968e259841e2cb943ccdef822345364d00a6e3b10ceaf5e80a43ed +size 27451 diff --git a/assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox b/assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox new file mode 100644 index 0000000000..6957a98086 --- /dev/null +++ b/assets/voxygen/voxel/weapon/staff/firestaff_cultist.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be510819e70d99ad4cb773de9a3cc8d343fc2d17236803e959b186a00020bd90 +size 27910 diff --git a/assets/voxygen/voxel/weapon/staff/wood-fire.vox b/assets/voxygen/voxel/weapon/staff/firestaff_starter.vox similarity index 100% rename from assets/voxygen/voxel/weapon/staff/wood-fire.vox rename to assets/voxygen/voxel/weapon/staff/firestaff_starter.vox diff --git a/client/Cargo.toml b/client/Cargo.toml index 11f9574726..8be7a09c8f 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -21,4 +21,4 @@ rayon = "^1.3.0" specs = { git = "https://github.com/amethyst/specs.git", rev = "7a2e348ab2223818bad487695c66c43db88050a5" } vek = { version = "0.11.0", features = ["serde"] } hashbrown = { version = "0.7.2", features = ["rayon", "serde", "nightly"] } -authc = { git = "https://gitlab.com/veloren/auth.git", rev = "57784d2135a2c81ff0266f52a528da092ddf89e6" } +authc = { git = "https://gitlab.com/veloren/auth.git", rev = "b943c85e4a38f5ec60cd18c34c73097640162bfe" } diff --git a/common/Cargo.toml b/common/Cargo.toml index 7f37947149..150436336f 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -30,7 +30,7 @@ crossbeam = "0.7" notify = "5.0.0-pre.3" indexmap = "1.3.0" sum_type = "0.2.0" -authc = { git = "https://gitlab.com/veloren/auth.git", rev = "57784d2135a2c81ff0266f52a528da092ddf89e6" } +authc = { git = "https://gitlab.com/veloren/auth.git", rev = "b943c85e4a38f5ec60cd18c34c73097640162bfe" } [dev-dependencies] criterion = "0.3" diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index be77bb5a01..29015a727a 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -234,37 +234,37 @@ impl Body { pub fn base_health(&self) -> u32 { match self { - Body::Humanoid(_) => 52, - Body::QuadrupedSmall(_) => 44, - Body::QuadrupedMedium(_) => 72, - Body::BirdMedium(_) => 36, - Body::FishMedium(_) => 32, - Body::Dragon(_) => 256, - Body::BirdSmall(_) => 24, - Body::FishSmall(_) => 20, - Body::BipedLarge(_) => 144, - Body::Object(_) => 100, - Body::Golem(_) => 168, - Body::Critter(_) => 32, - Body::QuadrupedLow(_) => 64, + Body::Humanoid(_) => 520, + Body::QuadrupedSmall(_) => 440, + Body::QuadrupedMedium(_) => 720, + Body::BirdMedium(_) => 360, + Body::FishMedium(_) => 320, + Body::Dragon(_) => 2560, + Body::BirdSmall(_) => 240, + Body::FishSmall(_) => 200, + Body::BipedLarge(_) => 1440, + Body::Object(_) => 1000, + Body::Golem(_) => 1680, + Body::Critter(_) => 320, + Body::QuadrupedLow(_) => 640, } } pub fn base_health_increase(&self) -> u32 { match self { - Body::Humanoid(_) => 5, - Body::QuadrupedSmall(_) => 4, - Body::QuadrupedMedium(_) => 7, - Body::BirdMedium(_) => 4, - Body::FishMedium(_) => 3, - Body::Dragon(_) => 26, - Body::BirdSmall(_) => 2, - Body::FishSmall(_) => 2, - Body::BipedLarge(_) => 14, + Body::Humanoid(_) => 50, + Body::QuadrupedSmall(_) => 40, + Body::QuadrupedMedium(_) => 70, + Body::BirdMedium(_) => 40, + Body::FishMedium(_) => 30, + Body::Dragon(_) => 260, + Body::BirdSmall(_) => 20, + Body::FishSmall(_) => 20, + Body::BipedLarge(_) => 140, Body::Object(_) => 0, - Body::Golem(_) => 17, - Body::Critter(_) => 3, - Body::QuadrupedLow(_) => 6, + Body::Golem(_) => 170, + Body::Critter(_) => 30, + Body::QuadrupedLow(_) => 60, } } @@ -306,19 +306,19 @@ impl Body { pub fn base_dmg(&self) -> u32 { match self { - Body::Humanoid(_) => 6, - Body::QuadrupedSmall(_) => 8, - Body::QuadrupedMedium(_) => 12, - Body::BirdMedium(_) => 7, - Body::FishMedium(_) => 6, - Body::Dragon(_) => 90, - Body::BirdSmall(_) => 5, - Body::FishSmall(_) => 3, - Body::BipedLarge(_) => 36, + Body::Humanoid(_) => 60, + Body::QuadrupedSmall(_) => 80, + Body::QuadrupedMedium(_) => 120, + Body::BirdMedium(_) => 70, + Body::FishMedium(_) => 60, + Body::Dragon(_) => 900, + Body::BirdSmall(_) => 50, + Body::FishSmall(_) => 30, + Body::BipedLarge(_) => 360, Body::Object(_) => 0, - Body::Golem(_) => 36, - Body::Critter(_) => 7, - Body::QuadrupedLow(_) => 11, + Body::Golem(_) => 360, + Body::Critter(_) => 70, + Body::QuadrupedLow(_) => 110, } } diff --git a/common/src/comp/body/biped_large.rs b/common/src/comp/body/biped_large.rs index 0d79798692..5b90048c59 100644 --- a/common/src/comp/body/biped_large.rs +++ b/common/src/comp/body/biped_large.rs @@ -30,6 +30,8 @@ impl From for super::Body { pub enum Species { Ogre = 0, Cyclops = 1, + Wendigo = 2, + Troll = 3, } /// Data representing per-species generic data. @@ -39,6 +41,8 @@ pub enum Species { pub struct AllSpecies { pub ogre: SpeciesMeta, pub cyclops: SpeciesMeta, + pub wendigo: SpeciesMeta, + pub troll: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -49,11 +53,18 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies match index { Species::Ogre => &self.ogre, Species::Cyclops => &self.cyclops, + Species::Wendigo => &self.wendigo, + Species::Troll => &self.troll, } } } -pub const ALL_SPECIES: [Species; 2] = [Species::Ogre, Species::Cyclops]; +pub const ALL_SPECIES: [Species; 4] = [ + Species::Ogre, + Species::Cyclops, + Species::Wendigo, + Species::Troll, +]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { type IntoIter = std::iter::Copied>; diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs index de08a7da58..ceac93e830 100644 --- a/common/src/comp/body/quadruped_low.rs +++ b/common/src/comp/body/quadruped_low.rs @@ -36,6 +36,7 @@ pub enum Species { Tortoise = 5, Rocksnapper = 6, Pangolin = 7, + Maneater = 8, } /// Data representing per-species generic data. @@ -51,6 +52,7 @@ pub struct AllSpecies { pub tortoise: SpeciesMeta, pub rocksnapper: SpeciesMeta, pub pangolin: SpeciesMeta, + pub maneater: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -67,11 +69,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Tortoise => &self.tortoise, Species::Rocksnapper => &self.rocksnapper, Species::Pangolin => &self.pangolin, + Species::Maneater => &self.maneater, } } } -pub const ALL_SPECIES: [Species; 8] = [ +pub const ALL_SPECIES: [Species; 9] = [ Species::Crocodile, Species::Alligator, Species::Salamander, @@ -80,6 +83,7 @@ pub const ALL_SPECIES: [Species; 8] = [ Species::Tortoise, Species::Rocksnapper, Species::Pangolin, + Species::Maneater, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/body/quadruped_medium.rs b/common/src/comp/body/quadruped_medium.rs index 1298be162d..4c1a70106e 100644 --- a/common/src/comp/body/quadruped_medium.rs +++ b/common/src/comp/body/quadruped_medium.rs @@ -37,6 +37,8 @@ pub enum Species { Wolf = 8, Frostfang = 9, Mouflon = 10, + Catoblepas = 11, + Bonerattler = 12, } /// Data representing per-species generic data. @@ -53,6 +55,8 @@ pub struct AllSpecies { pub wolf: SpeciesMeta, pub frostfang: SpeciesMeta, pub mouflon: SpeciesMeta, + pub catoblepas: SpeciesMeta, + pub bonerattler: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -70,11 +74,13 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Wolf => &self.wolf, Species::Frostfang => &self.frostfang, Species::Mouflon => &self.mouflon, + Species::Catoblepas => &self.catoblepas, + Species::Bonerattler => &self.bonerattler, } } } -pub const ALL_SPECIES: [Species; 9] = [ +pub const ALL_SPECIES: [Species; 11] = [ Species::Grolgar, Species::Saber, Species::Tiger, @@ -84,6 +90,8 @@ pub const ALL_SPECIES: [Species; 9] = [ Species::Wolf, Species::Frostfang, Species::Mouflon, + Species::Catoblepas, + Species::Bonerattler, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/body/quadruped_small.rs b/common/src/comp/body/quadruped_small.rs index c190aa9e29..63055e856a 100644 --- a/common/src/comp/body/quadruped_small.rs +++ b/common/src/comp/body/quadruped_small.rs @@ -41,6 +41,9 @@ pub enum Species { Dodarock = 10, Holladon = 11, Hyena = 12, + Rabbit = 13, + Truffler = 14, + Frog = 15, } /// Data representing per-species generic data. @@ -61,6 +64,9 @@ pub struct AllSpecies { pub dodarock: SpeciesMeta, pub holladon: SpeciesMeta, pub hyena: SpeciesMeta, + pub rabbit: SpeciesMeta, + pub truffler: SpeciesMeta, + pub frog: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -82,11 +88,14 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Dodarock => &self.dodarock, Species::Holladon => &self.holladon, Species::Hyena => &self.hyena, + Species::Rabbit => &self.rabbit, + Species::Truffler => &self.truffler, + Species::Frog => &self.frog, } } } -pub const ALL_SPECIES: [Species; 13] = [ +pub const ALL_SPECIES: [Species; 16] = [ Species::Pig, Species::Fox, Species::Sheep, @@ -100,6 +109,9 @@ pub const ALL_SPECIES: [Species; 13] = [ Species::Dodarock, Species::Holladon, Species::Hyena, + Species::Rabbit, + Species::Truffler, + Species::Frog, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/common/src/comp/damage.rs b/common/src/comp/damage.rs index e2e6449975..d43268aa51 100644 --- a/common/src/comp/damage.rs +++ b/common/src/comp/damage.rs @@ -33,8 +33,8 @@ impl Damage { self.healthchange *= 1.0 - loadout.get_damage_reduction(); // Min damage - if self.healthchange > -1.0 { - self.healthchange = -1.0; + if self.healthchange > -10.0 { + self.healthchange = -10.0; } }, DamageSource::Projectile => { @@ -50,8 +50,8 @@ impl Damage { self.healthchange *= 1.0 - loadout.get_damage_reduction(); // Min damage - if self.healthchange > -1.0 { - self.healthchange = -1.0; + if self.healthchange > -10.0 { + self.healthchange = -10.0; } }, DamageSource::Explosion => { @@ -67,8 +67,8 @@ impl Damage { self.healthchange *= 1.0 - loadout.get_damage_reduction(); // Min damage - if self.healthchange > -1.0 { - self.healthchange = -1.0; + if self.healthchange > -10.0 { + self.healthchange = -10.0; } }, _ => {}, diff --git a/common/src/comp/inventory/item/mod.rs b/common/src/comp/inventory/item/mod.rs index 895f07bd34..b7bb702e0b 100644 --- a/common/src/comp/inventory/item/mod.rs +++ b/common/src/comp/inventory/item/mod.rs @@ -3,7 +3,7 @@ pub mod lottery; pub mod tool; // Reexports -pub use tool::{DebugKind, Hands, SwordKind, Tool, ToolCategory, ToolKind}; +pub use tool::{Hands, Tool, ToolCategory, ToolKind}; use crate::{ assets::{self, Asset}, diff --git a/common/src/comp/inventory/item/tool.rs b/common/src/comp/inventory/item/tool.rs index f5dcefb4fd..742709901e 100644 --- a/common/src/comp/inventory/item/tool.rs +++ b/common/src/comp/inventory/item/tool.rs @@ -7,116 +7,23 @@ use crate::comp::{ use serde::{Deserialize, Serialize}; use std::time::Duration; -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub enum SwordKind { - BasicSword, - Rapier, - Zweihander0, - WoodTraining, - Short0, - GreatswordDam0, - GreatswordDam1, - GreatswordDam2, - GreatswordSimple0, - GreatswordSimple1, - GreatswordSimple2, - GreatswordOrn0, - GreatswordOrn1, - GreatswordOrn2, - GreatswordFine0, - GreatswordFine1, - GreatswordFine2, - LongDam0, - LongDam1, - LongDam2, - LongDam3, - LongDam4, - LongDam5, - LongSimple0, - LongSimple1, - LongSimple2, - LongSimple3, - LongSimple4, - LongSimple5, - LongOrn0, - LongOrn1, - LongOrn2, - LongOrn3, - LongOrn4, - LongOrn5, - LongFine0, - LongFine1, - LongFine2, - LongFine3, - LongFine4, - LongFine5, - CultPurp0, -} -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub enum AxeKind { - BasicAxe, -} -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub enum HammerKind { - BasicHammer, -} -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub enum BowKind { - ShortBow0, - ShortBow1, - LongBow0, - LongBow1, - RareBow0, -} -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub enum DaggerKind { - BasicDagger, -} -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub enum StaffKind { - BasicStaff, - Sceptre, -} -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub enum ShieldKind { - BasicShield, -} -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub enum FarmKind { - Broom, - Hoe0, - Hoe1, - Pitchfork, - Rake, - FishingRod0, - FishingRod1, - Pickaxe0, - Shovel0, - Shovel1, -} - -#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -pub enum DebugKind { - Boost, -} - -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum ToolKind { - Sword(SwordKind), - Axe(AxeKind), - Hammer(HammerKind), - Bow(BowKind), - Dagger(DaggerKind), - Staff(StaffKind), - Shield(ShieldKind), - Debug(DebugKind), - Farming(FarmKind), + Sword(String), + Axe(String), + Hammer(String), + Bow(String), + Dagger(String), + Staff(String), + Shield(String), + Debug(String), + Farming(String), /// This is an placeholder item, it is used by non-humanoid npcs to attack Empty, } impl ToolKind { - pub fn into_hands(self) -> Hands { + pub fn hands(&self) -> Hands { match self { ToolKind::Sword(_) => Hands::TwoHand, ToolKind::Axe(_) => Hands::TwoHand, @@ -151,8 +58,8 @@ pub enum ToolCategory { Empty, } -impl From for ToolCategory { - fn from(kind: ToolKind) -> ToolCategory { +impl From<&ToolKind> for ToolCategory { + fn from(kind: &ToolKind) -> ToolCategory { match kind { ToolKind::Sword(_) => ToolCategory::Sword, ToolKind::Axe(_) => ToolCategory::Axe, @@ -168,10 +75,16 @@ impl From for ToolCategory { } } -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)] +pub struct Stats { + equip_time_millis: u32, + power: f32, +} + +#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] pub struct Tool { pub kind: ToolKind, - equip_time_millis: u32, + pub stats: Stats, // TODO: item specific abilities } @@ -179,52 +92,47 @@ impl Tool { pub fn empty() -> Self { Self { kind: ToolKind::Empty, - equip_time_millis: 0, + stats: Stats { + equip_time_millis: 0, + power: 1.00, + }, } } - pub fn equip_time(&self) -> Duration { Duration::from_millis(self.equip_time_millis as u64) } + // Keep power between 0.5 and 2.00 + pub fn base_power(&self) -> f32 { self.stats.power } + + pub fn equip_time(&self) -> Duration { + Duration::from_millis(self.stats.equip_time_millis as u64) + } pub fn get_abilities(&self) -> Vec { use CharacterAbility::*; - //use DebugKind::*; use ToolKind::*; - match self.kind { - Sword(SwordKind::CultPurp0) => vec![ - TripleStrike { - base_damage: 10, - needs_timing: false, - }, - DashMelee { - energy_cost: 700, - buildup_duration: Duration::from_millis(500), - recover_duration: Duration::from_millis(500), - base_damage: 20, - }, - ], + match &self.kind { Sword(_) => vec![ TripleStrike { - base_damage: 5, + base_damage: (60.0 * self.base_power()) as u32, needs_timing: false, }, DashMelee { energy_cost: 700, buildup_duration: Duration::from_millis(500), recover_duration: Duration::from_millis(500), - base_damage: 10, + base_damage: (120.0 * self.base_power()) as u32, }, ], Axe(_) => vec![ TripleStrike { - base_damage: 7, + base_damage: (80.0 * self.base_power()) as u32, needs_timing: true, }, SpinMelee { energy_cost: 100, buildup_duration: Duration::from_millis(125), recover_duration: Duration::from_millis(125), - base_damage: 5, + base_damage: (60.0 * self.base_power()) as u32, }, ], Hammer(_) => vec![ @@ -232,7 +140,7 @@ impl Tool { energy_cost: 0, buildup_duration: Duration::from_millis(700), recover_duration: Duration::from_millis(300), - base_healthchange: -10, + base_healthchange: (-120.0 * self.base_power()) as i32, range: 3.5, max_angle: 60.0, }, @@ -241,14 +149,14 @@ impl Tool { movement_duration: Duration::from_millis(500), buildup_duration: Duration::from_millis(1000), recover_duration: Duration::from_millis(100), - base_damage: 20, + base_damage: (240.0 * self.base_power()) as u32, }, ], Farming(_) => vec![BasicMelee { energy_cost: 1, buildup_duration: Duration::from_millis(700), recover_duration: Duration::from_millis(150), - base_healthchange: -5, + base_healthchange: (-50.0 * self.base_power()) as i32, range: 3.0, max_angle: 60.0, }], @@ -257,11 +165,11 @@ impl Tool { energy_cost: 0, holdable: true, prepare_duration: Duration::from_millis(100), - recover_duration: Duration::from_millis(500), + recover_duration: Duration::from_millis(400), projectile: Projectile { hit_solid: vec![projectile::Effect::Stick], hit_entity: vec![ - projectile::Effect::Damage(-3), + projectile::Effect::Damage((-40.0 * self.base_power()) as i32), projectile::Effect::Knockback(10.0), projectile::Effect::RewardEnergy(100), projectile::Effect::Vanish, @@ -276,8 +184,8 @@ impl Tool { ChargedRanged { energy_cost: 0, energy_drain: 300, - initial_damage: 3, - max_damage: 15, + initial_damage: (40.0 * self.base_power()) as u32, + max_damage: (200.0 * self.base_power()) as u32, initial_knockback: 10.0, max_knockback: 20.0, prepare_duration: Duration::from_millis(100), @@ -292,7 +200,7 @@ impl Tool { energy_cost: 0, buildup_duration: Duration::from_millis(100), recover_duration: Duration::from_millis(400), - base_healthchange: -5, + base_healthchange: (-50.0 * self.base_power()) as i32, range: 3.5, max_angle: 60.0, }, @@ -300,134 +208,147 @@ impl Tool { energy_cost: 700, buildup_duration: Duration::from_millis(500), recover_duration: Duration::from_millis(500), - base_damage: 20, + base_damage: (100.0 * self.base_power()) as u32, }, ], - Staff(StaffKind::BasicStaff) => vec![ - BasicMelee { - energy_cost: 0, - buildup_duration: Duration::from_millis(100), - recover_duration: Duration::from_millis(300), - base_healthchange: -3, - range: 10.0, - max_angle: 45.0, - }, - BasicRanged { - energy_cost: 0, - holdable: false, - prepare_duration: Duration::from_millis(250), - recover_duration: Duration::from_millis(600), - projectile: Projectile { - hit_solid: vec![projectile::Effect::Vanish], - hit_entity: vec![ - projectile::Effect::Damage(-3), - projectile::Effect::RewardEnergy(150), - projectile::Effect::Vanish, - ], - time_left: Duration::from_secs(20), - owner: None, - }, - projectile_body: Body::Object(object::Body::BoltFire), - projectile_light: Some(LightEmitter { - col: (0.85, 0.5, 0.11).into(), - ..Default::default() - }), + Staff(kind) => { + if kind == "Sceptre" { + 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: 10.0, + max_angle: 45.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: 10.0, + max_angle: 45.0, + }, + ] + } else { + vec![ + BasicMelee { + energy_cost: 0, + buildup_duration: Duration::from_millis(100), + recover_duration: Duration::from_millis(300), + base_healthchange: (-40.0 * self.base_power()) as i32, + range: 10.0, + max_angle: 45.0, + }, + BasicRanged { + energy_cost: 0, + holdable: false, + prepare_duration: Duration::from_millis(250), + recover_duration: Duration::from_millis(600), + projectile: Projectile { + hit_solid: vec![projectile::Effect::Vanish], + hit_entity: vec![ + projectile::Effect::Damage((-40.0 * self.base_power()) as i32), + projectile::Effect::RewardEnergy(150), + projectile::Effect::Vanish, + ], + time_left: Duration::from_secs(20), + owner: None, + }, + projectile_body: Body::Object(object::Body::BoltFire), + projectile_light: Some(LightEmitter { + col: (0.85, 0.5, 0.11).into(), + ..Default::default() + }), - projectile_gravity: None, - }, - BasicRanged { - energy_cost: 400, - holdable: true, - prepare_duration: Duration::from_millis(800), - recover_duration: Duration::from_millis(50), - projectile: Projectile { - hit_solid: vec![ - projectile::Effect::Explode { power: 1.4 }, - projectile::Effect::Vanish, - ], - hit_entity: vec![ - projectile::Effect::Explode { power: 1.4 }, - projectile::Effect::Vanish, - ], - time_left: Duration::from_secs(20), - owner: None, - }, - projectile_body: Body::Object(object::Body::BoltFireBig), - projectile_light: Some(LightEmitter { - col: (1.0, 0.75, 0.11).into(), - ..Default::default() - }), + projectile_gravity: None, + }, + BasicRanged { + energy_cost: 400, + holdable: true, + prepare_duration: Duration::from_millis(800), + recover_duration: Duration::from_millis(50), + projectile: Projectile { + hit_solid: vec![ + projectile::Effect::Explode { + power: 1.4 * self.base_power(), + }, + projectile::Effect::Vanish, + ], + hit_entity: vec![ + projectile::Effect::Explode { + power: 1.4 * self.base_power(), + }, + projectile::Effect::Vanish, + ], + time_left: Duration::from_secs(20), + owner: None, + }, + projectile_body: Body::Object(object::Body::BoltFireBig), + projectile_light: Some(LightEmitter { + col: (1.0, 0.75, 0.11).into(), + ..Default::default() + }), - projectile_gravity: None, - }, - ], - Staff(StaffKind::Sceptre) => vec![ - BasicMelee { - energy_cost: 0, - buildup_duration: Duration::from_millis(0), - recover_duration: Duration::from_millis(300), - base_healthchange: -1, - range: 10.0, - max_angle: 45.0, - }, - BasicMelee { - energy_cost: 350, - buildup_duration: Duration::from_millis(0), - recover_duration: Duration::from_millis(1000), - base_healthchange: 15, - range: 10.0, - max_angle: 45.0, - }, - ], + projectile_gravity: None, + }, + ] + } + }, Shield(_) => vec![ BasicMelee { energy_cost: 0, buildup_duration: Duration::from_millis(100), recover_duration: Duration::from_millis(400), - base_healthchange: -4, + base_healthchange: (-40.0 * self.base_power()) as i32, range: 3.0, max_angle: 120.0, }, BasicBlock, ], - Debug(kind) => match kind { - DebugKind::Boost => vec![ - CharacterAbility::Boost { - duration: Duration::from_millis(50), - only_up: false, - }, - CharacterAbility::Boost { - duration: Duration::from_millis(50), - only_up: true, - }, - BasicRanged { - energy_cost: 0, - holdable: false, - prepare_duration: Duration::from_millis(0), - recover_duration: Duration::from_millis(10), - projectile: Projectile { - hit_solid: vec![projectile::Effect::Stick], - hit_entity: vec![ - projectile::Effect::Stick, - projectile::Effect::Possess, - ], - time_left: Duration::from_secs(10), - owner: None, + Debug(kind) => { + if kind == "Boost" { + vec![ + CharacterAbility::Boost { + duration: Duration::from_millis(50), + only_up: false, }, - projectile_body: Body::Object(object::Body::ArrowSnake), - projectile_light: Some(LightEmitter { - col: (0.0, 1.0, 0.33).into(), - ..Default::default() - }), - projectile_gravity: None, - }, - ], + CharacterAbility::Boost { + duration: Duration::from_millis(50), + only_up: true, + }, + BasicRanged { + energy_cost: 0, + holdable: false, + prepare_duration: Duration::from_millis(0), + recover_duration: Duration::from_millis(10), + projectile: Projectile { + hit_solid: vec![projectile::Effect::Stick], + hit_entity: vec![ + projectile::Effect::Stick, + projectile::Effect::Possess, + ], + time_left: Duration::from_secs(10), + owner: None, + }, + projectile_body: Body::Object(object::Body::ArrowSnake), + projectile_light: Some(LightEmitter { + col: (0.0, 1.0, 0.33).into(), + ..Default::default() + }), + projectile_gravity: None, + }, + ] + } else { + vec![] + } }, Empty => vec![BasicMelee { energy_cost: 0, buildup_duration: Duration::from_millis(0), recover_duration: Duration::from_millis(1000), - base_healthchange: -2, + base_healthchange: -20, range: 5.0, max_angle: 60.0, }], @@ -438,6 +359,6 @@ impl Tool { /// (i.e: one may be substituted for the other in crafting recipes or /// item possession checks). pub fn superficially_eq(&self, other: &Self) -> bool { - ToolCategory::from(self.kind) == ToolCategory::from(other.kind) + ToolCategory::from(&self.kind) == ToolCategory::from(&other.kind) } } diff --git a/common/src/loadout_builder.rs b/common/src/loadout_builder.rs index b3b65bd5bd..0fc3983039 100644 --- a/common/src/loadout_builder.rs +++ b/common/src/loadout_builder.rs @@ -66,7 +66,7 @@ impl LoadoutBuilder { pub fn animal(body: Body) -> Self { Self(Loadout { active_item: Some(ItemConfig { - item: assets::load_expect_cloned("common.items.weapons.empty"), + item: assets::load_expect_cloned("common.items.weapons.empty.empty"), ability1: Some(CharacterAbility::BasicMelee { energy_cost: 10, buildup_duration: Duration::from_millis(600), @@ -104,7 +104,7 @@ impl LoadoutBuilder { /// method pub fn default_item_config_from_item(maybe_item: Option) -> Option { if let Some(item) = maybe_item { - if let ItemKind::Tool(tool) = item.kind { + if let ItemKind::Tool(tool) = &item.kind { let mut abilities = tool.get_abilities(); let mut ability_drain = abilities.drain(..); diff --git a/common/src/states/leap_melee.rs b/common/src/states/leap_melee.rs index 44bc647f54..d908952de4 100644 --- a/common/src/states/leap_melee.rs +++ b/common/src/states/leap_melee.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize}; use std::time::Duration; use vek::Vec3; -const LEAP_SPEED: f32 = 16.0; +const LEAP_SPEED: f32 = 24.0; #[derive(Copy, Clone, Debug, PartialEq, Serialize, Deserialize, Eq, Hash)] pub struct Data { @@ -43,7 +43,8 @@ impl CharacterBehavior for Data { + 0.25 * data.inputs.move_dir.try_normalized().unwrap_or_default()) .try_normalized() .unwrap_or_default() - * LEAP_SPEED; + * LEAP_SPEED + * (1.0 - data.inputs.look_dir.z.abs()); update.character = CharacterState::LeapMelee(Data { movement_duration: self diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index ce01809f80..ee20892e6c 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -31,16 +31,16 @@ impl Body { pub fn base_accel(&self) -> f32 { match self { Body::Humanoid(_) => 100.0, - Body::QuadrupedSmall(_) => 85.0, + Body::QuadrupedSmall(_) => 125.0, Body::QuadrupedMedium(_) => 180.0, Body::BirdMedium(_) => 80.0, Body::FishMedium(_) => 50.0, Body::Dragon(_) => 250.0, Body::BirdSmall(_) => 75.0, Body::FishSmall(_) => 40.0, - Body::BipedLarge(_) => 120.0, + Body::BipedLarge(_) => 75.0, Body::Object(_) => 40.0, - Body::Golem(_) => 130.0, + Body::Golem(_) => 60.0, Body::Critter(_) => 85.0, Body::QuadrupedLow(_) => 120.0, } @@ -148,7 +148,7 @@ pub fn attempt_wield(data: &JoinData, update: &mut StateUpdate) { /// Checks that player can `Sit` and updates `CharacterState` if so pub fn attempt_sit(data: &JoinData, update: &mut StateUpdate) { - if data.physics.on_ground && data.body.is_humanoid() { + if data.physics.on_ground { update.character = CharacterState::Sit; } } @@ -224,8 +224,8 @@ pub fn handle_ability2_input(data: &JoinData, update: &mut StateUpdate) { }; match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::TwoHand), _) => { if let Some(ability) = data diff --git a/server/Cargo.toml b/server/Cargo.toml index c4d76af59f..49f59da6de 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -34,7 +34,7 @@ crossbeam = "0.7.2" prometheus = { version = "0.9", default-features = false} tiny_http = "0.7.0" portpicker = { git = "https://github.com/xMAC94x/portpicker-rs" } -authc = { git = "https://gitlab.com/veloren/auth.git", rev = "57784d2135a2c81ff0266f52a528da092ddf89e6" } +authc = { git = "https://gitlab.com/veloren/auth.git", rev = "b943c85e4a38f5ec60cd18c34c73097640162bfe" } libsqlite3-sys = { version = "0.18", features = ["bundled"] } diesel = { version = "1.4.3", features = ["sqlite"] } diesel_migrations = "1.4.0" diff --git a/server/src/cmd.rs b/server/src/cmd.rs index 2667cee3ac..d65c62ab29 100644 --- a/server/src/cmd.rs +++ b/server/src/cmd.rs @@ -367,7 +367,7 @@ fn handle_health( .write_storage::() .get_mut(target) { - stats.health.set_to(hp, comp::HealthSource::Command); + stats.health.set_to(hp * 10, comp::HealthSource::Command); } else { server.notify_client( client, diff --git a/server/src/events/entity_manipulation.rs b/server/src/events/entity_manipulation.rs index 521acfbed1..259cd87859 100644 --- a/server/src/events/entity_manipulation.rs +++ b/server/src/events/entity_manipulation.rs @@ -162,7 +162,7 @@ pub fn handle_land_on_ground(server: &Server, entity: EcsEntity, vel: Vec3) let state = &server.state; if vel.z <= -30.0 { if let Some(stats) = state.ecs().write_storage::().get_mut(entity) { - let falldmg = vel.z.powi(2) / 20.0 - 40.0; + let falldmg = (vel.z.powi(2) / 20.0 - 40.0) * 10.0; let mut damage = Damage { healthchange: -falldmg, source: DamageSource::Falling, @@ -238,7 +238,7 @@ pub fn handle_explosion(server: &Server, pos: Vec3, power: f32, owner: Opti && distance_squared < hit_range.powi(2) { // Weapon gives base damage - let dmg = (1.0 - distance_squared / hit_range.powi(2)) * power * 10.0; + let dmg = (1.0 - distance_squared / hit_range.powi(2)) * power * 130.0; let mut damage = Damage { healthchange: -dmg, diff --git a/server/src/events/interaction.rs b/server/src/events/interaction.rs index ebb47a9b73..878f2f6c67 100644 --- a/server/src/events/interaction.rs +++ b/server/src/events/interaction.rs @@ -48,7 +48,6 @@ pub fn handle_lantern(server: &mut Server, entity: EcsEntity) { } } -#[allow(clippy::useless_conversion)] // TODO: Pending review in #587 pub fn handle_mount(server: &mut Server, mounter: EcsEntity, mountee: EcsEntity) { let state = server.state_mut(); @@ -58,24 +57,18 @@ pub fn handle_mount(server: &mut Server, mounter: EcsEntity, mountee: EcsEntity) .get(mounter) .is_none() { - let not_mounting_yet = if let Some(comp::MountState::Unmounted) = state - .ecs() - .read_storage::() - .get(mountee) - .cloned() - { - true - } else { - false - }; + let not_mounting_yet = matches!( + state.ecs().read_storage::().get(mountee), + Some(comp::MountState::Unmounted) + ); if not_mounting_yet { if let (Some(mounter_uid), Some(mountee_uid)) = ( state.ecs().uid_from_entity(mounter), state.ecs().uid_from_entity(mountee), ) { - state.write_component(mountee, comp::MountState::MountedBy(mounter_uid.into())); - state.write_component(mounter, comp::Mounting(mountee_uid.into())); + state.write_component(mountee, comp::MountState::MountedBy(mounter_uid)); + state.write_component(mounter, comp::Mounting(mountee_uid)); } } } @@ -133,7 +126,7 @@ pub fn handle_possess(server: &Server, possessor_uid: Uid, possesse_uid: Uid) { .or_insert(comp::Loadout::default()); let item = assets::load_expect_cloned::("common.items.debug.possess"); - if let item::ItemKind::Tool(tool) = item.kind { + if let item::ItemKind::Tool(tool) = &item.kind { let mut abilities = tool.get_abilities(); let mut ability_drain = abilities.drain(..); let debug_item = comp::ItemConfig { diff --git a/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/down.sql b/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/down.sql new file mode 100644 index 0000000000..291a97c5ce --- /dev/null +++ b/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/down.sql @@ -0,0 +1 @@ +-- This file should undo anything in `up.sql` \ No newline at end of file diff --git a/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/up.sql b/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/up.sql new file mode 100644 index 0000000000..b3e63eb7ba --- /dev/null +++ b/server/src/migrations/2020-07-29-204534_power_stat_for_weapons/up.sql @@ -0,0 +1,154 @@ +-- Your SQL goes here + +UPDATE + inventory +SET + items = json_replace( + -- Replace inventory slots. + items, + '$.slots', + ( + -- Replace each item in the inventory, by splitting the json into an array, applying our changes, + -- and then re-aggregating. + -- + -- NOTE: SQLite does not seem to provide a way to guarantee the order is the same after aggregation! + -- For now, it *does* seem to order by slots.key, but this doesn't seem to be guaranteed by anything. + -- For explicitness, we still include the ORDER BY, even though it seems to have no effect. + SELECT json_group_array( + -- We use json_replace to restrict this migration's effect to items with the kind 'Tool'. + json_replace( + slots.value, + '$.kind.Tool', + CASE + -- ONLY run the migration when the stats.power field doesn't exist for this Tool. + -- We basically use this as a check to see if the migration has run or not. + WHEN json_type(slots.value, '$.kind.Tool.stats.power') IS NULL + THEN ( + WITH + -- First, we construct the contents of the new stats field: + stats(key,value) AS (VALUES + -- the old equip_time_millis value, which we know exists since we are a Tool and the migration has not run yet. + ('equip_time_millis', json_extract(slots.value, '$.kind.Tool.equip_time_millis')), + -- a new placeholder power value, which we know isn't overwriting anything since the migration hasn't run yet. + ('power', json('0.5')) + ), + -- Next, we construct what's called a json PATCH--a generalized replacement for json_set and json_remove: + patch(key,value) AS (VALUES + -- *removes* the old equip_time_millis field, by setting it to null in the patch. + ('equip_time_millis', json('null')), + -- *inserts* the new stats field, by setting it to the contents of the stats object we constructed earlier. + ('stats', (SELECT json_group_object(stats.key, stats.value) FROM stats)) + ) + -- Finally, we execute the patch against the contents of $.kind.Tool, which we know exists since we are a Tool. + SELECT json_patch( + json_extract(slots.value, '$.kind.Tool'), + json_group_object(patch.key, patch.value) + ) FROM patch + ) + ELSE + -- The migration has already run, so just use the existing value for the Tool. + json_extract(slots.value, '$.kind.Tool') + END + ) + ) + -- Extract all item slots + FROM json_each(json_extract(items, '$.slots')) AS slots + ORDER BY slots.key + ) + ) +; + +-- NOTE: The only change you should need to make to this migration when copying from this file, +-- is to replace the part below where it says +-- "THE VALUE BELOW SHOULD BE COPY PASTED FROM THE MIGRATION FOR items" +-- with the part below the json_group_array() in the migration for inventory (above). +UPDATE + loadout +SET + items = ( + WITH + -- Specify all loadout slots and the JSON path to their items. + slot_keys(key, item_path) AS (VALUES + -- Option + ('active_item', '$.item'), + ('second_item', '$.item'), + -- Option + ('lantern', '$'), + + ('shoulder', '$'), + ('chest', '$'), + ('belt', '$'), + ('hand', '$'), + ('pants', '$'), + ('foot', '$'), + ('back', '$'), + ('ring', '$'), + ('neck', '$'), + ('head', '$'), + ('tabard', '$') + ), + -- Extract the base value and item value from each loadout slot. + slots(key, base_value, item_path, value) AS ( + -- NOTE: Normally, using string concatenation || to construct a path like this would be a + -- bad idea, but since we statically know every string in the path doesn't need to be + -- escaped, it should be okay here. + SELECT + key, + json_extract(items, '$.' || key), + item_path, + json_extract(json_extract(items, '$.' || key), item_path) + FROM slot_keys + ) + -- Reconstruct each loadout slot and group them all back together. + SELECT json_group_object( + slots.key, + -- Since the actual item value may be nested inside an item_path, and we want to avoid accidentally + -- updating NULL items, we use json_replace to construct a patch that touches just that subfield. + json_replace( + slots.base_value, + slots.item_path, + + -- ************************************************************************************* + -- ******** THE VALUE BELOW SHOULD BE COPY PASTED FROM THE MIGRATION FOR items ********* + -- ************************************************************************************* + + -- We use json_replace to restrict this migration's effect to items with the kind 'Tool'. + json_replace( + slots.value, + '$.kind.Tool', + CASE + -- ONLY run the migration when the stats.power field doesn't exist for this Tool. + -- We basically use this as a check to see if the migration has run or not. + WHEN json_type(slots.value, '$.kind.Tool.stats.power') IS NULL + THEN ( + WITH + -- First, we construct the contents of the new stats field: + stats(key,value) AS (VALUES + -- the old equip_time_millis value, which we know exists since we are a Tool and the migration has not run yet. + ('equip_time_millis', json_extract(slots.value, '$.kind.Tool.equip_time_millis')), + -- a new placeholder power value, which we know isn't overwriting anything since the migration hasn't run yet. + ('power', json('0.5')) + ), + -- Next, we construct what's called a json PATCH--a generalized replacement for json_set and json_remove: + patch(key,value) AS (VALUES + -- *removes* the old equip_time_millis field, by setting it to null in the patch. + ('equip_time_millis', json('null')), + -- *inserts* the new stats field, by setting it to the contents of the stats object we constructed earlier. + ('stats', (SELECT json_group_object(stats.key, stats.value) FROM stats)) + ) + -- Finally, we execute the patch against the contents of $.kind.Tool, which we know exists since we are a Tool. + SELECT json_patch( + json_extract(slots.value, '$.kind.Tool'), + json_group_object(patch.key, patch.value) + ) FROM patch + ) + ELSE + -- The migration has already run, so just use the existing value for the Tool. + json_extract(slots.value, '$.kind.Tool') + END + ) + ) + ) + FROM slots + ) +; \ No newline at end of file diff --git a/server/src/sys/terrain.rs b/server/src/sys/terrain.rs index e28727675d..9d2775e194 100644 --- a/server/src/sys/terrain.rs +++ b/server/src/sys/terrain.rs @@ -132,12 +132,12 @@ impl<'a> System<'a> for Sys { } else { Some(ItemConfig { // We need the empty item so npcs can attack - item: assets::load_expect_cloned("common.items.weapons.empty"), + item: assets::load_expect_cloned("common.items.weapons.empty.empty"), ability1: Some(CharacterAbility::BasicMelee { energy_cost: 0, buildup_duration: Duration::from_millis(0), recover_duration: Duration::from_millis(400), - base_healthchange: -6, + base_healthchange: -60, range: 5.0, max_angle: 80.0, }), @@ -258,7 +258,7 @@ impl<'a> System<'a> for Sys { energy_cost: 0, buildup_duration: Duration::from_millis(800), recover_duration: Duration::from_millis(200), - base_healthchange: -10, + base_healthchange: -100, range: 3.5, max_angle: 60.0, }), diff --git a/tools/Cargo.toml b/tools/Cargo.toml new file mode 100644 index 0000000000..4cde9d623f --- /dev/null +++ b/tools/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "tools" +version = "0.1.0" +authors = ["Sam "] +edition = "2018" + +[dependencies] +common = { package = "veloren-common", path = "../common" } +csv = "1.1.3" +structopt = "0.3.13" \ No newline at end of file diff --git a/tools/src/main.rs b/tools/src/main.rs new file mode 100644 index 0000000000..c5fdde3c7d --- /dev/null +++ b/tools/src/main.rs @@ -0,0 +1,165 @@ +use std::{ + error::Error, + ffi::OsString, + path::{Component, PathBuf}, +}; +use structopt::StructOpt; + +use common::{assets, comp}; +use comp::item::{ + armor::{ArmorKind, Protection}, + tool::ToolKind, +}; + +#[derive(StructOpt)] +struct Cli { + /// Available arguments: "armor_stats", "weapon_stats" + function: String, +} + +fn armor_stats() -> Result<(), Box> { + let mut wtr = csv::Writer::from_path("armorstats.csv")?; + wtr.write_record(&["Path", "Kind", "Name", "Protection"])?; + + for folder in + assets::read_dir("common.items.armor").expect("Failed to iterate over armor folders!") + { + match folder { + Ok(folder) => { + let mut glob_folder = folder.path().display().to_string().replace("/", "."); + glob_folder.push_str(".*"); + + for file in std::fs::read_dir(folder.path())?.filter_map(|f| f.ok()) { + let asset_identifier = &file + .path() + .components() + .skip_while(|s| s != &Component::Normal(&OsString::from("common"))) + .inspect(|s| { + dbg!(&s); + }) + .collect::() + .with_extension("") + .display() + .to_string() + .replace("/", "."); + + let asset = assets::load_expect_cloned::(asset_identifier); + + match asset.kind { + comp::item::ItemKind::Armor(armor) => { + let protection = match armor.get_protection() { + Protection::Invincible => "Invincible".to_string(), + Protection::Normal(value) => value.to_string(), + }; + let kind = match armor.kind { + ArmorKind::Shoulder(_) => "Shoulder".to_string(), + ArmorKind::Chest(_) => "Chest".to_string(), + ArmorKind::Belt(_) => "Belt".to_string(), + ArmorKind::Hand(_) => "Hand".to_string(), + ArmorKind::Pants(_) => "Pants".to_string(), + ArmorKind::Foot(_) => "Foot".to_string(), + ArmorKind::Back(_) => "Back".to_string(), + ArmorKind::Ring(_) => "Ring".to_string(), + ArmorKind::Neck(_) => "Neck".to_string(), + ArmorKind::Head(_) => "Head".to_string(), + ArmorKind::Tabard(_) => "Tabard".to_string(), + }; + + wtr.write_record(&[ + asset_identifier, + &kind, + asset.name(), + &protection, + ])?; + }, + // Skip non-armor + _ => println!("Skipping non-armor item: {:?}", asset), + } + } + }, + Err(e) => println!("Skipping folder due to {}", e), + } + } + + wtr.flush()?; + Ok(()) +} + +fn weapon_stats() -> Result<(), Box> { + let mut wtr = csv::Writer::from_path("weaponstats.csv")?; + wtr.write_record(&["Path", "Kind", "Name", "Power", "Equip Time (ms)"])?; + + for folder in + assets::read_dir("common.items.weapons").expect("Failed to iterate over weapon folders!") + { + match folder { + Ok(folder) => { + let mut glob_folder = folder.path().display().to_string().replace("/", "."); + glob_folder.push_str(".*"); + for file in std::fs::read_dir(folder.path())?.filter_map(|f| f.ok()) { + let asset_identifier = &file + .path() + .components() + .skip_while(|s| s != &Component::Normal(&OsString::from("common"))) + .inspect(|s| { + dbg!(&s); + }) + .collect::() + .with_extension("") + .display() + .to_string() + .replace("/", "."); + let asset = assets::load_expect_cloned::(asset_identifier); + + match &asset.kind { + comp::item::ItemKind::Tool(tool) => { + let power = tool.base_power().to_string(); + let equip_time = tool.equip_time().subsec_millis().to_string(); + let kind = match tool.kind { + ToolKind::Sword(_) => "Sword".to_string(), + ToolKind::Axe(_) => "Axe".to_string(), + ToolKind::Hammer(_) => "Hammer".to_string(), + ToolKind::Bow(_) => "Bow".to_string(), + ToolKind::Dagger(_) => "Dagger".to_string(), + ToolKind::Staff(_) => "Staff".to_string(), + ToolKind::Shield(_) => "Shield".to_string(), + ToolKind::Debug(_) => "Debug".to_string(), + ToolKind::Farming(_) => "Farming".to_string(), + ToolKind::Empty => "Empty".to_string(), + }; + + wtr.write_record(&[ + asset_identifier, + &kind, + asset.name(), + &power, + &equip_time, + ])?; + }, + // Skip non-armor + _ => println!("Skipping non-weapon item: {:?}", asset), + } + } + }, + Err(e) => println!("Skipping folder due to {}", e), + } + } + + wtr.flush()?; + Ok(()) +} + +fn main() { + let args = Cli::from_args(); + if args.function.eq_ignore_ascii_case("armor_stats") { + if let Err(e) = armor_stats() { + println!("Error: {}", e) + } + } else if args.function.eq_ignore_ascii_case("weapon_stats") { + if let Err(e) = weapon_stats() { + println!("Error: {}", e) + } + } else { + println!("Invalid argument, available arguments:\n\"armor_stats\"\n\"weapon_stats\"") + } +} diff --git a/voxygen/src/anim/src/biped_large/idle.rs b/voxygen/src/anim/src/biped_large/idle.rs index 7c7fdfa976..d240811ace 100644 --- a/voxygen/src/anim/src/biped_large/idle.rs +++ b/voxygen/src/anim/src/biped_large/idle.rs @@ -49,9 +49,9 @@ impl Animation for IdleAnimation { 0.0, skeleton_attr.upper_torso.0, skeleton_attr.upper_torso.1 + torso * 0.5, - ) / 8.0; - next.upper_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); - next.upper_torso.scale = Vec3::one() / 8.0; + ); + next.upper_torso.ori = Quaternion::rotation_z(0.0); + next.upper_torso.scale = Vec3::one(); next.lower_torso.offset = Vec3::new( 0.0, @@ -61,6 +61,15 @@ impl Animation for IdleAnimation { next.lower_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); next.lower_torso.scale = Vec3::one() * 1.02; + next.control.offset = Vec3::new(0.0, 0.0, 0.0); + next.control.ori = Quaternion::rotation_z(0.0); + next.control.scale = Vec3::one(); + + next.main.offset = Vec3::new(-5.0, -7.0, 7.0); + next.main.ori = + Quaternion::rotation_x(PI) * Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57); + next.main.scale = Vec3::one() * 1.02; + next.shoulder_l.offset = Vec3::new( -skeleton_attr.shoulder.0, skeleton_attr.shoulder.1, @@ -125,9 +134,10 @@ impl Animation for IdleAnimation { next.foot_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); next.foot_r.scale = Vec3::one() / 8.0; - next.torso.offset = Vec3::new(0.0, 0.0, 0.0); + next.torso.offset = Vec3::new(0.0, 0.0, 0.0) / 8.0; next.torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); - next.torso.scale = Vec3::one(); + next.torso.scale = Vec3::one() / 8.0; + next } } diff --git a/voxygen/src/anim/src/biped_large/mod.rs b/voxygen/src/anim/src/biped_large/mod.rs index 29405a89e9..e3f9432623 100644 --- a/voxygen/src/anim/src/biped_large/mod.rs +++ b/voxygen/src/anim/src/biped_large/mod.rs @@ -1,9 +1,12 @@ pub mod idle; pub mod jump; pub mod run; +pub mod wield; // Reexports -pub use self::{idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation}; +pub use self::{ + idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation, wield::WieldAnimation, +}; use super::{Bone, FigureBoneData, Skeleton}; use common::comp::{self}; @@ -14,6 +17,7 @@ pub struct BipedLargeSkeleton { head: Bone, upper_torso: Bone, lower_torso: Bone, + main: Bone, shoulder_l: Bone, shoulder_r: Bone, hand_l: Bone, @@ -23,6 +27,7 @@ pub struct BipedLargeSkeleton { foot_l: Bone, foot_r: Bone, torso: Bone, + control: Bone, } impl BipedLargeSkeleton { @@ -35,40 +40,40 @@ impl Skeleton for BipedLargeSkeleton { #[cfg(feature = "use-dyn-lib")] const COMPUTE_FN: &'static [u8] = b"biped_large_compute_mats\0"; - fn bone_count(&self) -> usize { 11 } + fn bone_count(&self) -> usize { 12 } #[cfg_attr(feature = "be-dyn-lib", export_name = "biped_large_compute_mats")] fn compute_matrices_inner(&self) -> ([FigureBoneData; 16], Vec3) { let upper_torso_mat = self.upper_torso.compute_base_matrix(); + let lower_torso_mat = self.lower_torso.compute_base_matrix(); + let main_mat = self.main.compute_base_matrix(); let shoulder_l_mat = self.shoulder_l.compute_base_matrix(); let shoulder_r_mat = self.shoulder_r.compute_base_matrix(); + let hand_l_mat = self.hand_l.compute_base_matrix(); + let hand_r_mat = self.hand_r.compute_base_matrix(); let leg_l_mat = self.leg_l.compute_base_matrix(); let leg_r_mat = self.leg_r.compute_base_matrix(); let torso_mat = self.torso.compute_base_matrix(); + let control_mat = self.control.compute_base_matrix(); + ( [ FigureBoneData::new(torso_mat * upper_torso_mat * self.head.compute_base_matrix()), FigureBoneData::new(torso_mat * upper_torso_mat), - FigureBoneData::new( - torso_mat * upper_torso_mat * self.lower_torso.compute_base_matrix(), - ), + FigureBoneData::new(torso_mat * upper_torso_mat * lower_torso_mat), + FigureBoneData::new(torso_mat * control_mat * upper_torso_mat * main_mat), FigureBoneData::new(torso_mat * upper_torso_mat * shoulder_l_mat), FigureBoneData::new(torso_mat * upper_torso_mat * shoulder_r_mat), - FigureBoneData::new( - torso_mat * upper_torso_mat * self.hand_l.compute_base_matrix(), - ), - FigureBoneData::new( - torso_mat * upper_torso_mat * self.hand_r.compute_base_matrix(), - ), - FigureBoneData::new(torso_mat * upper_torso_mat * leg_l_mat), - FigureBoneData::new(torso_mat * upper_torso_mat * leg_r_mat), + FigureBoneData::new(torso_mat * control_mat * upper_torso_mat * hand_l_mat), + FigureBoneData::new(torso_mat * control_mat * upper_torso_mat * hand_r_mat), + FigureBoneData::new(torso_mat * upper_torso_mat * lower_torso_mat * leg_l_mat), + FigureBoneData::new(torso_mat * upper_torso_mat * lower_torso_mat * leg_r_mat), FigureBoneData::new(self.foot_l.compute_base_matrix()), FigureBoneData::new(self.foot_r.compute_base_matrix()), FigureBoneData::default(), FigureBoneData::default(), FigureBoneData::default(), FigureBoneData::default(), - FigureBoneData::default(), ], Vec3::default(), ) @@ -78,6 +83,7 @@ impl Skeleton for BipedLargeSkeleton { self.head.interpolate(&target.head, dt); self.upper_torso.interpolate(&target.upper_torso, dt); self.lower_torso.interpolate(&target.lower_torso, dt); + self.main.interpolate(&target.main, dt); self.shoulder_l.interpolate(&target.shoulder_l, dt); self.shoulder_r.interpolate(&target.shoulder_r, dt); self.hand_l.interpolate(&target.hand_l, dt); @@ -87,6 +93,7 @@ impl Skeleton for BipedLargeSkeleton { self.foot_l.interpolate(&target.foot_l, dt); self.foot_r.interpolate(&target.foot_r, dt); self.torso.interpolate(&target.torso, dt); + self.control.interpolate(&target.control, dt); } } @@ -131,31 +138,45 @@ impl<'a> From<&'a comp::biped_large::Body> for SkeletonAttr { Self { head: match (body.species, body.body_type) { (Ogre, _) => (3.0, 6.0), - (Cyclops, _) => (3.0, 9.0), + (Cyclops, _) => (4.5, 7.5), + (Wendigo, _) => (3.0, 13.5), + (Troll, _) => (6.0, 10.0), }, upper_torso: match (body.species, body.body_type) { (Ogre, _) => (0.0, 19.0), - (Cyclops, _) => (-1.0, 27.0), + (Cyclops, _) => (-2.0, 27.0), + (Wendigo, _) => (-1.0, 29.0), + (Troll, _) => (-1.0, 27.5), }, lower_torso: match (body.species, body.body_type) { - (Ogre, _) => (1.0, -9.5), - (Cyclops, _) => (1.0, -10.5), + (Ogre, _) => (1.0, -5.5), + (Cyclops, _) => (1.0, -4.5), + (Wendigo, _) => (-1.5, -6.0), + (Troll, _) => (1.0, -10.5), }, shoulder: match (body.species, body.body_type) { (Ogre, _) => (6.1, 0.5, 2.5), - (Cyclops, _) => (9.5, 0.5, 2.5), + (Cyclops, _) => (9.5, 2.5, 2.5), + (Wendigo, _) => (9.0, 0.5, -0.5), + (Troll, _) => (11.0, 0.5, -2.5), }, hand: match (body.species, body.body_type) { (Ogre, _) => (10.5, -1.0, -0.5), - (Cyclops, _) => (10.5, 0.0, -0.5), + (Cyclops, _) => (10.0, 2.0, -0.5), + (Wendigo, _) => (12.0, 0.0, -0.5), + (Troll, _) => (11.5, 0.0, -1.5), }, leg: match (body.species, body.body_type) { - (Ogre, _) => (0.0, 0.0, -6.0), - (Cyclops, _) => (0.0, 0.0, -9.0), + (Ogre, _) => (0.0, 0.0, 0.0), + (Cyclops, _) => (0.0, 0.0, -5.0), + (Wendigo, _) => (2.0, 2.0, -2.5), + (Troll, _) => (5.0, 0.0, -6.0), }, foot: match (body.species, body.body_type) { - (Ogre, _) => (4.0, 0.5, 5.5), + (Ogre, _) => (4.0, 2.5, 2.5), (Cyclops, _) => (4.0, 0.5, 5.0), + (Wendigo, _) => (5.0, 0.5, 6.0), + (Troll, _) => (6.0, 0.5, 4.0), }, } } diff --git a/voxygen/src/anim/src/biped_large/run.rs b/voxygen/src/anim/src/biped_large/run.rs index b02dade71b..ac33aa2fb9 100644 --- a/voxygen/src/anim/src/biped_large/run.rs +++ b/voxygen/src/anim/src/biped_large/run.rs @@ -21,123 +21,149 @@ impl Animation for RunAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 10.0; - - let belt = (anim_time as f32 * lab as f32 + 1.5 * PI).sin(); - let beltsnap = (((5.0) - / (1.0 + (4.0) * ((anim_time as f32 * lab as f32 + PI * 1.5).sin()).powf(2.0 as f32))) + let lab = 0.55; //.65 + let foothoril = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()).powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * lab as f32 + PI * 1.5).sin()); - let foothoril = (anim_time as f32 * lab as f32 + PI * 1.4).sin(); - let foothorir = (anim_time as f32 * lab as f32 + PI * 0.4).sin(); - - let footvertl = (anim_time as f32 * lab as f32).sin().max(0.1); - let footvertr = (anim_time as f32 * lab as f32 + PI).sin().max(0.1); + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); + let foothorir = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); + let footvertl = (anim_time as f32 * 16.0 * lab as f32).sin(); + let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); + let handhoril = (anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin(); + let handhorir = (anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin(); let footrotl = (((5.0) - / (1.0 + (4.0) * ((anim_time as f32 * lab as f32 + PI * 1.4).sin()).powf(2.0 as f32))) + / (2.5 + + (2.5) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()).powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * lab as f32 + PI * 1.4).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); let footrotr = (((5.0) - / (1.0 + (4.0) * ((anim_time as f32 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32))) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * lab as f32 + PI * 0.4).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); + + let short = (anim_time as f32 * lab as f32 * 16.0).sin(); + + let shortalt = (anim_time as f32 * lab as f32 * 16.0 + PI / 2.0).sin(); next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1) * 1.02; - next.head.ori = Quaternion::rotation_z(belt * -0.3) * Quaternion::rotation_x(0.1); + next.head.ori = Quaternion::rotation_z(short * -0.18) * Quaternion::rotation_x(-0.05); next.head.scale = Vec3::one() * 1.02; next.upper_torso.offset = Vec3::new( 0.0, skeleton_attr.upper_torso.0, - skeleton_attr.upper_torso.1 + belt * 1.0, - ) / 8.0; - next.upper_torso.ori = Quaternion::rotation_z(belt * 0.40) * Quaternion::rotation_x(0.0); - next.upper_torso.scale = Vec3::one() / 8.0; + skeleton_attr.upper_torso.1 + shortalt * -1.5, + ); + next.upper_torso.ori = Quaternion::rotation_z(short * 0.18); + next.upper_torso.scale = Vec3::one(); next.lower_torso.offset = Vec3::new( 0.0, skeleton_attr.lower_torso.0, skeleton_attr.lower_torso.1, ); - next.lower_torso.ori = Quaternion::rotation_z(belt * -0.55) * Quaternion::rotation_x(0.0); + next.lower_torso.ori = Quaternion::rotation_z(short * 0.15) * Quaternion::rotation_x(0.14); next.lower_torso.scale = Vec3::one() * 1.02; + next.control.offset = Vec3::new(0.0, 0.0, 0.0); + next.control.ori = Quaternion::rotation_z(0.0); + next.control.scale = Vec3::one(); + + next.main.offset = Vec3::new(-5.0, -7.0, 7.0); + next.main.ori = + Quaternion::rotation_x(PI) * Quaternion::rotation_y(0.6) * Quaternion::rotation_z(1.57); + next.main.scale = Vec3::one() * 1.02; + next.shoulder_l.offset = Vec3::new( -skeleton_attr.shoulder.0, - skeleton_attr.shoulder.1, + skeleton_attr.shoulder.1 + foothoril * -3.0, skeleton_attr.shoulder.2, ); - next.shoulder_l.ori = - Quaternion::rotation_z(0.0) * Quaternion::rotation_x(footrotl * -0.15); + next.shoulder_l.ori = Quaternion::rotation_x(footrotl * -0.36) + * Quaternion::rotation_y(0.1) + * Quaternion::rotation_z(footrotl * 0.3); next.shoulder_l.scale = Vec3::one(); next.shoulder_r.offset = Vec3::new( skeleton_attr.shoulder.0, - skeleton_attr.shoulder.1, + skeleton_attr.shoulder.1 + foothorir * -3.0, skeleton_attr.shoulder.2, ); - next.shoulder_r.ori = - Quaternion::rotation_z(0.0) * Quaternion::rotation_x(footrotr * -0.15); + next.shoulder_r.ori = Quaternion::rotation_x(footrotr * -0.36) + * Quaternion::rotation_y(-0.1) + * Quaternion::rotation_z(footrotr * -0.3); next.shoulder_r.scale = Vec3::one(); next.hand_l.offset = Vec3::new( - -skeleton_attr.hand.0, - skeleton_attr.hand.1, - skeleton_attr.hand.2, + -1.0 + -skeleton_attr.hand.0, + skeleton_attr.hand.1 + foothoril * -4.0, + skeleton_attr.hand.2 + foothoril * 1.0, ); - next.hand_l.ori = - Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.3 + foothoril * -0.6); + next.hand_l.ori = Quaternion::rotation_x(0.15 + (handhoril * -1.2).max(-0.3)) + * Quaternion::rotation_y(handhoril * -0.1); next.hand_l.scale = Vec3::one() * 1.02; next.hand_r.offset = Vec3::new( - skeleton_attr.hand.0, - skeleton_attr.hand.1, - skeleton_attr.hand.2, + 1.0 + skeleton_attr.hand.0, + skeleton_attr.hand.1 + foothorir * -4.0, + skeleton_attr.hand.2 + foothorir * 1.0, ); - next.hand_r.ori = - Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.3 + foothorir * -0.6); + next.hand_r.ori = Quaternion::rotation_x(0.15 + (handhorir * -1.2).max(-0.3)) + * Quaternion::rotation_y(handhorir * 0.1); next.hand_r.scale = Vec3::one() * 1.02; next.leg_l.offset = Vec3::new( -skeleton_attr.leg.0, skeleton_attr.leg.1, skeleton_attr.leg.2, - ) * 1.02; + ) * 0.98; next.leg_l.ori = - Quaternion::rotation_z(belt * -0.8) * Quaternion::rotation_x(foothoril * 0.2); - next.leg_l.scale = Vec3::one() * 1.02; + Quaternion::rotation_z(short * 0.18) * Quaternion::rotation_x(foothoril * 0.3); + next.leg_l.scale = Vec3::one() * 0.98; next.leg_r.offset = Vec3::new( skeleton_attr.leg.0, skeleton_attr.leg.1, skeleton_attr.leg.2, - ) * 1.02; + ) * 0.98; next.leg_r.ori = - Quaternion::rotation_z(belt * -0.8) * Quaternion::rotation_x(foothorir * 0.2); - next.leg_r.scale = Vec3::one() * 1.02; + Quaternion::rotation_z(short * 0.18) * Quaternion::rotation_x(foothorir * 0.3); + next.leg_r.scale = Vec3::one() * 0.98; next.foot_l.offset = Vec3::new( -skeleton_attr.foot.0, - skeleton_attr.foot.1 + foothoril * 8.0 + 3.0, - skeleton_attr.foot.2 + footvertl * 4.0, + 4.0 + skeleton_attr.foot.1 + foothoril * 8.5, + skeleton_attr.foot.2 + ((footvertl * 6.5).max(0.0)), ) / 8.0; - next.foot_l.ori = Quaternion::rotation_x(footrotl * 0.5); - next.foot_l.scale = Vec3::one() / 8.0 * 0.98; + next.foot_l.ori = + Quaternion::rotation_x(-0.5 + footrotl * 0.85) * Quaternion::rotation_y(0.0); + next.foot_l.scale = Vec3::one() / 8.0; next.foot_r.offset = Vec3::new( skeleton_attr.foot.0, - skeleton_attr.foot.1 + foothorir * 8.0 + 3.0, - skeleton_attr.foot.2 + footvertr * 4.0, + 4.0 + skeleton_attr.foot.1 + foothorir * 8.5, + skeleton_attr.foot.2 + ((footvertr * 6.5).max(0.0)), ) / 8.0; - next.foot_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(footrotr * 0.5); - next.foot_r.scale = Vec3::one() / 8.0 * 0.98; + next.foot_r.ori = + Quaternion::rotation_x(-0.5 + footrotr * 0.85) * Quaternion::rotation_y(0.0); + next.foot_r.scale = Vec3::one() / 8.0; - next.torso.offset = Vec3::new(0.0, 0.0, beltsnap * 0.25); - next.torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.13); - next.torso.scale = Vec3::one(); + next.torso.offset = Vec3::new(0.0, 0.0, 0.0) / 8.0; + next.torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.25); + next.torso.scale = Vec3::one() / 8.0; next } } diff --git a/voxygen/src/anim/src/biped_large/wield.rs b/voxygen/src/anim/src/biped_large/wield.rs new file mode 100644 index 0000000000..4edd995536 --- /dev/null +++ b/voxygen/src/anim/src/biped_large/wield.rs @@ -0,0 +1,271 @@ +use super::{super::Animation, BipedLargeSkeleton, SkeletonAttr}; +use std::{f32::consts::PI, ops::Mul}; +use vek::*; + +pub struct WieldAnimation; + +impl Animation for WieldAnimation { + type Dependency = (f32, f64); + type Skeleton = BipedLargeSkeleton; + + #[cfg(feature = "use-dyn-lib")] + const UPDATE_FN: &'static [u8] = b"biped_large_wield\0"; + + #[cfg_attr(feature = "be-dyn-lib", export_name = "biped_large_wield")] + fn update_skeleton_inner( + skeleton: &Self::Skeleton, + (velocity, global_time): Self::Dependency, + anim_time: f64, + _rate: &mut f32, + skeleton_attr: &SkeletonAttr, + ) -> Self::Skeleton { + let mut next = (*skeleton).clone(); + + let lab = 0.55; + let breathe = (anim_time as f32 + 1.5 * PI).sin(); + let test = (anim_time as f32 + 36.0 * PI).sin(); + + let look = Vec2::new( + ((global_time + anim_time) as f32 / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + ((global_time + anim_time) as f32 / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, + ); + + let foothoril = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); + let foothorir = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); + let footvertl = (anim_time as f32 * 16.0 * lab as f32).sin(); + let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); + + let footrotl = (((5.0) + / (2.5 + + (2.5) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); + + let footrotr = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); + + let short = (anim_time as f32 * lab as f32 * 16.0).sin(); + + let shortalt = (anim_time as f32 * lab as f32 * 16.0 + PI / 2.0).sin(); + + next.main.offset = Vec3::new(0.0, 0.0, 0.0); + next.main.ori = Quaternion::rotation_x(0.0) + * Quaternion::rotation_y(-1.57) + * Quaternion::rotation_z(1.0); + next.main.scale = Vec3::one() * 1.02; + + next.hand_l.offset = Vec3::new( + -skeleton_attr.hand.0 - 7.0, + skeleton_attr.hand.1 - 7.0, + skeleton_attr.hand.2 + 10.0, + ); + next.hand_l.ori = Quaternion::rotation_x(0.57) * Quaternion::rotation_z(1.57); + next.hand_l.scale = Vec3::one() * 1.02; + + next.hand_r.offset = Vec3::new( + skeleton_attr.hand.0 - 7.0, + skeleton_attr.hand.1 - 7.0, + skeleton_attr.hand.2 + 10.0, + ); + next.hand_r.ori = Quaternion::rotation_x(0.57) * Quaternion::rotation_z(1.57); + next.hand_r.scale = Vec3::one() * 1.02; + + if velocity < 0.5 { + next.head.offset = Vec3::new( + 0.0, + skeleton_attr.head.0, + skeleton_attr.head.1 + breathe * 0.2, + ) * 1.02; + next.head.ori = + Quaternion::rotation_z(look.x * 0.6) * Quaternion::rotation_x(look.y * 0.6); + next.head.scale = Vec3::one() * 1.02; + + next.upper_torso.offset = Vec3::new( + 0.0, + skeleton_attr.upper_torso.0, + skeleton_attr.upper_torso.1 + breathe * 0.5, + ); + next.upper_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); + next.upper_torso.scale = Vec3::one(); + + next.lower_torso.offset = Vec3::new( + 0.0, + skeleton_attr.lower_torso.0, + skeleton_attr.lower_torso.1 + breathe * 0.15, + ); + next.lower_torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); + next.lower_torso.scale = Vec3::one() * 1.02; + + next.shoulder_l.offset = Vec3::new( + -skeleton_attr.shoulder.0, + skeleton_attr.shoulder.1, + skeleton_attr.shoulder.2, + ); + next.shoulder_l.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); + next.shoulder_l.scale = Vec3::one(); + + next.shoulder_r.offset = Vec3::new( + skeleton_attr.shoulder.0, + skeleton_attr.shoulder.1, + skeleton_attr.shoulder.2, + ); + next.shoulder_r.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); + next.shoulder_r.scale = Vec3::one(); + + next.leg_l.offset = Vec3::new( + -skeleton_attr.leg.0, + skeleton_attr.leg.1, + skeleton_attr.leg.2 + breathe * 0.2, + ) * 1.02; + next.leg_l.ori = Quaternion::rotation_z(0.0); + next.leg_l.scale = Vec3::one() * 1.02; + + next.leg_r.offset = Vec3::new( + skeleton_attr.leg.0, + skeleton_attr.leg.1, + skeleton_attr.leg.2 + breathe * 0.2, + ) * 1.02; + next.leg_r.ori = Quaternion::rotation_z(0.0); + next.leg_r.scale = Vec3::one() * 1.02; + + next.foot_l.offset = Vec3::new( + -skeleton_attr.foot.0, + skeleton_attr.foot.1, + skeleton_attr.foot.2, + ) / 8.0; + next.foot_l.ori = Quaternion::rotation_z(0.0); + next.foot_l.scale = Vec3::one() / 8.0; + + next.foot_r.offset = Vec3::new( + skeleton_attr.foot.0, + skeleton_attr.foot.1, + skeleton_attr.foot.2, + ) / 8.0; + next.foot_r.ori = Quaternion::rotation_z(0.0); + next.foot_r.scale = Vec3::one() / 8.0; + + next.torso.offset = Vec3::new(0.0, 0.0, 0.0) / 8.0; + next.torso.ori = Quaternion::rotation_z(test * 0.0); + next.torso.scale = Vec3::one() / 8.0; + + next.control.offset = Vec3::new(7.0, 9.0, -10.0); + next.control.ori = Quaternion::rotation_x(test * 0.02) + * Quaternion::rotation_y(test * 0.02) + * Quaternion::rotation_z(test * 0.02); + next.control.scale = Vec3::one(); + } else { + next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1) * 1.02; + next.head.ori = Quaternion::rotation_z(short * -0.18) * Quaternion::rotation_x(-0.05); + next.head.scale = Vec3::one() * 1.02; + + next.upper_torso.offset = Vec3::new( + 0.0, + skeleton_attr.upper_torso.0, + skeleton_attr.upper_torso.1 + shortalt * -1.5, + ); + next.upper_torso.ori = Quaternion::rotation_z(short * 0.18); + next.upper_torso.scale = Vec3::one(); + + next.lower_torso.offset = Vec3::new( + 0.0, + skeleton_attr.lower_torso.0, + skeleton_attr.lower_torso.1, + ); + next.lower_torso.ori = + Quaternion::rotation_z(short * 0.15) * Quaternion::rotation_x(0.14); + next.lower_torso.scale = Vec3::one() * 1.02; + + next.shoulder_l.offset = Vec3::new( + -skeleton_attr.shoulder.0, + skeleton_attr.shoulder.1 + foothoril * -1.0, + skeleton_attr.shoulder.2, + ); + next.shoulder_l.ori = Quaternion::rotation_x(0.5 + footrotl * -0.16) + * Quaternion::rotation_y(0.1) + * Quaternion::rotation_z(footrotl * 0.1); + next.shoulder_l.scale = Vec3::one(); + + next.shoulder_r.offset = Vec3::new( + skeleton_attr.shoulder.0, + skeleton_attr.shoulder.1 + foothorir * -1.0, + skeleton_attr.shoulder.2, + ); + next.shoulder_r.ori = Quaternion::rotation_x(0.5 + footrotr * -0.16) + * Quaternion::rotation_y(-0.1) + * Quaternion::rotation_z(footrotr * -0.1); + next.shoulder_r.scale = Vec3::one(); + + next.leg_l.offset = Vec3::new( + -skeleton_attr.leg.0, + skeleton_attr.leg.1, + skeleton_attr.leg.2, + ) * 0.98; + next.leg_l.ori = + Quaternion::rotation_z(short * 0.18) * Quaternion::rotation_x(foothoril * 0.3); + next.leg_l.scale = Vec3::one() * 0.98; + + next.leg_r.offset = Vec3::new( + skeleton_attr.leg.0, + skeleton_attr.leg.1, + skeleton_attr.leg.2, + ) * 0.98; + + next.leg_r.ori = + Quaternion::rotation_z(short * 0.18) * Quaternion::rotation_x(foothorir * 0.3); + next.leg_r.scale = Vec3::one() * 0.98; + + next.foot_l.offset = Vec3::new( + -skeleton_attr.foot.0, + 4.0 + skeleton_attr.foot.1 + foothoril * 8.5, + skeleton_attr.foot.2 + ((footvertl * 6.5).max(0.0)), + ) / 8.0; + next.foot_l.ori = + Quaternion::rotation_x(-0.5 + footrotl * 0.85) * Quaternion::rotation_y(0.0); + next.foot_l.scale = Vec3::one() / 8.0; + + next.foot_r.offset = Vec3::new( + skeleton_attr.foot.0, + 4.0 + skeleton_attr.foot.1 + foothorir * 8.5, + skeleton_attr.foot.2 + ((footvertr * 6.5).max(0.0)), + ) / 8.0; + next.foot_r.ori = + Quaternion::rotation_x(-0.5 + footrotr * 0.85) * Quaternion::rotation_y(0.0); + next.foot_r.scale = Vec3::one() / 8.0; + + next.torso.offset = Vec3::new(0.0, 0.0, 0.0) / 8.0; + next.torso.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.25); + next.torso.scale = Vec3::one() / 8.0; + + next.control.offset = Vec3::new(7.0, 9.0, -10.0); + next.control.ori = Quaternion::rotation_x(test * 0.02) + * Quaternion::rotation_y(test * 0.02) + * Quaternion::rotation_z(test * 0.02); + next.control.scale = Vec3::one(); + } + + next + } +} diff --git a/voxygen/src/anim/src/bird_medium/feed.rs b/voxygen/src/anim/src/bird_medium/feed.rs new file mode 100644 index 0000000000..a5ca080177 --- /dev/null +++ b/voxygen/src/anim/src/bird_medium/feed.rs @@ -0,0 +1,94 @@ +use super::{super::Animation, BirdMediumSkeleton, SkeletonAttr}; +use std::ops::Mul; +use vek::*; + +pub struct FeedAnimation; + +impl Animation for FeedAnimation { + type Dependency = f64; + type Skeleton = BirdMediumSkeleton; + + #[cfg(feature = "use-dyn-lib")] + const UPDATE_FN: &'static [u8] = b"bird_medium_feed\0"; + + #[cfg_attr(feature = "be-dyn-lib", export_name = "bird_medium_feed")] + + fn update_skeleton_inner( + skeleton: &Self::Skeleton, + global_time: Self::Dependency, + anim_time: f64, + _rate: &mut f32, + skeleton_attr: &SkeletonAttr, + ) -> Self::Skeleton { + let mut next = (*skeleton).clone(); + + let wave_slow = (anim_time as f32 * 4.5).sin(); + let wave = (anim_time as f32 * 8.0).sin(); + + let wave_slow_cos = (anim_time as f32 * 4.5).cos(); + + let duck_head_look = Vec2::new( + ((global_time + anim_time) as f32 / 2.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + ((global_time + anim_time) as f32 / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, + ); + + next.head.offset = Vec3::new(0.0, skeleton_attr.head.0 + 1.0, -2.0 + skeleton_attr.head.1); + next.head.ori = Quaternion::rotation_z(duck_head_look.x) + * Quaternion::rotation_x(-0.3 / skeleton_attr.feed + wave_slow_cos * 0.03 + wave * 0.1); + next.head.scale = Vec3::one(); + + next.torso.offset = Vec3::new( + 0.0, + skeleton_attr.chest.0 + skeleton_attr.feed, + -1.0 - 5.0 * (skeleton_attr.feed - 1.0) + wave_slow * 0.3 + skeleton_attr.chest.1, + ) / 11.0; + next.torso.ori = Quaternion::rotation_x(-0.5 * skeleton_attr.feed) + * Quaternion::rotation_y(wave_slow * 0.03); + next.torso.scale = Vec3::one() / 11.0; + + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); + next.tail.ori = Quaternion::rotation_x(wave_slow_cos * 0.03); + next.tail.scale = Vec3::one(); + + next.wing_l.offset = Vec3::new( + -skeleton_attr.wing.0, + skeleton_attr.wing.1, + skeleton_attr.wing.2, + ); + next.wing_l.ori = Quaternion::rotation_y(0.4 - wave_slow * 0.1); + next.wing_l.scale = Vec3::one() * 1.05; + + next.wing_r.offset = Vec3::new( + skeleton_attr.wing.0, + skeleton_attr.wing.1, + skeleton_attr.wing.2, + ); + next.wing_r.ori = Quaternion::rotation_y(-0.4 + wave_slow * 0.1); + next.wing_r.scale = Vec3::one() * 1.05; + + next.leg_l.offset = Vec3::new( + -skeleton_attr.foot.0, + skeleton_attr.foot.1, + skeleton_attr.foot.2, + ) / 11.0; + next.leg_l.ori = Quaternion::rotation_y(0.0); + next.leg_l.scale = Vec3::one() / 11.0; + + next.leg_r.offset = Vec3::new( + skeleton_attr.foot.0, + skeleton_attr.foot.1, + skeleton_attr.foot.2, + ) / 11.0; + next.leg_r.ori = Quaternion::rotation_x(0.0); + next.leg_r.scale = Vec3::one() / 11.0; + next + } +} diff --git a/voxygen/src/anim/src/bird_medium/mod.rs b/voxygen/src/anim/src/bird_medium/mod.rs index d759616c7a..fddd7dfa07 100644 --- a/voxygen/src/anim/src/bird_medium/mod.rs +++ b/voxygen/src/anim/src/bird_medium/mod.rs @@ -1,9 +1,10 @@ +pub mod feed; pub mod fly; pub mod idle; pub mod run; // Reexports -pub use self::{fly::FlyAnimation, idle::IdleAnimation, run::RunAnimation}; +pub use self::{feed::FeedAnimation, fly::FlyAnimation, idle::IdleAnimation, run::RunAnimation}; use super::{Bone, FigureBoneData, Skeleton}; use common::comp::{self}; @@ -77,6 +78,7 @@ pub struct SkeletonAttr { tail: (f32, f32), wing: (f32, f32, f32), foot: (f32, f32, f32), + feed: f32, } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { @@ -98,6 +100,7 @@ impl Default for SkeletonAttr { tail: (0.0, 0.0), wing: (0.0, 0.0, 0.0), foot: (0.0, 0.0, 0.0), + feed: 0.0, } } } @@ -109,12 +112,12 @@ impl<'a> From<&'a comp::bird_medium::Body> for SkeletonAttr { head: match (body.species, body.body_type) { (Duck, _) => (4.0, 3.0), (Chicken, _) => (4.0, 3.0), - (Goose, _) => (5.0, 5.0), - (Peacock, _) => (4.0, 7.0), + (Goose, _) => (5.0, 2.5), + (Peacock, _) => (1.0, 1.0), (Eagle, _) => (2.5, 5.0), (Snowyowl, _) => (2.5, 5.0), (Parrot, _) => (0.5, 4.5), - (Cockatrice, _) => (3.0, 4.0), + (Cockatrice, _) => (0.0, 4.0), }, chest: match (body.species, body.body_type) { (Duck, _) => (0.0, 5.0), @@ -156,6 +159,16 @@ impl<'a> From<&'a comp::bird_medium::Body> for SkeletonAttr { (Parrot, _) => (1.5, -3.0, 3.0), (Cockatrice, _) => (4.0, -3.5, 12.0), }, + feed: match (body.species, body.body_type) { + (Duck, _) => 1.0, + (Chicken, _) => 1.0, + (Goose, _) => 1.4, + (Peacock, _) => 1.6, + (Eagle, _) => 1.2, + (Snowyowl, _) => 1.0, + (Parrot, _) => 1.2, + (Cockatrice, _) => 1.3, + }, } } } diff --git a/voxygen/src/anim/src/character/alpha.rs b/voxygen/src/anim/src/character/alpha.rs index 56823da136..dcf8507717 100644 --- a/voxygen/src/anim/src/character/alpha.rs +++ b/voxygen/src/anim/src/character/alpha.rs @@ -501,8 +501,8 @@ impl Animation for AlphaAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/beta.rs b/voxygen/src/anim/src/character/beta.rs index 293309be54..bfa3466638 100644 --- a/voxygen/src/anim/src/character/beta.rs +++ b/voxygen/src/anim/src/character/beta.rs @@ -136,8 +136,8 @@ impl Animation for BetaAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/block.rs b/voxygen/src/anim/src/character/block.rs index 06773c1946..b215071cd8 100644 --- a/voxygen/src/anim/src/character/block.rs +++ b/voxygen/src/anim/src/character/block.rs @@ -211,8 +211,8 @@ impl Animation for BlockAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/blockidle.rs b/voxygen/src/anim/src/character/blockidle.rs index 01da60564c..a08717f268 100644 --- a/voxygen/src/anim/src/character/blockidle.rs +++ b/voxygen/src/anim/src/character/blockidle.rs @@ -340,8 +340,8 @@ impl Animation for BlockIdleAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/charge.rs b/voxygen/src/anim/src/character/charge.rs index e2581c3e2b..11dd3568bb 100644 --- a/voxygen/src/anim/src/character/charge.rs +++ b/voxygen/src/anim/src/character/charge.rs @@ -226,8 +226,8 @@ impl Animation for ChargeAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/climb.rs b/voxygen/src/anim/src/character/climb.rs index 1ef0618b6e..47257ed641 100644 --- a/voxygen/src/anim/src/character/climb.rs +++ b/voxygen/src/anim/src/character/climb.rs @@ -188,8 +188,8 @@ impl Animation for ClimbAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/dance.rs b/voxygen/src/anim/src/character/dance.rs index 8f3a8b573a..a79e16ad9d 100644 --- a/voxygen/src/anim/src/character/dance.rs +++ b/voxygen/src/anim/src/character/dance.rs @@ -191,8 +191,8 @@ impl Animation for DanceAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/dash.rs b/voxygen/src/anim/src/character/dash.rs index 1e91a9fd96..4f6f73e431 100644 --- a/voxygen/src/anim/src/character/dash.rs +++ b/voxygen/src/anim/src/character/dash.rs @@ -195,8 +195,8 @@ impl Animation for DashAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/equip.rs b/voxygen/src/anim/src/character/equip.rs index c4f3d1c057..df02fc16e5 100644 --- a/voxygen/src/anim/src/character/equip.rs +++ b/voxygen/src/anim/src/character/equip.rs @@ -231,8 +231,8 @@ impl Animation for EquipAnimation { } next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/glidewield.rs b/voxygen/src/anim/src/character/glidewield.rs index c60a985410..6dfb6dbfb6 100644 --- a/voxygen/src/anim/src/character/glidewield.rs +++ b/voxygen/src/anim/src/character/glidewield.rs @@ -372,8 +372,8 @@ impl Animation for GlideWieldAnimation { } next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/gliding.rs b/voxygen/src/anim/src/character/gliding.rs index 615d7d0a1d..27d8d3a6f6 100644 --- a/voxygen/src/anim/src/character/gliding.rs +++ b/voxygen/src/anim/src/character/gliding.rs @@ -171,8 +171,8 @@ impl Animation for GlidingAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/idle.rs b/voxygen/src/anim/src/character/idle.rs index e7d612ca65..7933f4a18a 100644 --- a/voxygen/src/anim/src/character/idle.rs +++ b/voxygen/src/anim/src/character/idle.rs @@ -170,8 +170,8 @@ impl Animation for IdleAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/jump.rs b/voxygen/src/anim/src/character/jump.rs index 62cccf8941..b00ab37dfe 100644 --- a/voxygen/src/anim/src/character/jump.rs +++ b/voxygen/src/anim/src/character/jump.rs @@ -213,8 +213,8 @@ impl Animation for JumpAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/leapmelee.rs b/voxygen/src/anim/src/character/leapmelee.rs index 7a1a218401..4c9aca309d 100644 --- a/voxygen/src/anim/src/character/leapmelee.rs +++ b/voxygen/src/anim/src/character/leapmelee.rs @@ -103,8 +103,8 @@ impl Animation for LeapAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/roll.rs b/voxygen/src/anim/src/character/roll.rs index 5079d119c7..f5eaf819f3 100644 --- a/voxygen/src/anim/src/character/roll.rs +++ b/voxygen/src/anim/src/character/roll.rs @@ -183,8 +183,8 @@ impl Animation for RollAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/run.rs b/voxygen/src/anim/src/character/run.rs index bb64344d39..f85f1ca477 100644 --- a/voxygen/src/anim/src/character/run.rs +++ b/voxygen/src/anim/src/character/run.rs @@ -258,8 +258,8 @@ impl Animation for RunAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/shoot.rs b/voxygen/src/anim/src/character/shoot.rs index 8b0a50d892..9184ab99f5 100644 --- a/voxygen/src/anim/src/character/shoot.rs +++ b/voxygen/src/anim/src/character/shoot.rs @@ -186,8 +186,8 @@ impl Animation for ShootAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/sit.rs b/voxygen/src/anim/src/character/sit.rs index a7c29be2fc..268e7e8dd7 100644 --- a/voxygen/src/anim/src/character/sit.rs +++ b/voxygen/src/anim/src/character/sit.rs @@ -175,8 +175,8 @@ impl Animation for SitAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/spin.rs b/voxygen/src/anim/src/character/spin.rs index e92886a5d5..5c8efb2c4e 100644 --- a/voxygen/src/anim/src/character/spin.rs +++ b/voxygen/src/anim/src/character/spin.rs @@ -131,8 +131,8 @@ impl Animation for SpinAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/spinmelee.rs b/voxygen/src/anim/src/character/spinmelee.rs index 26b4f43269..949b549482 100644 --- a/voxygen/src/anim/src/character/spinmelee.rs +++ b/voxygen/src/anim/src/character/spinmelee.rs @@ -158,8 +158,8 @@ impl Animation for SpinMeleeAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/stand.rs b/voxygen/src/anim/src/character/stand.rs index 96bccada22..bfa97846b3 100644 --- a/voxygen/src/anim/src/character/stand.rs +++ b/voxygen/src/anim/src/character/stand.rs @@ -181,8 +181,8 @@ impl Animation for StandAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/swim.rs b/voxygen/src/anim/src/character/swim.rs index cbabf7c081..e7e23023ae 100644 --- a/voxygen/src/anim/src/character/swim.rs +++ b/voxygen/src/anim/src/character/swim.rs @@ -206,8 +206,8 @@ impl Animation for SwimAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/character/wield.rs b/voxygen/src/anim/src/character/wield.rs index 299146b5f4..0251f9bb8f 100644 --- a/voxygen/src/anim/src/character/wield.rs +++ b/voxygen/src/anim/src/character/wield.rs @@ -346,6 +346,10 @@ impl Animation for WieldAnimation { * Quaternion::rotation_y(-1.27) * Quaternion::rotation_z(0.0); next.main.scale = Vec3::one(); + next.control.offset = Vec3::new(0.0, 6.0, 6.0); + next.control.ori = + Quaternion::rotation_x(u_slow * 0.2) * Quaternion::rotation_z(u_slowalt * 0.1); + next.control.scale = Vec3::one(); }, Some(ToolKind::Farming(_)) => { if velocity < 0.5 { @@ -380,8 +384,8 @@ impl Animation for WieldAnimation { next.r_control.scale = Vec3::one(); next.second.scale = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::OneHand), Some(Hands::OneHand)) => Vec3::one(), (_, _) => Vec3::zero(), diff --git a/voxygen/src/anim/src/critter/idle.rs b/voxygen/src/anim/src/critter/idle.rs index b4adcdb537..22708a480d 100644 --- a/voxygen/src/anim/src/critter/idle.rs +++ b/voxygen/src/anim/src/critter/idle.rs @@ -37,10 +37,10 @@ impl Animation for IdleAnimation { .sin() * 0.25, ); - next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1) / 18.0; + next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1); next.head.ori = Quaternion::rotation_z(rat_head_look.x) * Quaternion::rotation_x(rat_head_look.y + wave * 0.03); - next.head.scale = Vec3::one() / 18.0; + next.head.scale = Vec3::one(); next.chest.offset = Vec3::new( 0.0, @@ -50,18 +50,17 @@ impl Animation for IdleAnimation { next.chest.ori = Quaternion::rotation_y(wave_slow * 0.06); next.chest.scale = Vec3::one() / 18.0; - next.feet_f.offset = Vec3::new(0.0, skeleton_attr.feet_f.0, skeleton_attr.feet_f.1) / 18.0; + next.feet_f.offset = Vec3::new(0.0, skeleton_attr.feet_f.0, skeleton_attr.feet_f.1); next.feet_f.ori = Quaternion::rotation_z(0.0); - next.feet_f.scale = Vec3::one() / 18.0; + next.feet_f.scale = Vec3::one(); - next.feet_b.offset = Vec3::new(0.0, skeleton_attr.feet_b.0, skeleton_attr.feet_b.1) / 18.0; + next.feet_b.offset = Vec3::new(0.0, skeleton_attr.feet_b.0, skeleton_attr.feet_b.1); next.feet_b.ori = Quaternion::rotation_x(0.0); - next.feet_b.scale = Vec3::one() / 18.0; + next.feet_b.scale = Vec3::one(); - next.tail.offset = - Vec3::new(0.0, skeleton_attr.tail.0 + wave * 0.2, skeleton_attr.tail.1) / 18.0; + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0 + wave * 0.2, skeleton_attr.tail.1); next.tail.ori = Quaternion::rotation_y(wave_slow * 0.05); - next.tail.scale = Vec3::one() / 18.0; + next.tail.scale = Vec3::one(); next } diff --git a/voxygen/src/anim/src/critter/jump.rs b/voxygen/src/anim/src/critter/jump.rs index b4c5a0b57f..8279d321bb 100644 --- a/voxygen/src/anim/src/critter/jump.rs +++ b/voxygen/src/anim/src/critter/jump.rs @@ -21,25 +21,25 @@ impl Animation for JumpAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1) / 18.0; + next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1); next.head.ori = Quaternion::rotation_z(0.8) * Quaternion::rotation_x(0.5); - next.head.scale = Vec3::one() / 18.0; + next.head.scale = Vec3::one(); next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) / 18.0; next.chest.ori = Quaternion::rotation_y(0.0); next.chest.scale = Vec3::one() / 18.0; - next.feet_f.offset = Vec3::new(0.0, skeleton_attr.feet_f.0, skeleton_attr.feet_f.1) / 18.0; + next.feet_f.offset = Vec3::new(0.0, skeleton_attr.feet_f.0, skeleton_attr.feet_f.1); next.feet_f.ori = Quaternion::rotation_z(0.0); - next.feet_f.scale = Vec3::one() / 18.0; + next.feet_f.scale = Vec3::one(); - next.feet_b.offset = Vec3::new(0.0, skeleton_attr.feet_b.0, skeleton_attr.feet_b.1) / 18.0; + next.feet_b.offset = Vec3::new(0.0, skeleton_attr.feet_b.0, skeleton_attr.feet_b.1); next.feet_b.ori = Quaternion::rotation_x(0.0); - next.feet_b.scale = Vec3::one() / 18.0; + next.feet_b.scale = Vec3::one(); - next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1) / 18.0; + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); next.tail.ori = Quaternion::rotation_y(0.0); - next.tail.scale = Vec3::one() / 18.0; + next.tail.scale = Vec3::one(); next } diff --git a/voxygen/src/anim/src/critter/mod.rs b/voxygen/src/anim/src/critter/mod.rs index b83114adc1..2fe638803e 100644 --- a/voxygen/src/anim/src/critter/mod.rs +++ b/voxygen/src/anim/src/critter/mod.rs @@ -40,13 +40,14 @@ impl Skeleton for CritterSkeleton { #[cfg_attr(feature = "be-dyn-lib", export_name = "critter_compute_mats")] fn compute_matrices_inner(&self) -> ([FigureBoneData; 16], Vec3) { + let chest_mat = self.chest.compute_base_matrix(); ( [ - FigureBoneData::new(self.head.compute_base_matrix()), - FigureBoneData::new(self.chest.compute_base_matrix()), - FigureBoneData::new(self.feet_f.compute_base_matrix()), - FigureBoneData::new(self.feet_b.compute_base_matrix()), - FigureBoneData::new(self.tail.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.head.compute_base_matrix()), + FigureBoneData::new(chest_mat), + FigureBoneData::new(chest_mat * self.feet_f.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.feet_b.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.tail.compute_base_matrix()), FigureBoneData::default(), FigureBoneData::default(), FigureBoneData::default(), @@ -109,12 +110,12 @@ impl<'a> From<&'a comp::critter::Body> for CritterAttr { use comp::critter::Species::*; Self { head: match (body.species, body.body_type) { - (Rat, _) => (6.5, 7.0), - (Axolotl, _) => (5.0, 5.0), - (Gecko, _) => (5.0, 4.0), - (Turtle, _) => (8.0, 7.0), - (Squirrel, _) => (5.0, 4.0), - (Fungome, _) => (4.0, 4.0), + (Rat, _) => (6.5, 3.0), + (Axolotl, _) => (5.0, 1.0), + (Gecko, _) => (5.0, 0.0), + (Turtle, _) => (8.0, 3.0), + (Squirrel, _) => (5.0, 0.0), + (Fungome, _) => (4.0, 0.0), }, chest: match (body.species, body.body_type) { (Rat, _) => (0.0, 6.0), @@ -125,28 +126,28 @@ impl<'a> From<&'a comp::critter::Body> for CritterAttr { (Fungome, _) => (0.0, 5.0), }, feet_f: match (body.species, body.body_type) { - (Rat, _) => (2.0, 0.5), - (Axolotl, _) => (2.0, 0.5), - (Gecko, _) => (1.0, 0.5), - (Turtle, _) => (3.0, 0.5), - (Squirrel, _) => (1.0, 0.5), - (Fungome, _) => (1.0, 0.5), + (Rat, _) => (2.0, -5.0), + (Axolotl, _) => (2.0, -5.0), + (Gecko, _) => (1.0, -2.0), + (Turtle, _) => (3.0, -5.0), + (Squirrel, _) => (1.0, -2.0), + (Fungome, _) => (1.0, -4.0), }, feet_b: match (body.species, body.body_type) { - (Rat, _) => (-2.0, 0.5), - (Axolotl, _) => (-2.0, 0.5), - (Gecko, _) => (-2.0, 0.5), - (Turtle, _) => (-2.0, 0.5), - (Squirrel, _) => (-1.0, 0.5), - (Fungome, _) => (-2.0, 0.5), + (Rat, _) => (-2.0, -5.0), + (Axolotl, _) => (-2.0, -5.0), + (Gecko, _) => (-2.0, -2.0), + (Turtle, _) => (-2.0, -5.0), + (Squirrel, _) => (-1.0, -2.0), + (Fungome, _) => (-2.0, -4.0), }, tail: match (body.species, body.body_type) { - (Rat, _) => (-8.0, 3.0), - (Axolotl, _) => (-7.0, 3.0), - (Gecko, _) => (-7.0, 2.0), - (Turtle, _) => (-6.0, 4.0), - (Squirrel, _) => (-3.0, 4.0), - (Fungome, _) => (-6.0, 3.0), + (Rat, _) => (-8.0, -1.0), + (Axolotl, _) => (-7.0, -1.0), + (Gecko, _) => (-6.5, -2.0), + (Turtle, _) => (-6.0, 0.0), + (Squirrel, _) => (-3.0, 0.0), + (Fungome, _) => (-6.0, -1.0), }, } } diff --git a/voxygen/src/anim/src/critter/run.rs b/voxygen/src/anim/src/critter/run.rs index fac82204cc..120277f76b 100644 --- a/voxygen/src/anim/src/critter/run.rs +++ b/voxygen/src/anim/src/critter/run.rs @@ -26,30 +26,29 @@ impl Animation for RunAnimation { let wave_cos = (anim_time as f32 * 13.0).sin(); let wave_slow = (anim_time as f32 * 6.5 + PI).sin(); - next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1) / 18.0; + next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1); next.head.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0 + wave * 0.03); - next.head.scale = Vec3::one() / 18.0; + next.head.scale = Vec3::one(); next.chest.offset = Vec3::new( 0.0, skeleton_attr.chest.0 + wave * 1.0, skeleton_attr.chest.1, ) / 18.0; - next.chest.ori = Quaternion::rotation_y(wave_slow * 0.3); + next.chest.ori = Quaternion::rotation_y(0.0); next.chest.scale = Vec3::one() / 18.0; - next.feet_f.offset = Vec3::new(0.0, skeleton_attr.feet_f.0, skeleton_attr.feet_f.1) / 18.0; + next.feet_f.offset = Vec3::new(0.0, skeleton_attr.feet_f.0, skeleton_attr.feet_f.1); next.feet_f.ori = Quaternion::rotation_x(wave * 1.0); - next.feet_f.scale = Vec3::one() / 18.0; + next.feet_f.scale = Vec3::one(); - next.feet_b.offset = Vec3::new(0.0, skeleton_attr.feet_b.0, skeleton_attr.feet_b.1) / 18.0; + next.feet_b.offset = Vec3::new(0.0, skeleton_attr.feet_b.0, skeleton_attr.feet_b.1); next.feet_b.ori = Quaternion::rotation_x(wave_cos * 1.0); - next.feet_b.scale = Vec3::one() / 18.0; + next.feet_b.scale = Vec3::one(); - next.tail.offset = - Vec3::new(0.0, skeleton_attr.tail.0 + wave * 1.0, skeleton_attr.tail.1) / 18.0; + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0 + wave * 1.0, skeleton_attr.tail.1); next.tail.ori = Quaternion::rotation_y(wave_slow * 0.08); - next.tail.scale = Vec3::one() / 18.0; + next.tail.scale = Vec3::one(); next } diff --git a/voxygen/src/anim/src/dragon/idle.rs b/voxygen/src/anim/src/dragon/idle.rs index f7967928d0..b61f87fbc4 100644 --- a/voxygen/src/anim/src/dragon/idle.rs +++ b/voxygen/src/anim/src/dragon/idle.rs @@ -65,12 +65,12 @@ impl Animation for IdleAnimation { skeleton_attr.chest_front.0, skeleton_attr.chest_front.1, ); - next.chest_front.ori = Quaternion::rotation_y(slow * 0.01); + next.chest_front.ori = Quaternion::rotation_y(0.0); next.chest_front.scale = Vec3::one() * 1.05; next.chest_rear.offset = Vec3::new(0.0, skeleton_attr.chest_rear.0, skeleton_attr.chest_rear.1); - next.chest_rear.ori = Quaternion::rotation_y(slow * 0.01); + next.chest_rear.ori = Quaternion::rotation_y(0.0); next.chest_rear.scale = Vec3::one() * 1.05; next.tail_front.offset = @@ -83,38 +83,6 @@ impl Animation for IdleAnimation { next.tail_rear.ori = Quaternion::rotation_z(slowalt * 0.12) * Quaternion::rotation_x(0.05); next.tail_rear.scale = Vec3::one() * 0.98; - next.wing_in_l.offset = Vec3::new( - -skeleton_attr.wing_in.0, - skeleton_attr.wing_in.1, - skeleton_attr.wing_in.2, - ); - next.wing_in_l.ori = Quaternion::rotation_y(0.8); - next.wing_in_l.scale = Vec3::one(); - - next.wing_in_r.offset = Vec3::new( - skeleton_attr.wing_in.0, - skeleton_attr.wing_in.1, - skeleton_attr.wing_in.2, - ); - next.wing_in_r.ori = Quaternion::rotation_y(-0.8); - next.wing_in_r.scale = Vec3::one(); - - next.wing_out_l.offset = Vec3::new( - -skeleton_attr.wing_out.0, - skeleton_attr.wing_out.1, - skeleton_attr.wing_out.2 - 1.4, - ); - next.wing_out_l.ori = Quaternion::rotation_y(-2.0); - next.wing_out_l.scale = Vec3::one(); - - next.wing_out_r.offset = Vec3::new( - skeleton_attr.wing_out.0, - skeleton_attr.wing_out.1, - skeleton_attr.wing_out.2 - 1.4, - ); - next.wing_out_r.ori = Quaternion::rotation_y(2.0); - next.wing_out_r.scale = Vec3::one(); - next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, @@ -147,6 +115,38 @@ impl Animation for IdleAnimation { next.foot_br.ori = Quaternion::rotation_x(0.0); next.foot_br.scale = Vec3::one(); + next.wing_in_l.offset = Vec3::new( + -skeleton_attr.wing_in.0, + skeleton_attr.wing_in.1, + skeleton_attr.wing_in.2, + ); + next.wing_in_l.ori = Quaternion::rotation_y(0.8 + slow * 0.02); + next.wing_in_l.scale = Vec3::one(); + + next.wing_in_r.offset = Vec3::new( + skeleton_attr.wing_in.0, + skeleton_attr.wing_in.1, + skeleton_attr.wing_in.2, + ); + next.wing_in_r.ori = Quaternion::rotation_y(-0.8 - slow * 0.02); + next.wing_in_r.scale = Vec3::one(); + + next.wing_out_l.offset = Vec3::new( + -skeleton_attr.wing_out.0, + skeleton_attr.wing_out.1, + skeleton_attr.wing_out.2, + ); + next.wing_out_l.ori = Quaternion::rotation_y(-2.0 + slow * 0.02); + next.wing_out_l.scale = Vec3::one(); + + next.wing_out_r.offset = Vec3::new( + skeleton_attr.wing_out.0, + skeleton_attr.wing_out.1, + skeleton_attr.wing_out.2, + ); + next.wing_out_r.ori = Quaternion::rotation_y(2.0 - slow * 0.02); + next.wing_out_r.scale = Vec3::one(); + next } } diff --git a/voxygen/src/anim/src/dragon/mod.rs b/voxygen/src/anim/src/dragon/mod.rs index ba01e7a5b9..5a4ec4bbf5 100644 --- a/voxygen/src/anim/src/dragon/mod.rs +++ b/voxygen/src/anim/src/dragon/mod.rs @@ -77,10 +77,18 @@ impl Skeleton for DragonSkeleton { FigureBoneData::new( chest_front_mat * wing_in_r_mat * self.wing_out_r.compute_base_matrix(), ), - FigureBoneData::new(self.foot_fl.compute_base_matrix()), - FigureBoneData::new(self.foot_fr.compute_base_matrix()), - FigureBoneData::new(self.foot_bl.compute_base_matrix()), - FigureBoneData::new(self.foot_br.compute_base_matrix()), + FigureBoneData::new(chest_front_mat * self.foot_fl.compute_base_matrix()), + FigureBoneData::new(chest_front_mat * self.foot_fr.compute_base_matrix()), + FigureBoneData::new( + chest_front_mat + * self.chest_rear.compute_base_matrix() + * self.foot_bl.compute_base_matrix(), + ), + FigureBoneData::new( + chest_front_mat + * self.chest_rear.compute_base_matrix() + * self.foot_br.compute_base_matrix(), + ), FigureBoneData::default(), ], Vec3::default(), @@ -165,10 +173,10 @@ impl<'a> From<&'a comp::dragon::Body> for SkeletonAttr { (Reddragon, _) => (6.5, -5.0), }, chest_front: match (body.species, body.body_type) { - (Reddragon, _) => (0.0, 14.0), + (Reddragon, _) => (0.0, 15.0), }, chest_rear: match (body.species, body.body_type) { - (Reddragon, _) => (-12.5, 0.0), + (Reddragon, _) => (-6.5, 0.0), }, tail_front: match (body.species, body.body_type) { (Reddragon, _) => (-6.5, 1.5), @@ -183,10 +191,10 @@ impl<'a> From<&'a comp::dragon::Body> for SkeletonAttr { (Reddragon, _) => (23.0, 0.5, 4.0), }, feet_f: match (body.species, body.body_type) { - (Reddragon, _) => (6.0, 0.0, 1.5), + (Reddragon, _) => (6.0, 1.0, -13.0), }, feet_b: match (body.species, body.body_type) { - (Reddragon, _) => (6.0, -15.0, 3.0), + (Reddragon, _) => (6.0, -2.0, -10.5), }, height: match (body.species, body.body_type) { (Reddragon, _) => (1.0), diff --git a/voxygen/src/anim/src/dragon/run.rs b/voxygen/src/anim/src/dragon/run.rs index 626728d83c..49f42dcf12 100644 --- a/voxygen/src/anim/src/dragon/run.rs +++ b/voxygen/src/anim/src/dragon/run.rs @@ -1,11 +1,11 @@ use super::{super::Animation, DragonSkeleton, SkeletonAttr}; -use std::{f32::consts::PI, ops::Mul}; +use std::f32::consts::PI; use vek::*; pub struct RunAnimation; impl Animation for RunAnimation { - type Dependency = (f32, f64); + type Dependency = (f32, Vec3, Vec3, f64, Vec3); type Skeleton = DragonSkeleton; #[cfg(feature = "use-dyn-lib")] @@ -14,13 +14,42 @@ impl Animation for RunAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "dragon_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - (_velocity, global_time): Self::Dependency, + (_velocity, orientation, last_ori, _global_time, avg_vel): Self::Dependency, anim_time: f64, _rate: &mut f32, skeleton_attr: &SkeletonAttr, ) -> Self::Skeleton { let mut next = (*skeleton).clone(); + let lab = 0.6; //6 + + let short = (((1.0) + / (0.72 + + 0.28 + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.0).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.0).sin()); + + // + + let shortalt = (anim_time as f32 * 16.0 * lab as f32 + PI * 0.5).sin(); + + // + let ori: Vec2 = Vec2::from(orientation); + let last_ori = Vec2::from(last_ori); + let tilt = if Vec2::new(ori, last_ori) + .map(|o| o.magnitude_squared()) + .map(|m| m > 0.001 && m.is_finite()) + .reduce_and() + && ori.angle_between(last_ori).is_finite() + { + ori.angle_between(last_ori).min(0.2) + * last_ori.determine_side(Vec2::zero(), ori).signum() + } else { + 0.0 + } * 1.3; + let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()); + let lab = 14; let wave_ultra_slow_cos = (anim_time as f32 * 3.0 + PI).cos(); @@ -36,35 +65,22 @@ impl Animation for RunAnimation { let horilboffset = (anim_time as f32 * lab as f32 + PI * 1.4).sin(); let horirb = (anim_time as f32 * lab as f32 + PI * 0.4).sin(); - let vertchest = (anim_time as f32 * lab as f32 + PI * 0.3).sin().max(0.2); - let horichest = (anim_time as f32 * lab as f32 + PI * 0.8).sin(); - let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); - let dragon_look = Vec2::new( - ((global_time + anim_time) as f32 / 4.0) - .floor() - .mul(7331.0) - .sin() - * 0.25, - ((global_time + anim_time) as f32 / 4.0) - .floor() - .mul(1337.0) - .sin() - * 0.125, - ); - next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = - Quaternion::rotation_x(dragon_look.y) * Quaternion::rotation_z(dragon_look.x); + next.head_upper.ori = Quaternion::rotation_x(short * -0.03 - 0.1) + * Quaternion::rotation_z(tilt * -1.2) + * Quaternion::rotation_y(tilt * 0.8); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); - next.head_lower.ori = Quaternion::rotation_x(wave_slow * 0.05); - next.head_lower.scale = Vec3::one(); + next.head_lower.ori = Quaternion::rotation_z(tilt * -0.8) + * Quaternion::rotation_x(short * -0.05) + * Quaternion::rotation_y(tilt * 0.3); + next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new( 0.0, @@ -79,7 +95,8 @@ impl Animation for RunAnimation { skeleton_attr.tail_front.0, skeleton_attr.tail_front.1 + centeroffset * 0.6, ); - next.tail_front.ori = Quaternion::rotation_x(center * 0.03); + next.tail_front.ori = + Quaternion::rotation_x(center * 0.03) * Quaternion::rotation_z(tilt * 1.5); next.tail_front.scale = Vec3::one() * 0.98; next.tail_rear.offset = Vec3::new( @@ -87,20 +104,28 @@ impl Animation for RunAnimation { skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1 + centeroffset * 0.6, ); - next.tail_rear.ori = Quaternion::rotation_x(center * 0.03); + next.tail_rear.ori = + Quaternion::rotation_x(center * 0.03) * Quaternion::rotation_z(tilt * 1.5); next.tail_rear.scale = Vec3::one() * 0.98; next.chest_front.offset = Vec3::new( 0.0, - skeleton_attr.chest_front.0 + horichest * 1.25, - skeleton_attr.chest_front.1 + vertchest * -1.6 + 1.0, + skeleton_attr.chest_front.0, + skeleton_attr.chest_front.1 + shortalt * 2.5 + x_tilt * 10.0, ); - next.chest_front.ori = Quaternion::rotation_y(horichest * -0.09); + next.chest_front.ori = Quaternion::rotation_x(short * 0.13 + x_tilt) + * Quaternion::rotation_y(0.0) + * Quaternion::rotation_z(tilt * -1.5); next.chest_front.scale = Vec3::one(); - next.chest_rear.offset = - Vec3::new(0.0, skeleton_attr.chest_rear.0, skeleton_attr.chest_rear.1); - next.chest_rear.ori = Quaternion::rotation_y(horichest * -0.09); + next.chest_rear.offset = Vec3::new( + 0.0, + skeleton_attr.chest_rear.0, + skeleton_attr.chest_rear.1 + shortalt * 0.2, + ); + next.chest_rear.ori = Quaternion::rotation_x(short * 0.1) + * Quaternion::rotation_y(0.0) + * Quaternion::rotation_z(tilt * 1.8); next.chest_rear.scale = Vec3::one(); next.foot_fl.offset = Vec3::new( @@ -108,7 +133,7 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.1 + horilf * 2.5, skeleton_attr.feet_f.2 + vertlf * 5.0 * skeleton_attr.height - 0.5, ); - next.foot_fl.ori = Quaternion::rotation_x(horilf * 0.4); + next.foot_fl.ori = Quaternion::rotation_x(horilf * 0.6); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( @@ -116,7 +141,7 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.1 + horirfoffset * 2.5, skeleton_attr.feet_f.2 + vertrfoffset * 5.0 * skeleton_attr.height - 0.5, ); - next.foot_fr.ori = Quaternion::rotation_x(horirfoffset * 0.4); + next.foot_fr.ori = Quaternion::rotation_x(horirb * 0.6); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( @@ -124,7 +149,7 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.1 + horilboffset * 3.0, skeleton_attr.feet_b.2 + vertlboffset * 5.0 * skeleton_attr.height - 0.5, ); - next.foot_bl.ori = Quaternion::rotation_x(horilboffset * 0.35); + next.foot_bl.ori = Quaternion::rotation_x(horilf * 0.55); next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( @@ -132,7 +157,7 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.1 + horirb * 3.0, skeleton_attr.feet_b.2 + vertrb * 5.0 * skeleton_attr.height - 0.5, ); - next.foot_br.ori = Quaternion::rotation_x(horirb * 0.35); + next.foot_br.ori = Quaternion::rotation_x(horirb * 0.55); next.foot_br.scale = Vec3::one(); next.wing_in_l.offset = Vec3::new( @@ -140,7 +165,7 @@ impl Animation for RunAnimation { skeleton_attr.wing_in.1, skeleton_attr.wing_in.2, ); - next.wing_in_l.ori = Quaternion::rotation_y(0.8); + next.wing_in_l.ori = Quaternion::rotation_y(0.8 + tilt * 1.0); next.wing_in_l.scale = Vec3::one(); next.wing_in_r.offset = Vec3::new( @@ -148,23 +173,23 @@ impl Animation for RunAnimation { skeleton_attr.wing_in.1, skeleton_attr.wing_in.2, ); - next.wing_in_r.ori = Quaternion::rotation_y(-0.8); + next.wing_in_r.ori = Quaternion::rotation_y(-0.8 + tilt * 1.0); next.wing_in_r.scale = Vec3::one(); next.wing_out_l.offset = Vec3::new( -skeleton_attr.wing_out.0, skeleton_attr.wing_out.1, - skeleton_attr.wing_out.2 - 1.4, + skeleton_attr.wing_out.2, ); - next.wing_out_l.ori = Quaternion::rotation_y(-2.0); + next.wing_out_l.ori = Quaternion::rotation_y(-2.0 + tilt * 1.0); next.wing_out_l.scale = Vec3::one(); next.wing_out_r.offset = Vec3::new( skeleton_attr.wing_out.0, skeleton_attr.wing_out.1, - skeleton_attr.wing_out.2 - 1.4, + skeleton_attr.wing_out.2, ); - next.wing_out_r.ori = Quaternion::rotation_y(2.0); + next.wing_out_r.ori = Quaternion::rotation_y(2.0 + tilt * 1.0); next.wing_out_r.scale = Vec3::one(); next diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index 3bf99f64fc..577ce0acac 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -142,6 +142,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (5.0, 1.0), (Rocksnapper, _) => (6.0, 0.5), (Pangolin, _) => (-0.5, 8.0), + (Maneater, _) => (6.0, 9.5), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), @@ -152,6 +153,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (12.0, -3.5), (Rocksnapper, _) => (12.0, -9.0), (Pangolin, _) => (8.0, -9.0), + (Maneater, _) => (1.0, 4.5), }, jaw: match (body.species, body.body_type) { (Crocodile, _) => (2.5, -3.0), @@ -162,6 +164,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (-3.5, -2.0), (Rocksnapper, _) => (-5.0, -1.5), (Pangolin, _) => (0.0, 0.0), + (Maneater, _) => (-1.0, 4.0), }, chest: match (body.species, body.body_type) { (Crocodile, _) => (0.0, 5.0), @@ -172,6 +175,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (0.0, 11.0), (Rocksnapper, _) => (0.0, 18.5), (Pangolin, _) => (0.0, 7.0), + (Maneater, _) => (0.0, 12.0), }, tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), @@ -182,6 +186,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (-10.0, -1.5), (Rocksnapper, _) => (-14.5, -2.0), (Pangolin, _) => (-7.0, -3.0), + (Maneater, _) => (-15.0, 4.0), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, 0.0), @@ -192,6 +197,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (-13.0, -3.5), (Rocksnapper, _) => (-13.5, -6.5), (Pangolin, _) => (-7.5, -0.5), + (Maneater, _) => (-1.0, 4.0), }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (3.5, 6.0, -1.0), @@ -202,6 +208,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (5.5, 6.5, -3.0), (Rocksnapper, _) => (7.5, 5.0, -8.5), (Pangolin, _) => (5.5, 5.5, -1.0), + (Maneater, _) => (4.5, 4.0, -5.5), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (3.5, -6.0, -1.0), @@ -212,6 +219,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (5.5, -11.5, -3.0), (Rocksnapper, _) => (8.0, -12.0, -9.5), (Pangolin, _) => (6.5, -3.5, -1.0), + (Maneater, _) => (4.5, -2.5, -3.0), }, lean: match (body.species, body.body_type) { (Pangolin, _) => (0.4, 0.0), @@ -226,6 +234,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (1.0), (Rocksnapper, _) => (1.4), (Pangolin, _) => (1.3), + (Maneater, _) => (1.4), }, tempo: match (body.species, body.body_type) { (Crocodile, _) => (0.8), @@ -236,6 +245,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (0.9), (Rocksnapper, _) => (0.9), (Pangolin, _) => (1.15), + (Maneater, _) => (1.0), }, } } diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index 259d660929..a71979ee24 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -106,9 +106,10 @@ impl Animation for RunAnimation { skeleton_attr.tail_front.0 + skeleton_attr.lean.0 * 2.0, skeleton_attr.tail_front.1 + skeleton_attr.lean.0 * 2.0, ); - next.tail_front.ori = Quaternion::rotation_z(shortalt * 0.18 + tilt * 1.8) - * Quaternion::rotation_y(shortalt * 0.1) - * Quaternion::rotation_x(0.06 - skeleton_attr.lean.0 * 1.2 + x_tilt * 0.2); + next.tail_front.ori = + Quaternion::rotation_z(shortalt * 0.18 * skeleton_attr.lean.1 + tilt * 1.8) + * Quaternion::rotation_y(shortalt * 0.1) + * Quaternion::rotation_x(0.06 - skeleton_attr.lean.0 * 1.2 + x_tilt * 0.2); next.tail_front.scale = Vec3::one(); next.tail_rear.offset = Vec3::new( @@ -116,9 +117,10 @@ impl Animation for RunAnimation { skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1 + shortalt * 0.6, ); - next.tail_rear.ori = Quaternion::rotation_z(shortalt * 0.25 + tilt * 1.6) - * Quaternion::rotation_y(shortalt * 0.1) - * Quaternion::rotation_x(-0.04 + x_tilt * 0.5); + next.tail_rear.ori = + Quaternion::rotation_z(shortalt * 0.25 * skeleton_attr.lean.1 + tilt * 1.6) + * Quaternion::rotation_y(shortalt * 0.1) + * Quaternion::rotation_x(-0.04 + x_tilt * 0.5); next.tail_rear.scale = Vec3::one(); next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) @@ -154,7 +156,7 @@ impl Animation for RunAnimation { next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1 + foothorilb * -1.0, - skeleton_attr.feet_b.2 + 1.0 + ((footvertlb * -1.2).max(-0.0)), + skeleton_attr.feet_b.2 + ((footvertlb * -1.2).max(-0.0)), ); next.foot_bl.ori = Quaternion::rotation_x(-0.2 + footvertlb * -0.5 - skeleton_attr.lean.0) * Quaternion::rotation_y(tilt * -1.0) @@ -164,7 +166,7 @@ impl Animation for RunAnimation { next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1 + foothorirb * -1.0, - skeleton_attr.feet_b.2 + 1.0 + ((footvertrb * -1.2).max(-0.0)), + skeleton_attr.feet_b.2 + ((footvertrb * -1.2).max(-0.0)), ); next.foot_br.ori = Quaternion::rotation_x(-0.2 + footvertrb * -0.5 - skeleton_attr.lean.0) * Quaternion::rotation_y(tilt * -1.0) diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index bbccbe167b..b41ebcc636 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -96,7 +96,7 @@ impl Animation for IdleAnimation { next.torso_back.ori = Quaternion::rotation_y(-slow * 0.005) * Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); - next.torso_back.scale = Vec3::one(); + next.torso_back.scale = Vec3::one() * 0.99; next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(0.0 + slower * 0.03); diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 7e25a2e085..d78069b986 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -183,6 +183,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (-0.5, 3.0), (Frostfang, _) => (1.0, -2.0), (Mouflon, _) => (-2.5, 6.0), + (Catoblepas, _) => (-1.0, -6.5), + (Bonerattler, _) => (-1.0, 2.5), }, head_lower: match (body.species, body.body_type) { (Grolgar, _) => (1.0, -1.0), @@ -194,6 +196,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (-4.5, 2.0), (Frostfang, _) => (2.0, 1.5), (Mouflon, _) => (-1.0, 0.5), + (Catoblepas, _) => (19.5, -2.0), + (Bonerattler, _) => (7.0, -1.5), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (7.0, 1.5), @@ -205,6 +209,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (5.0, -3.0), (Frostfang, _) => (4.0, -3.0), (Mouflon, _) => (10.5, -4.0), + (Catoblepas, _) => (1.0, -6.0), + (Bonerattler, _) => (3.0, -3.0), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-11.5, -0.5), @@ -216,6 +222,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (-11.0, 0.0), (Frostfang, _) => (-7.0, -3.5), (Mouflon, _) => (-10.5, 3.0), + (Catoblepas, _) => (-8.5, -2.0), + (Bonerattler, _) => (-10.0, 1.5), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 13.0), @@ -227,6 +235,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (12.0, 13.0), (Frostfang, _) => (9.0, 11.5), (Mouflon, _) => (11.0, 13.5), + (Catoblepas, _) => (7.5, 19.5), + (Bonerattler, _) => (6.0, 12.5), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (-10.0, 1.5), @@ -238,6 +248,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (-12.5, 1.0), (Frostfang, _) => (-10.5, 0.0), (Mouflon, _) => (-8.5, -0.5), + (Catoblepas, _) => (-8.5, -4.5), + (Bonerattler, _) => (-5.0, 0.0), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 8.0), @@ -249,6 +261,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (3.0, 2.5), (Frostfang, _) => (2.0, 3.5), (Mouflon, _) => (2.5, 5.0), + (Catoblepas, _) => (11.0, -3.0), + (Bonerattler, _) => (2.0, 3.5), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (-7.0, 4.0, 0.0), @@ -260,6 +274,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (4.5, -6.5, -1.0), (Frostfang, _) => (5.5, -5.5, -2.0), (Mouflon, _) => (4.0, -5.0, -5.0), + (Catoblepas, _) => (7.0, 2.0, -6.0), + (Bonerattler, _) => (5.5, 5.0, -4.0), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (6.0, -6.5, -5.5), @@ -271,6 +287,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (5.0, -6.5, -2.5), (Frostfang, _) => (3.5, -4.5, -2.0), (Mouflon, _) => (3.5, -8.0, -4.5), + (Catoblepas, _) => (6.0, -2.5, -2.5), + (Bonerattler, _) => (6.0, -8.0, -4.0), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (0.0, -9.0, -7.0), @@ -282,6 +300,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (0.5, 0.0, -2.0), (Frostfang, _) => (0.5, 1.5, -3.5), (Mouflon, _) => (-0.5, -0.5, -1.5), + (Catoblepas, _) => (1.0, 4.0, -3.0), + (Bonerattler, _) => (-0.5, -3.0, -2.5), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 0.0, -5.0), @@ -293,6 +313,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (0.0, -1.0, -1.5), (Frostfang, _) => (0.0, -1.5, -3.5), (Mouflon, _) => (-1.0, 0.0, -2.5), + (Catoblepas, _) => (0.5, 0.5, -3.0), + (Bonerattler, _) => (0.0, 3.0, -2.5), }, scaler: match (body.species, body.body_type) { (Grolgar, _) => (1.3), @@ -304,6 +326,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (1.0), (Frostfang, _) => (1.0), (Mouflon, _) => (1.0), + (Catoblepas, _) => (1.3), + (Bonerattler, _) => (1.0), }, dampen: match (body.species, body.body_type) { (Grolgar, _) => (0.5), @@ -315,6 +339,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (1.0), (Frostfang, _) => (1.0), (Mouflon, _) => (1.0), + (Catoblepas, _) => (0.6), + (Bonerattler, _) => (0.6), }, maximize: match (body.species, body.body_type) { (Grolgar, _) => (2.0), @@ -326,6 +352,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (1.0), (Frostfang, _) => (1.2), (Mouflon, _) => (1.1), + (Catoblepas, _) => (0.9), + (Bonerattler, _) => (0.8), }, tempo: match (body.species, body.body_type) { (Grolgar, _) => (0.95), @@ -337,6 +365,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Wolf, _) => (1.1), (Frostfang, _) => (1.0), (Mouflon, _) => (0.85), + (Catoblepas, _) => (0.8), + (Bonerattler, _) => (1.0), }, } } diff --git a/voxygen/src/anim/src/quadruped_small/feed.rs b/voxygen/src/anim/src/quadruped_small/feed.rs new file mode 100644 index 0000000000..aa4de97cb3 --- /dev/null +++ b/voxygen/src/anim/src/quadruped_small/feed.rs @@ -0,0 +1,100 @@ +use super::{super::Animation, QuadrupedSmallSkeleton, SkeletonAttr}; +use std::{f32::consts::PI, ops::Mul}; +use vek::*; + +pub struct FeedAnimation; + +impl Animation for FeedAnimation { + type Dependency = f64; + type Skeleton = QuadrupedSmallSkeleton; + + #[cfg(feature = "use-dyn-lib")] + const UPDATE_FN: &'static [u8] = b"quadruped_small_feed\0"; + + #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_small_feed")] + fn update_skeleton_inner( + skeleton: &Self::Skeleton, + global_time: Self::Dependency, + anim_time: f64, + _rate: &mut f32, + skeleton_attr: &SkeletonAttr, + ) -> Self::Skeleton { + let mut next = (*skeleton).clone(); + + let slow = (anim_time as f32 * 5.0).sin(); + let quick = (anim_time as f32 * 14.0).sin(); + + let slow_alt = (anim_time as f32 * 3.5 + PI).sin(); + + let head_look = Vec2::new( + ((global_time + anim_time) as f32 / 2.0) + .floor() + .mul(7331.0) + .sin() + * 1.0, + ((global_time + anim_time) as f32 / 2.0) + .floor() + .mul(1337.0) + .sin() + * 0.5, + ); + + next.head.offset = Vec3::new( + 0.0, + skeleton_attr.head.0 + 1.5, + skeleton_attr.head.1 + slow * 0.2, + ); + next.head.ori = Quaternion::rotation_z(head_look.y) + * Quaternion::rotation_x(slow * 0.05 + quick * 0.08 - 0.4 * skeleton_attr.feed); + next.head.scale = Vec3::one(); + + next.chest.offset = Vec3::new(slow * 0.02, skeleton_attr.chest.0, skeleton_attr.chest.1) + / 11.0 + * skeleton_attr.scaler; + next.chest.ori = Quaternion::rotation_x(-0.35 * skeleton_attr.feed) + * Quaternion::rotation_y(head_look.y * 0.1); + next.chest.scale = Vec3::one() / 11.0 * skeleton_attr.scaler; + + next.leg_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + 0.5, + ); + next.leg_fl.ori = Quaternion::rotation_x(slow * 0.01 + 0.25 * skeleton_attr.feed) + * Quaternion::rotation_y(slow * -0.02 - head_look.y * 0.1); + next.leg_fl.scale = Vec3::one(); + + next.leg_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + 0.5, + ); + next.leg_fr.ori = Quaternion::rotation_x(slow_alt * 0.01 + 0.25 * skeleton_attr.feed) + * Quaternion::rotation_y(slow * -0.02 - head_look.y * 0.1); + next.leg_fr.scale = Vec3::one(); + + next.leg_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1 + 1.0, + skeleton_attr.feet_b.2 - 1.0, + ); + next.leg_bl.ori = Quaternion::rotation_x(slow_alt * 0.01 + 0.15 * skeleton_attr.feed) + * Quaternion::rotation_y(slow * -0.02 - head_look.y * 0.1); + next.leg_bl.scale = Vec3::one(); + + next.leg_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1 + 1.0, + skeleton_attr.feet_b.2 - 1.0, + ); + next.leg_br.ori = Quaternion::rotation_x(slow * 0.01 + 0.15 * skeleton_attr.feed) + * Quaternion::rotation_y(slow * -0.02 - head_look.y * 0.1); + next.leg_br.scale = Vec3::one(); + + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); + next.tail.ori = Quaternion::rotation_z(slow * 0.3 + head_look.y * 0.3); + next.tail.scale = Vec3::one(); + + next + } +} diff --git a/voxygen/src/anim/src/quadruped_small/idle.rs b/voxygen/src/anim/src/quadruped_small/idle.rs index a9cf8d9926..d32c14a128 100644 --- a/voxygen/src/anim/src/quadruped_small/idle.rs +++ b/voxygen/src/anim/src/quadruped_small/idle.rs @@ -22,7 +22,6 @@ impl Animation for IdleAnimation { let mut next = (*skeleton).clone(); let slow = (anim_time as f32 * 3.5).sin(); - let slowa = (anim_time as f32 * 3.5 + PI / 2.0).sin(); let slow_alt = (anim_time as f32 * 3.5 + PI).sin(); @@ -39,51 +38,52 @@ impl Animation for IdleAnimation { * 0.25, ); - next.head.offset = - Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1 + slow * 0.2) / 11.0; + next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1 + slow * 0.2); next.head.ori = Quaternion::rotation_z(head_look.x) * Quaternion::rotation_x(head_look.y + slow_alt * 0.03); - next.head.scale = Vec3::one() / 10.5; + next.head.scale = Vec3::one(); - next.chest.offset = Vec3::new( - slow * 0.05, - skeleton_attr.chest.0, - skeleton_attr.chest.1 + slowa * 0.2, - ) / 11.0; + next.chest.offset = Vec3::new(slow * 0.05, skeleton_attr.chest.0, skeleton_attr.chest.1) + / 11.0 + * skeleton_attr.scaler; next.chest.ori = Quaternion::rotation_y(slow * 0.05); - next.chest.scale = Vec3::one() / 11.0; + next.chest.scale = Vec3::one() / 11.0 * skeleton_attr.scaler; next.leg_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2, - ) / 11.0; - next.leg_fl.ori = Quaternion::rotation_x(slow * 0.08); - next.leg_fl.scale = Vec3::one() / 11.0; + skeleton_attr.feet_f.2 + slow * -0.2, + ); + next.leg_fl.ori = + Quaternion::rotation_x(slow * 0.03) * Quaternion::rotation_y(slow * -0.05); + next.leg_fl.scale = Vec3::one(); next.leg_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2, - ) / 11.0; - next.leg_fr.ori = Quaternion::rotation_x(slow_alt * 0.08); - next.leg_fr.scale = Vec3::one() / 11.0; + skeleton_attr.feet_f.2 + slow * 0.2, + ); + next.leg_fr.ori = + Quaternion::rotation_x(slow_alt * 0.03) * Quaternion::rotation_y(slow * -0.05); + next.leg_fr.scale = Vec3::one(); next.leg_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2, - ) / 11.0; - next.leg_bl.ori = Quaternion::rotation_x(slow_alt * 0.08); - next.leg_bl.scale = Vec3::one() / 11.0; + skeleton_attr.feet_b.2 + slow * -0.2, + ); + next.leg_bl.ori = + Quaternion::rotation_x(slow_alt * 0.03) * Quaternion::rotation_y(slow * -0.05); + next.leg_bl.scale = Vec3::one(); next.leg_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2, - ) / 11.0; - next.leg_br.ori = Quaternion::rotation_x(slow * 0.08); - next.leg_br.scale = Vec3::one() / 11.0; + skeleton_attr.feet_b.2 + slow * 0.2, + ); + next.leg_br.ori = + Quaternion::rotation_x(slow * 0.03) * Quaternion::rotation_y(slow * -0.05); + next.leg_br.scale = Vec3::one(); next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); next.tail.ori = Quaternion::rotation_z(slow * 0.4); diff --git a/voxygen/src/anim/src/quadruped_small/jump.rs b/voxygen/src/anim/src/quadruped_small/jump.rs index 8a19a43d32..a8395ac958 100644 --- a/voxygen/src/anim/src/quadruped_small/jump.rs +++ b/voxygen/src/anim/src/quadruped_small/jump.rs @@ -20,45 +20,47 @@ impl Animation for JumpAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1) / 11.0; + next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1); next.head.ori = Quaternion::rotation_z(-0.8) * Quaternion::rotation_x(0.5); - next.head.scale = Vec3::one() / 10.5; + next.head.scale = Vec3::one(); - next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) / 11.0; + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) + * skeleton_attr.scaler + / 11.0; next.chest.ori = Quaternion::rotation_y(0.0); - next.chest.scale = Vec3::one() / 11.0; + next.chest.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.leg_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, - ) / 11.0; + ); next.leg_fl.ori = Quaternion::rotation_x(0.0); - next.leg_fl.scale = Vec3::one() / 11.0; + next.leg_fl.scale = Vec3::one(); next.leg_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, - ) / 11.0; + ); next.leg_fr.ori = Quaternion::rotation_x(0.0); - next.leg_fr.scale = Vec3::one() / 11.0; + next.leg_fr.scale = Vec3::one(); next.leg_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, - ) / 11.0; + ); next.leg_bl.ori = Quaternion::rotation_x(0.0); - next.leg_bl.scale = Vec3::one() / 11.0; + next.leg_bl.scale = Vec3::one(); next.leg_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, - ) / 11.0; + ); next.leg_br.ori = Quaternion::rotation_x(0.0); - next.leg_br.scale = Vec3::one() / 11.0; + next.leg_br.scale = Vec3::one(); next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); next.tail.ori = Quaternion::rotation_x(-0.3); diff --git a/voxygen/src/anim/src/quadruped_small/mod.rs b/voxygen/src/anim/src/quadruped_small/mod.rs index e3a6aa1ac9..0c19fc6ed2 100644 --- a/voxygen/src/anim/src/quadruped_small/mod.rs +++ b/voxygen/src/anim/src/quadruped_small/mod.rs @@ -1,9 +1,10 @@ +pub mod feed; pub mod idle; pub mod jump; pub mod run; // Reexports -pub use self::{idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation}; +pub use self::{feed::FeedAnimation, idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation}; use super::{Bone, FigureBoneData, Skeleton}; use common::comp::{self}; @@ -37,12 +38,12 @@ impl Skeleton for QuadrupedSmallSkeleton { let chest_mat = self.chest.compute_base_matrix(); ( [ - FigureBoneData::new(self.head.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.head.compute_base_matrix()), FigureBoneData::new(chest_mat), - FigureBoneData::new(self.leg_fl.compute_base_matrix()), - FigureBoneData::new(self.leg_fr.compute_base_matrix()), - FigureBoneData::new(self.leg_bl.compute_base_matrix()), - FigureBoneData::new(self.leg_br.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.leg_fl.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.leg_fr.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.leg_bl.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.leg_br.compute_base_matrix()), FigureBoneData::new(chest_mat * self.tail.compute_base_matrix()), FigureBoneData::default(), FigureBoneData::default(), @@ -75,6 +76,12 @@ pub struct SkeletonAttr { feet_f: (f32, f32, f32), feet_b: (f32, f32, f32), tail: (f32, f32), + scaler: f32, + tempo: f32, + maximize: f32, + minimize: f32, + spring: f32, + feed: f32, } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { type Error = (); @@ -95,6 +102,12 @@ impl Default for SkeletonAttr { feet_f: (0.0, 0.0, 0.0), feet_b: (0.0, 0.0, 0.0), tail: (0.0, 0.0), + scaler: 0.0, + tempo: 0.0, + maximize: 0.0, + minimize: 0.0, + spring: 0.0, + feed: 0.0, } } } @@ -104,79 +117,202 @@ impl<'a> From<&'a comp::quadruped_small::Body> for SkeletonAttr { use comp::quadruped_small::Species::*; Self { head: match (body.species, body.body_type) { - (Pig, _) => (6.0, 7.0), - (Fox, _) => (8.0, 8.0), - (Sheep, _) => (8.0, 8.0), - (Boar, _) => (13.0, 8.0), - (Jackalope, _) => (6.0, 9.0), - (Skunk, _) => (7.0, 9.0), - (Cat, _) => (7.0, 8.0), - (Batfox, _) => (8.0, 9.0), - (Raccoon, _) => (9.0, 7.0), - (Quokka, _) => (10.0, 10.0), - (Dodarock, _) => (8.0, 9.0), - (Holladon, _) => (8.0, 8.0), - (Hyena, _) => (7.5, 13.0), + (Pig, _) => (5.0, 2.0), + (Fox, _) => (4.0, 3.0), + (Sheep, _) => (4.0, 4.0), + (Boar, _) => (7.0, 0.0), + (Jackalope, _) => (3.0, 2.0), + (Skunk, _) => (5.0, 1.5), + (Cat, _) => (4.0, 3.0), + (Batfox, _) => (5.0, 1.0), + (Raccoon, _) => (5.0, 2.0), + (Quokka, _) => (6.0, 2.0), + (Dodarock, _) => (6.0, -2.0), + (Holladon, _) => (7.0, 1.0), + (Hyena, _) => (7.5, 2.0), + (Rabbit, _) => (4.0, 3.0), + (Truffler, _) => (7.5, -9.0), + (Frog, _) => (4.0, 2.0), }, chest: match (body.species, body.body_type) { - (Pig, _) => (0.0, 8.0), - (Fox, _) => (1.0, 5.0), - (Sheep, _) => (-1.0, 6.0), - (Boar, _) => (0.0, 7.0), + (Pig, _) => (0.0, 6.0), + (Fox, _) => (0.0, 8.0), + (Sheep, _) => (2.0, 7.0), + (Boar, _) => (0.0, 9.5), (Jackalope, _) => (-2.0, 6.0), (Skunk, _) => (0.0, 6.0), (Cat, _) => (0.0, 6.0), (Batfox, _) => (-2.0, 6.0), - (Raccoon, _) => (0.0, 6.0), - (Quokka, _) => (2.0, 8.0), - (Dodarock, _) => (-2.0, 8.0), - (Holladon, _) => (-2.0, 6.0), + (Raccoon, _) => (0.0, 5.5), + (Quokka, _) => (2.0, 6.5), + (Dodarock, _) => (-2.0, 9.0), + (Holladon, _) => (-2.0, 9.0), (Hyena, _) => (-2.0, 9.0), + (Rabbit, _) => (-2.0, 6.0), + (Truffler, _) => (-2.0, 16.0), + (Frog, _) => (-2.0, 4.5), }, feet_f: match (body.species, body.body_type) { - (Pig, _) => (3.0, 5.0, 2.0), - (Fox, _) => (3.0, 5.0, 3.0), - (Sheep, _) => (3.0, 3.0, 3.0), - (Boar, _) => (3.0, 5.0, 3.0), - (Jackalope, _) => (3.0, 5.0, 4.0), - (Skunk, _) => (3.0, 3.0, 4.0), - (Cat, _) => (3.0, 5.0, 3.0), - (Batfox, _) => (2.5, 5.0, 3.0), - (Raccoon, _) => (3.0, 5.0, 3.0), - (Quokka, _) => (3.0, 5.0, 3.0), - (Dodarock, _) => (3.5, 5.0, 4.0), - (Holladon, _) => (3.0, 5.0, 4.0), - (Hyena, _) => (2.5, 5.0, 6.0), + (Pig, _) => (4.5, 3.5, -1.0), + (Fox, _) => (3.0, 5.0, -5.5), + (Sheep, _) => (3.5, 2.0, -2.0), + (Boar, _) => (3.5, 6.0, -5.5), + (Jackalope, _) => (3.0, 4.0, -2.0), + (Skunk, _) => (3.5, 4.0, -1.0), + (Cat, _) => (2.0, 4.0, -1.0), + (Batfox, _) => (3.0, 4.0, -0.5), + (Raccoon, _) => (4.0, 4.0, -0.0), + (Quokka, _) => (3.0, 4.0, -1.0), + (Dodarock, _) => (5.0, 5.0, -2.5), + (Holladon, _) => (5.0, 4.0, -2.5), + (Hyena, _) => (2.5, 5.0, -4.0), + (Rabbit, _) => (3.0, 3.0, -3.0), + (Truffler, _) => (2.5, 5.0, -9.0), + (Frog, _) => (4.5, 6.5, 0.0), }, feet_b: match (body.species, body.body_type) { - (Pig, _) => (3.0, -2.0, 2.0), - (Fox, _) => (2.5, -2.0, 3.0), - (Sheep, _) => (3.0, -4.0, 3.0), - (Boar, _) => (3.0, -3.0, 5.0), - (Jackalope, _) => (3.0, -2.0, 4.0), - (Skunk, _) => (3.0, -4.0, 4.0), - (Cat, _) => (2.0, -2.0, 3.0), - (Batfox, _) => (2.5, -2.0, 3.0), - (Raccoon, _) => (3.0, -2.0, 3.0), - (Quokka, _) => (3.0, -4.0, 3.0), - (Dodarock, _) => (4.5, -3.0, 4.0), - (Holladon, _) => (4.0, -4.0, 3.0), - (Hyena, _) => (2.5, -7.0, 6.0), + (Pig, _) => (3.5, -2.0, 0.0), + (Fox, _) => (3.0, -3.0, -3.0), + (Sheep, _) => (3.5, -3.5, -2.0), + (Boar, _) => (3.0, -3.0, -2.5), + (Jackalope, _) => (3.5, -2.0, 0.0), + (Skunk, _) => (3.5, -4.0, -1.5), + (Cat, _) => (2.0, -3.5, -1.0), + (Batfox, _) => (3.5, -2.0, -0.5), + (Raccoon, _) => (4.5, -3.0, 0.5), + (Quokka, _) => (4.0, -4.0, -1.0), + (Dodarock, _) => (3.5, -3.0, -4.0), + (Holladon, _) => (4.0, -2.0, -3.0), + (Hyena, _) => (3.0, -5.0, -2.5), + (Rabbit, _) => (3.5, -2.0, -1.0), + (Truffler, _) => (3.0, -5.0, -9.5), + (Frog, _) => (5.0, -3.5, 0.0), }, tail: match (body.species, body.body_type) { - (Pig, _) => (-4.0, 3.0), - (Fox, _) => (-3.5, 1.0), + (Pig, _) => (-4.5, 2.5), + (Fox, _) => (-4.5, 2.0), (Sheep, _) => (-5.0, 0.0), - (Boar, _) => (-8.5, 2.0), - (Jackalope, _) => (0.0, 5.0), - (Skunk, _) => (-3.0, 1.5), - (Cat, _) => (-3.0, 2.0), + (Boar, _) => (-6.0, 0.0), + (Jackalope, _) => (-4.0, 2.0), + (Skunk, _) => (-4.0, 0.5), + (Cat, _) => (-3.5, 2.0), (Batfox, _) => (0.0, 5.0), (Raccoon, _) => (-4.0, 1.0), - (Quokka, _) => (0.0, 6.0), + (Quokka, _) => (-6.0, 1.0), (Dodarock, _) => (0.0, 5.0), - (Holladon, _) => (0.0, 4.0), - (Hyena, _) => (-8.0, 1.0), + (Holladon, _) => (-1.0, 4.0), + (Hyena, _) => (-7.0, 0.0), + (Rabbit, _) => (-4.0, -0.0), + (Truffler, _) => (0.0, 0.0), + (Frog, _) => (0.0, -0.0), + }, + scaler: match (body.species, body.body_type) { + (Pig, _) => (0.9), + (Fox, _) => (0.9), + (Sheep, _) => (1.0), + (Boar, _) => (1.1), + (Jackalope, _) => (0.8), + (Skunk, _) => (0.9), + (Cat, _) => (0.8), + (Batfox, _) => (1.1), + (Raccoon, _) => (1.0), + (Quokka, _) => (1.0), + (Dodarock, _) => (1.2), + (Holladon, _) => (1.4), + (Hyena, _) => (1.0), + (Rabbit, _) => (0.7), + (Truffler, _) => (1.0), + (Frog, _) => (0.7), + }, + tempo: match (body.species, body.body_type) { + (Pig, _) => (1.0), + (Fox, _) => (1.0), + (Sheep, _) => (1.0), + (Boar, _) => (1.1), + (Jackalope, _) => (1.0), + (Skunk, _) => (1.0), + (Cat, _) => (1.1), + (Batfox, _) => (1.0), + (Raccoon, _) => (1.0), + (Quokka, _) => (1.2), + (Dodarock, _) => (1.0), + (Holladon, _) => (1.0), + (Hyena, _) => (1.1), + (Rabbit, _) => (1.15), + (Truffler, _) => (1.0), + (Frog, _) => (1.15), + }, + maximize: match (body.species, body.body_type) { + (Pig, _) => (1.0), + (Fox, _) => (1.3), + (Sheep, _) => (1.1), + (Boar, _) => (1.4), + (Jackalope, _) => (1.2), + (Skunk, _) => (1.0), + (Cat, _) => (1.0), + (Batfox, _) => (1.0), + (Raccoon, _) => (1.0), + (Quokka, _) => (1.0), + (Dodarock, _) => (1.0), + (Holladon, _) => (1.0), + (Hyena, _) => (1.4), + (Rabbit, _) => (1.3), + (Truffler, _) => (1.0), + (Frog, _) => (1.3), + }, + minimize: match (body.species, body.body_type) { + (Pig, _) => (0.6), + (Fox, _) => (1.3), + (Sheep, _) => (0.8), + (Boar, _) => (1.0), + (Jackalope, _) => (0.8), + (Skunk, _) => (0.9), + (Cat, _) => (0.8), + (Batfox, _) => (1.0), + (Raccoon, _) => (1.0), + (Quokka, _) => (0.9), + (Dodarock, _) => (0.9), + (Holladon, _) => (0.7), + (Hyena, _) => (1.4), + (Rabbit, _) => (0.8), + (Truffler, _) => (1.0), + (Frog, _) => (0.8), + }, + spring: match (body.species, body.body_type) { + (Pig, _) => (1.0), + (Fox, _) => (1.0), + (Sheep, _) => (1.2), + (Boar, _) => (0.8), + (Jackalope, _) => (2.2), + (Skunk, _) => (1.0), + (Cat, _) => (1.4), + (Batfox, _) => (1.1), + (Raccoon, _) => (1.1), + (Quokka, _) => (1.3), + (Dodarock, _) => (0.9), + (Holladon, _) => (0.7), + (Hyena, _) => (1.4), + (Rabbit, _) => (2.5), + (Truffler, _) => (0.8), + (Frog, _) => (2.5), + }, + feed: match (body.species, body.body_type) { + (Pig, _) => (1.0), + (Fox, _) => (1.0), + (Sheep, _) => (1.0), + (Boar, _) => (0.6), + (Jackalope, _) => (1.0), + (Skunk, _) => (0.8), + (Cat, _) => (1.0), + (Batfox, _) => (0.7), + (Raccoon, _) => (0.8), + (Quokka, _) => (1.0), + (Dodarock, _) => (0.7), + (Holladon, _) => (1.0), + (Hyena, _) => (1.0), + (Rabbit, _) => (1.2), + (Truffler, _) => (0.6), + (Frog, _) => (0.7), }, } } diff --git a/voxygen/src/anim/src/quadruped_small/run.rs b/voxygen/src/anim/src/quadruped_small/run.rs index 8dda9ee4e5..09d14dedc0 100644 --- a/voxygen/src/anim/src/quadruped_small/run.rs +++ b/voxygen/src/anim/src/quadruped_small/run.rs @@ -5,7 +5,7 @@ use vek::*; pub struct RunAnimation; impl Animation for RunAnimation { - type Dependency = (f32, f64, Vec3); + type Dependency = (f32, Vec3, Vec3, f64, Vec3); type Skeleton = QuadrupedSmallSkeleton; #[cfg(feature = "use-dyn-lib")] @@ -14,67 +14,104 @@ impl Animation for RunAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_small_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - (_velocity, _global_time, avg_vel): Self::Dependency, + (_velocity, orientation, last_ori, _global_time, avg_vel): Self::Dependency, anim_time: f64, _rate: &mut f32, skeleton_attr: &SkeletonAttr, ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let slow = (anim_time as f32 * 14.0).sin(); - let fast = (anim_time as f32 * 20.0).sin(); - let fast_alt = (anim_time as f32 * 20.0 + PI / 2.0).sin(); - let slow_alt = (anim_time as f32 * 14.0 + PI / 2.0).sin(); - let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()).max(-0.7); + let lab = 0.6; //6 - next.head.offset = - Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1 + slow * 1.5) / 11.0; - next.head.ori = - Quaternion::rotation_x(0.2 + slow * 0.05) * Quaternion::rotation_y(slow_alt * 0.03); - next.head.scale = Vec3::one() / 10.5; + let speedmult = skeleton_attr.tempo; + let short = (anim_time as f32 * 20.0 * lab as f32 * speedmult + PI * 1.0).sin(); + let shortalt = (anim_time as f32 * 20.0 * lab as f32 * speedmult + PI * 0.5).sin(); + + let footvert = (anim_time as f32 * 20.0 * lab as f32 * speedmult + PI * 0.0).sin(); + let footvertt = (anim_time as f32 * 20.0 * lab as f32 * speedmult + PI * 0.4).sin(); + + let footvertf = (anim_time as f32 * 20.0 * lab as f32 * speedmult + PI * 0.3).sin(); + let footverttf = (anim_time as f32 * 20.0 * lab as f32 * speedmult + PI * 0.7).sin(); + + let ori: Vec2 = Vec2::from(orientation); + let last_ori = Vec2::from(last_ori); + let tilt = if Vec2::new(ori, last_ori) + .map(|o| o.magnitude_squared()) + .map(|m| m > 0.001 && m.is_finite()) + .reduce_and() + && ori.angle_between(last_ori).is_finite() + { + ori.angle_between(last_ori).min(0.2) + * last_ori.determine_side(Vec2::zero(), ori).signum() + } else { + 0.0 + } * 1.3; + let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()); + + next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1); + next.head.ori = Quaternion::rotation_x(x_tilt * -0.5 + short * -0.2) + * Quaternion::rotation_y(tilt * 0.8) + * Quaternion::rotation_z(tilt * -1.2); + next.head.scale = Vec3::one(); next.chest.offset = Vec3::new( 0.0, skeleton_attr.chest.0, - skeleton_attr.chest.1 + slow_alt * 1.2, - ) / 11.0; - next.chest.ori = Quaternion::rotation_x(slow * 0.1 + x_tilt); - next.chest.scale = Vec3::one() / 11.0; + skeleton_attr.chest.1 + + 2.0 * skeleton_attr.spring + + shortalt * 3.0 * skeleton_attr.spring, + ) / 11.0 + * skeleton_attr.scaler; + next.chest.ori = Quaternion::rotation_x(short * 0.2 * skeleton_attr.spring + x_tilt) + * Quaternion::rotation_y(tilt * 0.8) + * Quaternion::rotation_z(tilt * -1.5); + next.chest.scale = Vec3::one() / 11.0 * skeleton_attr.scaler; next.leg_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1 + fast * 0.8, - skeleton_attr.feet_f.2 + fast_alt * 1.5, - ) / 11.0; - next.leg_fl.ori = Quaternion::rotation_x(fast * 0.3); - next.leg_fl.scale = Vec3::one() / 11.0; + skeleton_attr.feet_f.1 + footverttf * 3.0 * skeleton_attr.maximize, + skeleton_attr.feet_f.2 + ((footvertf * -1.5).max(-1.0)), + ); + next.leg_fl.ori = Quaternion::rotation_x(0.2 + skeleton_attr.minimize * footverttf * 0.65) + * Quaternion::rotation_z(tilt * -0.5) + * Quaternion::rotation_y(tilt * 1.5); + next.leg_fl.scale = Vec3::one() * 1.02; next.leg_fr.offset = Vec3::new( skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1 + fast_alt * -0.8, - skeleton_attr.feet_f.2 + fast * 1.5, - ) / 11.0; - next.leg_fr.ori = Quaternion::rotation_x(fast_alt * -0.3); - next.leg_fr.scale = Vec3::one() / 11.0; + skeleton_attr.feet_f.1 + footvertt * 3.0 * skeleton_attr.minimize, + skeleton_attr.feet_f.2 + ((footvert * -1.5).max(-1.0)), + ); + next.leg_fr.ori = Quaternion::rotation_x(0.2 + skeleton_attr.maximize * footvertt * 0.65) + * Quaternion::rotation_z(tilt * -0.5) + * Quaternion::rotation_y(tilt * 1.5); + next.leg_fr.scale = Vec3::one() * 1.02; next.leg_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1 + fast_alt * -0.8, - skeleton_attr.feet_b.2 + fast * 1.5, - ) / 11.0; - next.leg_bl.ori = Quaternion::rotation_x(fast_alt * -0.3); - next.leg_bl.scale = Vec3::one() / 11.0; + skeleton_attr.feet_b.1 + footvertt * -1.4, + skeleton_attr.feet_b.2 + ((footvert * 1.5).max(-1.0)), + ); + next.leg_bl.ori = Quaternion::rotation_x(-0.25 + skeleton_attr.maximize * footvertt * -0.8) + * Quaternion::rotation_y(tilt * 1.5) + * Quaternion::rotation_z(tilt * -1.5); + next.leg_bl.scale = Vec3::one() * 1.02; next.leg_br.offset = Vec3::new( skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1 + fast * 0.8, - skeleton_attr.feet_b.2 + fast_alt * 1.5, - ) / 11.0; - next.leg_br.ori = Quaternion::rotation_x(fast * 0.3); - next.leg_br.scale = Vec3::one() / 11.0; + skeleton_attr.feet_b.1 + footverttf * -1.4, + skeleton_attr.feet_b.2 + ((footvertf * 1.5).max(-1.0)), + ); + next.leg_br.ori = + Quaternion::rotation_x(-0.25 + skeleton_attr.maximize * footverttf * -0.8) + * Quaternion::rotation_y(tilt * 1.5) + * Quaternion::rotation_z(tilt * -1.5); + next.leg_br.scale = Vec3::one() * 1.02; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); - next.tail.ori = Quaternion::rotation_z(0.0); + next.tail.ori = Quaternion::rotation_x(short * 0.2 + x_tilt) + * Quaternion::rotation_y(tilt * 0.8) + * Quaternion::rotation_z(tilt * 1.5); next.tail.scale = Vec3::one(); next } diff --git a/voxygen/src/audio/sfx/event_mapper/combat/mod.rs b/voxygen/src/audio/sfx/event_mapper/combat/mod.rs index 6126ebc36d..eeeafca25d 100644 --- a/voxygen/src/audio/sfx/event_mapper/combat/mod.rs +++ b/voxygen/src/audio/sfx/event_mapper/combat/mod.rs @@ -138,21 +138,21 @@ impl CombatEventMapper { .. }, .. - }) = active_loadout.active_item + }) = &active_loadout.active_item { // Check for attacking states if character_state.is_attack() { return SfxEvent::Attack( CharacterAbilityType::from(character_state), - ToolCategory::from(data.kind), + ToolCategory::from(&data.kind), ); } else if let Some(wield_event) = match ( previous_state.weapon_drawn, character_state.is_dodge(), Self::weapon_drawn(character_state), ) { - (false, false, true) => Some(SfxEvent::Wield(ToolCategory::from(data.kind))), - (true, false, false) => Some(SfxEvent::Unwield(ToolCategory::from(data.kind))), + (false, false, true) => Some(SfxEvent::Wield(ToolCategory::from(&data.kind))), + (true, false, false) => Some(SfxEvent::Unwield(ToolCategory::from(&data.kind))), _ => None, } { return wield_event; diff --git a/voxygen/src/audio/sfx/event_mapper/combat/tests.rs b/voxygen/src/audio/sfx/event_mapper/combat/tests.rs index 71fdc1097a..cd177dae6c 100644 --- a/voxygen/src/audio/sfx/event_mapper/combat/tests.rs +++ b/voxygen/src/audio/sfx/event_mapper/combat/tests.rs @@ -78,7 +78,7 @@ fn maps_basic_melee() { &CharacterState::BasicMelee(states::basic_melee::Data { buildup_duration: Duration::default(), recover_duration: Duration::default(), - base_healthchange: 1, + base_healthchange: 10, range: 1.0, max_angle: 1.0, exhausted: false, diff --git a/voxygen/src/audio/sfx/mod.rs b/voxygen/src/audio/sfx/mod.rs index 0cdfebbbe3..3db1875736 100644 --- a/voxygen/src/audio/sfx/mod.rs +++ b/voxygen/src/audio/sfx/mod.rs @@ -166,9 +166,9 @@ impl From<&InventoryUpdateEvent> for SfxEvent { InventoryUpdateEvent::Collected(item) => { // Handle sound effects for types of collected items, falling back to the // default Collected event - match item.kind { + match &item.kind { ItemKind::Tool(tool) => SfxEvent::Inventory(SfxInventoryEvent::CollectedTool( - ToolCategory::try_from(tool.kind).unwrap(), + ToolCategory::try_from(&tool.kind).unwrap(), )), _ => SfxEvent::Inventory(SfxInventoryEvent::Collected), } diff --git a/voxygen/src/hud/hotbar.rs b/voxygen/src/hud/hotbar.rs index ca5f842644..61485d5400 100644 --- a/voxygen/src/hud/hotbar.rs +++ b/voxygen/src/hud/hotbar.rs @@ -75,20 +75,18 @@ impl State { .as_ref() .map(|i| &i.item.kind) .filter(|kind| { - use common::comp::item::{ - tool::{DebugKind, StaffKind, Tool, ToolKind}, - ItemKind, - }; - matches!( - kind, - ItemKind::Tool(Tool { - kind: ToolKind::Staff(StaffKind::BasicStaff), - .. - }) | ItemKind::Tool(Tool { - kind: ToolKind::Debug(DebugKind::Boost), - .. - }) - ) + use common::comp::item::{tool::ToolKind, ItemKind}; + if let ItemKind::Tool(kind) = kind { + if let ToolKind::Staff(_) = &kind.kind { + true + } else if let ToolKind::Debug(kind) = &kind.kind { + kind == "Boost" + } else { + false + } + } else { + false + } }) .is_some() } else { diff --git a/voxygen/src/hud/item_imgs.rs b/voxygen/src/hud/item_imgs.rs index 8332ed2367..15390ded58 100644 --- a/voxygen/src/hud/item_imgs.rs +++ b/voxygen/src/hud/item_imgs.rs @@ -31,7 +31,7 @@ pub enum ItemKey { impl From<&Item> for ItemKey { fn from(item: &Item) -> Self { match &item.kind { - ItemKind::Tool(Tool { kind, .. }) => ItemKey::Tool(*kind), + ItemKind::Tool(Tool { kind, .. }) => ItemKey::Tool(kind.clone()), ItemKind::Lantern(Lantern { kind, .. }) => ItemKey::Lantern(*kind), ItemKind::Armor(Armor { kind, .. }) => ItemKey::Armor(*kind), ItemKind::Utility { kind, .. } => ItemKey::Utility(*kind), diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index ef80c752eb..7fe9c4f3b7 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -755,7 +755,8 @@ impl Hud { .read_storage::() .get(client.entity()) .map_or(Vec3::zero(), |pos| pos.0); - + // SCT Output values are called hp_damage and floater.hp_change + // Numbers are currently divided by 10 and rounded if global_state.settings.gameplay.sct { // Render Player SCT numbers let mut player_sct_bg_id_walker = self.ids.player_sct_bgs.walk(); @@ -779,6 +780,8 @@ impl Hud { // Calculate total change // Ignores healing let hp_damage = floaters.iter().fold(0, |acc, f| f.hp_change.min(0) + acc); + // Divide by 10 to stay in the same dimension as the HP display + let hp_dmg_rounded_abs = ((hp_damage + 5) / 10).abs(); let max_hp_frac = hp_damage.abs() as f32 / stats.health.maximum() as f32; let timer = floaters .last() @@ -798,7 +801,7 @@ impl Hud { // Timer sets text transparency let hp_fade = ((crate::ecs::sys::floater::MY_HP_SHOWTIME - timer) * 0.25) + 0.2; - Text::new(&format!("{}", (hp_damage).abs())) + Text::new(&format!("{}", hp_dmg_rounded_abs)) .font_size(font_size) .font_id(self.fonts.cyri.conrod_id) .color(if hp_damage < 0 { @@ -808,7 +811,7 @@ impl Hud { }) .mid_bottom_with_margin_on(ui_widgets.window, 297.0 + y) .set(player_sct_bg_id, ui_widgets); - Text::new(&format!("{}", (hp_damage).abs())) + Text::new(&format!("{}", hp_dmg_rounded_abs)) .font_size(font_size) .font_id(self.fonts.cyri.conrod_id) .color(if hp_damage < 0 { @@ -872,13 +875,13 @@ impl Hud { let hp_fade = ((crate::ecs::sys::floater::MY_HP_SHOWTIME - floater.timer) * 0.25) + 0.2; - Text::new(&format!("{}", (floater.hp_change).abs())) + Text::new(&format!("{}", (floater.hp_change / 10).abs())) .font_size(font_size) .font_id(self.fonts.cyri.conrod_id) .color(Color::Rgba(0.0, 0.0, 0.0, hp_fade)) .x_y(x, y - 3.0) .set(player_sct_bg_id, ui_widgets); - Text::new(&format!("{}", (floater.hp_change).abs())) + Text::new(&format!("{}", (floater.hp_change / 10).abs())) .font_size(font_size) .font_id(self.fonts.cyri.conrod_id) .color(if floater.hp_change < 0 { @@ -919,7 +922,8 @@ impl Hud { // Increase font size based on fraction of maximum health // "flashes" by having a larger size in the first 100ms let font_size_xp = 30 - + (exp_change.abs() as f32 / stats.exp.maximum() as f32 * 50.0) as u32 + + ((exp_change.abs() as f32 / stats.exp.maximum() as f32).min(1.0) + * 50.0) as u32 + if timer < 0.1 { (FLASH_MAX * (1.0 - timer / 0.1)) as u32 } else { @@ -961,7 +965,8 @@ impl Hud { // Increase font size based on fraction of maximum health // "flashes" by having a larger size in the first 100ms let font_size_xp = 30 - + (floater.exp_change.abs() as f32 / stats.exp.maximum() as f32 + + ((floater.exp_change.abs() as f32 / stats.exp.maximum() as f32) + .min(1.0) * 50.0) as u32 + if floater.timer < 0.1 { (FLASH_MAX * (1.0 - floater.timer / 0.1)) as u32 @@ -1124,6 +1129,8 @@ impl Hud { acc } }); + // Divide by 10 to stay in the same dimension as the HP display + let hp_dmg_rounded_abs = ((hp_damage + 5) / 10).abs(); let max_hp_frac = hp_damage.abs() as f32 / stats.health.maximum() as f32; let timer = floaters .last() @@ -1146,14 +1153,14 @@ impl Hud { // Timer sets text transparency let fade = ((crate::ecs::sys::floater::HP_SHOWTIME - timer) * 0.25) + 0.2; - Text::new(&format!("{}", (hp_damage).abs())) + Text::new(&format!("{}", hp_dmg_rounded_abs)) .font_size(font_size) .font_id(self.fonts.cyri.conrod_id) .color(Color::Rgba(0.0, 0.0, 0.0, fade)) .x_y(0.0, y - 3.0) .position_ingame(ingame_pos) .set(sct_bg_id, ui_widgets); - Text::new(&format!("{}", hp_damage.abs())) + Text::new(&format!("{}", hp_dmg_rounded_abs)) .font_size(font_size) .font_id(self.fonts.cyri.conrod_id) .x_y(0.0, y) @@ -1194,7 +1201,7 @@ impl Hud { * 0.25) + 0.2; - Text::new(&format!("{}", (floater.hp_change).abs())) + Text::new(&format!("{}", (floater.hp_change / 10).abs())) .font_size(font_size) .font_id(self.fonts.cyri.conrod_id) .color(if floater.hp_change < 0 { @@ -1205,7 +1212,7 @@ impl Hud { .x_y(0.0, y - 3.0) .position_ingame(ingame_pos) .set(sct_bg_id, ui_widgets); - Text::new(&format!("{}", (floater.hp_change).abs())) + Text::new(&format!("{}", (floater.hp_change / 10).abs())) .font_size(font_size) .font_id(self.fonts.cyri.conrod_id) .x_y(0.0, y) diff --git a/voxygen/src/hud/skillbar.rs b/voxygen/src/hud/skillbar.rs index 2e41c7a135..e5ce67075c 100644 --- a/voxygen/src/hud/skillbar.rs +++ b/voxygen/src/hud/skillbar.rs @@ -17,7 +17,7 @@ use crate::{ }; use common::comp::{ item::{ - tool::{DebugKind, StaffKind, Tool, ToolKind}, + tool::{Tool, ToolKind}, Hands, ItemKind, }, CharacterState, ControllerInputs, Energy, Inventory, Loadout, Stats, @@ -617,7 +617,10 @@ impl<'a> Widget for Skillbar<'a> { ToolKind::Axe(_) => self.imgs.twohaxe_m1, ToolKind::Bow(_) => self.imgs.bow_m1, ToolKind::Staff(_) => self.imgs.staff_m1, - ToolKind::Debug(DebugKind::Boost) => self.imgs.flyingrod_m1, + ToolKind::Debug(kind) => match kind.as_ref() { + "Boost" => self.imgs.flyingrod_m1, + _ => self.imgs.nothing, + }, _ => self.imgs.nothing, }, _ => self.imgs.nothing, @@ -667,8 +670,8 @@ impl<'a> Widget for Skillbar<'a> { }; let tool_kind = match ( - active_tool_kind.map(|tk| tk.into_hands()), - second_tool_kind.map(|tk| tk.into_hands()), + active_tool_kind.map(|tk| tk.hands()), + second_tool_kind.map(|tk| tk.hands()), ) { (Some(Hands::TwoHand), _) => active_tool_kind, (_, Some(Hands::OneHand)) => second_tool_kind, @@ -691,9 +694,14 @@ impl<'a> Widget for Skillbar<'a> { Some(ToolKind::Hammer(_)) => self.imgs.hammerleap, Some(ToolKind::Axe(_)) => self.imgs.axespin, Some(ToolKind::Bow(_)) => self.imgs.bow_m2, - Some(ToolKind::Staff(StaffKind::Sceptre)) => self.imgs.heal_0, - Some(ToolKind::Staff(_)) => self.imgs.staff_m2, - Some(ToolKind::Debug(DebugKind::Boost)) => self.imgs.flyingrod_m2, + Some(ToolKind::Staff(kind)) => match kind.as_ref() { + "Sceptre" => self.imgs.heal_0, + _ => self.imgs.staff_m2, + }, + Some(ToolKind::Debug(kind)) => match kind.as_ref() { + "Boost" => self.imgs.flyingrod_m2, + _ => self.imgs.nothing, + }, _ => self.imgs.nothing, }) .w_h(32.0 * scale, 32.0 * scale) @@ -706,12 +714,15 @@ impl<'a> Widget for Skillbar<'a> { Color::Rgba(0.3, 0.3, 0.3, 0.8) } }, - Some(ToolKind::Staff(StaffKind::Sceptre)) => { - 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) - } + Some(ToolKind::Staff(kind)) => match kind.as_ref() { + "Sceptre" => { + 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), }) @@ -780,10 +791,14 @@ impl<'a> Widget for Skillbar<'a> { "\nWhirls a big fireball into the air. \nExplodes the ground \ and does\na big amount of damage", )), - ToolKind::Debug(DebugKind::Boost) => Some(( - "Possessing Arrow", - "\nShoots a poisonous arrow.\nLets you control your target.", - )), + ToolKind::Debug(kind) => match kind.as_ref() { + "Boost" => Some(( + "Possessing Arrow", + "\nShoots a poisonous arrow.\nLets you control your \ + target.", + )), + _ => None, + }, _ => None, }, _ => None, @@ -1179,8 +1194,8 @@ impl<'a> Widget for Skillbar<'a> { if let BarNumbers::Values = bar_values { let hp_text = format!( "{}/{}", - self.stats.health.current() as u32, - self.stats.health.maximum() as u32 + (self.stats.health.current() / 10) as u32, + (self.stats.health.maximum() / 10) as u32 ); Text::new(&hp_text) .mid_top_with_margin_on(state.ids.healthbar_bg, 6.0 * scale) diff --git a/voxygen/src/hud/slots.rs b/voxygen/src/hud/slots.rs index b8279eaf3f..5887008e7d 100644 --- a/voxygen/src/hud/slots.rs +++ b/voxygen/src/hud/slots.rs @@ -6,7 +6,7 @@ use super::{ use crate::ui::slot::{self, SlotKey, SumSlot}; use common::comp::{ item::{ - tool::{DebugKind, Tool, ToolKind}, + tool::{Tool, ToolKind}, ItemKind, }, Energy, Inventory, Loadout, @@ -114,7 +114,10 @@ impl<'a> SlotKey, HotbarImageSource<'a>> for HotbarSlot { match kind { ItemKind::Tool(Tool { kind, .. }) => match kind { ToolKind::Staff(_) => Some(HotbarImage::Fireball), - ToolKind::Debug(DebugKind::Boost) => Some(HotbarImage::SnakeArrow), + ToolKind::Debug(kind) => match kind.as_ref() { + "Boost" => Some(HotbarImage::SnakeArrow), + _ => None, + }, _ => None, }, _ => None, diff --git a/voxygen/src/hud/util.rs b/voxygen/src/hud/util.rs index 5b8c15cbb9..dd81d96e07 100644 --- a/voxygen/src/hud/util.rs +++ b/voxygen/src/hud/util.rs @@ -1,5 +1,6 @@ use common::comp::item::{ armor::{Armor, ArmorKind, Protection}, + tool::{Tool, ToolKind}, Item, ItemKind, }; use std::borrow::Cow; @@ -18,9 +19,9 @@ pub fn loadout_slot_text<'a>( } pub fn item_text<'a>(item: &'a Item) -> (&'_ str, Cow<'a, str>) { - let desc = match item.kind { - ItemKind::Armor(armor) => Cow::Owned(armor_desc(armor, item.description())), - // ItemKind::Tool => {}, + let desc = match &item.kind { + ItemKind::Armor(armor) => Cow::Owned(armor_desc(*armor, item.description())), + ItemKind::Tool(tool) => Cow::Owned(tool_desc(tool.clone(), item.description())), /*ItemKind::Consumable(kind, effect, ..) => { Cow::Owned(consumable_desc(consumable, item.description())) },*/ @@ -64,7 +65,37 @@ fn armor_desc(armor: Armor, desc: &str) -> String { } } // Weapon/Tool Description +fn tool_desc(tool: Tool, desc: &str) -> String { + // TODO: localization + let kind = match tool.kind { + ToolKind::Sword(_) => "Sword", + ToolKind::Axe(_) => "Axe", + ToolKind::Hammer(_) => "Hammer", + ToolKind::Bow(_) => "Bow", + ToolKind::Dagger(_) => "Dagger", + ToolKind::Staff(_) => "Staff", + ToolKind::Shield(_) => "Shield", + ToolKind::Debug(_) => "Debug", + ToolKind::Farming(_) => "Farming Tool", + ToolKind::Empty => "Empty", + }; + let power = tool.base_power(); + if !desc.is_empty() { + format!( + "{}\n\nPower: {:0.1}\n\n{}\n\n", + kind, + power * 10.0, + desc + ) + } else { + format!( + "{}\n\nPower: {:0.1}\n\n", + kind, + power * 10.0 + ) + } +} // Consumable Description /*fn consumable_desc(consumable: Consumable, desc: &str) -> String { // TODO: localization diff --git a/voxygen/src/key_state.rs b/voxygen/src/key_state.rs index 775168de66..84992bc8d6 100644 --- a/voxygen/src/key_state.rs +++ b/voxygen/src/key_state.rs @@ -14,13 +14,13 @@ pub struct KeyState { pub auto_walk: bool, pub swap_loadout: bool, pub respawn: bool, + pub collect: bool, pub analog_matrix: Vec2, } -impl KeyState { - #[allow(clippy::new_without_default)] // TODO: Pending review in #587 - pub fn new() -> KeyState { - KeyState { +impl Default for KeyState { + fn default() -> Self { + Self { right: false, left: false, up: false, @@ -34,10 +34,13 @@ impl KeyState { auto_walk: false, swap_loadout: false, respawn: false, + collect: false, analog_matrix: Vec2::zero(), } } +} +impl KeyState { pub fn dir_vec(&self) -> Vec2 { let dir = if self.analog_matrix == Vec2::zero() { Vec2::::new( diff --git a/voxygen/src/menu/main/mod.rs b/voxygen/src/menu/main/mod.rs index 4d1b9b7b84..2366e82e45 100644 --- a/voxygen/src/menu/main/mod.rs +++ b/voxygen/src/menu/main/mod.rs @@ -152,9 +152,11 @@ impl PlayState for MainMenuState { e ), // TODO: remove parentheses - client::AuthClientError::RequestError => localized_strings - .get("main.login.failed_sending_request") - .to_owned(), + client::AuthClientError::RequestError(e) => format!( + "{}: {}", + localized_strings.get("main.login.failed_sending_request"), + e + ), client::AuthClientError::ServerError(_, e) => e, }, }, diff --git a/voxygen/src/scene/figure/cache.rs b/voxygen/src/scene/figure/cache.rs index 69937ed556..18c6e24e75 100644 --- a/voxygen/src/scene/figure/cache.rs +++ b/voxygen/src/scene/figure/cache.rs @@ -52,14 +52,14 @@ impl CharacterCacheKey { active_tool: if let Some(ItemKind::Tool(tool)) = loadout.active_item.as_ref().map(|i| &i.item.kind) { - Some(tool.kind) + Some(tool.kind.clone()) } else { None }, second_tool: if let Some(ItemKind::Tool(tool)) = loadout.second_item.as_ref().map(|i| &i.item.kind) { - Some(tool.kind) + Some(tool.kind.clone()) } else { None }, @@ -655,6 +655,11 @@ impl FigureModelCache { body.body_type, |segment, offset| generate_mesh(segment, offset), )), + Some(biped_large_center_spec.mesh_main( + body.species, + body.body_type, + |segment, offset| generate_mesh(segment, offset), + )), Some(biped_large_lateral_spec.mesh_shoulder_l( body.species, body.body_type, @@ -699,7 +704,6 @@ impl FigureModelCache { None, None, None, - None, ] }, Body::Golem(body) => { diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs index 3d634b0693..cae28a26f2 100644 --- a/voxygen/src/scene/figure/load.rs +++ b/voxygen/src/scene/figure/load.rs @@ -2481,6 +2481,7 @@ struct SidedBLCenterVoxSpec { head: BipedLargeCenterSubSpec, torso_upper: BipedLargeCenterSubSpec, torso_lower: BipedLargeCenterSubSpec, + main: BipedLargeCenterSubSpec, } #[derive(Serialize, Deserialize)] struct BipedLargeCenterSubSpec { @@ -2592,6 +2593,27 @@ impl BipedLargeCenterSpec { generate_mesh(center, Vec3::from(spec.torso_lower.offset)) } + + pub fn mesh_main( + &self, + species: BLSpecies, + body_type: BLBodyType, + generate_mesh: impl FnOnce(Segment, Vec3) -> BoneMeshes, + ) -> BoneMeshes { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No main weapon specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let center = graceful_load_segment(&spec.main.center.0); + + generate_mesh(center, Vec3::from(spec.main.offset)) + } } impl BipedLargeLateralSpec { pub fn load_watched(indicator: &mut ReloadIndicator) -> Arc { diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index ee0c0c96ee..d6ffc7f935 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -652,7 +652,7 @@ impl FigureMgr { .and_then(|l| l.active_item.as_ref()) .map(|i| &i.item.kind); let active_tool_kind = if let Some(ItemKind::Tool(tool)) = active_item_kind { - Some(tool.kind) + Some(tool.kind.clone()) } else { None }; @@ -662,7 +662,7 @@ impl FigureMgr { .map(|i| &i.item.kind); let second_tool_kind = if let Some(ItemKind::Tool(tool)) = second_item_kind { - Some(tool.kind) + Some(tool.kind.clone()) } else { None }; @@ -701,7 +701,12 @@ impl FigureMgr { // Standing (true, false, _) => anim::character::StandAnimation::update_skeleton( &CharacterSkeleton::new(), - (active_tool_kind, second_tool_kind, time, state.avg_vel), + ( + active_tool_kind.clone(), + second_tool_kind.clone(), + time, + state.avg_vel, + ), state.state_time, &mut state_animation_rate, skeleton_attr, @@ -710,8 +715,8 @@ impl FigureMgr { (true, true, _) => anim::character::RunAnimation::update_skeleton( &CharacterSkeleton::new(), ( - active_tool_kind, - second_tool_kind, + active_tool_kind.clone(), + second_tool_kind.clone(), vel.0, ori, state.last_ori, @@ -726,8 +731,8 @@ impl FigureMgr { (false, _, false) => anim::character::JumpAnimation::update_skeleton( &CharacterSkeleton::new(), ( - active_tool_kind, - second_tool_kind, + active_tool_kind.clone(), + second_tool_kind.clone(), ori, state.last_ori, time, @@ -740,8 +745,8 @@ impl FigureMgr { (false, _, true) => anim::character::SwimAnimation::update_skeleton( &CharacterSkeleton::new(), ( - active_tool_kind, - second_tool_kind, + active_tool_kind.clone(), + second_tool_kind.clone(), vel.0, ori, state.last_ori, @@ -1057,7 +1062,7 @@ impl FigureMgr { (true, true, false) => { anim::quadruped_small::RunAnimation::update_skeleton( &QuadrupedSmallSkeleton::new(), - (vel.0.magnitude(), time, state.avg_vel), + (vel.0.magnitude(), ori, state.last_ori, time, state.avg_vel), state.state_time, &mut state_animation_rate, skeleton_attr, @@ -1071,11 +1076,29 @@ impl FigureMgr { &mut state_animation_rate, skeleton_attr, ), + _ => anim::quadruped_small::IdleAnimation::update_skeleton( + &QuadrupedSmallSkeleton::new(), + time, + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ), + }; + let target_bones = match &character { + CharacterState::Sit { .. } => { + anim::quadruped_small::FeedAnimation::update_skeleton( + &target_base, + time, + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ) + }, // TODO! - _ => state.skeleton_mut().clone(), + _ => target_base, }; - state.skeleton.interpolate(&target_base, dt); + state.skeleton.interpolate(&target_bones, dt); state.update( renderer, pos.0, @@ -1342,12 +1365,29 @@ impl FigureMgr { &mut state_animation_rate, skeleton_attr, ), - + _ => anim::bird_medium::IdleAnimation::update_skeleton( + &BirdMediumSkeleton::new(), + time, + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ), + }; + let target_bones = match &character { + CharacterState::Sit { .. } => { + anim::bird_medium::FeedAnimation::update_skeleton( + &target_base, + time, + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ) + }, // TODO! - _ => state.skeleton_mut().clone(), + _ => target_base, }; - state.skeleton.interpolate(&target_base, dt); + state.skeleton.interpolate(&target_bones, dt); state.update( renderer, pos.0, @@ -1481,7 +1521,7 @@ impl FigureMgr { // Running (true, true, false) => anim::dragon::RunAnimation::update_skeleton( &DragonSkeleton::new(), - (vel.0.magnitude(), time), + (vel.0.magnitude(), ori, state.last_ori, time, state.avg_vel), state.state_time, &mut state_animation_rate, skeleton_attr, @@ -1494,7 +1534,6 @@ impl FigureMgr { &mut state_animation_rate, skeleton_attr, ), - // TODO! _ => state.skeleton_mut().clone(), }; @@ -1798,12 +1837,29 @@ impl FigureMgr { &mut state_animation_rate, skeleton_attr, ), - + _ => anim::biped_large::IdleAnimation::update_skeleton( + &BipedLargeSkeleton::new(), + time, + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ), + }; + let target_bones = match &character { + CharacterState::Wielding { .. } => { + anim::biped_large::WieldAnimation::update_skeleton( + &target_base, + (vel.0.magnitude(), time), + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ) + }, // TODO! - _ => state.skeleton_mut().clone(), + _ => target_base, }; - state.skeleton.interpolate(&target_base, dt); + state.skeleton.interpolate(&target_bones, dt); state.update( renderer, pos.0, diff --git a/voxygen/src/scene/simple.rs b/voxygen/src/scene/simple.rs index cd2fdf01d2..a3d9e74975 100644 --- a/voxygen/src/scene/simple.rs +++ b/voxygen/src/scene/simple.rs @@ -269,7 +269,7 @@ impl Scene { .map(|i| &i.item.kind); let active_tool_kind = if let Some(ItemKind::Tool(tool)) = active_item_kind { - Some(tool.kind) + Some(tool.kind.clone()) } else { None }; @@ -279,7 +279,7 @@ impl Scene { .map(|i| &i.item.kind); let second_tool_kind = if let Some(ItemKind::Tool(tool)) = second_item_kind { - Some(tool.kind) + Some(tool.kind.clone()) } else { None }; diff --git a/voxygen/src/session.rs b/voxygen/src/session.rs index 2718d7c561..c1b1e91f9c 100644 --- a/voxygen/src/session.rs +++ b/voxygen/src/session.rs @@ -75,10 +75,11 @@ impl SessionState { let walk_forward_dir = scene.camera().forward_xy(); let walk_right_dir = scene.camera().right_xy(); + Self { scene, client, - key_state: KeyState::new(), + key_state: KeyState::default(), inputs: comp::ControllerInputs::default(), hud, selected_block: Block::new(BlockKind::Normal, Rgb::broadcast(255)), @@ -97,9 +98,7 @@ impl SessionState { self.hud.auto_walk(false); self.key_state.auto_walk = false; } -} -impl SessionState { /// Tick the session (and the client attached to it). fn tick(&mut self, dt: Duration, global_state: &mut GlobalState) -> Result { self.inputs.tick(dt); @@ -366,6 +365,7 @@ impl PlayState for SessionState { if state != self.key_state.toggle_sit => { self.key_state.toggle_sit = state; + if state { self.stop_auto_walk(); self.client.borrow_mut().toggle_sit(); @@ -487,41 +487,47 @@ impl PlayState for SessionState { } } }, - Event::InputUpdate(GameInput::Interact, state) => { - let mut client = self.client.borrow_mut(); + Event::InputUpdate(GameInput::Interact, state) + if state != self.key_state.collect => + { + self.key_state.collect = state; - // Collect terrain sprites - if let Some(select_pos) = self.scene.select_pos() { - client.collect_block(select_pos); - } + if state { + let mut client = self.client.borrow_mut(); - // Collect lootable entities - let player_pos = client - .state() - .read_storage::() - .get(client.entity()) - .copied(); + // Collect terrain sprites + if let Some(select_pos) = self.scene.select_pos() { + client.collect_block(select_pos); + } - if let (Some(player_pos), true) = (player_pos, state) { - let entity = ( - &client.state().ecs().entities(), - &client.state().ecs().read_storage::(), - &client.state().ecs().read_storage::(), - ) - .join() - .filter(|(_, pos, _)| { - pos.0.distance_squared(player_pos.0) < MAX_PICKUP_RANGE_SQR - }) - .min_by_key(|(_, pos, _)| { - (pos.0.distance_squared(player_pos.0) * 1000.0) as i32 - }) - .map(|(entity, _, _)| entity); + // Collect lootable entities + let player_pos = client + .state() + .read_storage::() + .get(client.entity()) + .copied(); - if let Some(entity) = entity { - client.pick_up(entity); + if let Some(player_pos) = player_pos { + let entity = ( + &client.state().ecs().entities(), + &client.state().ecs().read_storage::(), + &client.state().ecs().read_storage::(), + ) + .join() + .filter(|(_, pos, _)| { + pos.0.distance_squared(player_pos.0) < MAX_PICKUP_RANGE_SQR + }) + .min_by_key(|(_, pos, _)| { + (pos.0.distance_squared(player_pos.0) * 1000.0) as i32 + }) + .map(|(entity, _, _)| entity); + + if let Some(entity) = entity { + client.pick_up(entity); + } } } - }, + } /*Event::InputUpdate(GameInput::Charge, state) => { self.inputs.charge.set_state(state); },*/ diff --git a/voxygen/src/ui/mod.rs b/voxygen/src/ui/mod.rs index 9a20ae95a1..41d29d6ec3 100644 --- a/voxygen/src/ui/mod.rs +++ b/voxygen/src/ui/mod.rs @@ -90,11 +90,10 @@ pub struct Font(text::Font); impl assets::Asset for Font { const ENDINGS: &'static [&'static str] = &["ttf"]; - #[allow(clippy::redundant_clone)] // TODO: Pending review in #587 fn parse(mut buf_reader: BufReader) -> Result { let mut buf = Vec::new(); buf_reader.read_to_end(&mut buf)?; - Ok(Font(text::Font::from_bytes(buf.clone()).unwrap())) + Ok(Font(text::Font::from_bytes(buf).unwrap())) } } @@ -588,23 +587,25 @@ impl Ui { glyph_cache.queue_glyph(font_id.index(), glyph.clone()); } - glyph_cache - .cache_queued(|rect, data| { - let offset = [rect.min.x as u16, rect.min.y as u16]; - let size = [rect.width() as u16, rect.height() as u16]; + if let Err(err) = glyph_cache.cache_queued(|rect, data| { + let offset = [rect.min.x as u16, rect.min.y as u16]; + let size = [rect.width() as u16, rect.height() as u16]; - let new_data = data - .iter() - .map(|x| [255, 255, 255, *x]) - .collect::>(); + let new_data = data + .iter() + .map(|x| [255, 255, 255, *x]) + .collect::>(); - if let Err(err) = - renderer.update_texture(cache_tex, offset, size, &new_data) - { - warn!("Failed to update texture: {:?}", err); - } - }) - .unwrap(); + if let Err(err) = + renderer.update_texture(cache_tex, offset, size, &new_data) + { + warn!("Failed to update texture: {:?}", err); + } + }) { + warn!("Failed to cache queued glyphs: {:?}", err); + // Clear uncachable glyphs from the queue + glyph_cache.clear_queue(); + } let color = srgba_to_linear(color.to_fsa().into());