diff --git a/assets/common/items/debug/dungeon_purple-0.ron b/assets/common/items/debug/dungeon_purple-0.ron new file mode 100644 index 0000000000..e877374a9a --- /dev/null +++ b/assets/common/items/debug/dungeon_purple-0.ron @@ -0,0 +1,12 @@ +Item( + name: "Purple Admin Cape", + description: "Where did I put my banhammer again?", + kind: Armor( + ( + kind: Back("DungPurp0"), + stats: ( + protection: Invincible, + ), + ) + ), +) diff --git a/assets/common/items/weapons/hammer/cultist_purp_2h-0.ron b/assets/common/items/weapons/hammer/cultist_purp_2h-0.ron new file mode 100644 index 0000000000..b1cdc4a25d --- /dev/null +++ b/assets/common/items/weapons/hammer/cultist_purp_2h-0.ron @@ -0,0 +1,13 @@ +Item( + name: "Magical Cultist Warhammer", + description: "This belonged to an evil Cult Leader.", + kind: Tool( + ( + kind: Hammer("CultPurp0"), + stats: ( + equip_time_millis: 500, + power: 2.00, + ), + ) + ), +) diff --git a/assets/voxygen/audio/soundtrack.ron b/assets/voxygen/audio/soundtrack.ron index 07f57316bf..deacc2c074 100644 --- a/assets/voxygen/audio/soundtrack.ron +++ b/assets/voxygen/audio/soundtrack.ron @@ -9,6 +9,13 @@ length: 629.0, timing: Some(Day), artist: "https://www.youtube.com/watch?v=FwVTkB-BIvM", + ), + ( + title: "A Solemn Quest Day", + path: "voxygen.audio.ambient.a_solemn_quest", + length: 206.0, + timing: Some(Day), + artist: "Eden", ), ( title: "Into The Dark Forest", diff --git a/assets/voxygen/audio/soundtrack/a_solemn_quest.ogg b/assets/voxygen/audio/soundtrack/a_solemn_quest.ogg new file mode 100644 index 0000000000..f3e7b16c95 --- /dev/null +++ b/assets/voxygen/audio/soundtrack/a_solemn_quest.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03d18d9709710be041d9426681e3c43add2482fcb5075dbd67dbb0ef2c8c5132 +size 11626250 diff --git a/assets/voxygen/background/bg_9.png b/assets/voxygen/background/bg_9.png index dd6e2ac5b6..54b67e18d8 100644 --- a/assets/voxygen/background/bg_9.png +++ b/assets/voxygen/background/bg_9.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9ab7a56d699fc98ebb01d553d6c1d1736fea3ca639fee3fecf48e8a98947247c -size 899468 +oid sha256:6abf95dd5069525eaf35437efa09c0ba7c9bcb65ab50bba7a006fff825a2d675 +size 2782437 diff --git a/assets/voxygen/background/bg_main.png b/assets/voxygen/background/bg_main.png index 54b67e18d8..7bc1ca0499 100644 --- a/assets/voxygen/background/bg_main.png +++ b/assets/voxygen/background/bg_main.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6abf95dd5069525eaf35437efa09c0ba7c9bcb65ab50bba7a006fff825a2d675 -size 2782437 +oid sha256:131106ba0e9fb5fd1aad22725611d3911bd094d87573d680dc3aea5232cc0620 +size 1803337 diff --git a/assets/voxygen/element/help.png b/assets/voxygen/element/help.png index 68c382b3f6..9dc6699892 100644 --- a/assets/voxygen/element/help.png +++ b/assets/voxygen/element/help.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8bf2944cf39261d9f32fab48e9194e874e5ec93f31cdf8a039e14764395c1b6b -size 16021 +oid sha256:6cfd63e171326af7b6d7561208b85dec5c2abe9111109a3808ea5942b09d5319 +size 22160 diff --git a/assets/voxygen/i18n/de_DE.ron b/assets/voxygen/i18n/de_DE.ron index 86f73364f8..bf96a3e9b5 100644 --- a/assets/voxygen/i18n/de_DE.ron +++ b/assets/voxygen/i18n/de_DE.ron @@ -384,7 +384,7 @@ magischen Gegenstände ergattern?"#, "gameinput.wallleap": "Wandsprung", "gameinput.togglelantern": "Laterne ein-/ausschalten", "gameinput.mount": "Aufsteigen", - "gameinput.enter": "Betreten", + "gameinput.chat": "Chat", "gameinput.command": "Befehl", "gameinput.escape": "Escape", "gameinput.map": "Karte", @@ -403,6 +403,10 @@ magischen Gegenstände ergattern?"#, "gameinput.declinegroupinvite": "Ablehnen", "gameinput.acceptgroupinvite": "Annehmen", "gameinput.select": "Auswählen", + "gameinput.crafting": "Crafting", + "gameinput.sneak": "Schleichen", + "gameinput.swimdown": "Abwärts Tauchen", + "gameinput.swimup": "Aufwärts Schwimmen", /// End GameInput section diff --git a/assets/voxygen/i18n/en.ron b/assets/voxygen/i18n/en.ron index a9272a153e..6eb69f292f 100644 --- a/assets/voxygen/i18n/en.ron +++ b/assets/voxygen/i18n/en.ron @@ -385,7 +385,7 @@ magically infused items?"#, "gameinput.wallleap": "Wall Leap", "gameinput.togglelantern": "Toggle Lantern", "gameinput.mount": "Mount", - "gameinput.enter": "Enter", + "gameinput.chat": "Chat", "gameinput.command": "Command", "gameinput.escape": "Escape", "gameinput.map": "Map", @@ -404,6 +404,10 @@ magically infused items?"#, "gameinput.select": "Select Entity", "gameinput.acceptgroupinvite": "Accept Group Invite", "gameinput.declinegroupinvite": "Decline Group Invite", + "gameinput.crafting": "Crafting", + "gameinput.sneak": "Sneak", + "gameinput.swimdown": "Dive downwards", + "gameinput.swimup": "Swim upwards", /// End GameInput section diff --git a/assets/voxygen/item_image_manifest.ron b/assets/voxygen/item_image_manifest.ron index 7bfa8a6c2f..77d2638409 100644 --- a/assets/voxygen/item_image_manifest.ron +++ b/assets/voxygen/item_image_manifest.ron @@ -480,6 +480,10 @@ "voxel.weapon.hammer.2hhammer_mjolnir", (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, ), + Tool(Hammer("CultPurp0")): VoxTrans( + "voxel.weapon.hammer.cult_purp-0", + (2.0, -1.0, 0.0), (-135.0, 90.0, 0.0), 1.1, + ), // Staffs Tool(Staff("BasicStaff")): VoxTrans( "voxel.weapon.staff.firestaff_starter", diff --git a/assets/voxygen/shaders/particle-frag.glsl b/assets/voxygen/shaders/particle-frag.glsl index 3d730f7a50..ebbc8e1786 100644 --- a/assets/voxygen/shaders/particle-frag.glsl +++ b/assets/voxygen/shaders/particle-frag.glsl @@ -34,5 +34,5 @@ void main() { vec3 fog_color = get_sky_color(normalize(f_pos - cam_pos.xyz), time_of_day.x, cam_pos.xyz, f_pos, 0.5, true, clouds); vec3 color = mix(mix(surf_color, fog_color, fog_level), clouds.rgb, clouds.a); - tgt_color = vec4(color, 1.0 - clamp((distance(focus_pos.xy, f_pos.xy) - (1000.0 - FADE_DIST)) / FADE_DIST, 0, 1)); + tgt_color = vec4(color, 0.3); } diff --git a/assets/voxygen/shaders/particle-vert.glsl b/assets/voxygen/shaders/particle-vert.glsl index 10fd626140..14a597d429 100644 --- a/assets/voxygen/shaders/particle-vert.glsl +++ b/assets/voxygen/shaders/particle-vert.glsl @@ -55,6 +55,10 @@ float exp_scale(float factor) { return 1 / (1 - lifetime * factor); } +float linear_scale(float factor) { + return lifetime * factor; +} + void main() { float rand0 = hash(vec4(inst_entropy + 0)); float rand1 = hash(vec4(inst_entropy + 1)); @@ -70,10 +74,10 @@ void main() { if (inst_mode == SMOKE) { attr = Attr( linear_motion( - vec3(rand0 * 0.25, rand1 * 0.25, 1.7 + rand5), - vec3(rand2 * 0.2, rand3 * 0.2, 1.0 + rand4 * 0.5)// + vec3(sin(lifetime), sin(lifetime + 1.5), sin(lifetime * 4) * 0.25) + vec3(0.0, 0.0, 0.0), + vec3(rand2 * 0.1, rand3 * 0.1, 1.0 + rand4 * 0.1)// + vec3(sin(lifetime), sin(lifetime + 1.5), sin(lifetime * 4) * 0.25) ), - exp_scale(-0.2), + linear_scale(0.5), vec3(1) ); } else if (inst_mode == FIRE) { diff --git a/assets/voxygen/voxel/figure/accessory/orc/male_eyepatch.vox b/assets/voxygen/voxel/figure/accessory/orc/male_eyepatch.vox new file mode 100644 index 0000000000..5ea825ae0a --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/orc/male_eyepatch.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7a3e1cacba8ff0a8ac3c91e85c4d3f3e92dcc3c699a629a84730aed6f3451b8b +size 1192 diff --git a/assets/voxygen/voxel/figure/accessory/undead/female_eyepatch.vox b/assets/voxygen/voxel/figure/accessory/undead/female_eyepatch.vox new file mode 100644 index 0000000000..ea5af4024e --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/undead/female_eyepatch.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7729c594f1f83fa8952827dfea766a6052ef191ee1c36fb30a01b1375ebab540 +size 1224 diff --git a/assets/voxygen/voxel/figure/accessory/undead/male_eyepatch.vox b/assets/voxygen/voxel/figure/accessory/undead/male_eyepatch.vox new file mode 100644 index 0000000000..5ed9d52354 --- /dev/null +++ b/assets/voxygen/voxel/figure/accessory/undead/male_eyepatch.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:922d12840831ac4976e5c1fd6445f67625a39cdf9320961935c3d83dcb94afa1 +size 1192 diff --git a/assets/voxygen/voxel/humanoid_head_manifest.ron b/assets/voxygen/voxel/humanoid_head_manifest.ron index 95abf4652a..7308e4b5f3 100644 --- a/assets/voxygen/voxel/humanoid_head_manifest.ron +++ b/assets/voxygen/voxel/humanoid_head_manifest.ron @@ -108,6 +108,7 @@ Some(("figure.accessory.orc.teeth-1", (5, 11, 3))), Some(("figure.accessory.orc.teeth-2", (5, 11, 3))), Some(("figure.accessory.orc.warpaint-male-0", (0, 4, 3))), + Some(("figure.accessory.orc.male_eyepatch", (0, 3, 0))), ], ), (Orc, Female): ( @@ -302,7 +303,8 @@ ], beard: [None], accessory: [ - None] + None, + Some(("figure.accessory.undead.male_eyepatch", (0, 1, 0))),] ), (Undead, Female): ( offset: (-5.0, -4.0, -6.75), @@ -322,7 +324,8 @@ ], beard: [None], accessory: [ - None] + None, + Some(("figure.accessory.undead.female_eyepatch", (0, 1, -1))),] ), (Danari, Male): ( offset: (-9.0, -4.0, -7.5), diff --git a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron index f9269bbe00..96bec81511 100644 --- a/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron +++ b/assets/voxygen/voxel/humanoid_main_weapon_manifest.ron @@ -425,6 +425,10 @@ vox_spec: ("weapon.hammer.2hhammer_mjolnir", (-2.5, -8.5, -4.0)), color: None ), + Hammer("CultPurp0"): ( + vox_spec: ("weapon.hammer.cult_purp-0", (-3.5, -4.5, -5.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 diff --git a/assets/voxygen/voxel/weapon/hammer/cult_purp-0.vox b/assets/voxygen/voxel/weapon/hammer/cult_purp-0.vox new file mode 100644 index 0000000000..d291dbb76b --- /dev/null +++ b/assets/voxygen/voxel/weapon/hammer/cult_purp-0.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8f27d01ee0753187f94dffe44aa0bd957dd02b9b674dad122e48eec4fd0a971 +size 2648 diff --git a/assets/voxygen/voxel/weapon/projectile/multi-arrow.vox b/assets/voxygen/voxel/weapon/projectile/multi-arrow.vox new file mode 100644 index 0000000000..8fd61a5e1e --- /dev/null +++ b/assets/voxygen/voxel/weapon/projectile/multi-arrow.vox @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9604eb8bf5715e577e23208a92b501f195bb48c5411cc041dc7d52762b21ccf5 +size 1300 diff --git a/common/src/comp/body/humanoid.rs b/common/src/comp/body/humanoid.rs index 3785be2dbb..ff1276da72 100644 --- a/common/src/comp/body/humanoid.rs +++ b/common/src/comp/body/humanoid.rs @@ -441,9 +441,9 @@ impl Species { (Species::Human, BodyType::Female) => 1, (Species::Human, BodyType::Male) => 1, (Species::Orc, BodyType::Female) => 4, - (Species::Orc, BodyType::Male) => 5, - (Species::Undead, BodyType::Female) => 1, - (Species::Undead, BodyType::Male) => 1, + (Species::Orc, BodyType::Male) => 6, + (Species::Undead, BodyType::Female) => 2, + (Species::Undead, BodyType::Male) => 2, } } diff --git a/common/src/comp/body/object.rs b/common/src/comp/body/object.rs index fe73e92172..e94d21a93d 100644 --- a/common/src/comp/body/object.rs +++ b/common/src/comp/body/object.rs @@ -63,6 +63,7 @@ pub enum Body { FireworkPurple = 56, FireworkRed = 57, FireworkYellow = 58, + MultiArrow = 59, } impl Body { @@ -72,7 +73,7 @@ impl Body { } } -pub const ALL_OBJECTS: [Body; 59] = [ +pub const ALL_OBJECTS: [Body; 60] = [ Body::Arrow, Body::Bomb, Body::Scarecrow, @@ -132,6 +133,7 @@ pub const ALL_OBJECTS: [Body; 59] = [ Body::FireworkPurple, Body::FireworkRed, Body::FireworkYellow, + Body::MultiArrow, ]; impl From for super::Body { @@ -200,6 +202,7 @@ impl Body { Body::FireworkPurple => "firework_purple", Body::FireworkRed => "firework_red", Body::FireworkYellow => "firework_yellow", + Body::MultiArrow => "multi_arrow", } } } diff --git a/common/src/comp/inventory/item/tool.rs b/common/src/comp/inventory/item/tool.rs index b040f0517f..335807ad3c 100644 --- a/common/src/comp/inventory/item/tool.rs +++ b/common/src/comp/inventory/item/tool.rs @@ -191,7 +191,7 @@ impl Tool { prepare_duration: Duration::from_millis(100), charge_duration: Duration::from_millis(1500), recover_duration: Duration::from_millis(500), - projectile_body: Body::Object(object::Body::Arrow), + projectile_body: Body::Object(object::Body::MultiArrow), projectile_light: None, }, ], diff --git a/voxygen/src/controller.rs b/voxygen/src/controller.rs index 42f60cb3e3..44b286c2e2 100644 --- a/voxygen/src/controller.rs +++ b/voxygen/src/controller.rs @@ -72,7 +72,7 @@ impl From<&crate::settings::GamepadSettings> for ControllerSettings { .push(GameInput::Escape); map.entry(settings.game_buttons.enter) .or_default() - .push(GameInput::Enter); + .push(GameInput::Chat); map.entry(settings.game_buttons.command) .or_default() .push(GameInput::Command); diff --git a/voxygen/src/hud/chat.rs b/voxygen/src/hud/chat.rs index 7b5ac61548..2e35de6493 100644 --- a/voxygen/src/hud/chat.rs +++ b/voxygen/src/hud/chat.rs @@ -374,7 +374,7 @@ impl<'a> Widget for Chat<'a> { .w_h(20.0, 20.0) .hover_image(self.imgs.chat_arrow_mo) .press_image(self.imgs.chat_arrow_press) - .bottom_right_with_margins_on(state.ids.message_box_bg, 0.0, -22.0) + .top_right_with_margins_on(state.ids.message_box_bg, 0.0, -22.0) .parent(id) .set(state.ids.chat_arrow, ui) .was_clicked() diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index 440bb77848..c2510cbea0 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -2250,7 +2250,7 @@ impl Hud { _ if !self.show.ui => false, WinEvent::Zoom(_) => !cursor_grabbed && !self.ui.no_widget_capturing_mouse(), - WinEvent::InputUpdate(GameInput::Enter, true) => { + WinEvent::InputUpdate(GameInput::Chat, true) => { self.ui.focus_widget(if self.typing() { None } else { diff --git a/voxygen/src/hud/overhead.rs b/voxygen/src/hud/overhead.rs index b14f39c213..3a990f5220 100644 --- a/voxygen/src/hud/overhead.rs +++ b/voxygen/src/hud/overhead.rs @@ -354,11 +354,10 @@ impl<'a> Widget for Overhead<'a> { })) .parent(id) .set(state.ids.health_bar, ui); - // TODO Only show health values for entities below 100% health let mut txt = format!( "{}/{}", - self.stats.health.current().max(1) / 10 as u32, /* Don't show 0 health for - * living entities */ + (self.stats.health.current() / 10).max(1) as u32, /* Don't show 0 health for + * living entities */ self.stats.health.maximum() / 10 as u32, ); if self.stats.is_dead { diff --git a/voxygen/src/menu/main/ui.rs b/voxygen/src/menu/main/ui.rs index e1f17b4440..d14a4e3549 100644 --- a/voxygen/src/menu/main/ui.rs +++ b/voxygen/src/menu/main/ui.rs @@ -262,6 +262,7 @@ impl<'a> MainMenuUi { env!("CARGO_PKG_VERSION"), common::util::GIT_VERSION.to_string() ); + let scale = 0.8; const TEXT_COLOR: Color = Color::Rgba(1.0, 1.0, 1.0, 1.0); const TEXT_COLOR_2: Color = Color::Rgba(1.0, 1.0, 1.0, 0.2); const TEXT_BG: Color = Color::Rgba(0.0, 0.0, 0.0, 1.0); @@ -329,9 +330,10 @@ impl<'a> MainMenuUi { }; // Version displayed top right corner + let pos = if self.connect { 5.0 } else { 98.0 }; Text::new(&version) .color(TEXT_COLOR) - .top_right_with_margins_on(ui_widgets.window, 5.0, 5.0) + .top_right_with_margins_on(ui_widgets.window, pos * scale, 10.0 * scale) .font_id(self.fonts.cyri.conrod_id) .font_size(self.fonts.cyri.scale(14)) .set(self.ids.version, ui_widgets); @@ -462,20 +464,21 @@ impl<'a> MainMenuUi { if !self.connect { Image::new(self.imgs.banner) - .w_h(65.0 * 6.0, 100.0 * 6.0) + .w_h(65.0 * 6.0 * scale, 100.0 * 6.0 * scale) .middle_of(self.ids.bg) - .color(Some(Color::Rgba(0.0, 0.0, 0.0, 0.9))) + .color(Some(Color::Rgba(0.0, 0.0, 0.0, 0.0))) .set(self.ids.banner, ui_widgets); Image::new(self.imgs.banner_top) - .w_h(70.0 * 6.0, 34.0) + .w_h(70.0 * 6.0 * scale, 34.0 * scale) .mid_top_with_margin_on(self.ids.banner, -34.0) + .color(Some(Color::Rgba(0.0, 0.0, 0.0, 0.0))) .set(self.ids.banner_top, ui_widgets); // Logo Image::new(self.imgs.v_logo) - .w_h(123.0 * 2.5, 35.0 * 2.5) - .mid_top_with_margin_on(self.ids.banner_top, 45.0) + .w_h(123.0 * 2.5 * scale, 35.0 * 2.5 * scale) + .top_right_with_margins_on(self.ids.bg, 10.0, 10.0) .color(Some(Color::Rgba(1.0, 1.0, 1.0, 0.95))) .set(self.ids.v_logo, ui_widgets); @@ -536,18 +539,18 @@ impl<'a> MainMenuUi { }; } // Info Window - Rectangle::fill_with([550.0, 250.0], COL1) - .top_left_with_margins_on(ui_widgets.window, 40.0, 40.0) - .color(Color::Rgba(0.0, 0.0, 0.0, 0.95)) + Rectangle::fill_with([550.0 * scale, 250.0 * scale], COL1) + .top_left_with_margins_on(ui_widgets.window, 40.0 * scale, 40.0 * scale) + .color(Color::Rgba(0.0, 0.0, 0.0, 0.80)) .set(self.ids.info_frame, ui_widgets); Image::new(self.imgs.banner_bottom) - .mid_bottom_with_margin_on(self.ids.info_frame, -50.0) - .w_h(550.0, 50.0) - .color(Some(Color::Rgba(0.0, 0.0, 0.0, 0.95))) + .mid_bottom_with_margin_on(self.ids.info_frame, -50.0 * scale) + .w_h(550.0 * scale, 50.0 * scale) + .color(Some(Color::Rgba(0.0, 0.0, 0.0, 0.80))) .set(self.ids.info_bottom, ui_widgets); Text::new(intro_text) - .top_left_with_margins_on(self.ids.info_frame, 15.0, 15.0) - .font_size(self.fonts.cyri.scale(20)) + .top_left_with_margins_on(self.ids.info_frame, 15.0 * scale, 15.0 * scale) + .font_size(self.fonts.cyri.scale(16)) .font_id(self.fonts.cyri.conrod_id) .color(TEXT_COLOR) .set(self.ids.info_text, ui_widgets); @@ -568,17 +571,20 @@ impl<'a> MainMenuUi { } // Username - Rectangle::fill_with([320.0, 50.0], color::rgba(0.0, 0.0, 0.0, 0.0)) - .mid_top_with_margin_on(self.ids.banner_top, 150.0) - .set(self.ids.usrnm_bg, ui_widgets); + Rectangle::fill_with( + [320.0 * scale, 50.0 * scale], + color::rgba(0.0, 0.0, 0.0, 0.0), + ) + .mid_top_with_margin_on(self.ids.banner_top, 150.0) + .set(self.ids.usrnm_bg, ui_widgets); Image::new(self.imgs.input_bg) - .w_h(338.0, 50.0) + .w_h(338.0 * scale, 50.0 * scale) .middle_of(self.ids.usrnm_bg) .set(self.ids.username_bg, ui_widgets); for event in TextBox::new(&self.username) - .w_h(290.0, 30.0) - .mid_bottom_with_margin_on(self.ids.username_bg, 14.0) - .font_size(self.fonts.cyri.scale(22)) + .w_h(290.0* scale, 30.0* scale) + .mid_bottom_with_margin_on(self.ids.username_bg, 14.0* scale) + .font_size(self.fonts.cyri.scale(18)) .font_id(self.fonts.cyri.conrod_id) .text_color(TEXT_COLOR) // transparent background @@ -597,16 +603,19 @@ impl<'a> MainMenuUi { } } // Password - Rectangle::fill_with([320.0, 50.0], color::rgba(0.0, 0.0, 0.0, 0.0)) - .down_from(self.ids.usrnm_bg, 10.0) - .set(self.ids.passwd_bg, ui_widgets); + Rectangle::fill_with( + [320.0 * scale, 50.0 * scale], + color::rgba(0.0, 0.0, 0.0, 0.0), + ) + .down_from(self.ids.usrnm_bg, 10.0 * scale) + .set(self.ids.passwd_bg, ui_widgets); Image::new(self.imgs.input_bg) - .w_h(338.0, 50.0) + .w_h(338.0 * scale, 50.0 * scale) .middle_of(self.ids.passwd_bg) .set(self.ids.password_bg, ui_widgets); for event in TextBox::new(&self.password) - .w_h(290.0, 30.0) - .mid_bottom_with_margin_on(self.ids.password_bg, 10.0) + .w_h(290.0 * scale, 30.0* scale) + .mid_bottom_with_margin_on(self.ids.password_bg, 10.0* scale) // the text is smaller to allow longer passwords, conrod limits text length // this allows 35 characters but can be increased, approximate formula: 420 / scale = length .font_size(self.fonts.cyri.scale(12)) @@ -694,17 +703,20 @@ impl<'a> MainMenuUi { }; } // Server address - Rectangle::fill_with([320.0, 50.0], color::rgba(0.0, 0.0, 0.0, 0.0)) - .down_from(self.ids.passwd_bg, 8.0) - .set(self.ids.srvr_bg, ui_widgets); + Rectangle::fill_with( + [320.0 * scale, 50.0 * scale], + color::rgba(0.0, 0.0, 0.0, 0.0), + ) + .down_from(self.ids.passwd_bg, 8.0 * scale) + .set(self.ids.srvr_bg, ui_widgets); Image::new(self.imgs.input_bg) - .w_h(338.0, 50.0) + .w_h(338.0 * scale, 50.0 * scale) .middle_of(self.ids.srvr_bg) .set(self.ids.address_bg, ui_widgets); for event in TextBox::new(&self.server_address) - .w_h(290.0, 30.0) - .mid_top_with_margin_on(self.ids.address_bg, 8.0) - .font_size(self.fonts.cyri.scale(22)) + .w_h(290.0*scale, 30.0*scale) + .mid_top_with_margin_on(self.ids.address_bg, 8.0*scale) + .font_size(self.fonts.cyri.scale(18)) .font_id(self.fonts.cyri.conrod_id) .text_color(TEXT_COLOR) // transparent background @@ -726,14 +738,14 @@ impl<'a> MainMenuUi { if Button::image(self.imgs.button) .hover_image(self.imgs.button_hover) .press_image(self.imgs.button_press) - .w_h(258.0, 55.0) - .down_from(self.ids.address_bg, 20.0) + .w_h(258.0*scale, 55.0*scale) + .down_from(self.ids.address_bg, 20.0*scale) .align_middle_x_of(self.ids.address_bg) .label(&self.voxygen_i18n.get("common.multiplayer")) .label_font_id(self.fonts.cyri.conrod_id) .label_color(TEXT_COLOR) - .label_font_size(self.fonts.cyri.scale(22)) - .label_y(Relative::Scalar(5.0)) + .label_font_size(self.fonts.cyri.scale(18)) + .label_y(Relative::Scalar(4.0)) /*.with_tooltip( tooltip_manager, "Login", @@ -754,14 +766,14 @@ impl<'a> MainMenuUi { if Button::image(self.imgs.button) .hover_image(self.imgs.button_hover) .press_image(self.imgs.button_press) - .w_h(258.0, 55.0) - .down_from(self.ids.login_button, 20.0) + .w_h(258.0 * scale, 55.0 * scale) + .down_from(self.ids.login_button, 20.0 * scale) .align_middle_x_of(self.ids.address_bg) .label(&self.voxygen_i18n.get("common.singleplayer")) .label_font_id(self.fonts.cyri.conrod_id) .label_color(TEXT_COLOR) - .label_font_size(self.fonts.cyri.scale(22)) - .label_y(Relative::Scalar(5.0)) + .label_font_size(self.fonts.cyri.scale(18)) + .label_y(Relative::Scalar(4.0)) .label_x(Relative::Scalar(2.0)) .set(self.ids.singleplayer_button, ui_widgets) .was_clicked() @@ -772,14 +784,14 @@ impl<'a> MainMenuUi { } // Quit if Button::image(self.imgs.button) - .w_h(190.0, 40.0) - .bottom_left_with_margins_on(ui_widgets.window, 60.0, 30.0) + .w_h(190.0 * scale, 40.0 * scale) + .bottom_left_with_margins_on(ui_widgets.window, 60.0 * scale, 30.0 * scale) .hover_image(self.imgs.button_hover) .press_image(self.imgs.button_press) .label(&self.voxygen_i18n.get("common.quit")) .label_font_id(self.fonts.cyri.conrod_id) .label_color(TEXT_COLOR) - .label_font_size(self.fonts.cyri.scale(20)) + .label_font_size(self.fonts.cyri.scale(16)) .label_y(Relative::Scalar(3.0)) .set(self.ids.quit_button, ui_widgets) .was_clicked() @@ -789,14 +801,14 @@ impl<'a> MainMenuUi { // Settings if Button::image(self.imgs.button) - .w_h(190.0, 40.0) - .up_from(self.ids.quit_button, 8.0) + .w_h(190.0*scale, 40.0*scale) + .up_from(self.ids.quit_button, 8.0*scale) //.hover_image(self.imgs.button_hover) //.press_image(self.imgs.button_press) .label(&self.voxygen_i18n.get("common.settings")) .label_font_id(self.fonts.cyri.conrod_id) .label_color(TEXT_COLOR_2) - .label_font_size(self.fonts.cyri.scale(20)) + .label_font_size(self.fonts.cyri.scale(16)) .label_y(Relative::Scalar(3.0)) .set(self.ids.settings_button, ui_widgets) .was_clicked() @@ -806,14 +818,14 @@ impl<'a> MainMenuUi { // Servers if Button::image(self.imgs.button) - .w_h(190.0, 40.0) - .up_from(self.ids.settings_button, 8.0) + .w_h(190.0 * scale, 40.0 * scale) + .up_from(self.ids.settings_button, 8.0 * scale) .hover_image(self.imgs.button_hover) .press_image(self.imgs.button_press) .label(&self.voxygen_i18n.get("common.servers")) .label_font_id(self.fonts.cyri.conrod_id) .label_color(TEXT_COLOR) - .label_font_size(self.fonts.cyri.scale(20)) + .label_font_size(self.fonts.cyri.scale(16)) .label_y(Relative::Scalar(3.0)) .set(self.ids.servers_button, ui_widgets) .was_clicked() diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs index 01c7044073..e03d9ff608 100644 --- a/voxygen/src/scene/figure/load.rs +++ b/voxygen/src/scene/figure/load.rs @@ -3496,6 +3496,7 @@ pub fn mesh_object( Body::BoltFire => ("weapon.projectile.fire-bolt-0", Vec3::new(-3.0, -5.5, -3.0)), Body::BoltFireBig => ("weapon.projectile.fire-bolt-1", Vec3::new(-6.0, -6.0, -6.0)), Body::TrainingDummy => ("object.training_dummy", Vec3::new(-7.0, -5.0, 0.0)), + Body::MultiArrow => ("weapon.projectile.multi-arrow", Vec3::new(-4.0, -9.5, -5.0)), }; load_mesh(name, offset, generate_mesh) } diff --git a/voxygen/src/settings.rs b/voxygen/src/settings.rs index 86b3c0c9e7..5e1e86f4b4 100644 --- a/voxygen/src/settings.rs +++ b/voxygen/src/settings.rs @@ -122,7 +122,7 @@ impl ControlSettings { GameInput::Secondary => KeyMouse::Mouse(MouseButton::Right), GameInput::ToggleCursor => KeyMouse::Key(VirtualKeyCode::Tab), GameInput::Escape => KeyMouse::Key(VirtualKeyCode::Escape), - GameInput::Enter => KeyMouse::Key(VirtualKeyCode::Return), + GameInput::Chat => KeyMouse::Key(VirtualKeyCode::Return), GameInput::Command => KeyMouse::Key(VirtualKeyCode::Slash), GameInput::MoveForward => KeyMouse::Key(VirtualKeyCode::W), GameInput::MoveLeft => KeyMouse::Key(VirtualKeyCode::A), @@ -207,7 +207,7 @@ impl Default for ControlSettings { //GameInput::WallLeap, GameInput::ToggleLantern, GameInput::Mount, - GameInput::Enter, + GameInput::Chat, GameInput::Command, GameInput::Escape, GameInput::Map, diff --git a/voxygen/src/window.rs b/voxygen/src/window.rs index 8b43a2d0c1..916281e36f 100644 --- a/voxygen/src/window.rs +++ b/voxygen/src/window.rs @@ -47,7 +47,7 @@ pub enum GameInput { //WallLeap, ToggleLantern, Mount, - Enter, + Chat, Command, Escape, Map, @@ -98,7 +98,7 @@ impl GameInput { //GameInput::WallLeap => "gameinput.wallleap", GameInput::ToggleLantern => "gameinput.togglelantern", GameInput::Mount => "gameinput.mount", - GameInput::Enter => "gameinput.enter", + GameInput::Chat => "gameinput.chat", GameInput::Command => "gameinput.command", GameInput::CycleCamera => "gameinput.cyclecamera", GameInput::Escape => "gameinput.escape", @@ -158,12 +158,13 @@ impl GameInput { GameInput::Sneak, GameInput::ToggleLantern, GameInput::Mount, - GameInput::Enter, + GameInput::Chat, GameInput::Command, GameInput::Escape, GameInput::Map, GameInput::Bag, GameInput::Social, + GameInput::Crafting, GameInput::Spellbook, GameInput::Settings, GameInput::ToggleInterface,