diff --git a/public/assets/icons/increase-size-option.svg b/public/assets/icons/increase-size-option.svg new file mode 100644 index 0000000..76cad03 --- /dev/null +++ b/public/assets/icons/increase-size-option.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/Effects.vue b/src/components/Effects.vue index 76d18c6..fba077c 100644 --- a/src/components/Effects.vue +++ b/src/components/Effects.vue @@ -62,7 +62,7 @@ const createFogEffect = (scene: Phaser.Scene) => { const updateEffects = () => { const effects = zoneStore.zone?.zoneEffects || [] - effects.forEach(effect => { + effects.forEach((effect) => { switch (effect.effect) { case 'light': updateLightEffect(effect.strength) @@ -79,7 +79,7 @@ const updateEffects = () => { const updateLightEffect = (strength: number) => { if (!lightEffect.value) return - const darkness = 1 - (strength / 100) + const darkness = 1 - strength / 100 lightEffect.value.clear() lightEffect.value.fillStyle(0x000000, darkness) lightEffect.value.fillRect(0, 0, window.innerWidth, window.innerHeight) @@ -105,4 +105,6 @@ watch(() => zoneStore.zone?.zoneEffects, updateEffects, { deep: true }) onBeforeUnmount(() => { if (sceneRef.value) sceneRef.value.scene.remove('effects') }) - \ No newline at end of file + +// @TODO : Fix resize issue + diff --git a/src/components/gameMaster/GmPanel.vue b/src/components/gameMaster/GmPanel.vue index b003e8b..d4ace4d 100644 --- a/src/components/gameMaster/GmPanel.vue +++ b/src/components/gameMaster/GmPanel.vue @@ -1,7 +1,6 @@ gameStore.toggleGmPanel()" :modal-width="1000" :modal-height="650" :can-full-screen="true"> - GM Panel General Users diff --git a/src/components/gameMaster/assetManager/AssetManager.vue b/src/components/gameMaster/assetManager/AssetManager.vue index 24c5274..3d8ed22 100644 --- a/src/components/gameMaster/assetManager/AssetManager.vue +++ b/src/components/gameMaster/assetManager/AssetManager.vue @@ -22,8 +22,16 @@ NPC's - - Characters + (selectedCategory = 'shops')"> + Shops + + + (selectedCategory = 'characterTypes')"> + Character types + + + (selectedCategory = 'characterHair')"> + Character hair @@ -34,6 +42,10 @@ Pets + + Emoticons + + @@ -42,6 +54,7 @@ + @@ -51,6 +64,7 @@ + @@ -64,6 +78,8 @@ import ObjectList from '@/components/gameMaster/assetManager/partials/object/Obj import ObjectDetails from '@/components/gameMaster/assetManager/partials/object/ObjectDetails.vue' import SpriteList from '@/components/gameMaster/assetManager/partials/sprite/SpriteList.vue' import SpriteDetails from '@/components/gameMaster/assetManager/partials/sprite/SpriteDetails.vue' +import CharacterTypeList from '@/components/gameMaster/assetManager/partials/characterType/CharacterTypeList.vue' +import CharacterTypeDetails from '@/components/gameMaster/assetManager/partials/characterType/CharacterTypeDetails.vue' const assetManagerStore = useAssetManagerStore() const selectedCategory = ref('tiles') diff --git a/src/components/gameMaster/assetManager/partials/characterType/CharacterTypeDetails.vue b/src/components/gameMaster/assetManager/partials/characterType/CharacterTypeDetails.vue new file mode 100644 index 0000000..e4a133a --- /dev/null +++ b/src/components/gameMaster/assetManager/partials/characterType/CharacterTypeDetails.vue @@ -0,0 +1,117 @@ + + + + + + Name + + + + Gender + + {{ gender }} + + + + Race + + {{ race }} + + + + Sprite ID + + + Save + Remove + + + + + + diff --git a/src/components/gameMaster/assetManager/partials/characterType/CharacterTypeList.vue b/src/components/gameMaster/assetManager/partials/characterType/CharacterTypeList.vue new file mode 100644 index 0000000..168470a --- /dev/null +++ b/src/components/gameMaster/assetManager/partials/characterType/CharacterTypeList.vue @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + {{ characterType.name }} + + + + + + + + + + + diff --git a/src/components/gameMaster/zoneEditor/partials/ZoneSettings.vue b/src/components/gameMaster/zoneEditor/partials/ZoneSettings.vue index c8daed8..7c884b0 100644 --- a/src/components/gameMaster/zoneEditor/partials/ZoneSettings.vue +++ b/src/components/gameMaster/zoneEditor/partials/ZoneSettings.vue @@ -82,9 +82,13 @@ watch(pvp, (value) => { zoneEditorStore.setZonePvp(value) }) -watch(zoneEffects, (value) => { - zoneEditorStore.setZoneEffects(value) -}, { deep: true }) +watch( + zoneEffects, + (value) => { + zoneEditorStore.setZoneEffects(value) + }, + { deep: true } +) const addEffect = () => { zoneEffects.value.push({ @@ -99,4 +103,4 @@ const addEffect = () => { const removeEffect = (index) => { zoneEffects.value.splice(index, 1) } - \ No newline at end of file + diff --git a/src/components/utilities/Modal.vue b/src/components/utilities/Modal.vue index 0076189..ba6ba80 100644 --- a/src/components/utilities/Modal.vue +++ b/src/components/utilities/Modal.vue @@ -8,7 +8,7 @@ - + diff --git a/src/composables/zoneComposable.ts b/src/composables/zoneComposable.ts index ce87011..0879d64 100644 --- a/src/composables/zoneComposable.ts +++ b/src/composables/zoneComposable.ts @@ -83,7 +83,9 @@ export const sortByIsometricDepth = {} +export const clearAssets = (scene: Phaser.Scene) => { + scene.load.destroy() +} export const loadAssets = (scene: Phaser.Scene): Promise => { return new Promise((resolve) => { diff --git a/src/stores/assetManagerStore.ts b/src/stores/assetManagerStore.ts index b1f2c5a..72c9c69 100644 --- a/src/stores/assetManagerStore.ts +++ b/src/stores/assetManagerStore.ts @@ -1,6 +1,6 @@ import { ref } from 'vue' import { defineStore } from 'pinia' -import type { Tile, Object, Sprite } from '@/types' +import type { Tile, Object, Sprite, CharacterType } from '@/types' export const useAssetManagerStore = defineStore('assetManager', () => { const tileList = ref([]) @@ -12,6 +12,9 @@ export const useAssetManagerStore = defineStore('assetManager', () => { const spriteList = ref([]) const selectedSprite = ref(null) + const characterTypeList = ref([]) + const selectedCharacterType = ref(null) + function setTileList(tiles: Tile[]) { tileList.value = tiles } @@ -36,6 +39,14 @@ export const useAssetManagerStore = defineStore('assetManager', () => { selectedSprite.value = sprite } + function setCharacterTypeList(characterTypes: CharacterType[]) { + characterTypeList.value = characterTypes + } + + function setSelectedCharacterType(characterType: CharacterType | null) { + selectedCharacterType.value = characterType + } + return { tileList, selectedTile, @@ -43,11 +54,15 @@ export const useAssetManagerStore = defineStore('assetManager', () => { selectedObject, spriteList, selectedSprite, + characterTypeList, + selectedCharacterType, setTileList, setSelectedTile, setObjectList, + setCharacterTypeList, setSelectedObject, setSpriteList, - setSelectedSprite + setSelectedSprite, + setSelectedCharacterType } }) diff --git a/src/types.ts b/src/types.ts index 0a7d20e..a784736 100644 --- a/src/types.ts +++ b/src/types.ts @@ -136,8 +136,8 @@ export type CharacterType = { gender: CharacterGender race: CharacterRace characters: Character[] - spriteId: string - sprite: Sprite + spriteId?: string + sprite?: Sprite createdAt: Date updatedAt: Date }