//=============================================================================
// MUR VX Style Choices v2.1
// Copyright (C) 2018,2019 MUR (https://github.com/murlab)
// BSD 3-Clause "New" or "Revised" License
// Free for use with both free and commercial RPG Maker games
//=============================================================================

var Imported = Imported || {};
Imported.MUR_VXSTYLE = true;

var MUR = MUR || {};				// MUR's main object
MUR.VXSTYLE = MUR.VXSTYLE || {};	// Plugins's stuff

/*:
 * @plugindesc v2.1 VX Style Choices
 * @author MUR
 * @help Изменяет внешний вид меню выбора как в старом VX
 *
 * @param posX
 * @type number
 * @text Позиция окна выбора X (px)
 * @desc X положение окна выбора вариантов
 * @default 224
 *
 * @param posY
 * @type number
 * @text Позиция окна выбора Y (px)
 * @desc Y положение окна выбора вариантов
 * @default 349
 *
 * @param width
 * @text Ширина окна выбора (px)
 * @type number
 * @desc Задать фиксированную ширину окна выбора
 * @default 705
 *
 * @param arrowPos
 * @text Расположение стрелок (индикаторов) покрутки
 *
 * @param aUpPosX
 * @parent arrowPos
 * @type number
 * @text Позиция стрелки вверх X (px)
 * @desc X положение стрелки вверх окна выбора вариантов
 * @default 5
 *
 * @param aUpPosY
 * @type number
 * @parent arrowPos
 * @text Позиция стрелки вверх выбора Y (px)
 * @desc Y положение стрелки вверх окна выбора вариантов
 * @default 30
 *
 * @param aDownPosX
 * @parent arrowPos
 * @type number
 * @text Позиция стрелки вниз X (px)
 * @desc X положение стрелки вниз окна выбора вариантов
 * @default 5
 *
 * @param aDownPosY
 * @type number
 * @parent arrowPos
 * @text Позиция стрелки вниз выбора Y (px)
 * @desc Y положение стрелки вниз окна выбора вариантов
 * @default 30
 *
 */

var params = PluginManager.parameters('MUR_VX_Style_Choices');

MUR.VXSTYLE.posX = Number(params['posX']);
MUR.VXSTYLE.posY = Number(params['posY']);
MUR.VXSTYLE.width = Number(params['width']);
MUR.VXSTYLE.aUpPosX = Number(params['aUpPosX']);
MUR.VXSTYLE.aUpPosY = Number(params['aUpPosY']);
MUR.VXSTYLE.aDownPosX = Number(params['aDownPosX']);
MUR.VXSTYLE.aDownPosY = Number(params['aDownPosY']);

var _MurVX_Window_ChoiceList_updatePlacement = Window_ChoiceList.prototype.updatePlacement;
Window_ChoiceList.prototype.updatePlacement = function() {
	_MurVX_Window_ChoiceList_updatePlacement.call(this);

	var startY = MUR.VXSTYLE.posY;        
	var oneLineheight = Math.max(this.itemHeight(), this.lineHeight());
	var previousTextSize = $gameMessage._texts.length;
	var choicesTextSize = Object.keys($gameMessage.choices()).length;
	
	startY += previousTextSize * oneLineheight;
	this.height = oneLineheight * (5 - previousTextSize);

	MUR.VXSTYLE.aDownPosY = this.height - 30;
	
	this.x = MUR.VXSTYLE.posX;
	this.y = startY;
	this.width = MUR.VXSTYLE.width;
}


var _MurVx_Scene_Map_createMessageWindow = Scene_Map.prototype.createMessageWindow;
Scene_Map.prototype.createMessageWindow = function() {
	_MurVx_Scene_Map_createMessageWindow.call(this);
	var sw = this._messageWindow.subWindows();
	var w = undefined;
	for (var i=0; i<sw.length; i++) {
		if (sw[i] instanceof Window_ChoiceList) w = sw[i];
	}
	if (w != undefined) {
		this._windowLayer.removeChild(w);
		this.addChild(w);
	}
}

var _MurVx_Window_ChoiceList_refreshArrows = Window_ChoiceList.prototype._refreshArrows;
Window_ChoiceList.prototype._refreshArrows = function() {
	_MurVx_Window_ChoiceList_refreshArrows.call(this);        
	this._upArrowSprite.move(MUR.VXSTYLE.aUpPosX, MUR.VXSTYLE.aUpPosY);
	this._downArrowSprite.move(MUR.VXSTYLE.aDownPosX, MUR.VXSTYLE.aDownPosY);
}

Window_ChoiceList.prototype.setBackgroundType = function(type) {
	this.opacity = 0;
};

Window_ChoiceList.prototype.resetTextColor = function() {
    this.changeTextColor(this.normalColor());
	MUR.setfont(this.contents, 'n', 'green');
};

//TODO: доделать фон курсора

// Window_ChoiceList.prototype._refreshCursor = function() {
// 	this._dashOffset = 0;
// 	var pad = this._padding;
// 	var x = this._cursorRect.x + pad - this.origin.x;
// 	var y = this._cursorRect.y + pad - this.origin.y;
// 	var w = this._cursorRect.width;
// 	var h = this._cursorRect.height;
// 	var m = 4;
// 	var x2 = Math.max(x, pad);
// 	var y2 = Math.max(y, pad);
// 	var ox = x - x2;
// 	var oy = y - y2;
// 	this._w2 = Math.min(w, this._width - pad - x2);
// 	this._h2 = Math.min(h, this._height - pad - y2);	
// 	this._windowCursorSprite.setFrame(0, 0, this._w2, this._h2);
// 	this._windowCursorSprite.move(x2, y2);
// };

// Window_ChoiceList.prototype._updateCursor = function() {
// 	if (this.active) {
// 		var bitmap = new Bitmap(this._w2, this._h2);
// 		bitmap.context.setLineDash([6,3]);
// 		bitmap.context.lineDashOffset = this._dashOffset;
// 		bitmap.context.lineWidth = 2;
// 		bitmap.context.strokeStyle = '#000';
// 		bitmap.context.strokeRect(1, 1, this._w2-1.5, this._h2-1.5);
// 		bitmap.context.strokeStyle = '#fff';
// 		bitmap.context.strokeRect(0, 0, this._w2-1.5, this._h2-1.5);

// 		this._dashOffset++;
// 		if (this._dashOffset > 9) this._dashOffset = 0;
// 		this._windowCursorSprite.bitmap = bitmap;
// 	}
// 	this._windowCursorSprite.visible = this.isOpen();
// };
