Skip to content

Commit f39e0de

Browse files
committed
WIP: other version updates, sorry
1 parent 9114626 commit f39e0de

File tree

21 files changed

+310
-429
lines changed

21 files changed

+310
-429
lines changed

Cargo.lock

Lines changed: 204 additions & 295 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ assets = "assets/"
1818
[dependencies]
1919
ron = "0.8"
2020
log = "0.4"
21-
env_logger = "0.10"
21+
env_logger = "0.11"
2222
derive_more = { version = "0.99", features = ["from"] } # TODO: https://github.com/ozkriff/zemeroth/issues/251
2323
serde = { version = "1.0", features = ["derive"] }
2424
num = { version = "0.4", default-features = false }
@@ -27,8 +27,8 @@ zscene = { path = "zscene" }
2727
zcomponents = { path = "zcomponents" }
2828
rand = { version = "0.8", default-features = false, features = ["alloc"] }
2929
quad-rand = { version = "0.2", features = ["rand"] }
30-
mq = { package = "macroquad", version = "0.3" }
31-
heck = "0.4.1"
30+
mq = { package = "macroquad", version = "0.4" }
31+
heck = "0.5"
3232
once_cell = "1.6"
3333

3434
[dev-dependencies]

src/core/battle/state.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ use crate::core::{
99
utils,
1010
};
1111

12-
pub use self::{
13-
apply::apply,
14-
private::{BattleResult, State},
15-
};
12+
pub use self::private::{BattleResult, State};
1613

1714
mod apply;
1815
mod private;

src/core/battle/state/apply.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ fn apply_event_use_ability(state: &mut State, event: &event::UseAbility) {
195195
}
196196
Ability::Summon => {
197197
assert!(parts.summoner.get_opt(id).is_some());
198-
let mut summoner = parts.summoner.get_mut(id);
198+
let summoner = parts.summoner.get_mut(id);
199199
summoner.count += 1;
200200
}
201201
_ => {}

src/error.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ pub enum ZError {
99
path: PathBuf,
1010
},
1111
IO(io::Error),
12-
MqFile(mq::file::FileError),
13-
MqFont(mq::text::FontError),
12+
Mq(mq::Error),
1413
}
1514

1615
impl ZError {
@@ -29,8 +28,7 @@ impl fmt::Display for ZError {
2928
write!(f, "Can't deserialize '{}': {}", s, error)
3029
}
3130
ZError::IO(ref e) => write!(f, "IO Error: {}", e),
32-
ZError::MqFile(ref e) => write!(f, "Macroquad File error: {}", e),
33-
ZError::MqFont(ref e) => write!(f, "Macroquad Font error: {}", e),
31+
ZError::Mq(ref e) => write!(f, "Macroquad error: {}", e),
3432
}
3533
}
3634
}
@@ -42,8 +40,7 @@ impl error::Error for ZError {
4240
ZError::Scene(ref e) => Some(e),
4341
ZError::RonDeserialize { error, .. } => Some(error),
4442
ZError::IO(ref e) => Some(e),
45-
ZError::MqFile(ref e) => Some(e),
46-
ZError::MqFont(ref e) => Some(e),
43+
ZError::Mq(ref e) => Some(e),
4744
}
4845
}
4946
}

src/screen/agent_info.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ fn agent_image(typename: &ObjType) -> ZResult<Box<dyn ui::Widget>> {
5757
let h = 0.3;
5858
let assets = &assets::get();
5959
let default_frame = "";
60-
let texture = Drawable::Texture(assets.sprite_frames[typename][default_frame]);
60+
let texture = Drawable::Texture(assets.sprite_frames[typename][default_frame].clone());
6161
let label = ui::Label::new(texture, h)?
6262
.with_color(Color::new(1.0, 1.0, 1.0, 1.0))
6363
.stretchable(true);
@@ -76,15 +76,15 @@ fn info_panel(
7676
prototypes: &Prototypes,
7777
typename: &ObjType,
7878
) -> ZResult<Box<dyn ui::Widget>> {
79-
let font = assets::get().font;
79+
let font = assets::get().font.clone();
8080
let proto = &prototypes.0[typename];
8181
let info = StaticObjectInfo::new(typename, proto);
8282
let h = utils::line_heights().normal;
8383
let space_between_buttons = h / 8.0;
8484
let mut layout = Box::new(ui::VLayout::new().stretchable(true));
8585
layout.add(agent_image(typename)?);
8686
let mut add = |w| layout.add(w);
87-
let text_ = |s: &str| ui::Drawable::text(s, font);
87+
let text_ = |s: &str| ui::Drawable::text(s, font.clone());
8888
let label_ = |text: &str| -> ZResult<_> { Ok(ui::Label::new(text_(text), h)?) };
8989
let label = |text: &str| -> ZResult<Box<_>> { Ok(Box::new(label_(text)?)) };
9090
let label_s = |text: &str| -> ZResult<_> { Ok(Box::new(label_(text)?.stretchable(true))) };
@@ -148,7 +148,7 @@ fn info_panel(
148148
let mut line_layout = ui::HLayout::new().stretchable(true);
149149
line_layout.add(label(&text)?);
150150
line_layout.add(spacer_s());
151-
let icon = Drawable::Texture(assets::get().textures.icons.info);
151+
let icon = Drawable::Texture(assets::get().textures.icons.info.clone());
152152
let message = Message::AbilityInfo(r_ability.ability);
153153
let button = ui::Button::new(icon, h, gui.sender(), message)?;
154154
line_layout.add(Box::new(button));
@@ -164,7 +164,7 @@ fn info_panel(
164164
let mut line_layout = ui::HLayout::new().stretchable(true);
165165
line_layout.add(label(&ability.title())?);
166166
line_layout.add(spacer_s());
167-
let icon = Drawable::Texture(assets::get().textures.icons.info);
167+
let icon = Drawable::Texture(assets::get().textures.icons.info.clone());
168168
let message = Message::PassiveAbilityInfo(ability);
169169
let button = ui::Button::new(icon, h, gui.sender(), message)?;
170170
line_layout.add(Box::new(button));
@@ -179,7 +179,7 @@ fn info_panel(
179179
}
180180

181181
fn button_back(gui: &mut ui::Gui<Message>, layout_width: f32) -> ZResult<Box<dyn ui::Widget>> {
182-
let font = assets::get().font;
182+
let font = assets::get().font.clone();
183183
let h = utils::line_heights().normal;
184184
let text = ui::Drawable::text("back", font);
185185
let msg = Message::Back;
@@ -213,7 +213,7 @@ impl AgentInfo {
213213
from: &ObjType,
214214
to: &ObjType,
215215
) -> ZResult<Self> {
216-
let font = assets::get().font;
216+
let font = assets::get().font.clone();
217217
let mut gui = ui::Gui::new();
218218
let mut layout = ui::VLayout::new();
219219
let h = utils::line_heights().big;
@@ -226,7 +226,7 @@ impl AgentInfo {
226226
let col = {
227227
let mut col = Box::new(ui::VLayout::new());
228228
col.add(Box::new(ui::Spacer::new_vertical(panel_from_height * 0.5)));
229-
let text = ui::Drawable::text("=>", font);
229+
let text = ui::Drawable::text("=>", font.clone());
230230
col.add(Box::new(ui::Label::new(text, h)?));
231231
col
232232
};

src/screen/battle.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ fn line_with_info_button(
6262
message: Message,
6363
) -> ZResult<Box<dyn ui::Widget>> {
6464
let h = line_heights().normal;
65-
let font = assets::get().font;
66-
let icon = textures().icons.info;
65+
let font = assets::get().font.clone();
66+
let icon = textures().icons.info.clone();
6767
let button = ui::Button::new(ui::Drawable::Texture(icon), h, gui.sender(), message)?;
6868
let mut line = Box::new(ui::HLayout::new().stretchable(true));
6969
line.add(Box::new(ui::Label::new(ui::Drawable::text(text, font), h)?));
@@ -74,7 +74,7 @@ fn line_with_info_button(
7474

7575
// TODO: consider moving ui `build_*` functions to a sub-module
7676
fn build_panel_agent_info(gui: &mut Gui<Message>, state: &State, id: Id) -> ZResult<ui::RcWidget> {
77-
let font = assets::get().font;
77+
let font = assets::get().font.clone();
7878
let parts = state.parts();
7979
let st = parts.strength.get(id);
8080
let meta = parts.meta.get(id);
@@ -83,7 +83,7 @@ fn build_panel_agent_info(gui: &mut Gui<Message>, state: &State, id: Id) -> ZRes
8383
let h = line_heights().normal;
8484
let space_between_buttons = h / 8.0;
8585
let mut add = |w| layout.add(w);
86-
let text_ = |s: &str| ui::Drawable::text(s, font);
86+
let text_ = |s: &str| ui::Drawable::text(s, font.clone());
8787
let label_ = |text: &str| -> ZResult<_> { Ok(ui::Label::new(text_(text), h)?) };
8888
let label = |text: &str| -> ZResult<Box<dyn Widget>> { Ok(Box::new(label_(text)?)) };
8989
let label_s = |text: &str| -> ZResult<_> { Ok(Box::new(label_(text)?.stretchable(true))) };
@@ -102,7 +102,7 @@ fn build_panel_agent_info(gui: &mut Gui<Message>, state: &State, id: Id) -> ZRes
102102
drawable_k: 0.3,
103103
..Default::default()
104104
};
105-
let label_dot = ui::Label::from_params(ui::Drawable::Texture(textures().dot), h, param)?
105+
let label_dot = ui::Label::from_params(ui::Drawable::Texture(textures().dot.clone()), h, param)?
106106
.with_color(dot_color);
107107
line.add(Box::new(label_dot));
108108
line.add(Box::new(ui::Spacer::new_horizontal(h * 0.1)));
@@ -185,8 +185,8 @@ fn build_panel_agent_info(gui: &mut Gui<Message>, state: &State, id: Id) -> ZRes
185185
effect::Duration::Rounds(n) => format!("{} ({}t)", s, n),
186186
};
187187
let message = Message::LastingEffectInfo(effect.effect);
188-
let text = ui::Drawable::text(text, font);
189-
let tex_info = ui::Drawable::Texture(textures().icons.info);
188+
let text = ui::Drawable::text(text, font.clone());
189+
let tex_info = ui::Drawable::Texture(textures().icons.info.clone());
190190
let button_info = ui::Button::new(tex_info, h, gui.sender(), message)?;
191191
let icon_effect = visualize::get_effect_icon(&effect.effect);
192192
let param = ui::LabelParam {
@@ -222,7 +222,7 @@ fn build_panel_agent_abilities(
222222
id: Id,
223223
mode: &SelectionMode,
224224
) -> ZResult<Option<ui::RcWidget>> {
225-
let font = assets::get().font;
225+
let font = &assets::get().font;
226226
let parts = state.parts();
227227
let abilities = match parts.abilities.get_opt(id) {
228228
Some(abilities) => &abilities.0,
@@ -232,8 +232,8 @@ fn build_panel_agent_abilities(
232232
let h = line_heights().large;
233233
for ability in abilities {
234234
let icons = &assets::get().textures.icons.abilities;
235-
let texture = *icons.get(&ability.ability).expect("No such icon found");
236-
let drawable = ui::Drawable::Texture(texture);
235+
let texture = icons.get(&ability.ability).expect("No such icon found");
236+
let drawable = ui::Drawable::Texture(texture.clone());
237237
let msg = Message::Ability(ability.ability);
238238
let mut button = ui::Button::new(drawable, h, gui.sender(), msg)?;
239239
if !state::can_agent_use_ability(state, id, &ability.ability) {
@@ -247,7 +247,7 @@ fn build_panel_agent_abilities(
247247
if let ability::Status::Cooldown(n) = ability.status {
248248
let mut layers = ui::LayersLayout::new();
249249
layers.add(Box::new(button));
250-
let text = ui::Drawable::text(format!(" ({})", n).as_str(), font);
250+
let text = ui::Drawable::text(format!(" ({})", n).as_str(), font.clone());
251251
let label = ui::Label::new(text, h / 2.0)?;
252252
layers.add(Box::new(label));
253253
layout.add(Box::new(layers));
@@ -264,7 +264,7 @@ fn build_panel_agent_abilities(
264264

265265
fn build_panel_end_turn(gui: &mut Gui<Message>) -> ZResult<ui::RcWidget> {
266266
let h = line_heights().large;
267-
let tex = ui::Drawable::Texture(textures().icons.end_turn);
267+
let tex = ui::Drawable::Texture(textures().icons.end_turn.clone());
268268
let button = ui::Button::new(tex, h, gui.sender(), Message::EndTurn)?;
269269
let layout = ui::VLayout::from_widget(Box::new(button));
270270
let anchor = ui::Anchor(ui::HAnchor::Right, ui::VAnchor::Bottom);
@@ -279,8 +279,8 @@ fn build_panel_ability_description(
279279
ability: &Ability,
280280
id: Id,
281281
) -> ZResult<ui::RcWidget> {
282-
let font = assets::get().font;
283-
let text = |s: &str| ui::Drawable::text(s, font);
282+
let font = &assets::get().font;
283+
let text = |s: &str| ui::Drawable::text(s, font.clone());
284284
let h = line_heights().normal;
285285
let mut layout = Box::new(ui::VLayout::new().stretchable(true));
286286
let text_title = text(&format!("~~~ {} ~~~", ability.title()));
@@ -326,7 +326,7 @@ fn build_panel_ability_description(
326326
fn make_gui() -> ZResult<ui::Gui<Message>> {
327327
let mut gui = ui::Gui::new();
328328
let h = line_heights().large;
329-
let icon = textures().icons.main_menu;
329+
let icon = textures().icons.main_menu.clone();
330330
let button = ui::Button::new(ui::Drawable::Texture(icon), h, gui.sender(), Message::Exit)?;
331331
let layout = ui::VLayout::from_widget(Box::new(button));
332332
let anchor = ui::Anchor(ui::HAnchor::Left, ui::VAnchor::Top);

src/screen/battle/view.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ impl BattleView {
177177
let tile_size = tile_size(map_diameter);
178178
let make_marker_sprite = |color: Color| -> ZResult<Sprite> {
179179
let h = tile_size * 2.0 * geom::FLATNESS_COEFFICIENT;
180-
let mut sprite = Sprite::from_texture(textures().map.selection, h);
180+
let mut sprite = Sprite::from_texture(&textures().map.selection, h);
181181
sprite.set_centered(true);
182182
sprite.set_color(color);
183183
Ok(sprite)
@@ -470,7 +470,7 @@ impl BattleView {
470470

471471
fn highlight_tile(&mut self, pos: PosHex, color: Color) -> ZResult {
472472
let size = self.tile_size() * 2.0 * geom::FLATNESS_COEFFICIENT;
473-
let mut sprite = Sprite::from_texture(textures().map.white_hex, size);
473+
let mut sprite = Sprite::from_texture(&textures().map.white_hex, size);
474474
let color_from = Color { a: 0.0, ..color };
475475
sprite.set_centered(true);
476476
sprite.set_color(color_from);
@@ -491,7 +491,7 @@ impl BattleView {
491491
let chances = hit_chance(state, attacker_id, target_id);
492492
let pos = hex_to_point(self.tile_size(), target_pos);
493493
let text = format!("{}%", chances.1 * 10);
494-
let font = assets::get().font;
494+
let font = &assets::get().font;
495495
let mut sprite = Sprite::from_text((text.as_str(), font), 0.1);
496496
sprite.set_pos(pos);
497497
sprite.set_centered(true);
@@ -506,8 +506,8 @@ impl BattleView {
506506
fn make_action_show_tile(state: &State, view: &BattleView, at: PosHex) -> ZResult<Box<dyn Action>> {
507507
let screen_pos = hex_to_point(view.tile_size(), at);
508508
let texture = match state.map().tile(at) {
509-
TileType::Plain => textures().map.tile,
510-
TileType::Rocks => textures().map.tile_rocks,
509+
TileType::Plain => &textures().map.tile,
510+
TileType::Rocks => &textures().map.tile_rocks,
511511
};
512512
let size = view.tile_size() * 2.0 * geom::FLATNESS_COEFFICIENT;
513513
let mut sprite = Sprite::from_texture(texture, size);
@@ -518,7 +518,7 @@ fn make_action_show_tile(state: &State, view: &BattleView, at: PosHex) -> ZResul
518518

519519
fn make_action_grass(view: &BattleView, at: PosHex) -> ZResult<Box<dyn Action>> {
520520
let screen_pos = hex_to_point(view.tile_size(), at);
521-
let mut sprite = Sprite::from_texture(textures().map.grass, view.tile_size() * 2.0);
521+
let mut sprite = Sprite::from_texture(&textures().map.grass, view.tile_size() * 2.0);
522522
let v_offset = view.tile_size() * 0.5; // depends on the image
523523
let mut screen_pos_grass = screen_pos + geom::rand_tile_offset(view.tile_size(), 0.5);
524524
screen_pos_grass.y -= v_offset;

0 commit comments

Comments
 (0)