Advertisement
ICF-Soft

ICFSoft_YEPShowParams

Dec 19th, 2018
480
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //=============================================================================
  2. // ICF-Soft Plugins - Patch to show params in Yanfly plugins
  3. // ICFSoft_YEPShowParams.js
  4. //=============================================================================
  5.  
  6. var Imported = Imported || {};
  7. Imported.ICFSoft_YEPShowParams = true;
  8.  
  9. var ICF = ICF || {};
  10. ICF.YEPShowParams = ICF.YEPShowParams || {};
  11. ICF.NotetagsProcessor = ICF.NotetagsProcessor || {};
  12.  
  13. ICF.YEPShowParams.Version = 101; // 1.01
  14.  
  15. //=============================================================================
  16.  /*:
  17.  * @plugindesc v1.01 This plugin allows you to use ICFSoft Params Core
  18.  * with some Yanfly plugins.
  19.  * @author ICF-Soft [http://icfsoft.blogspot.com.es/]
  20.  *
  21.  * @param General Status Column1
  22.  * @desc Param names that will be shown in status scene in general tab.
  23.  * @default mhp atk def agi
  24.  *
  25.  * @param General Status Column2
  26.  * @desc Param names that will be shown in status scene in general tab.
  27.  * @default mmp mat mdf luk
  28.  *
  29.  * @param Param Status Column1
  30.  * @desc Param names that will be shown in status scene in params tab.
  31.  * @default atk def mat mdf agi luk
  32.  *
  33.  * @param Param Status Column2
  34.  * @desc Param names that will be shown in status scene in params tab.
  35.  * @default
  36.  *
  37.  * @param Param Status Column3
  38.  * @desc Param names that will be shown in status scene in params tab.
  39.  * @default
  40.  *
  41.  * @param Param Status Column4
  42.  * @desc Param names that will be shown in status scene in params tab.
  43.  * @default
  44.  *
  45.  * @param Equip Column1
  46.  * @desc Param names that will be shown in equip scene.
  47.  * @default mhp mmp atk def mat mdf agi luk
  48.  *
  49.  * @param Equip Column Font Size
  50.  * @desc Font size for params that will be shown in equip scene.
  51.  * @default 28
  52.  *
  53.  * @param Party Column
  54.  * @desc Param names that will be shown in formation scene.
  55.  * @default mhp mmp atk def mat mdf agi luk
  56.  *
  57.  * @param Item Columns
  58.  * @desc Param names that will be shown in item scene.
  59.  * @default mhp mmp atk def mat mdf agi luk
  60.  *
  61.  * @param Shop Item Columns
  62.  * @desc Param names that will be shown in shop scene.
  63.  * @default mhp mmp atk def mat mdf agi luk
  64.  *
  65.  * @help
  66.  * ============================================================================
  67.  * Introduction
  68.  * ============================================================================
  69.  *
  70.  * This plugin allows you to show parameters created with ICFSoft Params Core
  71.  * in some Yanfly plugins.
  72.  *
  73.  * Actually it works with Yanfly Equip core, Item core, attach augments, Shop
  74.  * menu core, Party system and Status menu core. Must be below all of them.
  75.  *
  76.  * ============================================================================
  77.  * Incompatibilities
  78.  * ============================================================================
  79.  *
  80.  * There's no known incompatible plugins yet.
  81.  *
  82.  * ============================================================================
  83.  * Known isues
  84.  * ============================================================================
  85.  *
  86.  * Not yet.
  87.  *
  88.  * ============================================================================
  89.  * Changelog
  90.  * ============================================================================
  91.  *
  92.  * Version 1.01:
  93.  * - Added use of ICF-Soft Params Core CParams.
  94.  * - Added option to show params in Row formation menu.
  95.  * - Added option to show params in Status menu panels.
  96.  * - Solved a bug that disallows augments for creatable params.
  97.  * - Solved a bug in Yanfly's attach augments plugin.
  98.  *
  99.  * Version 1.00:
  100.  * - Finished plugin!
  101.  *
  102.  * ============================================================================
  103.  *
  104.  * For commercial and non-commercial games.
  105.  * Credit to ICF-Soft.
  106.  * This entire header must be included with plugin.
  107.  *
  108.  * ============================================================================
  109. */
  110. //=============================================================================
  111.  /*:es
  112.  * @plugindesc v1.01 Este complemento permite usar los parámetros creados con
  113.  * ICFSoft Params Core en algunos plugins de Yanfly.
  114.  * @author ICF-Soft [http://icfsoft.blogspot.com.es/]
  115.  *
  116.  * @param General Status Column1
  117.  * @desc Parámetros a mostrar en el panel general del menú de estado.
  118.  * @default mhp atk def agi
  119.  *
  120.  * @param General Status Column2
  121.  * @desc Parámetros a mostrar en el panel general del menú de estado.
  122.  * @default mmp mat mdf luk
  123.  *
  124.  * @param Param Status Column1
  125.  * @desc Parámetros a mostrar en el panel de parámetros del menú de estado.
  126.  * @default atk def mat mdf agi luk
  127.  *
  128.  * @param Param Status Column2
  129.  * @desc Parámetros a mostrar en el panel de parámetros del menú de estado.
  130.  * @default
  131.  *
  132.  * @param Param Status Column3
  133.  * @desc Parámetros a mostrar en el panel de parámetros del menú de estado.
  134.  * @default
  135.  *
  136.  * @param Param Status Column4
  137.  * @desc Parámetros a mostrar en el panel de parámetros del menú de estado.
  138.  * @default
  139.  *
  140.  * @param Equip Column1
  141.  * @desc Parámetros a mostrar en el menú de equipo.
  142.  * @default mhp mmp atk def mat mdf agi luk
  143.  *
  144.  * @param Equip Column Font Size
  145.  * @desc Tamaño de la fuente para los parámetros en el menú de equipo.
  146.  * @default 28
  147.  *
  148.  * @param Party Column
  149.  * @desc Parámetros a mostrar en el menú de formación.
  150.  * @default atk def mat mdf agi luk
  151.  *
  152.  * @param Item Columns
  153.  * @desc Parámetros a mostrar en el menú de objetos.
  154.  * @default mhp mmp atk def mat mdf agi luk
  155.  *
  156.  * @param Shop Item Columns
  157.  * @desc Parámetros a mostrar en la escena de tienda.
  158.  * @default mhp mmp atk def mat mdf agi luk
  159.  *
  160.  * @help
  161.  * ============================================================================
  162.  * Introducción
  163.  * ============================================================================
  164.  *
  165.  * Este complemento permite mostrar los parámetros creados con ICFSoft Params
  166.  * Core en algunos plugins de Yanfly.
  167.  *
  168.  * Actualmente funciona con Equip core, Item core, Shop menu core, Attach
  169.  * augments y Status menu core. Debe estar después de todos ellos.
  170.  *
  171.  * ============================================================================
  172.  * Incompatibilidades
  173.  * ============================================================================
  174.  *
  175.  * No se conocen complementos que sean incompatibles hasta la fecha.
  176.  *
  177.  * ============================================================================
  178.  * Problemas conocidos
  179.  * ============================================================================
  180.  *
  181.  * De momento ninguno.
  182.  *
  183.  * ============================================================================
  184.  * Historial de versiones
  185.  * ============================================================================
  186.  *
  187.  * Versión 1.01:
  188.  * - Se ha añadido el uso de los CParams.
  189.  * - Se ha añadido una opción para mostrar parámetros en el menú de formación.
  190.  * - Se han añadido opciones para mostrar parámetros en los paneles del menú
  191.  *   de estado.
  192.  * - Se ha corregido un bug que impedía aplicar mejoras en los diversos
  193.  *   creables parámetros.
  194.  * - Se ha corregido un bug en el plugin attach augments de Yanfly.
  195.  *
  196.  * Versión 1.00:
  197.  * - Complemento terminado.
  198.  *
  199.  * ============================================================================
  200.  *
  201.  * Para juegos comerciales y no comerciales.
  202.  * Se debe incluir a ICF-Soft en los créditos.
  203.  * Esta cabecera debe incluirse íntegramente con el plugin.
  204.  *
  205.  * ============================================================================
  206. */
  207. //=============================================================================
  208.  
  209. //=============================================================================
  210. // Parameter Variables
  211. //=============================================================================
  212.  
  213. ICF.Parameters = PluginManager.parameters('ICFSoft_YEPShowParams');
  214. ICF.Param = ICF.Param || {};
  215.  
  216. ICF.YEPShowParams.eqStatusMenuCol1 = ICF.Parameters['Equip Column1'].toLowerCase().trim().split(/\s+/);
  217. //ICF.YEPShowParams.eqStatusMenuCol2 = ICF.Parameters['Equip Column2'].toLowerCase().trim().split(/\s+/);
  218. ICF.YEPShowParams.eqStatusMenuFont = Number(ICF.Parameters['Equip Column Font Size']);
  219.  
  220. ICF.YEPShowParams.genStatusMenuCol1 = ICF.Parameters['General Status Column1'].toLowerCase().trim().split(/\s+/);
  221. ICF.YEPShowParams.genStatusMenuCol2 = ICF.Parameters['General Status Column2'].toLowerCase().trim().split(/\s+/);
  222.  
  223. ICF.YEPShowParams.parStatusMenuCol1 = ICF.Parameters['Param Status Column1'].toLowerCase().trim().split(/\s+/);
  224. ICF.YEPShowParams.parStatusMenuCol2 = ICF.Parameters['Param Status Column2'].toLowerCase().trim().split(/\s+/);
  225. ICF.YEPShowParams.parStatusMenuCol3 = ICF.Parameters['Param Status Column3'].toLowerCase().trim().split(/\s+/);
  226. ICF.YEPShowParams.parStatusMenuCol4 = ICF.Parameters['Param Status Column4'].toLowerCase().trim().split(/\s+/);
  227.  
  228. ICF.YEPShowParams.itemMenuCol1 = ICF.Parameters['Item Columns'].toLowerCase().trim().split(/\s+/);
  229. ICF.YEPShowParams.shopMenuCol1 = ICF.Parameters['Shop Item Columns'].toLowerCase().trim().split(/\s+/);
  230. ICF.YEPShowParams.partyMenuCol1 = ICF.Parameters['Party Column'].toLowerCase().trim().split(/\s+/);
  231.  
  232. if (ICF.YEPShowParams.eqStatusMenuCol1[0] == "") ICF.YEPShowParams.eqStatusMenuCol1.shift();
  233. if (ICF.YEPShowParams.itemMenuCol1[0] == "") ICF.YEPShowParams.itemMenuCol1.shift();
  234. if (ICF.YEPShowParams.shopMenuCol1[0] == "") ICF.YEPShowParams.shopMenuCol1.shift();
  235. if (ICF.YEPShowParams.partyMenuCol1[0] == "") ICF.YEPShowParams.partyMenuCol1.shift();
  236. if (ICF.YEPShowParams.genStatusMenuCol1[0] == "") ICF.YEPShowParams.genStatusMenuCol1.shift();
  237. if (ICF.YEPShowParams.genStatusMenuCol2[0] == "") ICF.YEPShowParams.genStatusMenuCol2.shift();
  238. if (ICF.YEPShowParams.parStatusMenuCol1[0] == "") ICF.YEPShowParams.parStatusMenuCol1.shift();
  239. if (ICF.YEPShowParams.parStatusMenuCol2[0] == "") ICF.YEPShowParams.parStatusMenuCol2.shift();
  240. if (ICF.YEPShowParams.parStatusMenuCol3[0] == "") ICF.YEPShowParams.parStatusMenuCol3.shift();
  241. if (ICF.YEPShowParams.parStatusMenuCol4[0] == "") ICF.YEPShowParams.parStatusMenuCol4.shift();
  242.  
  243. if (!ICF.Param.PParamIsPercent) ICF.Param.PParamIsPercent = [];
  244.  
  245. if (Imported.YEP_EquipCore) {
  246. //=============================================================================
  247. // Window_StatCompare
  248. //=============================================================================
  249.  
  250. Window_StatCompare.prototype.lineHeight = function () {
  251.  
  252.     return ICF.YEPShowParams.eqStatusMenuFont + 8;
  253.  
  254. };
  255.  
  256. Window_StatCompare.prototype.refresh = function() {
  257.     this.contents.fontSize = ICF.YEPShowParams.eqStatusMenuFont;
  258.     this.contents.clear();
  259.     if (!this._actor) return;
  260.     for (var i = 0; i < ICF.YEPShowParams.eqStatusMenuCol1.length; ++i) {
  261.         this.drawItem(0, this.lineHeight() * i, ICF.YEPShowParams.eqStatusMenuCol1[i]);
  262.     }
  263. };
  264.  
  265. Window_StatCompare.prototype.drawItem = function(x, y, paramId) {
  266.     this.drawDarkRect(x, y, this.contents.width, this.lineHeight());
  267.     this.drawParamName(y, paramId);
  268.     this.drawCurrentParam(y, paramId);
  269.     this.drawRightArrow(y);
  270.     if (!this._tempActor) return;
  271.     this.drawNewParam(y, paramId);
  272.     this.drawParamDifference(y, paramId);
  273. };
  274.  
  275. Window_StatCompare.prototype.drawParamName = function(y, paramId) {
  276.     var x = this.textPadding();
  277.     this.changeTextColor(this.systemColor());
  278.     this.drawText(TextManager.param(paramId), x, y, this._paramNameWidth);
  279. };
  280.  
  281. Window_StatCompare.prototype.drawCurrentParam = function(y, paramId) {
  282.     var x = this.contents.width - this.textPadding();
  283.     x -= this._paramValueWidth * 2 + this._arrowWidth + this._bonusValueWidth;
  284.     this.resetTextColor();
  285.     var actorparam = 0;
  286.     if (ICF.Param.NParams.indexOf(paramId) > -1) {
  287.     var parId = ICF.Param.NParams.indexOf(paramId);
  288.     actorparam = this._actor.NParam(parId);
  289.     } else if (ICF.Param.PParams.indexOf(paramId) > -1) {
  290.     var parId = ICF.Param.PParams.indexOf(paramId);
  291.     actorparam = this._actor.PParam(parId);
  292.     } else if (ICF.Param.CParamsMax.indexOf(paramId) > -1) {
  293.     var parId = ICF.Param.CParamsMax.indexOf(paramId);
  294.     actorparam = this._actor.CParam(parId);
  295.     } else {
  296.     actorparam = this._actor[paramId];
  297.     }
  298.     this.drawText(actorparam, x, y, this._paramValueWidth, 'right');
  299. };
  300.  
  301. Window_StatCompare.prototype.drawNewParam = function(y, paramId) {
  302.     var x = this.contents.width - this.textPadding();
  303.     x -= this._paramValueWidth + this._bonusValueWidth;
  304.     var newValue = 0;
  305.     var diffvalue = 0;
  306.     if (ICF.Param.NParams.indexOf(paramId) > -1) {
  307.     var parId = ICF.Param.NParams.indexOf(paramId);
  308.     newValue = this._tempActor.NParam(parId);
  309.     diffvalue = newValue - this._actor.NParam(parId);
  310.     } else if (ICF.Param.PParams.indexOf(paramId) > -1) {
  311.     var parId = ICF.Param.PParams.indexOf(paramId);
  312.     newValue = this._tempActor.PParam(parId);
  313.     diffvalue = newValue - this._actor.PParam(parId);
  314.     } else if (ICF.Param.CParamsMax.indexOf(paramId) > -1) {
  315.     var parId = ICF.Param.CParamsMax.indexOf(paramId);
  316.     newValue = this._tempActor.CParam(parId);
  317.     diffvalue = newValue - this._actor.CParam(parId);
  318.     } else {
  319.     newValue = this._tempActor[paramId];
  320.     diffvalue = newValue - this._actor[paramId];
  321.     }
  322.     var actorparam = newValue;
  323.     this.changeTextColor(this.paramchangeTextColor(diffvalue));
  324.     this.drawText(actorparam, x, y, this._paramValueWidth, 'right');
  325. };
  326.  
  327. Window_StatCompare.prototype.drawParamDifference = function(y, paramId) {
  328.     var x = this.contents.width - this.textPadding();
  329.     x -= this._bonusValueWidth;
  330.     var newValue = 0;
  331.     var diffvalue = 0;
  332.     if (ICF.Param.NParams.indexOf(paramId) > -1) {
  333.     var parId = ICF.Param.NParams.indexOf(paramId);
  334.     newValue = this._tempActor.NParam(parId);
  335.     diffvalue = newValue - this._actor.NParam(parId);
  336.     } else if (ICF.Param.PParams.indexOf(paramId) > -1) {
  337.     var parId = ICF.Param.PParams.indexOf(paramId);
  338.     newValue = this._tempActor.PParam(parId);
  339.     diffvalue = newValue - this._actor.PParam(parId);
  340.     } else if (ICF.Param.CParamsMax.indexOf(paramId) > -1) {
  341.     var parId = ICF.Param.CParamsMax.indexOf(paramId);
  342.     newValue = this._tempActor.CParam(parId);
  343.     diffvalue = newValue - this._actor.CParam(parId);
  344.     } else {
  345.     newValue = this._tempActor[paramId];
  346.     diffvalue = newValue - this._actor[paramId];
  347.     }
  348.     if (diffvalue === 0) return;
  349.     var actorparam = newValue;
  350.     this.changeTextColor(this.paramchangeTextColor(diffvalue));
  351.     var text = diffvalue;
  352.     if (diffvalue > 0) {
  353.       text = ' (+' + text + ')';
  354.     } else {
  355.       text = ' (' + text + ')';
  356.     }
  357.     this.drawText(text, x, y, this._bonusValueWidth, 'left');
  358. };
  359. };
  360.  
  361. if (Imported.YEP_PartySystem) {
  362. //=============================================================================
  363. // Window_PartyDetail
  364. //=============================================================================
  365.  
  366. Window_PartyDetail.prototype.drawDarkRectangles = function() {
  367.     var ww = this.contents.width / 2;
  368.     var wy = this.lineHeight() * 4;
  369.     if (this._linesAvailable >= 7) wy += this.lineHeight();
  370.     if (this._linesAvailable === 4) wy += this.lineHeight();
  371.     var max = this._linesAvailable;
  372.     max = Math.min(this._linesAvailable, this._actor.equipSlots().length);
  373.     for (var i = 0; i < max; ++i) {
  374.       if (wy + this.lineHeight() > this.contents.height) break;
  375.       this.drawDarkRect(ww, wy, ww, this.lineHeight());
  376.       wy += this.lineHeight();
  377.     }
  378.     var wy = this.lineHeight() * 4;
  379.     if (this._linesAvailable >= 7) wy += this.lineHeight();
  380.     if (this._linesAvailable === 4) wy += this.lineHeight();
  381.     for (var i = 0; i < ICF.YEPShowParams.partyMenuCol1.length; ++i) {
  382.       var rect = this.paramRect(i);
  383.       this.drawDarkRect(rect.x, rect.y, rect.width, rect.height);
  384.     }
  385. };
  386.  
  387. Window_PartyDetail.prototype.drawActorParams = function() {
  388.     this.drawActorParamsTitle();
  389.     for (var i = 0; i < ICF.YEPShowParams.partyMenuCol1.length; ++i) {
  390.       var rect = this.paramRect(i);
  391.       if (this._linesAvailable > 4) {
  392.         rect.x += 8;
  393.         rect.width -= 16;
  394.       } else {
  395.         rect.x += 4;
  396.         rect.width -= 8;
  397.       }
  398.       var paramId = ICF.YEPShowParams.partyMenuCol1[i];
  399.       var text = TextManager.param(paramId);
  400.       this.changeTextColor(this.systemColor());
  401.       this.drawText(text, rect.x, rect.y, rect.width);
  402.       var actorparam = 0;
  403.       if (ICF.Param.NParams.indexOf(paramId) > -1) {
  404.         var parId = ICF.Param.NParams.indexOf(paramId);
  405.         actorparam = this._actor.NParam(parId);
  406.       } else if (ICF.Param.PParams.indexOf(paramId) > -1) {
  407.         var parId = ICF.Param.PParams.indexOf(paramId);
  408.         actorparam = this._actor.PParam(parId);
  409.       } else if (ICF.Param.CParamsMax.indexOf(paramId) > -1) {
  410.         var parId = ICF.Param.CParamsMax.indexOf(paramId);
  411.         actorparam = this._actor.CParam(parId);
  412.       } else {
  413.         actorparam = this._actor[paramId];
  414.       }
  415.       if (isNaN(actorparam)) actorparam = 0;
  416.       actorparam = Yanfly.Util.toGroup(actorparam);
  417.       this.changeTextColor(this.normalColor());
  418.       this.drawText(actorparam, rect.x, rect.y, rect.width, 'right');
  419.     }
  420. };
  421. };
  422.  
  423. if (Imported.YEP_ItemCore) {
  424. //=============================================================================
  425. // Window_ShopInfo
  426. //=============================================================================
  427.  
  428. Window_ItemStatus.prototype.drawEquipInfo = function(item) {
  429.     var rect = new Rectangle();
  430.     if (eval(Yanfly.Param.ItemShowIcon)) {
  431.       rect.width = (this.contents.width - Window_Base._faceWidth) / 2;
  432.     } else {
  433.       rect.width = this.contents.width / 2;
  434.     }
  435.     for (var i = 0; i < ICF.YEPShowParams.itemMenuCol1.length; ++i) {
  436.       rect = this.getRectPosition(rect, i);
  437.       var dx = rect.x + this.textPadding();
  438.       var dw = rect.width - this.textPadding() * 2;
  439.       this.changeTextColor(this.systemColor());
  440.       this.drawText(TextManager.param(ICF.YEPShowParams.itemMenuCol1[i]), dx, rect.y, dw);
  441.       var param = 0;
  442.       if (ICF.Param.NParams.indexOf(ICF.YEPShowParams.itemMenuCol1[i]) > -1) {
  443.      var parId = ICF.Param.NParams.indexOf(ICF.YEPShowParams.itemMenuCol1[i]);
  444.      param = item.NParams[parId];
  445.          if (isNaN(param)) param = 0;
  446.      param += item.traits.reduce(function(r, trait) {
  447.             if (trait.code == 24 && trait.dataId == parId) return r + trait.value;
  448.             return r;
  449.      }, 0);
  450.       } else if (ICF.Param.PParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]) > -1) {
  451.      var parId = ICF.Param.PParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]);
  452.      param = item.PParams[parId];
  453.          if (isNaN(param)) param = 0;
  454.      param += item.traits.reduce(function(r, trait) {
  455.             if (trait.code == 25 && trait.dataId == parId) return r + trait.value;
  456.             return r;
  457.      }, 0);
  458.       } else if (ICF.Param.CParamsMax.indexOf(ICF.YEPShowParams.shopMenuCol1[i]) > -1) {
  459.      var parId = ICF.Param.CParamsMax.indexOf(ICF.YEPShowParams.shopMenuCol1[i]);
  460.      param = item.CParams[parId];
  461.          if (isNaN(param)) param = 0;
  462.      param += item.traits.reduce(function(r, trait) {
  463.             if (trait.code == 26 && trait.dataId == parId) return r + trait.value;
  464.             return r;
  465.      }, 0);
  466.       } else if (ICF.Param.BParams.indexOf(ICF.YEPShowParams.itemMenuCol1[i]) > -1) {
  467.      var parId = ICF.Param.BParams.indexOf(ICF.YEPShowParams.itemMenuCol1[i]);
  468.      param = item.params[parId];
  469.       }
  470.       if (isNaN(param)) param = 0;
  471.       this.changeTextColor(this.paramchangeTextColor(param));
  472.       var text = param;
  473.       if (param >= 0) text = '+' + text;
  474.       if (text === '+0') this.changePaintOpacity(false);
  475.       this.drawText(text, dx, rect.y, dw, 'right');
  476.       this.changePaintOpacity(true);
  477.     }
  478. };
  479. };
  480.  
  481. if (Imported.YEP_ShopMenuCore) {
  482. //=============================================================================
  483. // Window_ShopInfo
  484. //=============================================================================
  485.  
  486. Window_ShopInfo.prototype.drawEquipInfo = function(item) {
  487.     var rect = new Rectangle();
  488.     if (eval(Yanfly.Param.ItemShowIcon)) {
  489.       rect.width = (this.contents.width - Window_Base._faceWidth) / 2;
  490.     } else {
  491.       rect.width = this.contents.width / 2;
  492.     }
  493.     for (var i = 0; i < ICF.YEPShowParams.shopMenuCol1.length; ++i) {
  494.       rect = this.getRectPosition(rect, i);
  495.       var dx = rect.x + this.textPadding();
  496.       var dw = rect.width - this.textPadding() * 2;
  497.       this.changeTextColor(this.systemColor());
  498.       this.drawText(TextManager.param(ICF.YEPShowParams.shopMenuCol1[i]), dx, rect.y, dw);
  499.       var param = 0;
  500.       if (ICF.Param.NParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]) > -1) {
  501.      var parId = ICF.Param.NParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]);
  502.      param = item.NParams[parId];
  503.          if (isNaN(param)) param = 0;
  504.      param += item.traits.reduce(function(r, trait) {
  505.             if (trait.code == 24 && trait.dataId == parId) return r + trait.value;
  506.             return r;
  507.      }, 0);
  508.       } else if (ICF.Param.PParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]) > -1) {
  509.      var parId = ICF.Param.PParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]);
  510.      param = item.PParams[parId];
  511.          if (isNaN(param)) param = 0;
  512.      param += item.traits.reduce(function(r, trait) {
  513.             if (trait.code == 25 && trait.dataId == parId) return r + trait.value;
  514.             return r;
  515.      }, 0);
  516.       } else if (ICF.Param.CParamsMax.indexOf(ICF.YEPShowParams.shopMenuCol1[i]) > -1) {
  517.      var parId = ICF.Param.CParamsMax.indexOf(ICF.YEPShowParams.shopMenuCol1[i]);
  518.      param = item.CParams[parId];
  519.          if (isNaN(param)) param = 0;
  520.      param += item.traits.reduce(function(r, trait) {
  521.             if (trait.code == 26 && trait.dataId == parId) return r + trait.value;
  522.             return r;
  523.      }, 0);
  524.       } else if (ICF.Param.BParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]) > -1) {
  525.      var parId = ICF.Param.BParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]);
  526.      param = item.params[parId];
  527.       }
  528.       if (isNaN(param)) param = 0;
  529.       this.changeTextColor(this.paramchangeTextColor(param));
  530.       var text = param;
  531.       if (param >= 0) text = '+' + text;
  532.       if (text === '+0') this.changePaintOpacity(false);
  533.       this.drawText(text, dx, rect.y, dw, 'right');
  534.       this.changePaintOpacity(true);
  535.     }
  536. };
  537.  
  538. //=============================================================================
  539. // Window_ShopStatus
  540. //=============================================================================
  541.  
  542. Window_ShopStatus.prototype.drawDarkRectEntries = function() {
  543.     for (var i = 0; i < 8; ++i) {
  544.       var rect = this.getRectPosition(i);
  545.       this.drawDarkRect(rect.x, rect.y, rect.width, rect.height);
  546.     }
  547. };
  548.  
  549. Window_ShopStatus.prototype.drawActorStatInfo = function(actor) {
  550.     this.contents.fontSize = Yanfly.Param.ShopStatFontSize;
  551.     var item1 = this.currentEquippedItem(actor, this._item.etypeId);
  552.     var canEquip = actor.canEquip(this._item);
  553.     for (var i = 0; i < ICF.YEPShowParams.shopMenuCol1.length; ++i) {
  554.       this.changePaintOpacity(true);
  555.       var rect = this.getRectPosition(i);
  556.       rect.x += this.textPadding();
  557.       rect.width -= this.textPadding() * 2;
  558.       this.changeTextColor(this.systemColor());
  559.       var text = TextManager.param(ICF.YEPShowParams.shopMenuCol1[i]);
  560.       this.drawText(text, rect.x, rect.y, rect.width);
  561.       if (!canEquip) this.drawActorCantEquip(actor, rect);
  562.       if (canEquip) this.drawActorChange(actor, rect, item1, i);
  563.     }
  564.     this.changePaintOpacity(true);
  565. };
  566.  
  567. Window_ShopStatus.prototype.drawActorChange = function(actor, rect, item1, i) {
  568.     var change = 0;
  569.     var param1 = 0;
  570.     var param2 = 0;
  571.     if (ICF.Param.NParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]) > -1) {
  572.      var parId = ICF.Param.NParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]);
  573.      if (item1) param1 = (item1.NParams[parId] || 0) + item1.traits.reduce(function(r, trait) {
  574.             if (trait.code == 24 && trait.dataId == parId) return r + trait.value;
  575.             return r;
  576.      }, 0);
  577.      param2 = (this._item.NParams[parId] || 0) + this._item.traits.reduce(function(r, trait) {
  578.             if (trait.code == 24 && trait.dataId == parId) return r + trait.value;
  579.             return r;
  580.      }, 0);
  581.     } else if (ICF.Param.PParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]) > -1) {
  582.      var parId = ICF.Param.PParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]);
  583.      if (item1) param1 = (item1.PParams[parId] || 0) + item1.traits.reduce(function(r, trait) {
  584.             if (trait.code == 25 && trait.dataId == parId) return r + trait.value;
  585.             return r;
  586.      }, 0);
  587.      param2 = (this._item.PParams[parId] || 0) + this._item.traits.reduce(function(r, trait) {
  588.             if (trait.code == 25 && trait.dataId == parId) return r + trait.value;
  589.             return r;
  590.      }, 0);
  591.     } else if (ICF.Param.CParamsMax.indexOf(ICF.YEPShowParams.shopMenuCol1[i]) > -1) {
  592.      var parId = ICF.Param.CParamsMax.indexOf(ICF.YEPShowParams.shopMenuCol1[i]);
  593.      if (item1) param1 = (item1.CParams[parId] || 0) + item1.traits.reduce(function(r, trait) {
  594.             if (trait.code == 26 && trait.dataId == parId) return r + trait.value;
  595.             return r;
  596.      }, 0);
  597.      param2 = (this._item.CParams[parId] || 0) + this._item.traits.reduce(function(r, trait) {
  598.             if (trait.code == 26 && trait.dataId == parId) return r + trait.value;
  599.             return r;
  600.      }, 0);
  601.     } else if (ICF.Param.BParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]) > -1) {
  602.      var parId = ICF.Param.BParams.indexOf(ICF.YEPShowParams.shopMenuCol1[i]);
  603.      if (item1) param1 = item1.params[parId];
  604.      param2 = this._item.params[parId];
  605.     }
  606.     if (isNaN(param1)) param1 = 0;
  607.     if (isNaN(param2)) param2 = 0;
  608.     change = param2 - param1;
  609.     this.changePaintOpacity(change !== 0);
  610.     this.changeTextColor(this.paramchangeTextColor(change));
  611.     var text = (change > 0 ? '+' : '') + Yanfly.Util.toGroup(change);
  612.     this.drawText(text, rect.x, rect.y, rect.width, 'right');
  613. };
  614. };
  615.  
  616. if (Imported.YEP_ItemCore && Imported.YEP_X_AttachAugments) {
  617. //=============================================================================
  618. // ItemManager
  619. //=============================================================================
  620.  
  621. ItemManager.applyAugmentDebuff = function(mainItem, text, add) {
  622.     if (text.match(/(.*),[ ](\d+)([%%])/i)) {
  623.       var param = String(RegExp.$1);
  624.       var rate = parseFloat(RegExp.$2) * 0.01;
  625.     } else if (text.match(/(.*),[ ]([\+\-]\d+)([%%])/i)) {
  626.       var add = $gameTemp._augmentSetting === 'attach';
  627.       var param = String(RegExp.$1);
  628.       var rate = parseFloat(RegExp.$2) * 0.01;
  629.       rate += 1;
  630.     } else {
  631.       return;
  632.     }
  633.     var PARAM = param.toLowerCase();
  634.     if (ICF.Param.NParams.indexOf(PARAM) > -1) {
  635.       var paramId = ICF.Param.NParams.indexOf(PARAM) + 10;
  636.     } else if (ICF.Param.CParamsMax.indexOf(PARAM) > -1) {
  637.       var paramId = ICF.Param.CParamsMax.indexOf(PARAM) + 200;
  638.     } else if (['MAXHP', 'MHP', 'MAX HP', 'HP'].contains(param)) {
  639.       var paramId = 0;
  640.     } else if (['MAXMP', 'MMP', 'MAX MP', 'MP'].contains(param)) {
  641.       var paramId = 1;
  642.     } else if (['ATK', 'STR'].contains(param)) {
  643.       var paramId = 2;
  644.     } else if (['DEF'].contains(param)) {
  645.       var paramId = 3;
  646.     } else if (['MAT', 'INT', 'SPI'].contains(param)) {
  647.       var paramId = 4;
  648.     } else if (['MDF', 'RES'].contains(param)) {
  649.       var paramId = 5;
  650.     } else if (['AGI', 'SPD'].contains(param)) {
  651.       var paramId = 6;
  652.     } else if (['LUK'].contains(param)) {
  653.       var paramId = 7;
  654.     } else {
  655.       return;
  656.     }
  657.     var code = Game_BattlerBase.TRAIT_DEBUFF_RATE;
  658.     this.adjustItemTrait(mainItem, code, paramId, rate, add);
  659. };
  660.  
  661. ICF.YEPShowParams.applyAugmentParamRate = ItemManager.applyAugmentParamRate;
  662. ItemManager.applyAugmentParamRate = function(mainItem, param, value) {
  663.     var add = $gameTemp._augmentSetting === 'attach';
  664.     value = parseFloat(value * 0.01);
  665.     var rate = value + 1;
  666.     var PARAM = param.toLowerCase();
  667.     if (ICF.Param.NParams.indexOf(PARAM) > -1) {
  668.     var code = Game_BattlerBase.TRAIT_NPARAM;
  669.     var id = ICF.Param.NParams.indexOf(PARAM) + 100;
  670.     this.adjustItemTrait(mainItem, code, id, rate, add);
  671.     } else if (ICF.Param.PParams.indexOf(PARAM) > -1) {
  672.     var code = Game_BattlerBase.TRAIT_PPARAM;
  673.     var id = ICF.Param.PParams.indexOf(PARAM) + 100;
  674.     this.adjustItemTrait(mainItem, code, id, rate, add);
  675.     } else if (ICF.Param.CParamsMax.indexOf(PARAM) > -1) {
  676.     var code = Game_BattlerBase.TRAIT_CPARAM;
  677.     var id = ICF.Param.CParams.indexOf(PARAM) + 100;
  678.     this.adjustItemTrait(mainItem, code, id, rate, add);
  679.     } else {
  680.     ICF.YEPShowParams.applyAugmentParamRate.call(this, mainItem, param, value);
  681.     }
  682. };
  683.  
  684. ICF.YEPShowParams.applyAugmentParamPlus = ItemManager.applyAugmentParamPlus;
  685. ItemManager.applyAugmentParamPlus = function(mainItem, param, value) {
  686.     var PARAM = param.toLowerCase();
  687.     if (ICF.Param.NParams.indexOf(PARAM) > -1) {
  688.     var parId = ICF.Param.NParams.indexOf(PARAM);
  689.     if (!mainItem.NParams[parId]) mainItem.NParams[parId] = 0;
  690.     mainItem.NParams[parId] += value;
  691.     } else if (ICF.Param.PParams.indexOf(PARAM) > -1) {
  692.     var parId = ICF.Param.PParams.indexOf(PARAM);
  693.     if (!mainItem.PParams[parId]) mainItem.PParams[parId] = 0;
  694.     mainItem.PParams[parId] += value;
  695.     } else if (ICF.Param.CParamsMax.indexOf(PARAM) > -1) {
  696.     var parId = ICF.Param.CParamsMax.indexOf(PARAM);
  697.     if (!mainItem.CParams[parId]) mainItem.CParams[parId] = 0;
  698.     mainItem.CParams[parId] += value;
  699.     } else {
  700.     ICF.YEPShowParams.applyAugmentParamPlus.call(this, mainItem, param, value);
  701.     }
  702. };
  703. };
  704.  
  705. if (Imported.YEP_StatusMenuCore) {
  706. //=============================================================================
  707. // Window_StatusInfo
  708. //=============================================================================
  709.  
  710. Window_StatusInfo.prototype.findParamLimits = function() {
  711.     var params = ICF.YEPShowParams.parStatusMenuCol1.concat(ICF.YEPShowParams.parStatusMenuCol2).concat(ICF.YEPShowParams.parStatusMenuCol3).concat(ICF.YEPShowParams.parStatusMenuCol4);
  712.     this._largestParam = $gameParty.members()[0][params[0]];
  713.     this._smallestParam = this._largestParam;
  714.     for (var i = 0; i < $gameParty.members().length; ++i) {
  715.         var actor = $gameParty.members()[i];
  716.         if (!actor) continue;
  717.         for (var j = 0; j < params.length; ++j) {
  718.         this._largestParam = Math.max(this._largestParam, actor[params[j]]);
  719.         this._smallestParam = Math.min(this._smallestParam, actor[params[j]]);
  720.         }
  721.     }
  722. };
  723.  
  724. Window_StatusInfo.prototype.drawGeneralParam = function() {
  725.     var rect = new Rectangle();
  726.     var rect2 = new Rectangle();
  727.     rect.width = (this.contents.width - this.standardPadding()) / 2;
  728.     rect.y = this.lineHeight() * 2;
  729.     rect.height = this.lineHeight();
  730.     var dx = rect.x + this.textPadding();
  731.     var dw = rect.width - this.textPadding() * 2;
  732.     this.drawDarkRect(rect.x, rect.y, rect.width, rect.height);
  733.     this.changeTextColor(this.systemColor());
  734.     this.drawText(TextManager.level, dx, rect.y, dw, 'left');
  735.     this.changeTextColor(this.normalColor());
  736.     text = Yanfly.Util.toGroup(this._actor.level);
  737.     this.drawText(text, dx, rect.y, dw, 'right');
  738.     if (ICF.YEPShowParams.genStatusMenuCol2.length > 0) {
  739.     rect.width /= 2;
  740.     dw = rect.width - this.textPadding() * 2;
  741.     rect2.x = rect.width + this.textPadding();
  742.     rect2.width = rect.width;
  743.     rect2.y = this.lineHeight() * 2;
  744.     rect2.height = this.lineHeight();
  745.     }
  746.     var a = Math.trunc(dw * 0.25);
  747.     for (var i = 0; i < ICF.YEPShowParams.genStatusMenuCol1.length; i++) {
  748.     rect.y += this.lineHeight();
  749.     this.drawDarkRect(rect.x, rect.y, rect.width, rect.height);
  750.     this.changeTextColor(this.systemColor());
  751.     text = TextManager.param(ICF.YEPShowParams.genStatusMenuCol1[i]);
  752.     this.drawText(text, dx, rect.y, dw - a - 4, 'left');
  753.     this.changeTextColor(this.normalColor());
  754.     text = Yanfly.Util.toGroup(this._actor[ICF.YEPShowParams.genStatusMenuCol1[i]]);
  755.     this.drawText(text, dx + a * 3, rect.y, dw - a * 3, 'right');
  756.     }
  757.     dx = rect.width;
  758.     for (var i = 0; i < ICF.YEPShowParams.genStatusMenuCol2.length; i++) {
  759.     rect2.y += this.lineHeight();
  760.     this.drawDarkRect(dx, rect2.y, rect2.width, rect2.height);
  761.     this.changeTextColor(this.systemColor());
  762.     text = TextManager.param(ICF.YEPShowParams.genStatusMenuCol2[i]);
  763.     this.drawText(text, rect2.x, rect2.y, dw - a - 4, 'left');
  764.     this.changeTextColor(this.normalColor());
  765.     text = Yanfly.Util.toGroup(this._actor[ICF.YEPShowParams.genStatusMenuCol2[i]]);
  766.     this.drawText(text, rect2.x + a * 2, rect2.y, dw - a * 2, 'right');
  767.     }
  768. };
  769.  
  770. Window_StatusInfo.prototype.drawParameters = function() {
  771.     var dx = 0;
  772.     var dy = this.lineHeight() / 2;
  773.     var dw = this.contents.width;
  774.     var dh = this.lineHeight();
  775.     var dw2;
  776.     var text;
  777.     this.changeTextColor(this.systemColor());
  778.     this.drawText(Yanfly.Param.StatusGraphText, dx, dy, dw, 'center');
  779.     dy = this.lineHeight();
  780.     dx = this.standardPadding();
  781.     dw -= this.standardPadding() * 2;
  782.     if (ICF.YEPShowParams.parStatusMenuCol2.length < 1) {
  783.     } else if (ICF.YEPShowParams.parStatusMenuCol3.length < 1) {
  784.     dw = dw / 2 - this.textPadding();
  785.     } else if (ICF.YEPShowParams.parStatusMenuCol4.length < 1) {
  786.     dw = dw / 3 - this.textPadding();
  787.     } else {
  788.     dw = dw / 4 - this.textPadding();
  789.     }
  790.     for (var i = 0; i < ICF.YEPShowParams.parStatusMenuCol1.length; i++) {
  791.     dy += this.lineHeight();
  792.     var rate = this.drawParamGauge(dx, dy, dw, ICF.YEPShowParams.parStatusMenuCol1[i]);
  793.     this.changeTextColor(this.systemColor());
  794.     text = TextManager.param(ICF.YEPShowParams.parStatusMenuCol1[i]);
  795.     this.drawText(text, dx + 4, dy, dw - 4);
  796.     text = Yanfly.Util.toGroup(this._actor[ICF.YEPShowParams.parStatusMenuCol1[i]]);
  797.     this.changeTextColor(this.normalColor());
  798.     dw2 = dw * rate;
  799.     this.drawText(text, dx, dy, dw2 - 4, 'right');
  800.     }
  801.     if (ICF.YEPShowParams.parStatusMenuCol2.length < 1) return;
  802.     dy = this.lineHeight();
  803.     dx += dw + this.textPadding();
  804.     for (var i = 0; i < ICF.YEPShowParams.parStatusMenuCol2.length; i++) {
  805.     dy += this.lineHeight();
  806.     var rate = this.drawParamGauge(dx, dy, dw, ICF.YEPShowParams.parStatusMenuCol2[i]);
  807.     this.changeTextColor(this.systemColor());
  808.     text = TextManager.param(ICF.YEPShowParams.parStatusMenuCol2[i]);
  809.     this.drawText(text, dx + 4, dy, dw - 4);
  810.     text = Yanfly.Util.toGroup(this._actor[ICF.YEPShowParams.parStatusMenuCol2[i]]);
  811.     this.changeTextColor(this.normalColor());
  812.     dw2 = dw * rate;
  813.     this.drawText(text, dx, dy, dw2 - 4, 'right');
  814.     }
  815.     if (ICF.YEPShowParams.parStatusMenuCol3.length < 1) return;
  816.     dy = this.lineHeight();
  817.     dx += dw + this.textPadding();
  818.     for (var i = 0; i < ICF.YEPShowParams.parStatusMenuCol3.length; i++) {
  819.     dy += this.lineHeight();
  820.     var rate = this.drawParamGauge(dx, dy, dw, ICF.YEPShowParams.parStatusMenuCol3[i]);
  821.     this.changeTextColor(this.systemColor());
  822.     text = TextManager.param(ICF.YEPShowParams.parStatusMenuCol3[i]);
  823.     this.drawText(text, dx + 4, dy, dw - 4);
  824.     text = Yanfly.Util.toGroup(this._actor[ICF.YEPShowParams.parStatusMenuCol3[i]]);
  825.     this.changeTextColor(this.normalColor());
  826.     dw2 = dw * rate;
  827.     this.drawText(text, dx, dy, dw2 - 4, 'right');
  828.     }
  829.     if (ICF.YEPShowParams.parStatusMenuCol4.length < 1) return;
  830.     dy = this.lineHeight();
  831.     dx += dw + this.textPadding();
  832.     for (var i = 0; i < ICF.YEPShowParams.parStatusMenuCol4.length; i++) {
  833.     dy += this.lineHeight();
  834.     var rate = this.drawParamGauge(dx, dy, dw, ICF.YEPShowParams.parStatusMenuCol4[i]);
  835.     this.changeTextColor(this.systemColor());
  836.     text = TextManager.param(ICF.YEPShowParams.parStatusMenuCol4[i]);
  837.     this.drawText(text, dx + 4, dy, dw - 4);
  838.     text = Yanfly.Util.toGroup(this._actor[ICF.YEPShowParams.parStatusMenuCol4[i]]);
  839.     this.changeTextColor(this.normalColor());
  840.     dw2 = dw * rate;
  841.     this.drawText(text, dx, dy, dw2 - 4, 'right');
  842.     }
  843. };
  844.  
  845. Window_StatusInfo.prototype.drawParamGauge = function(dx, dy, dw, param) {
  846.     var rate = this.calcParamRate(param);
  847.     var array = ["rgba(0,0,0,0)","rgba(0,0,0,0)"];
  848.     if (ICF.Param.NParams.indexOf(param) > -1) {
  849.     var parId = ICF.Param.NParams.indexOf(param);
  850.     array = [ICF.Param.NParamColor1[parId],ICF.Param.NParamColor1[parId]];
  851.     } else if (ICF.Param.PParams.indexOf(param) > -1) {
  852.     var parId = ICF.Param.PParams.indexOf(param);
  853.     array = [ICF.Param.PParamColor1[parId],ICF.Param.PParamColor1[parId]];
  854.     } else if (ICF.Param.CParamsMax.indexOf(param) > -1) {
  855.     var parId = ICF.Param.CParamsMax.indexOf(param);
  856.     array = [ICF.Param.CParamColor1[parId],ICF.Param.CParamColor2[parId]];
  857.     } else if (ICF.Param.BParams.indexOf(param) > -1) {
  858.     var parId = ICF.Param.BParams.indexOf(param);
  859.     array = eval('Yanfly.Param.ColorParam' + parId + 'Gauge').split(' ');
  860.     }
  861.     array[0] = isNaN(array[0])? array[0] : this.textColor(array[0]);
  862.     array[1] = isNaN(array[1])? array[1] : this.textColor(array[1]);
  863.     this.drawGauge(dx, dy, dw, rate, array[0], array[1]);
  864.     return rate;
  865. };
  866.  
  867. Window_StatusInfo.prototype.calcParamRate = function(paramId) {
  868.     if (this._largestParam === this._smallestParam) return 1.0;
  869.     var rate = parseFloat(this._actor[paramId] - this._smallestParam) / parseFloat(this._largestParam - this._smallestParam);
  870.     rate *= 0.7;
  871.     rate += 0.3;
  872.     return rate;
  873. };
  874.  
  875. ICF.YEPShowParams.statusInfoDrawAttributeData = Window_StatusInfo.prototype.drawAttributeData;
  876. Window_StatusInfo.prototype.drawAttributeData = function(attr, dx, dy, dw) {
  877.     var actor = this._actor;
  878.     this.contents.fontSize = Yanfly.Param.StatusAttrSize;
  879.     if (ICF.Param.NParams.indexOf(attr) > -1) {
  880.     var parId = ICF.Param.NParams.indexOf(attr);
  881.     this.drawAttributeName(ICF.Param.NParamsFullName[parId], dx, dy, dw);
  882.     this.changeTextColor(this.normalColor());
  883.     this.drawAttributeValue(actor[attr], dx, dy, dw);
  884.     } else if (ICF.Param.PParams.indexOf(attr) > -1) {
  885.     var parId = ICF.Param.PParams.indexOf(attr);
  886.     this.drawAttributeName(ICF.Param.PParamsFullName[parId], dx, dy, dw);
  887.     if (ICF.Param.PParamIsPercent[parId]) {
  888.         this.drawAttributeRate(actor[attr], dx, dy, dw);
  889.     } else {
  890.         this.changeTextColor(this.normalColor());
  891.         this.drawAttributeValue(actor[attr], dx, dy, dw);
  892.     }
  893.     } else if (ICF.Param.CParamsMax.indexOf(attr) > -1) {
  894.     var parId = ICF.Param.CParamsMax.indexOf(attr);
  895.     this.drawAttributeName(ICF.Param.CParamsMaxFullName[parId], dx, dy, dw);
  896.     this.changeTextColor(this.normalColor());
  897.     this.drawAttributeValue(actor[attr], dx, dy, dw);
  898.     } else if (ICF.Param.BParams.indexOf(attr) > -1) {
  899.     var parId = ICF.Param.BParams.indexOf(attr);
  900.     this.drawAttributeName(TextManager.param(attr), dx, dy, dw);
  901.     this.changeTextColor(this.normalColor());
  902.     this.drawAttributeValue(actor[attr], dx, dy, dw);
  903.     } else {
  904.         ICF.YEPShowParams.statusInfoDrawAttributeData.call(this, attr, dx, dy, dw);
  905.     }
  906. };
  907. };
  908.  
  909. //=============================================================================
  910. // End of File
  911. //=============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement