Greasy Fork is available in English.

Virtonomica:Top page redisign

Переделываем новый "дизайн" (конца 2019 года)

اعتبارا من 25-12-2019. شاهد أحدث إصدار.

// ==UserScript==
// @name     Virtonomica:Top page redisign
// @version  0.1
// @description Переделываем новый "дизайн" (конца 2019 года)
// @grant    none
// @include	https://*virtonomic*.*/vera/main/user/privat/persondata/knowledge
// @namespace https://greasyfork.org/users/2055
// ==/UserScript==
var run = function() {

var win = (typeof(unsafeWindow) != 'undefined' ? unsafeWindow : top.window);
	$ = win.$;
  
  function get_qa_type( el )
  {
  	//var tmp = $(".qa-advert", el);
    //if (tmp.length == 1) return "advert";
    var type = ['management', 'medicine', 'car', 'it', 'educational', 'restaurant', 'service', 'trade', 'mining', 'manufacture', 'power', 'animal', 'fishing', 'farming', 'research'];
    
    for( var i=0; i< type.length; i++) {
	    var tmp = $(".qa-" + type[i], el);
      if (tmp.length == 1) return type[i]
    }
    /*
    var tmp = $(".qa-management", el);
    if (tmp.length == 1) return "management";
    
    tmp = $(".qa-medicine", el);
    if (tmp.length == 1) return "medicine";
    
    tmp = $(".qa-car", el);
    if (tmp.length == 1) return "car";

    tmp = $(".qa-it", el);
    if (tmp.length == 1) return "it";

    tmp = $(".qa-educational", el);
    if (tmp.length == 1) return "educational";

    */
    return "unknow";
  }
  
	// Стили  
	var st = $("style");

  // скрываем иконки "достижений"
  st.append(".achivement{display: none;}");
  
  // класс для показа базового числа рабочих
  st.append(".base{color: #2149c1;font-weight: bold;}");
  
  // раздвигаем на весь блок
  $(".skill").css("width", "100%");  
  
  // меняем цвет у прироста
  $(".fill2").css("background-color","#b9b9b9");
  
  // убираем кнопки повышения квалы
  $(".input-group").css("display","none");
  $(".forecast_value_container").parent().css("display","none");
  
  // надписи про рабоичх и рекламу в одну строку
  $(".legend").css("white-space", "nowrap");
  
  //$(".bonuses-table tr").css("width", "40px");
  
  //ускорение роста навыка после покупки:
  $(".message").each( function(){
  	var el = $(this);
    el.html( el.html().replace("ускорение роста навыка после покупки:", ""));
  });
  $(".text").each( function(){
  	var el = $(this);
    el.html( el.html().replace("за пересчёт:", "+"));
    	
  });
  
  st.append(".pull-right{color: #790ddf;}");
  
  
  var kv = $(".values");
  console.info(kv);
  kv.each( function(){
    var el = $(this);
    var val = parseInt( $(".val", el ).text() );
    
    var type = get_qa_type( el );
    
    console.log( type + ":" + val);
    //console.info( val );
    
    if ( type == "unknow") return;
    
    var info = $(".text-right", el.parent().parent() );
    console.info( info );
    info.before("<td class='base text-center text-middle' title='Максимальная численность персонала для квалификации без бонусов / миниум для 100% роста квалификации'>" + getThousandsSplitted( calcPersonalTop3( val, type) ) + "</td>");
    //text-right

  });
  
  // попробуем переместить усорение от снятия штрафа на рост квалы
  $(".card-block").each(function(){
  	var el = $(this);
    var mes = $(".message", el) ;
    mes.hide();
    //$('.legend', el).append("<tr><div class='message>'" + mes.html() + "</div>" );
    $('.legend', el).append( "<span class=message>" + mes.html() + "</span>" );
    mes.hide();
    
  });
  
 	function getThousandsSplitted(val) {
		return val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " ");
	}

	/**
   * вычисляет максимальное кол-во работающих на предприятиях отрасли для заданной квалификации игрока (топ-3)
	 * function calcPersonalTop3(q, type)
   *
	 *@param q - квалификация игрока
	 * 
	 */
	function calcPersonalTop3( q, type){
		return ((2*q*q + 6*q)*getK3(type));
	}

	/**
	 * возвращает к для расчётов нагрузки по типу для топ-3
	 *   
	 *@param type строка с запрашиваемым типом
	 */
	function getK3(type)
	{
		switch(type)
		{
			//case('shop'):
      case('trade'):
			//case('restaurant'):
      case('restaurant'):
			//case('lab'):
      case('research'):  
				return 5;
				break;
			case('workshop'):
				if (/anna/.test(window.location.href)) {
				return 100;
				break;
				}
				else {
				return 50;
				break;
				}
			case('mill'):
				if (/anna/.test(window.location.href)) {
				return 100;
				break;
				}
				return 50;
				break;
			case('sawmill'):
				if (/anna/.test(window.location.href)) {
				return 100;
				break;
				}
				return 50;
				break;
			//case('animalfarm'):
      case('animal'):  
				return 7.5;
				break;
			case('medicine'):
			//case('fishingbase'):
      case('fishing'):
				return 12.5;
				break;
			case('farm'):
				return 20;
				break;
			case('orchard'):
				return 15;
				break;
			//case('mine'):
      case('mining'):
				if (/anna/.test(window.location.href)) {
				return 50;
				break;
				}
				else {
				return 100;
				break;
				}
			//case('office'):
      case('management'):
				return 1;
				break;
			//case('service_light'):
      case('service'):
				return 1.5;
				break;
			case('power'):
				return 75.0;
				break;
			//case('repair'):
        case('car'):
				return 2.5;
				break;
			case('fuel'):
				return 2.5;
				break;
			case('educational'):
				return 1.5;
				break;
			case('it'):
				return 1;
				break;
			case('villa'):
			case('warehouse'):
			case('unknown'):
			default:
				return 0;
		}//end switch
	}//end getType()
  
}

if(window.top == window) {
    var script = document.createElement("script");
    script.textContent = '(' + run.toString() + ')();';
    document.documentElement.appendChild(script);
}