mirror of
https://github.com/doukutsu-rs/doukutsu-rs
synced 2025-05-22 23:01:29 +00:00
Difficulty changes Quote NPC and original graphics sprites
This commit is contained in:
parent
7a580fdf44
commit
4055fef911
|
@ -436,7 +436,7 @@ impl Menu {
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
// Difficulty
|
// Difficulty
|
||||||
if state.constants.is_cs_plus && !state.settings.original_textures {
|
if state.constants.is_cs_plus {
|
||||||
let difficulty = GameDifficulty::from_primitive(save.difficulty);
|
let difficulty = GameDifficulty::from_primitive(save.difficulty);
|
||||||
|
|
||||||
let batch = state.texture_set.get_or_load_batch(ctx, &state.constants, "MyChar")?;
|
let batch = state.texture_set.get_or_load_batch(ctx, &state.constants, "MyChar")?;
|
||||||
|
|
|
@ -2573,7 +2573,14 @@ impl NPC {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let quote_offset = if self.spritesheet_id == 16 {
|
||||||
|
state.get_skinsheet_offset() * state.tile_size.as_int() as u16 * 2
|
||||||
|
} else {
|
||||||
|
0
|
||||||
|
};
|
||||||
self.anim_rect = state.constants.npc.n355_quote_and_curly_on_balrog[self.anim_num as usize];
|
self.anim_rect = state.constants.npc.n355_quote_and_curly_on_balrog[self.anim_num as usize];
|
||||||
|
self.anim_rect.top += quote_offset;
|
||||||
|
self.anim_rect.bottom += quote_offset;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,11 @@ use crate::rng::RNG;
|
||||||
use crate::shared_game_state::SharedGameState;
|
use crate::shared_game_state::SharedGameState;
|
||||||
|
|
||||||
impl NPC {
|
impl NPC {
|
||||||
pub fn tick_n111_quote_teleport_out(&mut self, state: &mut SharedGameState, players: [&mut Player; 2]) -> GameResult {
|
pub fn tick_n111_quote_teleport_out(
|
||||||
|
&mut self,
|
||||||
|
state: &mut SharedGameState,
|
||||||
|
players: [&mut Player; 2],
|
||||||
|
) -> GameResult {
|
||||||
match self.action_num {
|
match self.action_num {
|
||||||
0 => {
|
0 => {
|
||||||
self.action_num = 1;
|
self.action_num = 1;
|
||||||
|
@ -61,7 +65,8 @@ impl NPC {
|
||||||
let dir_offset = if self.direction == Direction::Left { 0 } else { 2 };
|
let dir_offset = if self.direction == Direction::Left { 0 } else { 2 };
|
||||||
self.anim_rect = state.constants.npc.n111_quote_teleport_out[self.anim_num as usize + dir_offset];
|
self.anim_rect = state.constants.npc.n111_quote_teleport_out[self.anim_num as usize + dir_offset];
|
||||||
|
|
||||||
let offset = players[state.textscript_vm.executor_player.index()].get_texture_offset();
|
let offset = players[state.textscript_vm.executor_player.index()].get_texture_offset()
|
||||||
|
+ (state.get_skinsheet_offset() * state.tile_size.as_int() as u16 * 2);
|
||||||
self.anim_rect.top += offset;
|
self.anim_rect.top += offset;
|
||||||
self.anim_rect.bottom += offset;
|
self.anim_rect.bottom += offset;
|
||||||
|
|
||||||
|
@ -76,7 +81,11 @@ impl NPC {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn tick_n112_quote_teleport_in(&mut self, state: &mut SharedGameState, players: [&mut Player; 2]) -> GameResult {
|
pub fn tick_n112_quote_teleport_in(
|
||||||
|
&mut self,
|
||||||
|
state: &mut SharedGameState,
|
||||||
|
players: [&mut Player; 2],
|
||||||
|
) -> GameResult {
|
||||||
match self.action_num {
|
match self.action_num {
|
||||||
0 => {
|
0 => {
|
||||||
self.action_num = 1;
|
self.action_num = 1;
|
||||||
|
@ -118,7 +127,8 @@ impl NPC {
|
||||||
let dir_offset = if self.direction == Direction::Left { 0 } else { 2 };
|
let dir_offset = if self.direction == Direction::Left { 0 } else { 2 };
|
||||||
self.anim_rect = state.constants.npc.n111_quote_teleport_out[self.anim_num as usize + dir_offset];
|
self.anim_rect = state.constants.npc.n111_quote_teleport_out[self.anim_num as usize + dir_offset];
|
||||||
|
|
||||||
let offset = players[state.textscript_vm.executor_player.index()].get_texture_offset();
|
let offset = players[state.textscript_vm.executor_player.index()].get_texture_offset()
|
||||||
|
+ (state.get_skinsheet_offset() * state.tile_size.as_int() as u16 * 2);
|
||||||
self.anim_rect.top += offset;
|
self.anim_rect.top += offset;
|
||||||
self.anim_rect.bottom += offset;
|
self.anim_rect.bottom += offset;
|
||||||
|
|
||||||
|
@ -133,7 +143,12 @@ impl NPC {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn tick_n150_quote(&mut self, state: &mut SharedGameState, players: [&mut Player; 2], npc_list: &NPCList) -> GameResult {
|
pub(crate) fn tick_n150_quote(
|
||||||
|
&mut self,
|
||||||
|
state: &mut SharedGameState,
|
||||||
|
players: [&mut Player; 2],
|
||||||
|
npc_list: &NPCList,
|
||||||
|
) -> GameResult {
|
||||||
match self.action_num {
|
match self.action_num {
|
||||||
0 => {
|
0 => {
|
||||||
self.action_num = 1;
|
self.action_num = 1;
|
||||||
|
@ -144,11 +159,10 @@ impl NPC {
|
||||||
self.x = player.x;
|
self.x = player.x;
|
||||||
self.y = player.y;
|
self.y = player.y;
|
||||||
|
|
||||||
self.direction = Direction::from_int(self.tsc_direction.saturating_sub(10) as usize)
|
self.direction =
|
||||||
.unwrap_or(Direction::Left);
|
Direction::from_int(self.tsc_direction.saturating_sub(10) as usize).unwrap_or(Direction::Left);
|
||||||
} else {
|
} else {
|
||||||
self.direction = Direction::from_int(self.tsc_direction as usize)
|
self.direction = Direction::from_int(self.tsc_direction as usize).unwrap_or(Direction::Left);
|
||||||
.unwrap_or(Direction::Left);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
2 => {
|
2 => {
|
||||||
|
@ -280,7 +294,8 @@ impl NPC {
|
||||||
self.anim_rect.bottom = self.anim_rect.top + self.action_counter / 4;
|
self.anim_rect.bottom = self.anim_rect.top + self.action_counter / 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
let offset = players[state.textscript_vm.executor_player.index()].get_texture_offset();
|
let offset = players[state.textscript_vm.executor_player.index()].get_texture_offset()
|
||||||
|
+ (state.get_skinsheet_offset() * state.tile_size.as_int() as u16 * 2);
|
||||||
self.anim_rect.top += offset;
|
self.anim_rect.top += offset;
|
||||||
self.anim_rect.bottom += offset;
|
self.anim_rect.bottom += offset;
|
||||||
|
|
||||||
|
|
|
@ -608,7 +608,7 @@ impl SharedGameState {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_skinsheet_offset(&self) -> u16 {
|
pub fn get_skinsheet_offset(&self) -> u16 {
|
||||||
if !self.constants.is_cs_plus || self.settings.original_textures {
|
if !self.constants.is_cs_plus {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue