Added playSound func, use this on attack

This commit is contained in:
2025-02-06 21:00:32 +01:00
parent 122a178feb
commit c2d41a63a7
9 changed files with 22 additions and 10 deletions

View File

@ -14,6 +14,7 @@ import CharacterHair from '@/components/game/character/partials/CharacterHair.vu
import ChatBubble from '@/components/game/character/partials/ChatBubble.vue'
import HealthBar from '@/components/game/character/partials/HealthBar.vue'
import { useCharacterSpriteComposable } from '@/composables/useCharacterSpriteComposable'
import { useGameComposable } from '@/composables/useGameComposable'
import { useGameStore } from '@/stores/gameStore'
import { useMapStore } from '@/stores/mapStore'
import { Container, Sprite, useScene } from 'phavuer'
@ -29,13 +30,13 @@ const mapStore = useMapStore()
const scene = useScene()
const { characterContainer, characterSprite, currentPositionX, currentPositionY, isometricDepth, isFlippedX, updatePosition, playAnimation, calcDirection, updateSprite, initializeSprite, cleanup } = useCharacterSpriteComposable(scene, props.tileMap, props.mapCharacter)
const { playSound } = useGameComposable()
const handlePositionUpdate = (newValues: any, oldValues: any) => {
if (!newValues) return
if (!oldValues || newValues.positionX !== oldValues.positionX || newValues.positionY !== oldValues.positionY) {
const direction = !oldValues ? Direction.POSITIVE : calcDirection(oldValues.positionX, oldValues.positionY, newValues.positionX, newValues.positionY)
updatePosition(newValues.positionX, newValues.positionY, direction)
updatePosition(newValues.positionX, newValues.positionY)
}
if (newValues.isMoving !== oldValues?.isMoving || newValues.rotation !== oldValues?.rotation) {
@ -57,6 +58,8 @@ watch(
if (props.mapCharacter.isAttacking) {
// Play attack animation
playAnimation('attack')
// Play hit sound
playSound('/assets/sounds/hit.wav')
// Disable attack immediately after playing the animation
mapStore.updateCharacterProperty(props.mapCharacter.character.id, 'isAttacking', false)
}

View File

@ -26,11 +26,11 @@
</div>
<div class="form-field-half">
<label for="originX">Origin X</label>
<input class="input-field" v-model="mapObjectOriginX" name="originX" id="originX" type="number" />
<input class="input-field" v-model="mapObjectOriginX" name="originX" id="originX" type="number" min="0.0" step="0.1" />
</div>
<div class="form-field-half">
<label for="originY">Origin Y</label>
<input class="input-field" v-model="mapObjectOriginY" name="originY" id="originY" type="number" />
<input class="input-field" v-model="mapObjectOriginY" name="originY" id="originY" type="number" min="0.0" step="0.1" />
</div>
</div>
<button class="btn-cyan px-4 py-1.5 min-w-24" @click="handleUpdate">Save</button>

View File

@ -77,7 +77,6 @@ const tileCategories = ref<Map<string, string>>(new Map())
const selectedGroup = ref<{ parent: Tile; children: Tile[] } | null>(null)
const tiles = ref<Tile[]>([])
function startDragging(event: MouseEvent) {
isDragging.value = true
const startX = event.clientX