Compare commits

...

4 commits

5 changed files with 58 additions and 11 deletions

View file

@ -27,6 +27,8 @@ pub const CHATS: &[&str] = &[
]; ];
pub const CONTACTS: &[&str] = &["icarus", "travel", "luna", "nox"]; pub const CONTACTS: &[&str] = &["icarus", "travel", "luna", "nox"];
pub const CONTACTS_PRETTY: &[&str] = &["Icarus", "FASTravel", "Luna", "Nox"];
pub const CONTACTS_UNKNOWN: &str = "[Unknown]";
pub const TEXT_CONTINUE: &str = "Continue..."; pub const TEXT_CONTINUE: &str = "Continue...";
@ -1000,7 +1002,7 @@ pub fn handle_chat_scripts(
"cryofadeout" => { "cryofadeout" => {
ew_effect.send(visual::SpawnEffectEvent { ew_effect.send(visual::SpawnEffectEvent {
class: visual::Effects::FadeOut(css::AQUA.into()), class: visual::Effects::FadeOut(css::AQUA.into()),
duration: 5.1, duration: 2.1,
}); });
} }
"drinkpizza" => { "drinkpizza" => {

View file

@ -76,21 +76,21 @@
Take me to Farview Station, please.: Take me to Farview Station, please.:
- FASTravel wishes you a pleasant journey. - FASTravel wishes you a pleasant journey.
- script: cryofadeout - script: cryofadeout
- sleep: 5 - sleep: 2
- script: cryotrip farview - script: cryotrip farview
- goto: EXIT - goto: EXIT
- if: $busstop != metis - if: $busstop != metis
Take me to Metis Prime Station, please.: Take me to Metis Prime Station, please.:
- FASTravel wishes you a pleasant journey. - FASTravel wishes you a pleasant journey.
- script: cryofadeout - script: cryofadeout
- sleep: 5 - sleep: 2
- script: cryotrip metisprime - script: cryotrip metisprime
- goto: EXIT - goto: EXIT
- if: $busstop != serenity - if: $busstop != serenity
Take me to Serenity Station, please.: Take me to Serenity Station, please.:
- FASTravel wishes you a pleasant journey. - FASTravel wishes you a pleasant journey.
- script: cryofadeout - script: cryofadeout
- sleep: 5 - sleep: 2
- script: cryotrip serenity - script: cryotrip serenity
- goto: EXIT - goto: EXIT
- Can you please fill up my oxygen tank without taking me anywhere?: - Can you please fill up my oxygen tank without taking me anywhere?:

View file

@ -1,3 +1,13 @@
# ▄████████▄ + ███ + ▄█████████ ███ +
# ███▀ ▀███ + + ███ ███▀ + ███ + +
# ███ + ███ ███ ███ █████████ ███ ███ ███ ███
# ███ +███ ███ ███ ███ ███▐██████ ███ ███ ███
# ███ + ███ ███+ ███ +███ ███ + ███ ███ + ███
# ███▄ ▄███ ███▄ ███ ███ + ███ + ███ ███▄ ███
# ▀████████▀ + ▀███████ ███▄ ███▄ ▀████ ▀███████
# + + + ███
# + ▀████████████████████████████████████████████████████▀
- chat: phone - chat: phone
- if ~phone$any: - if ~phone$any:
- "Error: Phonebook empty." - "Error: Phonebook empty."
@ -19,7 +29,7 @@
- Ok! Activate cryofreeze and we'll be right there. - Ok! Activate cryofreeze and we'll be right there.
- "[Activate Cryofreeze]": - "[Activate Cryofreeze]":
- script: cryofadeout - script: cryofadeout
- sleep: 5 - sleep: 2
- script: cryotrip serenity - script: cryotrip serenity
- goto: EXIT - goto: EXIT
- I changed my mind.: - I changed my mind.:
@ -29,7 +39,7 @@
- Ok! Activate cryofreeze and we'll be right there. - Ok! Activate cryofreeze and we'll be right there.
- "[Activate Cryofreeze]": - "[Activate Cryofreeze]":
- script: cryofadeout - script: cryofadeout
- sleep: 5 - sleep: 2
- script: cryotrip metisprime - script: cryotrip metisprime
- goto: EXIT - goto: EXIT
- I changed my mind.: - I changed my mind.:
@ -39,7 +49,7 @@
- Ok! Activate cryofreeze and we'll be right there. - Ok! Activate cryofreeze and we'll be right there.
- "[Activate Cryofreeze]": - "[Activate Cryofreeze]":
- script: cryofadeout - script: cryofadeout
- sleep: 5 - sleep: 2
- script: cryotrip farview - script: cryotrip farview
- goto: EXIT - goto: EXIT
- I changed my mind.: - I changed my mind.:

View file

@ -274,6 +274,16 @@ pub fn setup(
sections.extend(Vec::from_iter( sections.extend(Vec::from_iter(
(0..achievement_count).map(|_| TextSection::new("", style_achievement.clone())), (0..achievement_count).map(|_| TextSection::new("", style_achievement.clone())),
)); ));
sections.push(TextSection::new(
"\nPhonebook\n",
style_achievement_header.clone(),
));
sections.extend(Vec::from_iter((0..chat::CONTACTS.len()).map(|_| {
TextSection::new(
chat::CONTACTS_UNKNOWN.to_string() + "\n",
style_achievement.clone(),
)
})));
builder.spawn(( builder.spawn((
MenuAchievements, MenuAchievements,
TextBundle { TextBundle {
@ -463,8 +473,7 @@ pub fn update_menu(
if boolean { "On" } else { "Off" }.to_string() if boolean { "On" } else { "Off" }.to_string()
} }
let bools = achievement_tracker.to_bool_vec(); // Footer
let rendered = achievement_tracker.to_textsections();
if let (Ok(mut text), Some(player_pos), Some(jupiter_pos)) = ( if let (Ok(mut text), Some(player_pos), Some(jupiter_pos)) = (
q_footer.get_single_mut(), q_footer.get_single_mut(),
id2pos.0.get(cmd::ID_PLAYER), id2pos.0.get(cmd::ID_PLAYER),
@ -480,16 +489,38 @@ pub fn update_menu(
settings.version.as_str() settings.version.as_str()
); );
} }
// Achievements
let achievement_bools = achievement_tracker.to_bool_vec();
let rendered = achievement_tracker.to_textsections();
if let Ok(mut text) = q_achievement_text.get_single_mut() { if let Ok(mut text) = q_achievement_text.get_single_mut() {
for i in 0..text.sections.len() - 1 { for i in 0..achievement_bools.len() - 1 {
text.sections[i + 1].style.color = if bools[i] { text.sections[i + 1].style.color = if achievement_bools[i] {
settings.hud_color_achievement_accomplished settings.hud_color_achievement_accomplished
} else { } else {
settings.hud_color_achievement settings.hud_color_achievement
}; };
text.sections[i + 1].value = rendered[i].clone(); text.sections[i + 1].value = rendered[i].clone();
} }
// Phonebook
for (i, contact) in chat::CONTACTS.iter().enumerate() {
let text_index = i + achievement_bools.len() + 2;
let registered = prefs.contacts.contains(&contact.to_string());
text.sections[text_index].style.color = if registered {
settings.hud_color_phonebook_unlocked
} else {
settings.hud_color_phonebook_locked
};
text.sections[text_index].value = if registered {
chat::CONTACTS_PRETTY[i].to_string() + "\n"
} else {
String::from(chat::CONTACTS_UNKNOWN.to_string() + "\n")
} }
}
}
// Menu
if let Ok(mut text) = q_text.get_single_mut() { if let Ok(mut text) = q_text.get_single_mut() {
for i in 0..text.sections.len() { for i in 0..text.sections.len() {
if menustate.cursor == i { if menustate.cursor == i {

View file

@ -80,6 +80,8 @@ pub struct Settings {
pub hud_color_achievement: Color, pub hud_color_achievement: Color,
pub hud_color_achievement_header: Color, pub hud_color_achievement_header: Color,
pub hud_color_achievement_accomplished: Color, pub hud_color_achievement_accomplished: Color,
pub hud_color_phonebook_locked: Color,
pub hud_color_phonebook_unlocked: Color,
pub hud_color_death: Color, pub hud_color_death: Color,
pub hud_color_death_achievements: Color, pub hud_color_death_achievements: Color,
pub hud_color_keybindings: Color, pub hud_color_keybindings: Color,
@ -222,6 +224,8 @@ impl Default for Settings {
hud_color_achievement: Srgba::hex(COLOR_DIM).unwrap().into(), hud_color_achievement: Srgba::hex(COLOR_DIM).unwrap().into(),
hud_color_achievement_accomplished: Srgba::hex(COLOR_SUCCESS).unwrap().into(), hud_color_achievement_accomplished: Srgba::hex(COLOR_SUCCESS).unwrap().into(),
hud_color_achievement_header: Srgba::hex(COLOR_PRIMARY).unwrap().into(), hud_color_achievement_header: Srgba::hex(COLOR_PRIMARY).unwrap().into(),
hud_color_phonebook_locked: Srgba::hex(COLOR_DIM).unwrap().into(),
hud_color_phonebook_unlocked: Srgba::hex(COLOR_SECONDARY).unwrap().into(),
hud_color_death: Srgba::hex(COLOR_SECONDARY).unwrap().into(), hud_color_death: Srgba::hex(COLOR_SECONDARY).unwrap().into(),
hud_color_death_achievements: Srgba::hex(COLOR_SECONDARY).unwrap().into(), hud_color_death_achievements: Srgba::hex(COLOR_SECONDARY).unwrap().into(),
hud_color_keybindings: Srgba::hex(COLOR_DIM).unwrap().into(), hud_color_keybindings: Srgba::hex(COLOR_DIM).unwrap().into(),