mirror of
https://github.com/doukutsu-rs/doukutsu-rs
synced 2025-04-11 23:14:34 +00:00
commit
1c1beb4f3e
|
@ -70,7 +70,7 @@ image = {version = "0.22", default-features = false, features = ["png_codec", "p
|
|||
itertools = "0.9.0"
|
||||
lazy_static = "1.4.0"
|
||||
log = "0.4"
|
||||
lua-ffi = {git = "https://github.com/doukutsu-rs/lua-ffi.git", rev = "a1e7a62d7f583836b4703cfb8e54a68b79ceee11", optional = true}
|
||||
lua-ffi = {git = "https://github.com/doukutsu-rs/lua-ffi.git", rev = "1ef3caf772d72068297ddf75df06fd2ef8c1daab", optional = true}
|
||||
lru = "0.6.0"
|
||||
num-derive = "0.3.2"
|
||||
num-traits = "0.2.12"
|
||||
|
|
|
@ -148,7 +148,7 @@ impl GameEntity<(&Player, &Player)> for StageSelect {
|
|||
|
||||
let batch = state.texture_set.get_or_load_batch(ctx, &state.constants, "TextBox")?;
|
||||
|
||||
batch.add_rect(128.0, self.stage_select_text_y_pos as f32, &state.constants.textscript.stage_select_text);
|
||||
batch.add_rect((state.canvas_size.0 / 2.0) - 32.0, self.stage_select_text_y_pos as f32, &state.constants.textscript.stage_select_text);
|
||||
if slot_count > 0 {
|
||||
batch.add_rect(slot_offset + self.current_teleport_slot as f32 * 40.0, 64.0, &state.constants.textscript.cursor[self.tick / 2 % 2]);
|
||||
}
|
||||
|
|
|
@ -52,6 +52,10 @@ impl PlayerController for DummyPlayerController {
|
|||
false
|
||||
}
|
||||
|
||||
fn skip(&self) -> bool {
|
||||
false
|
||||
}
|
||||
|
||||
fn trigger_up(&self) -> bool {
|
||||
false
|
||||
}
|
||||
|
@ -84,6 +88,10 @@ impl PlayerController for DummyPlayerController {
|
|||
false
|
||||
}
|
||||
|
||||
fn trigger_skip(&self) -> bool {
|
||||
false
|
||||
}
|
||||
|
||||
fn trigger_menu_ok(&self) -> bool {
|
||||
false
|
||||
}
|
||||
|
|
|
@ -24,6 +24,7 @@ bitfield! {
|
|||
pub prev_weapon, set_prev_weapon: 9;
|
||||
pub escape, set_escape: 10;
|
||||
pub enter, set_enter: 11;
|
||||
pub skip, set_skip: 12;
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
|
@ -60,6 +61,7 @@ impl PlayerController for KeyboardController {
|
|||
self.state.set_inventory(keyboard::is_key_pressed(ctx, keymap.inventory));
|
||||
self.state.set_jump(keyboard::is_key_pressed(ctx, keymap.jump));
|
||||
self.state.set_shoot(keyboard::is_key_pressed(ctx, keymap.shoot));
|
||||
self.state.set_skip(keyboard::is_key_pressed(ctx, keymap.skip));
|
||||
self.state.set_prev_weapon(keyboard::is_key_pressed(ctx, keymap.prev_weapon));
|
||||
self.state.set_next_weapon(keyboard::is_key_pressed(ctx, keymap.next_weapon));
|
||||
self.state.set_enter(keyboard::is_key_pressed(ctx, VirtualKeyCode::Return));
|
||||
|
@ -107,6 +109,10 @@ impl PlayerController for KeyboardController {
|
|||
self.state.shoot()
|
||||
}
|
||||
|
||||
fn skip(&self) -> bool {
|
||||
self.state.skip()
|
||||
}
|
||||
|
||||
fn trigger_up(&self) -> bool {
|
||||
self.trigger.up()
|
||||
}
|
||||
|
@ -139,6 +145,10 @@ impl PlayerController for KeyboardController {
|
|||
self.trigger.shoot()
|
||||
}
|
||||
|
||||
fn trigger_skip(&self) -> bool {
|
||||
self.trigger.skip()
|
||||
}
|
||||
|
||||
fn trigger_menu_ok(&self) -> bool {
|
||||
self.trigger.jump() || self.trigger.enter()
|
||||
}
|
||||
|
|
|
@ -31,6 +31,9 @@ pub trait PlayerController: PlayerControllerClone {
|
|||
/// True if "shoot" button is down.
|
||||
fn shoot(&self) -> bool;
|
||||
|
||||
/// True if "skip" button is down.
|
||||
fn skip(&self) -> bool;
|
||||
|
||||
fn trigger_up(&self) -> bool;
|
||||
|
||||
fn trigger_left(&self) -> bool;
|
||||
|
@ -47,6 +50,8 @@ pub trait PlayerController: PlayerControllerClone {
|
|||
|
||||
fn trigger_shoot(&self) -> bool;
|
||||
|
||||
fn trigger_skip(&self) -> bool;
|
||||
|
||||
fn trigger_menu_ok(&self) -> bool;
|
||||
|
||||
fn trigger_menu_back(&self) -> bool;
|
||||
|
|
|
@ -133,6 +133,11 @@ impl PlayerController for TouchPlayerController {
|
|||
self.state.shoot()
|
||||
}
|
||||
|
||||
fn skip(&self) -> bool {
|
||||
// TODO
|
||||
false
|
||||
}
|
||||
|
||||
fn trigger_up(&self) -> bool {
|
||||
self.trigger.up()
|
||||
}
|
||||
|
@ -165,6 +170,11 @@ impl PlayerController for TouchPlayerController {
|
|||
self.trigger.shoot()
|
||||
}
|
||||
|
||||
fn trigger_skip(&self) -> bool {
|
||||
// TODO
|
||||
false
|
||||
}
|
||||
|
||||
fn trigger_menu_ok(&self) -> bool {
|
||||
self.trigger.jump()
|
||||
}
|
||||
|
|
|
@ -72,6 +72,7 @@ pub struct PlayerKeyMap {
|
|||
pub next_weapon: VirtualKeyCode,
|
||||
pub jump: VirtualKeyCode,
|
||||
pub shoot: VirtualKeyCode,
|
||||
pub skip: VirtualKeyCode,
|
||||
pub inventory: VirtualKeyCode,
|
||||
pub map: VirtualKeyCode,
|
||||
}
|
||||
|
@ -86,6 +87,7 @@ fn p1_default_keymap() -> PlayerKeyMap {
|
|||
next_weapon: VirtualKeyCode::S,
|
||||
jump: VirtualKeyCode::Z,
|
||||
shoot: VirtualKeyCode::X,
|
||||
skip: VirtualKeyCode::LControl,
|
||||
inventory: VirtualKeyCode::Q,
|
||||
map: VirtualKeyCode::W,
|
||||
}
|
||||
|
@ -101,6 +103,7 @@ fn p2_default_keymap() -> PlayerKeyMap {
|
|||
next_weapon: VirtualKeyCode::H,
|
||||
jump: VirtualKeyCode::B,
|
||||
shoot: VirtualKeyCode::N,
|
||||
skip: VirtualKeyCode::RControl,
|
||||
inventory: VirtualKeyCode::T,
|
||||
map: VirtualKeyCode::Y,
|
||||
}
|
||||
|
|
|
@ -564,7 +564,9 @@ impl TextScriptVM {
|
|||
}
|
||||
|
||||
if remaining > 1 {
|
||||
let ticks = if state.textscript_vm.flags.fast() {
|
||||
let ticks = if state.textscript_vm.flags.fast()
|
||||
|| game_scene.player1.controller.skip()
|
||||
|| game_scene.player2.controller.skip() {
|
||||
0
|
||||
} else if game_scene.player1.controller.jump()
|
||||
|| game_scene.player1.controller.shoot()
|
||||
|
@ -633,8 +635,10 @@ impl TextScriptVM {
|
|||
TextScriptExecutionState::WaitInput(event, ip) => {
|
||||
if game_scene.player1.controller.trigger_jump()
|
||||
|| game_scene.player1.controller.trigger_shoot()
|
||||
|| game_scene.player1.controller.skip()
|
||||
|| game_scene.player2.controller.trigger_jump()
|
||||
|| game_scene.player2.controller.trigger_shoot() {
|
||||
|| game_scene.player2.controller.trigger_shoot()
|
||||
|| game_scene.player2.controller.skip() {
|
||||
state.textscript_vm.state = TextScriptExecutionState::Running(event, ip);
|
||||
}
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue