Skip to content

Commit

Permalink
Disable vignette for pixel skin
Browse files Browse the repository at this point in the history
  • Loading branch information
unshame committed Jan 7, 2024
1 parent 66497c8 commit 0df8fc7
Show file tree
Hide file tree
Showing 7 changed files with 51 additions and 40 deletions.
49 changes: 27 additions & 22 deletions public/js/SkinManager/SkinManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 реальная высота карты (и высота кадра графики карты)
*
Expand All @@ -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){

Expand All @@ -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';
Expand All @@ -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]);
Expand All @@ -158,7 +162,7 @@ SkinManager.prototype.addSkin = function(options){
};

/**
* Загружает ассеты скина.
* Загружает ассеты скина.
* @param {string} skinName название скина
* @param {boolean} [apply] нужно ли применять скин после загрузки
*/
Expand All @@ -172,26 +176,26 @@ 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);
game.load.spritesheet(
skin.trailName,
skin.trailPath,
skin.trailWidth,
skin.trailHeight,
skin.trailHeight,
4
);
if(skin.hasSuits){
game.load.spritesheet(
skin.suitsName,
skin.suitsPath,
skin.frameWidth,
skin.frameHeight,
skin.frameHeight,
4
);
}
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -281,4 +286,4 @@ SkinManager.prototype.getSkinNames = function(){
return skins;
}

//@include:skins
//@include:skins
3 changes: 2 additions & 1 deletion public/js/SkinManager/skins.js
Original file line number Diff line number Diff line change
Expand Up @@ -152,5 +152,6 @@ skins.push({
glowHeight: 204,
trumpOffset: 40,
trailWidth: 55,
trailHeight: 55
trailHeight: 55,
uiVignette: false
});
2 changes: 1 addition & 1 deletion public/js/State/stateCredits.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ var stateCredits = new State('credits', {
applySkin: function(){
//cardManager.applySkin();
ui.updatePositions();
ui.background.setTexture(skinManager.skin.background);
ui.applySkin();
},

/**
Expand Down
4 changes: 2 additions & 2 deletions public/js/State/stateMenu.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Состояние игры, отвечающее за отображение главного меню игры.
* Состояние игры, отвечающее за отображение главного меню игры.
* Синхронное состояние.
* @namespace stateMenu
* @property {string} key='menu' Название состояния.
Expand Down Expand Up @@ -36,7 +36,7 @@ var stateMenu = new State('menu', {
applySkin: function(){
ui.updatePositions();
cardEmitter.applySkin();
ui.background.setTexture(skinManager.skin.background);
ui.applySkin();
},

/**
Expand Down
8 changes: 4 additions & 4 deletions public/js/State/statePlay.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/**
* Состояние процесса игры.
* Обновляет все игровые элементы.
* Обновляет все игровые элементы.
* Синхронное состояние.
* @namespace statePlay
* @property {string} key='play' Название состояния.
Expand Down Expand Up @@ -28,7 +28,7 @@ var statePlay = new State('play', {

cardControl.updateDebug();
fieldManager.updateDebug();
cardManager.updateDebug();
cardManager.updateDebug();
game.updateDebug();
},

Expand All @@ -55,7 +55,7 @@ var statePlay = new State('play', {
cardControl.trailApplySkin();
fieldManager.applySkin();
actionHandler.highlightPossibleActions();
ui.background.setTexture(skinManager.skin.background);
ui.applySkin();
},

/**
Expand Down Expand Up @@ -83,7 +83,7 @@ var statePlay = new State('play', {
* Ресетит все игровые модули по окончанию игры, прячет кнопку действия.
* @memberof statePlay
*/
shutdown: function(){
shutdown: function(){
actionHandler.resetActions();
ui.eventFeed.clear();
ui.announcer.clear();
Expand Down
2 changes: 1 addition & 1 deletion public/js/State/stateQueue.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ var stateQueue = new State('queue', {
applySkin: function(){
ui.updatePositions();
cardEmitter.applySkin();
ui.background.setTexture(skinManager.skin.background);
ui.applySkin();
},

/**
Expand Down
23 changes: 14 additions & 9 deletions public/js/UI/UI.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* Менеджер интерфейса.
* Создает и обновляет позиции всех элементов интерфейса: кнопки, курсор, таймер и т.д.
* Создает менеджер слоев интерфейса {@link UI#layers} и добавляет элементы интерфейса,
* Менеджер интерфейса.
* Создает и обновляет позиции всех элементов интерфейса: кнопки, курсор, таймер и т.д.
* Создает менеджер слоев интерфейса {@link UI#layers} и добавляет элементы интерфейса,
* а также существующие группы в него.
* @class
*/
Expand Down Expand Up @@ -63,7 +63,7 @@ var UI = function(){
red: {
outer: '#E00505',
inner: '#FF2F2F',
background: '#F91E1E'
background: '#F91E1E'
}
}
};
Expand Down Expand Up @@ -91,7 +91,7 @@ UI.prototype.initialize = function(){
* Фон.
* @type {UI.Background}
*/
this.background = new UI.Background();
this.background = new UI.Background();

/**
* Лого игры.
Expand All @@ -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}
Expand All @@ -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();
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 0df8fc7

Please sign in to comment.