Merge branch 'pfau/hairstyles' into 'master'

Orc hairstyles, several tiny UI fixes, fixed beard warnings

See merge request veloren/veloren!808
This commit is contained in:
Monty Marz 2020-02-20 10:32:05 +00:00
commit 2afdebbe47
33 changed files with 312 additions and 135 deletions

View File

@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Configurable fonts - Configurable fonts
- Tanslation status tracking - Tanslation status tracking
- Added gamma setting - Added gamma setting
- Added new orc hairstyles
### Changed ### Changed

BIN
assets/voxygen/element/buttons/button.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/button_hover.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/buttons/button_press.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/frames/banner.vox (Stored with Git LFS)

Binary file not shown.

BIN
assets/voxygen/element/frames/banner_small_top.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/frames/banner_top.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/frames/esc_menu.vox (Stored with Git LFS)

Binary file not shown.

BIN
assets/voxygen/element/icons/elf_m.png (Stored with Git LFS)

Binary file not shown.

BIN
assets/voxygen/element/misc_bg/textbox_bot.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/misc_bg/textbox_mid.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/element/misc_bg/textbox_top.png (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
assets/voxygen/voxel/figure/hair/orc/female-0.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/hair/orc/female-1.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/hair/orc/female-2.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/hair/orc/female-3.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/hair/orc/female-4.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/hair/orc/female-5.vox (Stored with Git LFS) Normal file

Binary file not shown.

BIN
assets/voxygen/voxel/figure/hair/orc/female-6.vox (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

View File

@ -27,6 +27,7 @@
Some(("figure.hair.human.male-20", (-3, -4, -7))), Some(("figure.hair.human.male-20", (-3, -4, -7))),
], ],
beard: [ beard: [
None,
Some(("figure.beard.human.human-0", (4, 6, -2))), Some(("figure.beard.human.human-0", (4, 6, -2))),
Some(("figure.beard.human.human-1", (5, 10, -2))), Some(("figure.beard.human.human-1", (5, 10, -2))),
Some(("figure.beard.human.human-2", (3, 7, -3))), Some(("figure.beard.human.human-2", (3, 7, -3))),
@ -92,17 +93,24 @@
], ],
), ),
(Orc, Female): ( (Orc, Female): (
offset: (-8.0, -3.0, -6.0), offset: (-8.0, -2.5, -6.0),
head: ("figure.head.orc.female", (0, 2, 0)), head: ("figure.head.orc.female", (0, 1, 0)),
eyes: ("figure.eyes.orc.female-0", (3, 9, 2)), eyes: ("figure.eyes.orc.female-0", (3, 8, 2)),
hair: [ hair: [
Some(("figure.hair.orc.female", (5, -2, 0))), Some(("figure.hair.orc.female-0", (-2, -8, 0))),
Some(("figure.hair.orc.female-1", (-2, -8, 0))),
Some(("figure.hair.orc.female-2", (-2, -8, 0))),
Some(("figure.hair.orc.female-3", (-2, -8, -4))),
Some(("figure.hair.orc.female-4", (-2, -8, 0))),
Some(("figure.hair.orc.female-5", (-2, -8, -4))),
Some(("figure.hair.orc.female-6", (-2, -8, -4))),
], ],
beard: [None], beard: [None],
accessory: [ accessory: [
None, None,
Some(("figure.accessory.orc.earring-female-0", (2, 5, 1))), Some(("figure.accessory.orc.earring-female-0", (2, 4, 1))),
Some(("figure.accessory.orc.warpaint-female-0", (3, 5, 1))), Some(("figure.accessory.orc.warpaint-female-0", (-2, -4, -7))),
Some(("figure.accessory.orc.warpaint-female-1", (-2, -4, -7))),
], ],
), ),
(Elf, Male): ( (Elf, Male): (
@ -239,6 +247,7 @@
Some(("figure.hair.danari.male-1", (3, 1, 2))), Some(("figure.hair.danari.male-1", (3, 1, 2))),
], ],
beard: [ beard: [
None,
Some(("figure.beard.danari.danari-0", (4, 6, -1))), Some(("figure.beard.danari.danari-0", (4, 6, -1))),
], ],
accessory: [ accessory: [

Binary file not shown.

View File

@ -131,10 +131,10 @@ pub const DANARI_HAIR_COLORS: [(u8, u8, u8); 11] = [
//(228, 208, 147), // Gold Blonde //(228, 208, 147), // Gold Blonde
//(228, 223, 141), // Platinum Blonde //(228, 223, 141), // Platinum Blonde
(199, 131, 58), // Summer Blonde (199, 131, 58), // Summer Blonde
(107, 76, 51), // Oak Brown (107, 76, 51), // Oak Skin4
//(203, 154, 98), // Light Brown //(203, 154, 98), // Light Skin4
(64, 32, 18), // Chocolate Brown (64, 32, 18), // Skin7 Skin4
(86, 72, 71), // Ash Brown (86, 72, 71), // Ash Skin4
(57, 56, 61), // Raven Black (57, 56, 61), // Raven Black
(101, 83, 95), // Matte Purple (101, 83, 95), // Matte Purple
(101, 57, 90), // Witch Purple (101, 57, 90), // Witch Purple
@ -148,10 +148,10 @@ pub const DWARF_HAIR_COLORS: [(u8, u8, u8); 20] = [
(228, 208, 147), // Gold Blonde (228, 208, 147), // Gold Blonde
(228, 223, 141), // Platinum Blonde (228, 223, 141), // Platinum Blonde
(199, 131, 58), // Summer Blonde (199, 131, 58), // Summer Blonde
(107, 76, 51), // Oak Brown (107, 76, 51), // Oak Skin4
(203, 154, 98), // Light Brown (203, 154, 98), // Light Skin4
(64, 32, 18), // Chocolate Brown (64, 32, 18), // Skin7 Skin4
(86, 72, 71), // Ash Brown (86, 72, 71), // Ash Skin4
(57, 56, 61), // Raven Black (57, 56, 61), // Raven Black
(101, 83, 95), // Matte Purple (101, 83, 95), // Matte Purple
(101, 57, 90), // Witch Purple (101, 57, 90), // Witch Purple
@ -172,10 +172,10 @@ pub const ELF_HAIR_COLORS: [(u8, u8, u8); 23] = [
(228, 208, 147), // Gold Blonde (228, 208, 147), // Gold Blonde
(228, 223, 141), // Platinum Blonde (228, 223, 141), // Platinum Blonde
(199, 131, 58), // Summer Blonde (199, 131, 58), // Summer Blonde
(107, 76, 51), // Oak Brown (107, 76, 51), // Oak Skin4
(203, 154, 98), // Light Brown (203, 154, 98), // Light Skin4
(64, 32, 18), // Chocolate Brown (64, 32, 18), // Skin7 Skin4
(86, 72, 71), // Ash Brown (86, 72, 71), // Ash Skin4
(57, 56, 61), // Raven Black (57, 56, 61), // Raven Black
(101, 83, 95), // Matte Purple (101, 83, 95), // Matte Purple
(101, 57, 90), // Witch Purple (101, 57, 90), // Witch Purple
@ -195,10 +195,10 @@ pub const HUMAN_HAIR_COLORS: [(u8, u8, u8); 21] = [
(228, 208, 147), // Gold Blonde (228, 208, 147), // Gold Blonde
(228, 223, 141), // Platinum Blonde (228, 223, 141), // Platinum Blonde
(199, 131, 58), // Summer Blonde (199, 131, 58), // Summer Blonde
(107, 76, 51), // Oak Brown (107, 76, 51), // Oak Skin4
(203, 154, 98), // Light Brown (203, 154, 98), // Light Skin4
(64, 32, 18), // Chocolate Brown (64, 32, 18), // Skin7 Skin4
(86, 72, 71), // Ash Brown (86, 72, 71), // Ash Skin4
(57, 56, 61), // Raven Black (57, 56, 61), // Raven Black
(101, 83, 95), // Matte Purple (101, 83, 95), // Matte Purple
(101, 57, 90), // Witch Purple (101, 57, 90), // Witch Purple
@ -215,11 +215,11 @@ pub const HUMAN_HAIR_COLORS: [(u8, u8, u8); 21] = [
]; ];
pub const ORC_HAIR_COLORS: [(u8, u8, u8); 10] = [ pub const ORC_HAIR_COLORS: [(u8, u8, u8); 10] = [
(66, 66, 59), // Wise Grey (66, 66, 59), // Wise Grey
//(107, 76, 51), // Oak Brown //(107, 76, 51), // Oak Skin4
//(203, 154, 98), // Light Brown //(203, 154, 98), // Light Skin4
(64, 32, 18), // Chocolate Brown (64, 32, 18), // Skin7 Skin4
(54, 30, 26), // Dark Chocolate (54, 30, 26), // Dark Skin7
(86, 72, 71), // Ash Brown (86, 72, 71), // Ash Skin4
(57, 56, 61), // Raven Black (57, 56, 61), // Raven Black
(101, 83, 95), // Matte Purple (101, 83, 95), // Matte Purple
(101, 57, 90), // Witch Purple (101, 57, 90), // Witch Purple
@ -232,10 +232,10 @@ pub const UNDEAD_HAIR_COLORS: [(u8, u8, u8); 21] = [
(228, 208, 147), // Gold Blonde (228, 208, 147), // Gold Blonde
//(228, 223, 141), // Platinum Blonde //(228, 223, 141), // Platinum Blonde
(199, 131, 58), // Summer Blonde (199, 131, 58), // Summer Blonde
(107, 76, 51), // Oak Brown (107, 76, 51), // Oak Skin4
(203, 154, 98), // Light Brown (203, 154, 98), // Light Skin4
(64, 32, 18), // Chocolate Brown (64, 32, 18), // Skin7 Skin4
(86, 72, 71), // Ash Brown (86, 72, 71), // Ash Skin4
(57, 56, 61), // Raven Black (57, 56, 61), // Raven Black
(101, 83, 95), // Matte Purple (101, 83, 95), // Matte Purple
(101, 57, 90), // Witch Purple (101, 57, 90), // Witch Purple
@ -261,30 +261,59 @@ pub const DANARI_SKIN_COLORS: [Skin; 4] = [
Skin::DanariThree, Skin::DanariThree,
Skin::DanariFour, Skin::DanariFour,
]; ];
pub const DWARF_SKIN_COLORS: [Skin; 5] = [ pub const DWARF_SKIN_COLORS: [Skin; 14] = [
Skin::Pale, Skin::Skin1,
Skin::White, Skin::Skin2,
Skin::Tanned, Skin::Skin3,
Skin::Skin4,
Skin::Skin5,
Skin::Skin6,
Skin::Skin7,
Skin::Skin8,
Skin::Skin9,
Skin::Skin10,
Skin::Skin11,
Skin::Skin12,
Skin::Iron, Skin::Iron,
Skin::Steel, Skin::Steel,
]; ];
pub const ELF_SKIN_COLORS: [Skin; 7] = [ pub const ELF_SKIN_COLORS: [Skin; 14] = [
Skin::Pale, Skin::Skin1,
Skin::Skin2,
Skin::Skin3,
Skin::Skin5,
Skin::Skin6,
Skin::Skin7,
Skin::Skin8,
Skin::Skin9,
Skin::Skin10,
Skin::Skin11,
Skin::Skin12,
Skin::ElfOne, Skin::ElfOne,
Skin::ElfTwo, Skin::ElfTwo,
Skin::ElfThree, Skin::ElfThree,
Skin::White,
Skin::Tanned,
Skin::TannedBrown,
]; ];
pub const HUMAN_SKIN_COLORS: [Skin; 5] = [ pub const HUMAN_SKIN_COLORS: [Skin; 18] = [
Skin::Pale, Skin::Skin1,
Skin::White, Skin::Skin2,
Skin::Tanned, Skin::Skin3,
Skin::TannedBrown, Skin::Skin4,
Skin::TannedDarkBrown, Skin::Skin5,
Skin::Skin6,
Skin::Skin7,
Skin::Skin8,
Skin::Skin9,
Skin::Skin10,
Skin::Skin11,
Skin::Skin12,
Skin::Skin13,
Skin::Skin14,
Skin::Skin15,
Skin::Skin16,
Skin::Skin17,
Skin::Skin18,
]; ];
pub const ORC_SKIN_COLORS: [Skin; 4] = [Skin::OrcOne, Skin::OrcTwo, Skin::OrcThree, Skin::Brown]; pub const ORC_SKIN_COLORS: [Skin; 4] = [Skin::OrcOne, Skin::OrcTwo, Skin::OrcThree, Skin::OrcFour];
pub const UNDEAD_SKIN_COLORS: [Skin; 3] = [Skin::UndeadOne, Skin::UndeadTwo, Skin::UndeadThree]; pub const UNDEAD_SKIN_COLORS: [Skin; 3] = [Skin::UndeadOne, Skin::UndeadTwo, Skin::UndeadThree];
// Eye colors // Eye colors
@ -293,22 +322,31 @@ pub const DANARI_EYE_COLORS: [EyeColor; 3] = [
EyeColor::LoyalBrown, EyeColor::LoyalBrown,
EyeColor::ViciousRed, EyeColor::ViciousRed,
]; ];
pub const DWARF_EYE_COLORS: [EyeColor; 3] = [ pub const DWARF_EYE_COLORS: [EyeColor; 4] = [
EyeColor::CuriousGreen, EyeColor::CuriousGreen,
EyeColor::LoyalBrown, EyeColor::LoyalBrown,
EyeColor::NobleBlue, EyeColor::NobleBlue,
EyeColor::CornflowerBlue,
]; ];
pub const ELF_EYE_COLORS: [EyeColor; 3] = [ pub const ELF_EYE_COLORS: [EyeColor; 4] = [
EyeColor::NobleBlue, EyeColor::NobleBlue,
EyeColor::CornflowerBlue,
EyeColor::CuriousGreen, EyeColor::CuriousGreen,
EyeColor::LoyalBrown, EyeColor::LoyalBrown,
]; ];
pub const HUMAN_EYE_COLORS: [EyeColor; 3] = [ pub const HUMAN_EYE_COLORS: [EyeColor; 4] = [
EyeColor::NobleBlue, EyeColor::NobleBlue,
EyeColor::CornflowerBlue,
EyeColor::CuriousGreen, EyeColor::CuriousGreen,
EyeColor::LoyalBrown, EyeColor::LoyalBrown,
]; ];
pub const ORC_EYE_COLORS: [EyeColor; 2] = [EyeColor::LoyalBrown, EyeColor::ExoticPurple]; pub const ORC_EYE_COLORS: [EyeColor; 5] = [
EyeColor::LoyalBrown,
EyeColor::ExoticPurple,
EyeColor::AmberOrange,
EyeColor::PineGreen,
EyeColor::CornflowerBlue,
];
pub const UNDEAD_EYE_COLORS: [EyeColor; 5] = [ pub const UNDEAD_EYE_COLORS: [EyeColor; 5] = [
EyeColor::ViciousRed, EyeColor::ViciousRed,
EyeColor::PumpkinOrange, EyeColor::PumpkinOrange,
@ -365,7 +403,7 @@ impl Race {
self.skin_colors() self.skin_colors()
.get(val as usize) .get(val as usize)
.copied() .copied()
.unwrap_or(Skin::Tanned) .unwrap_or(Skin::Skin3)
} }
pub fn num_skin_colors(self) -> u8 { self.skin_colors().len() as u8 } pub fn num_skin_colors(self) -> u8 { self.skin_colors().len() as u8 }
@ -389,7 +427,7 @@ impl Race {
(Race::Elf, BodyType::Male) => 4, (Race::Elf, BodyType::Male) => 4,
(Race::Human, BodyType::Female) => 19, (Race::Human, BodyType::Female) => 19,
(Race::Human, BodyType::Male) => 17, (Race::Human, BodyType::Male) => 17,
(Race::Orc, BodyType::Female) => 1, (Race::Orc, BodyType::Female) => 7,
(Race::Orc, BodyType::Male) => 8, (Race::Orc, BodyType::Male) => 8,
(Race::Undead, BodyType::Female) => 4, (Race::Undead, BodyType::Female) => 4,
(Race::Undead, BodyType::Male) => 3, (Race::Undead, BodyType::Male) => 3,
@ -406,7 +444,7 @@ impl Race {
(Race::Elf, BodyType::Male) => 1, (Race::Elf, BodyType::Male) => 1,
(Race::Human, BodyType::Female) => 1, (Race::Human, BodyType::Female) => 1,
(Race::Human, BodyType::Male) => 1, (Race::Human, BodyType::Male) => 1,
(Race::Orc, BodyType::Female) => 3, (Race::Orc, BodyType::Female) => 4,
(Race::Orc, BodyType::Male) => 5, (Race::Orc, BodyType::Male) => 5,
(Race::Undead, BodyType::Female) => 1, (Race::Undead, BodyType::Female) => 1,
(Race::Undead, BodyType::Male) => 1, (Race::Undead, BodyType::Male) => 1,
@ -534,6 +572,10 @@ pub enum EyeColor {
MagicPurple = 7, MagicPurple = 7,
ToxicGreen = 8, ToxicGreen = 8,
ExoticPurple = 9, ExoticPurple = 9,
SulfurYellow = 10,
AmberOrange = 11,
PineGreen = 12,
CornflowerBlue = 13,
} }
impl EyeColor { impl EyeColor {
pub fn light_rgb(self) -> Rgb<u8> { pub fn light_rgb(self) -> Rgb<u8> {
@ -548,6 +590,10 @@ impl EyeColor {
EyeColor::MagicPurple => Rgb::new(137, 4, 177), EyeColor::MagicPurple => Rgb::new(137, 4, 177),
EyeColor::ToxicGreen => Rgb::new(1, 223, 1), EyeColor::ToxicGreen => Rgb::new(1, 223, 1),
EyeColor::ExoticPurple => Rgb::new(95, 32, 111), EyeColor::ExoticPurple => Rgb::new(95, 32, 111),
EyeColor::SulfurYellow => Rgb::new(235, 198, 94),
EyeColor::AmberOrange => Rgb::new(137, 46, 1),
EyeColor::PineGreen => Rgb::new(0, 78, 56),
EyeColor::CornflowerBlue => Rgb::new(18, 66, 90),
} }
} }
@ -563,6 +609,10 @@ impl EyeColor {
EyeColor::MagicPurple => Rgb::new(110, 3, 143), EyeColor::MagicPurple => Rgb::new(110, 3, 143),
EyeColor::ToxicGreen => Rgb::new(1, 185, 1), EyeColor::ToxicGreen => Rgb::new(1, 185, 1),
EyeColor::ExoticPurple => Rgb::new(69, 23, 80), EyeColor::ExoticPurple => Rgb::new(69, 23, 80),
EyeColor::SulfurYellow => Rgb::new(209, 176, 84),
EyeColor::AmberOrange => Rgb::new(112, 40, 1),
EyeColor::PineGreen => Rgb::new(0, 54, 38),
EyeColor::CornflowerBlue => Rgb::new(13, 47, 64),
} }
} }
@ -580,12 +630,12 @@ pub const ALL_ACCESSORIES: [Accessory; 2] = [Accessory::Nothing, Accessory::Some
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[repr(u32)] #[repr(u32)]
pub enum Skin { pub enum Skin {
Pale = 0, Skin1 = 0,
White = 1, Skin2 = 1,
Tanned = 2, Skin3 = 2,
Brown = 3, Skin4 = 3,
TannedBrown = 4, Skin5 = 4,
TannedDarkBrown = 5, Skin6 = 5,
Iron = 6, Iron = 6,
Steel = 7, Steel = 7,
DanariOne = 8, DanariOne = 8,
@ -601,16 +651,41 @@ pub enum Skin {
UndeadOne = 18, UndeadOne = 18,
UndeadTwo = 19, UndeadTwo = 19,
UndeadThree = 20, UndeadThree = 20,
Skin7 = 21,
Skin8 = 22,
Skin9 = 23,
Skin10 = 24,
Skin11 = 25,
Skin12 = 26,
Skin13 = 27,
Skin14 = 28,
Skin15 = 29,
Skin16 = 30,
Skin17 = 31,
Skin18 = 32,
OrcFour = 33,
} }
impl Skin { impl Skin {
pub fn rgb(self) -> Rgb<u8> { pub fn rgb(self) -> Rgb<u8> {
let color = match self { let color = match self {
Self::Pale => (252, 211, 179), Self::Skin1 => (255, 229, 200),
Self::White => (253, 195, 164), Self::Skin2 => (255, 218, 190),
Self::Tanned => (222, 181, 151), Self::Skin3 => (255, 206, 180),
Self::Brown => (123, 80, 45), Self::Skin4 => (255, 195, 170),
Self::TannedBrown => (135, 70, 50), Self::Skin5 => (240, 184, 160),
Self::TannedDarkBrown => (116, 61, 43), Self::Skin6 => (225, 172, 150),
Self::Skin7 => (210, 161, 140),
Self::Skin8 => (195, 149, 130),
Self::Skin9 => (180, 138, 120),
Self::Skin10 => (165, 126, 110),
Self::Skin11 => (150, 114, 100),
Self::Skin12 => (135, 103, 90),
Self::Skin13 => (120, 92, 80),
Self::Skin14 => (105, 80, 70),
Self::Skin15 => (90, 69, 60),
Self::Skin16 => (75, 57, 50),
Self::Skin17 => (60, 46, 40),
Self::Skin18 => (45, 34, 30),
Self::Iron => (135, 113, 95), Self::Iron => (135, 113, 95),
Self::Steel => (108, 94, 86), Self::Steel => (108, 94, 86),
Self::DanariOne => (104, 168, 196), Self::DanariOne => (104, 168, 196),
@ -623,6 +698,7 @@ impl Skin {
Self::OrcOne => (61, 130, 42), Self::OrcOne => (61, 130, 42),
Self::OrcTwo => (82, 117, 36), Self::OrcTwo => (82, 117, 36),
Self::OrcThree => (71, 94, 42), Self::OrcThree => (71, 94, 42),
Self::OrcFour => (97, 54, 29),
Self::UndeadOne => (240, 243, 239), Self::UndeadOne => (240, 243, 239),
Self::UndeadTwo => (178, 178, 178), Self::UndeadTwo => (178, 178, 178),
Self::UndeadThree => (145, 135, 121), Self::UndeadThree => (145, 135, 121),
@ -632,12 +708,24 @@ impl Skin {
pub fn light_rgb(self) -> Rgb<u8> { pub fn light_rgb(self) -> Rgb<u8> {
let color = match self { let color = match self {
Self::Pale => (255, 227, 193), Self::Skin1 => (255, 229, 200),
Self::White => (255, 210, 180), Self::Skin2 => (255, 218, 190),
Self::Tanned => (239, 197, 164), Self::Skin3 => (255, 206, 180),
Self::Brown => (150, 104, 68), Self::Skin4 => (255, 195, 170),
Self::TannedBrown => (148, 85, 64), Self::Skin5 => (240, 184, 160),
Self::TannedDarkBrown => (132, 74, 56), Self::Skin6 => (225, 172, 150),
Self::Skin7 => (210, 161, 140),
Self::Skin8 => (195, 149, 130),
Self::Skin9 => (180, 138, 120),
Self::Skin10 => (165, 126, 110),
Self::Skin11 => (150, 114, 100),
Self::Skin12 => (135, 103, 90),
Self::Skin13 => (120, 92, 80),
Self::Skin14 => (105, 80, 70),
Self::Skin15 => (90, 69, 60),
Self::Skin16 => (75, 57, 50),
Self::Skin17 => (60, 46, 40),
Self::Skin18 => (45, 34, 30),
Self::Iron => (144, 125, 106), Self::Iron => (144, 125, 106),
Self::Steel => (120, 107, 99), Self::Steel => (120, 107, 99),
Self::DanariOne => (116, 176, 208), Self::DanariOne => (116, 176, 208),
@ -650,6 +738,7 @@ impl Skin {
Self::OrcOne => (83, 165, 56), Self::OrcOne => (83, 165, 56),
Self::OrcTwo => (92, 132, 46), Self::OrcTwo => (92, 132, 46),
Self::OrcThree => (84, 110, 54), Self::OrcThree => (84, 110, 54),
Self::OrcFour => (97, 54, 29),
Self::UndeadOne => (254, 252, 251), Self::UndeadOne => (254, 252, 251),
Self::UndeadTwo => (190, 192, 191), Self::UndeadTwo => (190, 192, 191),
Self::UndeadThree => (160, 151, 134), Self::UndeadThree => (160, 151, 134),
@ -659,12 +748,24 @@ impl Skin {
pub fn dark_rgb(self) -> Rgb<u8> { pub fn dark_rgb(self) -> Rgb<u8> {
let color = match self { let color = match self {
Self::Pale => (229, 192, 163), Self::Skin1 => (242, 217, 189),
Self::White => (239, 179, 150), Self::Skin2 => (242, 207, 189),
Self::Tanned => (208, 167, 135), Self::Skin3 => (242, 197, 172),
Self::Brown => (106, 63, 30), Self::Skin4 => (242, 186, 162),
Self::TannedBrown => (122, 58, 40), Self::Skin5 => (212, 173, 150),
Self::TannedDarkBrown => (100, 47, 32), Self::Skin6 => (212, 163, 142),
Self::Skin7 => (196, 151, 132),
Self::Skin8 => (181, 139, 121),
Self::Skin9 => (168, 129, 113),
Self::Skin10 => (153, 117, 103),
Self::Skin11 => (138, 105, 92),
Self::Skin12 => (122, 93, 82),
Self::Skin13 => (107, 82, 72),
Self::Skin14 => (92, 70, 62),
Self::Skin15 => (77, 59, 51),
Self::Skin16 => (61, 47, 41),
Self::Skin17 => (48, 37, 32),
Self::Skin18 => (33, 25, 22),
Self::Iron => (124, 99, 82), Self::Iron => (124, 99, 82),
Self::Steel => (96, 81, 72), Self::Steel => (96, 81, 72),
Self::DanariOne => (92, 155, 183), Self::DanariOne => (92, 155, 183),
@ -677,6 +778,7 @@ impl Skin {
Self::OrcOne => (55, 114, 36), Self::OrcOne => (55, 114, 36),
Self::OrcTwo => (70, 104, 29), Self::OrcTwo => (70, 104, 29),
Self::OrcThree => (60, 83, 32), Self::OrcThree => (60, 83, 32),
Self::OrcFour => (84, 47, 25),
Self::UndeadOne => (229, 231, 230), Self::UndeadOne => (229, 231, 230),
Self::UndeadTwo => (165, 166, 164), Self::UndeadTwo => (165, 166, 164),
Self::UndeadThree => (130, 122, 106), Self::UndeadThree => (130, 122, 106),

View File

@ -2,13 +2,14 @@ use super::{img_ids::Imgs, settings_window::SettingsTab, TEXT_COLOR};
use crate::{i18n::VoxygenLocalization, ui::fonts::ConrodVoxygenFonts}; use crate::{i18n::VoxygenLocalization, ui::fonts::ConrodVoxygenFonts};
use conrod_core::{ use conrod_core::{
widget::{self, Button, Image}, widget::{self, Button, Image},
widget_ids, Labelable, Positionable, Sizeable, Widget, WidgetCommon, widget_ids, Color, Labelable, Positionable, Sizeable, Widget, WidgetCommon,
}; };
widget_ids! { widget_ids! {
struct Ids { struct Ids {
esc_bg, esc_bg,
fireplace, fireplace,
banner_top,
menu_button_1, menu_button_1,
menu_button_2, menu_button_2,
menu_button_3, menu_button_3,
@ -72,18 +73,25 @@ impl<'a> Widget for EscMenu<'a> {
let widget::UpdateArgs { state, ui, .. } = args; let widget::UpdateArgs { state, ui, .. } = args;
Image::new(self.imgs.esc_frame) Image::new(self.imgs.esc_frame)
.w_h(240.0, 440.0) .w_h(240.0, 380.0)
.color(Some(Color::Rgba(1.0, 1.0, 1.0, 0.9)))
.middle_of(ui.window) .middle_of(ui.window)
.set(state.ids.esc_bg, ui); .set(state.ids.esc_bg, ui);
Image::new(self.imgs.fireplace) Image::new(self.imgs.banner_top)
.w_h(210.0, 60.0) .w_h(250.0, 34.0)
.mid_top_with_margin_on(state.ids.esc_bg, 15.0) .mid_top_with_margin_on(state.ids.esc_bg, -34.0)
.set(state.ids.fireplace, ui); .set(state.ids.banner_top, ui);
/*Image::new(self.imgs.fireplace)
.w_h(210.0, 60.0)
.color(Some(Color::Rgba(1.0, 1.0, 1.0, 0.8)))
.mid_top_with_margin_on(state.ids.esc_bg, 5.0)
.set(state.ids.fireplace, ui);*/
// Resume // Resume
if Button::image(self.imgs.button) if Button::image(self.imgs.button)
.mid_bottom_with_margin_on(state.ids.fireplace, -55.0) .mid_bottom_with_margin_on(state.ids.banner_top, -60.0)
.w_h(210.0, 50.0) .w_h(210.0, 50.0)
.hover_image(self.imgs.button_hover) .hover_image(self.imgs.button_hover)
.press_image(self.imgs.button_press) .press_image(self.imgs.button_press)

View File

@ -113,6 +113,9 @@ image_ids! {
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
<VoxelPixArtGraphic> <VoxelPixArtGraphic>
// Esc-Menu
fireplace: "voxygen.element.misc_bg.fireplace",
// Skill Icons // Skill Icons
twohsword_m1: "voxygen.element.icons.2hsword_m1", twohsword_m1: "voxygen.element.icons.2hsword_m1",
twohsword_m2: "voxygen.element.icons.2hsword_m2", twohsword_m2: "voxygen.element.icons.2hsword_m2",
@ -233,11 +236,6 @@ image_ids! {
close_button_hover: "voxygen.element.buttons.x_hover", close_button_hover: "voxygen.element.buttons.x_hover",
close_button_press: "voxygen.element.buttons.x_press", close_button_press: "voxygen.element.buttons.x_press",
// Esc-Menu
fireplace: "voxygen.element.misc_bg.fireplace",
button: "voxygen.element.buttons.button",
button_hover: "voxygen.element.buttons.button_hover",
button_press: "voxygen.element.buttons.button_press",
// Items // Items
potion_red: "voxygen.voxel.object.potion_red", potion_red: "voxygen.voxel.object.potion_red",
@ -263,6 +261,15 @@ image_ids! {
death_bg: "voxygen.background.death", death_bg: "voxygen.background.death",
hurt_bg: "voxygen.background.hurt", hurt_bg: "voxygen.background.hurt",
banner_top: "voxygen.element.frames.banner_top",
// Buttons
button: "voxygen.element.buttons.button",
button_hover: "voxygen.element.buttons.button_hover",
button_press: "voxygen.element.buttons.button_press",
// Enemy Healthbar // Enemy Healthbar
enemy_health: "voxygen.element.frames.enemybar", enemy_health: "voxygen.element.frames.enemybar",
enemy_health_bg: "voxygen.element.frames.enemybar_bg", enemy_health_bg: "voxygen.element.frames.enemybar_bg",

View File

@ -1343,6 +1343,7 @@ impl Hud {
.mid_bottom_with_margin_on(self.ids.intro_bg, 10.0) .mid_bottom_with_margin_on(self.ids.intro_bg, 10.0)
.label(&self.voxygen_i18n.get("common.close")) .label(&self.voxygen_i18n.get("common.close"))
.label_font_size(self.fonts.cyri.scale(20)) .label_font_size(self.fonts.cyri.scale(20))
.label_font_id(self.fonts.cyri.conrod_id)
.label_color(TEXT_COLOR) .label_color(TEXT_COLOR)
.hover_image(self.imgs.button_hover) .hover_image(self.imgs.button_hover)
.press_image(self.imgs.button_press) .press_image(self.imgs.button_press)
@ -1563,6 +1564,7 @@ impl Hud {
.press_image(self.imgs.button_press) .press_image(self.imgs.button_press)
.label(&self.voxygen_i18n.get("hud.show_tips")) .label(&self.voxygen_i18n.get("hud.show_tips"))
.label_font_size(self.fonts.cyri.scale(20)) .label_font_size(self.fonts.cyri.scale(20))
.label_font_id(self.fonts.cyri.conrod_id)
.label_color(TEXT_COLOR) .label_color(TEXT_COLOR)
.mid_bottom_with_margin_on(self.ids.help, 20.0) .mid_bottom_with_margin_on(self.ids.help, 20.0)
.set(self.ids.button_help3, ui_widgets) .set(self.ids.button_help3, ui_widgets)

View File

@ -164,10 +164,6 @@ widget_ids! {
image_ids! { image_ids! {
struct Imgs { struct Imgs {
<VoxelGraphic> <VoxelGraphic>
button: "voxygen.element.buttons.button",
button_hover: "voxygen.element.buttons.button_hover",
button_press: "voxygen.element.buttons.button_press",
name_input: "voxygen.element.misc_bg.textbox",
charlist_frame: "voxygen.element.frames.window_4", charlist_frame: "voxygen.element.frames.window_4",
server_frame: "voxygen.element.frames.server_frame", server_frame: "voxygen.element.frames.server_frame",
selection: "voxygen.element.frames.selection", selection: "voxygen.element.frames.selection",
@ -186,6 +182,8 @@ image_ids! {
<ImageGraphic> <ImageGraphic>
name_input: "voxygen.element.misc_bg.textbox_mid",
// Tool Icons // Tool Icons
daggers: "voxygen.element.icons.daggers", daggers: "voxygen.element.icons.daggers",
sword: "voxygen.element.icons.sword", sword: "voxygen.element.icons.sword",
@ -215,6 +213,11 @@ image_ids! {
icon_border_press: "voxygen.element.buttons.border_press", icon_border_press: "voxygen.element.buttons.border_press",
icon_border_pressed: "voxygen.element.buttons.border_pressed", icon_border_pressed: "voxygen.element.buttons.border_pressed",
<ImageGraphic>
button: "voxygen.element.buttons.button",
button_hover: "voxygen.element.buttons.button_hover",
button_press: "voxygen.element.buttons.button_press",
<BlankGraphic> <BlankGraphic>
nothing: (), nothing: (),
} }
@ -675,7 +678,9 @@ impl CharSelectionUi {
.press_image(self.imgs.button_press) .press_image(self.imgs.button_press)
.label(&self.voxygen_i18n.get("common.create")) .label(&self.voxygen_i18n.get("common.create"))
.label_font_id(self.fonts.cyri.conrod_id) .label_font_id(self.fonts.cyri.conrod_id)
.label_color(TEXT_COLOR) .label_color(
/* if self.mode { TEXT_COLOR } else { */ TEXT_COLOR, /* , } */
)
.label_font_size(self.fonts.cyri.scale(20)) .label_font_size(self.fonts.cyri.scale(20))
.label_y(conrod_core::position::Relative::Scalar(3.0)) .label_y(conrod_core::position::Relative::Scalar(3.0))
.set(self.ids.create_button, ui_widgets) .set(self.ids.create_button, ui_widgets)
@ -1027,10 +1032,6 @@ impl CharSelectionUi {
{ {
*tool = Some(STARTER_BOW); *tool = Some(STARTER_BOW);
} }
// REMOVE THIS AFTER IMPLEMENTATION
/*Rectangle::fill_with([67.0, 67.0], color::rgba(0.0, 0.0, 0.0, 0.8))
.middle_of(self.ids.bow)
.set(self.ids.bow_grey, ui_widgets);*/
// Staff // Staff
Image::new(self.imgs.staff) Image::new(self.imgs.staff)
.w_h(70.0, 70.0) .w_h(70.0, 70.0)
@ -1055,10 +1056,6 @@ impl CharSelectionUi {
{ {
*tool = Some(STARTER_STAFF); *tool = Some(STARTER_STAFF);
} }
// REMOVE THIS AFTER IMPLEMENTATION
/*Rectangle::fill_with([67.0, 67.0], color::rgba(0.0, 0.0, 0.0, 0.8))
.middle_of(self.ids.staff)
.set(self.ids.staff_grey, ui_widgets);*/
// Sword // Sword
Image::new(self.imgs.sword) Image::new(self.imgs.sword)
.w_h(70.0, 70.0) .w_h(70.0, 70.0)
@ -1254,8 +1251,8 @@ impl CharSelectionUi {
} else { } else {
Text::new(&self.voxygen_i18n.get("char_selection.beard")) Text::new(&self.voxygen_i18n.get("char_selection.beard"))
.mid_bottom_with_margin_on(self.ids.accessories_slider, -40.0) .mid_bottom_with_margin_on(self.ids.accessories_slider, -40.0)
.font_size(self.fonts.metamorph.scale(18)) .font_size(self.fonts.cyri.scale(18))
.font_id(self.fonts.metamorph.conrod_id) .font_id(self.fonts.cyri.conrod_id)
.color(TEXT_COLOR_2) .color(TEXT_COLOR_2)
.set(self.ids.beard_text, ui_widgets); .set(self.ids.beard_text, ui_widgets);
ImageSlider::discrete(5, 0, 10, self.imgs.nothing, self.imgs.slider_range) ImageSlider::discrete(5, 0, 10, self.imgs.nothing, self.imgs.slider_range)

View File

@ -76,18 +76,24 @@ image_ids! {
struct Imgs { struct Imgs {
<VoxelGraphic> <VoxelGraphic>
v_logo: "voxygen.element.v_logo", v_logo: "voxygen.element.v_logo",
input_bg: "voxygen.element.misc_bg.textbox",
button: "voxygen.element.buttons.button",
button_hover: "voxygen.element.buttons.button_hover",
button_press: "voxygen.element.buttons.button_press",
disclaimer: "voxygen.element.frames.disclaimer", disclaimer: "voxygen.element.frames.disclaimer",
info_frame: "voxygen.element.frames.info_frame_2", info_frame: "voxygen.element.frames.info_frame_2",
banner: "voxygen.element.frames.banner", banner: "voxygen.element.frames.banner",
banner_top: "voxygen.element.frames.banner_top",
banner_bottom: "voxygen.element.frames.banner_bottom", banner_bottom: "voxygen.element.frames.banner_bottom",
<ImageGraphic> <ImageGraphic>
bg: "voxygen.background.bg_main", bg: "voxygen.background.bg_main",
banner_top: "voxygen.element.frames.banner_top",
button: "voxygen.element.buttons.button",
button_hover: "voxygen.element.buttons.button_hover",
button_press: "voxygen.element.buttons.button_press",
input_bg_top: "voxygen.element.misc_bg.textbox_top",
//input_bg_mid: "voxygen.element.misc_bg.textbox_mid", <-- For password input
input_bg_bot: "voxygen.element.misc_bg.textbox_bot",
<BlankGraphic> <BlankGraphic>
nothing: (), nothing: (),
@ -324,14 +330,14 @@ impl MainMenuUi {
.set(self.ids.banner, ui_widgets); .set(self.ids.banner, ui_widgets);
Image::new(self.imgs.banner_top) Image::new(self.imgs.banner_top)
.w_h(65.0 * 6.0, 1.0 * 6.0) .w_h(70.0 * 6.0, 34.0)
.mid_top_with_margin_on(self.ids.banner, 0.0) .mid_top_with_margin_on(self.ids.banner, -34.0)
.set(self.ids.banner_top, ui_widgets); .set(self.ids.banner_top, ui_widgets);
// Logo // Logo
Image::new(self.imgs.v_logo) Image::new(self.imgs.v_logo)
.w_h(123.0 * 2.5, 35.0 * 2.5) .w_h(123.0 * 2.5, 35.0 * 2.5)
.mid_top_with_margin_on(self.ids.banner_top, 40.0) .mid_top_with_margin_on(self.ids.banner_top, 45.0)
.color(Some(Color::Rgba(1.0, 1.0, 1.0, 0.95))) .color(Some(Color::Rgba(1.0, 1.0, 1.0, 0.95)))
.set(self.ids.v_logo, ui_widgets); .set(self.ids.v_logo, ui_widgets);
@ -429,13 +435,13 @@ impl MainMenuUi {
Rectangle::fill_with([320.0, 50.0], color::rgba(0.0, 0.0, 0.0, 0.97)) Rectangle::fill_with([320.0, 50.0], color::rgba(0.0, 0.0, 0.0, 0.97))
.mid_top_with_margin_on(self.ids.banner_top, 160.0) .mid_top_with_margin_on(self.ids.banner_top, 160.0)
.set(self.ids.usrnm_bg, ui_widgets); .set(self.ids.usrnm_bg, ui_widgets);
Image::new(self.imgs.input_bg) Image::new(self.imgs.input_bg_top)
.w_h(337.0, 67.0) .w_h(337.0, 67.0)
.middle_of(self.ids.usrnm_bg) .middle_of(self.ids.usrnm_bg)
.set(self.ids.username_bg, ui_widgets); .set(self.ids.username_bg, ui_widgets);
for event in TextBox::new(&self.username) for event in TextBox::new(&self.username)
.w_h(290.0, 30.0) .w_h(290.0, 30.0)
.mid_bottom_with_margin_on(self.ids.username_bg, 44.0 / 2.0) .mid_bottom_with_margin_on(self.ids.username_bg, 38.0 / 2.0)
.font_size(self.fonts.cyri.scale(22)) .font_size(self.fonts.cyri.scale(22))
.font_id(self.fonts.cyri.conrod_id) .font_id(self.fonts.cyri.conrod_id)
.text_color(TEXT_COLOR) .text_color(TEXT_COLOR)
@ -459,7 +465,7 @@ impl MainMenuUi {
/*Rectangle::fill_with([320.0, 50.0], color::rgba(0.0, 0.0, 0.0, 0.97)) /*Rectangle::fill_with([320.0, 50.0], color::rgba(0.0, 0.0, 0.0, 0.97))
.down_from(self.ids.usrnm_bg, 30.0) .down_from(self.ids.usrnm_bg, 30.0)
.set(self.ids.passwd_bg, ui_widgets); .set(self.ids.passwd_bg, ui_widgets);
Image::new(self.imgs.input_bg) Image::new(self.imgs.input_bg_mid)
.w_h(337.0, 67.0) .w_h(337.0, 67.0)
.middle_of(self.ids.passwd_bg) .middle_of(self.ids.passwd_bg)
.color(Some(INACTIVE)) .color(Some(INACTIVE))
@ -552,13 +558,13 @@ impl MainMenuUi {
Rectangle::fill_with([320.0, 50.0], color::rgba(0.0, 0.0, 0.0, 0.97)) Rectangle::fill_with([320.0, 50.0], color::rgba(0.0, 0.0, 0.0, 0.97))
.down_from(self.ids.usrnm_bg, 30.0) .down_from(self.ids.usrnm_bg, 30.0)
.set(self.ids.srvr_bg, ui_widgets); .set(self.ids.srvr_bg, ui_widgets);
Image::new(self.imgs.input_bg) Image::new(self.imgs.input_bg_bot)
.w_h(337.0, 67.0) .w_h(337.0, 67.0)
.middle_of(self.ids.srvr_bg) .middle_of(self.ids.srvr_bg)
.set(self.ids.address_bg, ui_widgets); .set(self.ids.address_bg, ui_widgets);
for event in TextBox::new(&self.server_address) for event in TextBox::new(&self.server_address)
.w_h(290.0, 30.0) .w_h(290.0, 30.0)
.mid_bottom_with_margin_on(self.ids.address_bg, 44.0 / 2.0) .mid_top_with_margin_on(self.ids.address_bg, 28.0 / 2.0)
.font_size(self.fonts.cyri.scale(22)) .font_size(self.fonts.cyri.scale(22))
.font_id(self.fonts.cyri.conrod_id) .font_id(self.fonts.cyri.conrod_id)
.text_color(TEXT_COLOR) .text_color(TEXT_COLOR)