From 0df8fc761d179f9f6de3cc2fdbc4b1baa428585e Mon Sep 17 00:00:00 2001 From: UnShame Date: Mon, 8 Jan 2024 00:16:23 +0400 Subject: [PATCH] Disable vignette for pixel skin --- public/js/SkinManager/SkinManager.js | 49 +++++++++++++++------------- public/js/SkinManager/skins.js | 3 +- public/js/State/stateCredits.js | 2 +- public/js/State/stateMenu.js | 4 +-- public/js/State/statePlay.js | 8 ++--- public/js/State/stateQueue.js | 2 +- public/js/UI/UI.js | 23 ++++++++----- 7 files changed, 51 insertions(+), 40 deletions(-) diff --git a/public/js/SkinManager/SkinManager.js b/public/js/SkinManager/SkinManager.js index 06c48a7e..412ad2bb 100644 --- a/public/js/SkinManager/SkinManager.js +++ b/public/js/SkinManager/SkinManager.js @@ -55,12 +55,12 @@ SkinManager.prototype.addSkins = function(skins){ * @param {object} options опции скина * * @param {string} options.name имя скина, должно соотвтествтовать папке с графикой скина в `assets/skins/` -* под этим именем скин будет сохранен в {@link SkinManager#skins} -* и это имя нужно использовать для установки скина -* графика карт - `cards.png` -* графика свечения карт - `glow.png` -* графика хвоста карт - `trails.png` -* графика отображения козырной масти - `suits.png` +* под этим именем скин будет сохранен в {@link SkinManager#skins} +* и это имя нужно использовать для установки скина +* графика карт - `cards.png` +* графика свечения карт - `glow.png` +* графика хвоста карт - `trails.png` +* графика отображения козырной масти - `suits.png` * @param {number} options.width реальная ширина карты (и ширина кадра графики карты) * @param {number} options.height реальная высота карты (и высота кадра графики карты) * @@ -83,6 +83,8 @@ SkinManager.prototype.addSkins = function(skins){ * @param {boolean} [options.hasSuits=true] есть ли графика отображения козырной масти * @param {string} [options.background='blue'] какой фон соответствует этому скину * @param {number} [options.color=ui.colors.lightBlue] цвет, соответствующий скину +* +* @param {boolean} [options.uiVignette=true] */ SkinManager.prototype.addSkin = function(options){ @@ -94,35 +96,35 @@ SkinManager.prototype.addSkin = function(options){ skin.background = options.background || 'blue'; skin.color = options.color === undefined ? ui.colors.lightBlue : options.color; - + skin.frameWidth = options.width || 0; skin.frameHeight = options.height || 0; - + skin.scale = options.scale || 1; - + skin.width = skin.frameWidth*skin.scale; skin.height = skin.frameHeight*skin.scale; - + skin.name = options.name; skin.friendlyName = options.friendlyName || options.name; skin.sheetName = skin.name + 'Cards'; skin.sheetPath = 'assets/skins/' + options.name + '/cards.png'; - + skin.numOfFrames = options.numOfFrames || 53; skin.firstValueFrame = options.firstValueFrame || 0; skin.cardbackPossibleNames = []; skin.cardbackPossibleFrames = []; skin.cardbackFrame = (options.cardbackFrame || options.cardbackFrame === 0) ? options.cardbackFrame : skin.cardbackPossibleFrames[0]; - + skin.trumpOffset = options.trumpOffset || 0; - + skin.glowPath = 'assets/skins/' + options.name + '/glow.png'; skin.glowSheetName = options.name + 'Glow'; skin.glowRealWidth = options.glowWidth || 0; skin.glowRealHeight = options.glowHeight || 0; skin.glowWidth = skin.glowRealWidth*skin.scale; skin.glowHeight = skin.glowRealHeight*skin.scale; - + skin.trailWidth = options.trailWidth || 0; skin.trailHeight = options.trailHeight || 0; skin.trailPath = 'assets/skins/' + options.name + '/trails.png'; @@ -132,6 +134,8 @@ SkinManager.prototype.addSkin = function(options){ skin.suitsPath = 'assets/skins/' + options.name + '/suits.png'; skin.suitsName = options.name + 'Suits'; + skin.uiVignette = options.uiVignette !== false; + if(options.cardbackPossibleFrames){ options.cardbackPossibleFrames.forEach(function(frame){ skin.cardbackPossibleNames.push(frame[0]); @@ -158,7 +162,7 @@ SkinManager.prototype.addSkin = function(options){ }; /** -* Загружает ассеты скина. +* Загружает ассеты скина. * @param {string} skinName название скина * @param {boolean} [apply] нужно ли применять скин после загрузки */ @@ -172,10 +176,10 @@ SkinManager.prototype.loadSkin = function(skinName, apply){ skin.loaded = true; game.load.spritesheet( - skin.sheetName, - skin.sheetPath, - skin.frameWidth, - skin.frameHeight, + skin.sheetName, + skin.sheetPath, + skin.frameWidth, + skin.frameHeight, skin.numOfFrames ); game.load.image(skin.glowSheetName, skin.glowPath); @@ -183,7 +187,7 @@ SkinManager.prototype.loadSkin = function(skinName, apply){ skin.trailName, skin.trailPath, skin.trailWidth, - skin.trailHeight, + skin.trailHeight, 4 ); if(skin.hasSuits){ @@ -191,7 +195,7 @@ SkinManager.prototype.loadSkin = function(skinName, apply){ skin.suitsName, skin.suitsPath, skin.frameWidth, - skin.frameHeight, + skin.frameHeight, 4 ); } @@ -221,6 +225,7 @@ SkinManager.prototype.setSkin = function(skinName){ gameOptions.set('appearance_skin', skinName); gameOptions.save(); gameOptions.set('appearance_cardback', this.getCurrentCardbackIndex()); + gameOptions.set('ui_vignette', this.skin.uiVignette); gameOptions.save(); if(!this.skin.loaded){ this.loadSkin(skinName, true); @@ -281,4 +286,4 @@ SkinManager.prototype.getSkinNames = function(){ return skins; } -//@include:skins \ No newline at end of file +//@include:skins diff --git a/public/js/SkinManager/skins.js b/public/js/SkinManager/skins.js index 746ad57f..8f5a3391 100644 --- a/public/js/SkinManager/skins.js +++ b/public/js/SkinManager/skins.js @@ -152,5 +152,6 @@ skins.push({ glowHeight: 204, trumpOffset: 40, trailWidth: 55, - trailHeight: 55 + trailHeight: 55, + uiVignette: false }); diff --git a/public/js/State/stateCredits.js b/public/js/State/stateCredits.js index 282b920f..9022b103 100644 --- a/public/js/State/stateCredits.js +++ b/public/js/State/stateCredits.js @@ -27,7 +27,7 @@ var stateCredits = new State('credits', { applySkin: function(){ //cardManager.applySkin(); ui.updatePositions(); - ui.background.setTexture(skinManager.skin.background); + ui.applySkin(); }, /** diff --git a/public/js/State/stateMenu.js b/public/js/State/stateMenu.js index 5814b253..10b85a91 100644 --- a/public/js/State/stateMenu.js +++ b/public/js/State/stateMenu.js @@ -1,5 +1,5 @@ /** -* Состояние игры, отвечающее за отображение главного меню игры. +* Состояние игры, отвечающее за отображение главного меню игры. * Синхронное состояние. * @namespace stateMenu * @property {string} key='menu' Название состояния. @@ -36,7 +36,7 @@ var stateMenu = new State('menu', { applySkin: function(){ ui.updatePositions(); cardEmitter.applySkin(); - ui.background.setTexture(skinManager.skin.background); + ui.applySkin(); }, /** diff --git a/public/js/State/statePlay.js b/public/js/State/statePlay.js index 0af7b99e..eae4e839 100644 --- a/public/js/State/statePlay.js +++ b/public/js/State/statePlay.js @@ -1,6 +1,6 @@ /** * Состояние процесса игры. -* Обновляет все игровые элементы. +* Обновляет все игровые элементы. * Синхронное состояние. * @namespace statePlay * @property {string} key='play' Название состояния. @@ -28,7 +28,7 @@ var statePlay = new State('play', { cardControl.updateDebug(); fieldManager.updateDebug(); - cardManager.updateDebug(); + cardManager.updateDebug(); game.updateDebug(); }, @@ -55,7 +55,7 @@ var statePlay = new State('play', { cardControl.trailApplySkin(); fieldManager.applySkin(); actionHandler.highlightPossibleActions(); - ui.background.setTexture(skinManager.skin.background); + ui.applySkin(); }, /** @@ -83,7 +83,7 @@ var statePlay = new State('play', { * Ресетит все игровые модули по окончанию игры, прячет кнопку действия. * @memberof statePlay */ - shutdown: function(){ + shutdown: function(){ actionHandler.resetActions(); ui.eventFeed.clear(); ui.announcer.clear(); diff --git a/public/js/State/stateQueue.js b/public/js/State/stateQueue.js index 4d826e76..63597c41 100644 --- a/public/js/State/stateQueue.js +++ b/public/js/State/stateQueue.js @@ -27,7 +27,7 @@ var stateQueue = new State('queue', { applySkin: function(){ ui.updatePositions(); cardEmitter.applySkin(); - ui.background.setTexture(skinManager.skin.background); + ui.applySkin(); }, /** diff --git a/public/js/UI/UI.js b/public/js/UI/UI.js index 13af1551..af8b199a 100644 --- a/public/js/UI/UI.js +++ b/public/js/UI/UI.js @@ -1,7 +1,7 @@ /** -* Менеджер интерфейса. -* Создает и обновляет позиции всех элементов интерфейса: кнопки, курсор, таймер и т.д. -* Создает менеджер слоев интерфейса {@link UI#layers} и добавляет элементы интерфейса, +* Менеджер интерфейса. +* Создает и обновляет позиции всех элементов интерфейса: кнопки, курсор, таймер и т.д. +* Создает менеджер слоев интерфейса {@link UI#layers} и добавляет элементы интерфейса, * а также существующие группы в него. * @class */ @@ -63,7 +63,7 @@ var UI = function(){ red: { outer: '#E00505', inner: '#FF2F2F', - background: '#F91E1E' + background: '#F91E1E' } } }; @@ -91,7 +91,7 @@ UI.prototype.initialize = function(){ * Фон. * @type {UI.Background} */ - this.background = new UI.Background(); + this.background = new UI.Background(); /** * Лого игры. @@ -117,17 +117,17 @@ UI.prototype.initialize = function(){ * Фид важных сообщений. * @type {MessageFeed.AnnounceFeed} */ - this.announcer = new MessageFeed.AnnounceFeed(game); + this.announcer = new MessageFeed.AnnounceFeed(game); /** * Фид событий. * @type {MessageFeed.EventFeed} */ - this.eventFeed = new MessageFeed.EventFeed(game); + this.eventFeed = new MessageFeed.EventFeed(game); this.eventFeed.zIndexBelowCards = 3; this.eventFeed.zIndexAboveCards = 7; - + /** * Менеджер модальных меню. * @type {UI.ModalManager} @@ -137,7 +137,7 @@ UI.prototype.initialize = function(){ this.popupManager = new UI.PopupManager(); this.credits = new UI.Credits(creditsText, game.state.change.bind(game.state, 'menu')); - + this._createButtons(); this.menus = this._createMenus(); @@ -177,6 +177,11 @@ UI.prototype.updatePositions = function(){ this.layers.positionElements(); }; +UI.prototype.applySkin = function(){ + ui.background.setTexture(skinManager.skin.background); + ui.background.vignette.visible = skinManager.skin.uiVignette; +}; + /** Возвращает phaser пиксель для превращения в текстуру. */ UI.prototype.newPixel = function(){ var pixel = game.make.graphics(0, 0);