Added more dialogue
This commit is contained in:
parent
9a9bc083f5
commit
cb3dd4b03f
1 changed files with 296 additions and 4 deletions
300
src/main.rs
300
src/main.rs
|
@ -64,6 +64,35 @@ struct Menu {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Menu {
|
impl Menu {
|
||||||
|
fn button(
|
||||||
|
x: f32,
|
||||||
|
y: f32,
|
||||||
|
w: f32,
|
||||||
|
h: f32,
|
||||||
|
s: &'static str,
|
||||||
|
t_color: Color,
|
||||||
|
box_color: Color,
|
||||||
|
boxh_color: Color,
|
||||||
|
first: bool,
|
||||||
|
) -> MenuItem {
|
||||||
|
MenuItem {
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
w,
|
||||||
|
h,
|
||||||
|
item_type: MenuItemType::Button {
|
||||||
|
text: s,
|
||||||
|
text_image: None,
|
||||||
|
text_c: t_color,
|
||||||
|
h_c: boxh_color,
|
||||||
|
c: box_color,
|
||||||
|
},
|
||||||
|
is_hover: false,
|
||||||
|
is_focus: false,
|
||||||
|
is_loaded: !first,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn start() -> Menu {
|
fn start() -> Menu {
|
||||||
let item = MenuItem {
|
let item = MenuItem {
|
||||||
x: WIDTH_F / 2.0 - 120.0,
|
x: WIDTH_F / 2.0 - 120.0,
|
||||||
|
@ -144,6 +173,206 @@ impl Menu {
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn s_02() -> Menu {
|
||||||
|
Menu {
|
||||||
|
items: vec![
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 150.0,
|
||||||
|
40.0,
|
||||||
|
true,
|
||||||
|
"Just by being, you brought light into existence.",
|
||||||
|
),
|
||||||
|
Menu::pause(500.0, false),
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 110.0,
|
||||||
|
40.0,
|
||||||
|
false,
|
||||||
|
"What brings you here? What drives you?",
|
||||||
|
),
|
||||||
|
Menu::pause(500.0, false),
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 70.0,
|
||||||
|
40.0,
|
||||||
|
false,
|
||||||
|
"Please tell me, what fuels you?",
|
||||||
|
),
|
||||||
|
Menu::button(
|
||||||
|
100.0,
|
||||||
|
30.0,
|
||||||
|
200.0,
|
||||||
|
85.0,
|
||||||
|
"Hope",
|
||||||
|
Color::WHITE,
|
||||||
|
Color::BLACK,
|
||||||
|
Color::from_rgba(0x33, 0x33, 0x33, 1.0),
|
||||||
|
false,
|
||||||
|
),
|
||||||
|
Menu::button(
|
||||||
|
500.0,
|
||||||
|
30.0,
|
||||||
|
200.0,
|
||||||
|
85.0,
|
||||||
|
"Miracles",
|
||||||
|
Color::WHITE,
|
||||||
|
Color::BLACK,
|
||||||
|
Color::from_rgba(0x33, 0x33, 0x33, 1.0),
|
||||||
|
false,
|
||||||
|
),
|
||||||
|
Menu::button(
|
||||||
|
100.0,
|
||||||
|
150.0,
|
||||||
|
200.0,
|
||||||
|
85.0,
|
||||||
|
"Kindness",
|
||||||
|
Color::WHITE,
|
||||||
|
Color::BLACK,
|
||||||
|
Color::from_rgba(0x33, 0x33, 0x33, 1.0),
|
||||||
|
false,
|
||||||
|
),
|
||||||
|
Menu::button(
|
||||||
|
500.0,
|
||||||
|
150.0,
|
||||||
|
200.0,
|
||||||
|
85.0,
|
||||||
|
"Determination",
|
||||||
|
Color::WHITE,
|
||||||
|
Color::BLACK,
|
||||||
|
Color::from_rgba(0x33, 0x33, 0x33, 1.0),
|
||||||
|
false,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// choose hope
|
||||||
|
fn s_03() -> Menu {
|
||||||
|
Menu {
|
||||||
|
items: vec![
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 170.0,
|
||||||
|
40.0,
|
||||||
|
true,
|
||||||
|
"Hope... hope that your actions will inspire others..",
|
||||||
|
),
|
||||||
|
Menu::pause(500.0, false),
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 130.0,
|
||||||
|
40.0,
|
||||||
|
false,
|
||||||
|
"Hope that a brighter future will come tomorrow...",
|
||||||
|
),
|
||||||
|
Menu::pause(500.0, false),
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 90.0,
|
||||||
|
40.0,
|
||||||
|
false,
|
||||||
|
".. With your appearance, perhaps it shall...",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// choose miracles
|
||||||
|
fn s_04() -> Menu {
|
||||||
|
Menu {
|
||||||
|
items: vec![
|
||||||
|
Menu::text(
|
||||||
|
30.0,
|
||||||
|
HEIGHT_F - 170.0,
|
||||||
|
40.0,
|
||||||
|
true,
|
||||||
|
"Miracles huh?.. I see, then your appearance is special.",
|
||||||
|
),
|
||||||
|
Menu::pause(500.0, false),
|
||||||
|
Menu::text(
|
||||||
|
30.0,
|
||||||
|
HEIGHT_F - 130.0,
|
||||||
|
40.0,
|
||||||
|
false,
|
||||||
|
"With your appearance, things may change for the better..",
|
||||||
|
),
|
||||||
|
Menu::pause(500.0, false),
|
||||||
|
Menu::text(
|
||||||
|
30.0,
|
||||||
|
HEIGHT_F - 90.0,
|
||||||
|
40.0,
|
||||||
|
false,
|
||||||
|
"Now I am certain that this meeting was not by chance.",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// choose kindness
|
||||||
|
fn s_05() -> Menu {
|
||||||
|
Menu {
|
||||||
|
items: vec![
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 170.0,
|
||||||
|
40.0,
|
||||||
|
true,
|
||||||
|
"Kindness?.. I am in your debt.",
|
||||||
|
),
|
||||||
|
Menu::pause(250.0, false),
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 130.0,
|
||||||
|
40.0,
|
||||||
|
false,
|
||||||
|
"It has been a long time since I have encountered",
|
||||||
|
),
|
||||||
|
Menu::text(50.0, HEIGHT_F - 90.0, 40.0, false, "another being..."),
|
||||||
|
Menu::pause(500.0, false),
|
||||||
|
Menu::text(270.0, HEIGHT_F - 90.0, 40.0, false, "... Thank you..."),
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// choose determination
|
||||||
|
fn s_06() -> Menu {
|
||||||
|
Menu {
|
||||||
|
items: vec![
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 170.0,
|
||||||
|
40.0,
|
||||||
|
true,
|
||||||
|
"Determination.. I see...",
|
||||||
|
),
|
||||||
|
Menu::pause(500.0, false),
|
||||||
|
Menu::text(
|
||||||
|
400.0,
|
||||||
|
HEIGHT_F - 170.0,
|
||||||
|
40.0,
|
||||||
|
false,
|
||||||
|
"I do not doubt it, for it",
|
||||||
|
),
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 130.0,
|
||||||
|
40.0,
|
||||||
|
false,
|
||||||
|
"must have been difficult to come here..",
|
||||||
|
),
|
||||||
|
Menu::pause(500.0, false),
|
||||||
|
Menu::text(
|
||||||
|
50.0,
|
||||||
|
HEIGHT_F - 90.0,
|
||||||
|
40.0,
|
||||||
|
false,
|
||||||
|
"Your resolve is evident by your mere presence..",
|
||||||
|
),
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct GameState {
|
struct GameState {
|
||||||
|
@ -214,11 +443,37 @@ impl State for GameState {
|
||||||
self.state += 1;
|
self.state += 1;
|
||||||
self.state_dirty = true;
|
self.state_dirty = true;
|
||||||
}
|
}
|
||||||
_ => (),
|
2 => {
|
||||||
|
if idx == 5 {
|
||||||
|
// hope
|
||||||
|
self.state = 3;
|
||||||
|
self.state_dirty = true;
|
||||||
|
} else if idx == 6 {
|
||||||
|
// miracles
|
||||||
|
self.state = 4;
|
||||||
|
self.state_dirty = true;
|
||||||
|
} else if idx == 7 {
|
||||||
|
// kindness
|
||||||
|
self.state = 5;
|
||||||
|
self.state_dirty = true;
|
||||||
|
} else {
|
||||||
|
// determination
|
||||||
|
self.state = 6;
|
||||||
|
self.state_dirty = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
self.state = 0;
|
||||||
|
self.state_dirty = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
self.state += 1;
|
match self.state {
|
||||||
|
0 | 1 => self.state += 1,
|
||||||
|
3 | 4 | 5 | 6 => self.state = 7,
|
||||||
|
_ => self.state = 0,
|
||||||
|
}
|
||||||
self.state_dirty = true;
|
self.state_dirty = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -272,12 +527,49 @@ impl State for GameState {
|
||||||
|
|
||||||
if self.state_dirty {
|
if self.state_dirty {
|
||||||
self.state_dirty = false;
|
self.state_dirty = false;
|
||||||
|
if self.state > 1 && !self.music_on {
|
||||||
|
let mut music_on = false;
|
||||||
|
self.music2.execute(|m2| {
|
||||||
|
music_on = true;
|
||||||
|
m2.set_volume(0.6);
|
||||||
|
m2.play()
|
||||||
|
})?;
|
||||||
|
if music_on {
|
||||||
|
self.music_on = true;
|
||||||
|
self.music_timer = 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
match self.state {
|
match self.state {
|
||||||
1 => {
|
1 => {
|
||||||
self.menu = Menu::s_01();
|
self.menu = Menu::s_01();
|
||||||
self.current_finished = false;
|
self.current_finished = false;
|
||||||
self.selection_mode = false;
|
self.selection_mode = false;
|
||||||
}
|
}
|
||||||
|
2 => {
|
||||||
|
self.menu = Menu::s_02();
|
||||||
|
self.current_finished = false;
|
||||||
|
self.selection_mode = true;
|
||||||
|
}
|
||||||
|
3 => {
|
||||||
|
self.menu = Menu::s_03();
|
||||||
|
self.current_finished = false;
|
||||||
|
self.selection_mode = false;
|
||||||
|
}
|
||||||
|
4 => {
|
||||||
|
self.menu = Menu::s_04();
|
||||||
|
self.current_finished = false;
|
||||||
|
self.selection_mode = false;
|
||||||
|
}
|
||||||
|
5 => {
|
||||||
|
self.menu = Menu::s_05();
|
||||||
|
self.current_finished = false;
|
||||||
|
self.selection_mode = false;
|
||||||
|
}
|
||||||
|
6 => {
|
||||||
|
self.menu = Menu::s_06();
|
||||||
|
self.current_finished = false;
|
||||||
|
self.selection_mode = false;
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
self.menu = Menu::start();
|
self.menu = Menu::start();
|
||||||
self.current_item = None;
|
self.current_item = None;
|
||||||
|
@ -331,8 +623,8 @@ impl State for GameState {
|
||||||
let next = text.chars().nth(current_text.len());
|
let next = text.chars().nth(current_text.len());
|
||||||
if let Some(next_t) = next {
|
if let Some(next_t) = next {
|
||||||
current_text.push(next_t);
|
current_text.push(next_t);
|
||||||
self.s_speak_f.execute(|s| {
|
self.s_tap.execute(|s| {
|
||||||
s.set_volume(0.3);
|
s.set_volume(0.2);
|
||||||
s.play()
|
s.play()
|
||||||
})?;
|
})?;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue