exp pickup sound

This commit is contained in:
Alula 2020-09-17 00:44:14 +02:00
parent 0aee3716e6
commit be6aefdd09
No known key found for this signature in database
GPG Key ID: 3E00485503A1D8BA
3 changed files with 41 additions and 10 deletions

View File

@ -1,14 +1,12 @@
use num_traits::clamp;
use std::borrow::Borrow;
use crate::caret::CaretType;
use crate::common::{Condition, Direction, Flag, Rect};
use crate::inventory::{AddExperienceResult, Inventory};
use crate::npc::{NPC, NPCMap};
use crate::physics::PhysicalEntity;
use crate::player::Player;
use crate::SharedGameState;
use crate::stage::Stage;
use std::borrow::Borrow;
use crate::inventory::{Inventory, AddExperienceResult};
impl PhysicalEntity for Player {
#[inline(always)]
@ -172,17 +170,18 @@ impl Player {
// xp pickup
if flags.0 != 0 && npc.npc_type == 1 {
state.sound_manager.play_sfx(14);
match inventory.add_xp(npc.exp, state) {
AddExperienceResult::None => {},
AddExperienceResult::None => {}
AddExperienceResult::LevelUp => {
// todo play sound 27
state.sound_manager.play_sfx(27);
state.create_caret(self.x, self.y, CaretType::LevelUp, Direction::Left);
},
}
AddExperienceResult::AddStar => {
if self.equip.has_whimsical_star() && self.stars < 3 {
self.stars += 1;
}
},
}
}
npc.cond.set_alive(false);
}

View File

@ -692,7 +692,7 @@ impl Scene for GameScene {
self.player.target_y = self.player.y;
self.frame.immediate_update(state, &self.player, &self.stage);
self.inventory.add_weapon(WeaponType::PolarStar, 0);
//self.inventory.add_weapon(WeaponType::PolarStar, 0);
//self.player.equip.set_booster_2_0(true);
Ok(())
}

View File

@ -145,7 +145,39 @@ pub static PIXTONE_TABLE: [PixToneParameters; 51] = [
}, Channel::disabled(), Channel::disabled()]
},
PixToneParameters::empty(),
PixToneParameters::empty(),
PixToneParameters {
channels: [Channel {
enabled: true,
length: 10000,
carrier: Waveform {
waveform_type: 1,
pitch: 246.0,
level: 23,
offset: 0,
},
frequency: Waveform {
waveform_type: 4,
pitch: 0.6,
level: 22,
offset: 239,
},
amplitude: Waveform {
waveform_type: 4,
pitch: 6.0,
level: 63,
offset: 0,
},
envelope: Envelope {
initial: 0,
time_a: 11,
value_a: 63,
time_b: 13,
value_b: 63,
time_c: 255,
value_c: 0,
},
}, Channel::disabled(), Channel::disabled(), Channel::disabled()]
},
PixToneParameters {
channels: [Channel {
enabled: true,