diff --git a/dist/shattered_sword_assets/images/brown.png b/dist/shattered_sword_assets/images/brown.png new file mode 100644 index 0000000..d926359 Binary files /dev/null and b/dist/shattered_sword_assets/images/brown.png differ diff --git a/dist/shattered_sword_assets/sounds/dash.wav b/dist/shattered_sword_assets/sounds/dash.wav new file mode 100644 index 0000000..539f141 Binary files /dev/null and b/dist/shattered_sword_assets/sounds/dash.wav differ diff --git a/dist/shattered_sword_assets/sounds/sword_ding.m4a b/dist/shattered_sword_assets/sounds/sword_ding.m4a new file mode 100644 index 0000000..33aa0fb Binary files /dev/null and b/dist/shattered_sword_assets/sounds/sword_ding.m4a differ diff --git a/src/shattered_sword/GameSystems/BattleManager.ts b/src/shattered_sword/GameSystems/BattleManager.ts index 6538b94..4694841 100644 --- a/src/shattered_sword/GameSystems/BattleManager.ts +++ b/src/shattered_sword/GameSystems/BattleManager.ts @@ -19,6 +19,7 @@ export default class BattleManager { if(this.enemies.length != 0){ for (let enemy of this.enemies) { if (weapon.hits(enemy.owner)) { + let player = (this.players[0]); if(player.fullHpBonus){ diff --git a/src/shattered_sword/GameSystems/items/Weapon.ts b/src/shattered_sword/GameSystems/items/Weapon.ts index 7c4fee2..fa2b9f9 100644 --- a/src/shattered_sword/GameSystems/items/Weapon.ts +++ b/src/shattered_sword/GameSystems/items/Weapon.ts @@ -7,7 +7,7 @@ import BattleManager from "../BattleManager"; import Item from "./Item"; import WeaponType from "./WeaponTypes/WeaponType"; import Vec2 from "../../../Wolfie2D/DataTypes/Vec2"; - +import { GameEventType } from "../../../Wolfie2D/Events/GameEventType"; export default class Weapon extends Item { /** The type of this weapon */ @@ -74,7 +74,9 @@ export default class Weapon extends Item { // Reset the cooldown timer this.cooldownTimer.start(); - + //TODO - may have to move elsewhere + this.emitter.fireEvent(GameEventType.PLAY_SOUND, {key: "sword", loop: false, holdReference: false}); + return true; } diff --git a/src/shattered_sword/GameSystems/items/WeaponTypes/Slice.ts b/src/shattered_sword/GameSystems/items/WeaponTypes/Slice.ts index bad952b..3deb6aa 100644 --- a/src/shattered_sword/GameSystems/items/WeaponTypes/Slice.ts +++ b/src/shattered_sword/GameSystems/items/WeaponTypes/Slice.ts @@ -37,6 +37,7 @@ export default class Slice extends WeaponType { // Play the slice animation w/o loop, but queue the normal animation sliceSprite.animation.play("SLICE"); sliceSprite.animation.queue("NORMAL", true); + } createRequiredAssets(scene: Scene): [AnimatedSprite] { diff --git a/src/shattered_sword/Player/PlayerController.ts b/src/shattered_sword/Player/PlayerController.ts index 81f2caf..7047adb 100644 --- a/src/shattered_sword/Player/PlayerController.ts +++ b/src/shattered_sword/Player/PlayerController.ts @@ -236,6 +236,7 @@ export default class PlayerController extends StateMachineAI implements BattlerA // If there is an item in the current slot, use it if (item) { item.use(this.owner, "player", this.lookDirection); + //this.emitter.fireEvent(GameEventType.PLAY_SOUND, {key: "sword", loop: false, holdReference: false}); } } diff --git a/src/shattered_sword/Player/PlayerStates/Fall.ts b/src/shattered_sword/Player/PlayerStates/Fall.ts index ff4a6a7..a5ed961 100644 --- a/src/shattered_sword/Player/PlayerStates/Fall.ts +++ b/src/shattered_sword/Player/PlayerStates/Fall.ts @@ -3,6 +3,7 @@ import AnimatedSprite from "../../../Wolfie2D/Nodes/Sprites/AnimatedSprite"; import InAir from "./InAir"; import InputWrapper from "../../Tools/InputWrapper"; import PlayerState from "./PlayerState"; +import { GameEventType } from "../../../Wolfie2D/Events/GameEventType"; export default class Fall extends InAir { owner: AnimatedSprite; @@ -13,6 +14,7 @@ export default class Fall extends InAir { update(deltaT: number): void { if (!PlayerState.dashTimer.isStopped()) { + this.emitter.fireEvent(GameEventType.PLAY_SOUND, {key: "dash", loop: false, holdReference: false}); this.owner.animation.playIfNotAlready("DASH"); } else { diff --git a/src/shattered_sword/Player/PlayerStates/Jump.ts b/src/shattered_sword/Player/PlayerStates/Jump.ts index 4e7ee11..6be84d8 100644 --- a/src/shattered_sword/Player/PlayerStates/Jump.ts +++ b/src/shattered_sword/Player/PlayerStates/Jump.ts @@ -19,6 +19,7 @@ export default class Jump extends InAir { update(deltaT: number): void { if (!PlayerState.dashTimer.isStopped()) { + this.emitter.fireEvent(GameEventType.PLAY_SOUND, {key: "dash", loop: false, holdReference: false}); this.owner.animation.playIfNotAlready("DASH"); } else { diff --git a/src/shattered_sword/Player/PlayerStates/Walk.ts b/src/shattered_sword/Player/PlayerStates/Walk.ts index c7e2232..715f7a0 100644 --- a/src/shattered_sword/Player/PlayerStates/Walk.ts +++ b/src/shattered_sword/Player/PlayerStates/Walk.ts @@ -4,6 +4,7 @@ import InputWrapper from "../../Tools/InputWrapper"; import { PlayerStates } from "../PlayerController"; import OnGround from "./OnGround"; import PlayerState from "./PlayerState"; +import { GameEventType } from "../../../Wolfie2D/Events/GameEventType"; export default class Walk extends OnGround { owner: AnimatedSprite; @@ -16,6 +17,7 @@ export default class Walk extends OnGround { update(deltaT: number): void { if (!PlayerState.dashTimer.isStopped()) { + this.emitter.fireEvent(GameEventType.PLAY_SOUND, {key: "dash", loop: false, holdReference: false}); this.owner.animation.playIfNotAlready("DASH"); } else { diff --git a/src/shattered_sword/Scenes/GameLevel.ts b/src/shattered_sword/Scenes/GameLevel.ts index 3031b0e..af40f02 100644 --- a/src/shattered_sword/Scenes/GameLevel.ts +++ b/src/shattered_sword/Scenes/GameLevel.ts @@ -159,9 +159,12 @@ export default class GameLevel extends Scene { this.load.audio("jump", "shattered_sword_assets/sounds/jump2.wav"); this.load.audio("hurt", "shattered_sword_assets/sounds/hurt.wav"); this.load.audio("die", "shattered_sword_assets/sounds/die.wav"); + this.load.audio("dash", "shattered_sword_assets/sounds/dash.wav"); this.load.audio("level_up","shattered_sword_assets/sounds/level_up.wav"); //神社(じんじゃ)祭(まつり) by Second Dimension Imagination Group - this.load.audio("level_music","shattered_sword_assets/sounds/bgm1.mp3") + this.load.audio("level_music","shattered_sword_assets/sounds/bgm1.mp3"); + this.load.audio("sword","shattered_sword_assets/sounds/sword_ding.m4a"); + this.load.image("knife", "shattered_sword_assets/sprites/knife.png"); @@ -976,7 +979,7 @@ export default class GameLevel extends Scene { protected playStartStory() { if (!this.touchedStartCheckPoint) { this.touchedStartCheckPoint = true; - this.storyLoader("shattered_sword_assets/jsons/level1story.json"); + this.storyLoader("shattered_sword_assets/jsons/story.json"); this.startTimer(); } } diff --git a/src/shattered_sword/Scenes/SplashScreen.ts b/src/shattered_sword/Scenes/SplashScreen.ts index 4843a67..cde6d7f 100644 --- a/src/shattered_sword/Scenes/SplashScreen.ts +++ b/src/shattered_sword/Scenes/SplashScreen.ts @@ -22,8 +22,8 @@ export default class SplashScreen extends Scene { loadScene(): void { //load images - this.load.image("logo", "shattered_sword_assets/images/black.png"); this.load.image("backgroundImage", "shattered_sword_assets/images/logo.png"); + this.load.image("logo", "shattered_sword_assets/images/brown.png"); // Load the menu song //this.load.audio("menu", "assets/music/menu.mp3"); } diff --git a/src/shattered_sword/Scenes/Tutorial.ts b/src/shattered_sword/Scenes/Tutorial.ts index b7b67bc..12b6479 100644 --- a/src/shattered_sword/Scenes/Tutorial.ts +++ b/src/shattered_sword/Scenes/Tutorial.ts @@ -45,4 +45,12 @@ export default class Tutorial extends GameLevel { this.viewport.setZoomLevel(1); this.sceneManager.changeToScene(Porcelain); } + + protected playStartStory(): void { + if (!this.touchedStartCheckPoint) { + this.touchedStartCheckPoint = true; + this.storyLoader("shattered_sword_assets/jsons/level1story.json"); + this.startTimer(); + } + } } \ No newline at end of file