Dominion UI

A more stylish Dominion Online

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Для установки этого скрипта вам необходимо установить расширение, такое как Tampermonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name         Dominion UI
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  A more stylish Dominion Online
// @author       crlundy
// @match        https://dominion.games/
// @grant        GM_addStyle
// ==/UserScript==

GM_addStyle(`
  /* General */

  *:not(.full-card):not(.mini-card):not(.micro-card):not(.landscape):not(.way-quickselect-box) {
    box-sizing: border-box !important;
  }

  .login-form, .no-login-text, .window, .kingdom-selection-window, .status-bar-border {
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
    background: rgba(34,34,34,0.72) !important;
    border: 1px solid rgba(125,125,125,0.5) !important;
    border-radius: 8px !important;
    box-shadow: 0 0 0 1px rgba(17,17,17,0.5),
                0 1px 8px rgba(17,17,17,0.7),
                0 24px 32px rgba(17,17,17,0.7) !important;
    font-family: 'Arial', sans-serif !important;
  }


  /* Login */

  .login-page {
    background: url("images/large/base.jpg") 0% 0% / cover no-repeat !important;
  }

  .home-screen {
    align-items: center;
    display: flex;
    flex-direction: column;
  }

  .title-logo {
    left: auto !important;
    position: inherit !important;
    transform: none !important;
  }

  img.title-logo {
    filter: drop-shadow(0 4px 7px rgba(17, 17, 17, 0.7));
    height: 40vh;
    margin: 5vh 0;
    max-height: 350px;
  }

  .login-form, .no-login-text {
    display: flex;
    flex-flow: column wrap;
    height: auto !important;
    left: auto !important;
    max-width: 600px;
    padding: 2em;
    position: inherit !important;
    top: auto !important;
    width: auto !important;
  }

  .login-form br {
    display: none;
  }

  .login-form input {
    flex: 1 100%;
    font-size: 1.3rem !important;
    margin: 0 !important;
    position: inherit !important;
    width: auto !important;
  }

  .login-form input[type=password] {
    margin-top: 1em !important;
  }

  .login-form input[type=submit] {
    margin-top: 1.6em !important;
  }

  .login-form input[type=button] {
    margin-top: 1em !important;
  }

  .login-form input[type=text], .login-form input[type=password] {
    background: rgba(0,0,0,0.6) !important;
    border: 1px solid rgb(0,0,0) !important;
    border-radius: 4px !important;
    box-shadow: 0 0 0 0 rgba(125,125,125,0);
    font-family: 'Arial', sans-serif !important;
    letter-spacing: 0.04em;
    transition: all 300ms ease !important;
  }

  .login-form input[type=text]:focus, .login-form input[type=password]:focus {
    border: 1px solid rgba(255,255,255,0.8) !important;
    box-shadow: 0 0 10px rgba(255,255,255,0.8);
  }

  .login-form input[type=text].ng-touched.ng-empty, .login-form input[type=password].ng-touched.ng-empty {
    border: 1px solid rgba(255,75,0,0.8) !important;
  }

  .login-button {
    background: rgba(140,140,140,0.6) !important;
    border: none !important;
    border-radius: 0.3em;
    box-shadow: inset 0 2px 2px -2px rgba(200,200,200,0.6);
    font-family: 'TrajanPro-bold', 'Arial', sans-serif !important;
    padding: 0.4em 0.2em 0.2em;
    transition: background 100ms ease !important;
  }

  .login-button.legal-login:hover {
    background: rgba(160,160,160,0.6) !important;
  }

  .login-button[type=submit]:not(.legal-login) {
    background: rgba(100,100,100,0.8) !important;
    color: rgb(120,120,120) !important;
    cursor: not-allowed;
  }

  .no-login-text {
    font-size: 1.3rem !important;
  }

  .no-login-text button {
    margin: 0 auto;
  }

  .version-string, .login-links-container, .login-links, .forum-string {
    bottom: 0 !important;
    font-family: 'Arial', sans-serif !important;
  }

  .version-string, .login-links, .forum-string {
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
    background: rgba(34,34,34,0.72) !important;
    border: 1px solid rgba(125,125,125,0.5) !important;
    border-bottom: none !important;
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 0 0 1px rgba(17,17,17,0.5) !important;
    padding: .8vh .6vw 1vh .6vw !important;
  }

  .version-string:hover, .login-link:hover, .forum-string:hover {
    text-decoration: underline;
  }


  /* Lobby */

  .lobby-page > div {
    height: 100%;
  }

  .main-lobby-page {
    display: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
  }

  .spear-left, .spear-right {
    z-index: 1 !important;
  }

  ul.lobby-tabs {
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
    background: rgba(17,17,17,0.82) !important;
    flex: 0 0 auto;
    margin: 0 !important;
  }

  .lobby-tabs .tab-button {
    background: none !important;
    border: none !important;
    border-radius: 8px;
    font-family: 'TrajanPro-bold', 'Arial', sans-serif !important;
    font-size: 1.3rem;
    margin: 0.5em 0.1em !important;
    padding: 0.6em 0.9em 0.4em !important;
    position: relative;
  }

  .lobby-tabs .tab-button::before {
    background: rgb(200,200,200);
    border-radius: inherit;
    bottom: 0;
    content: '';
    left: 0;
    opacity: 0;
    position: absolute;
    right: 0;
    top: 0;
    transform: scale(0);
    transition: all 150ms ease-in-out;
    z-index: -1;
  }

  .lobby-tabs .tab-button:hover::before {
    opacity: 0.1;
    transform: scale(1);
  }

  .lobby-tabs .tab-button:active::before {
    opacity: 0.15;
    transform: scale(1);
  }

  .lobby-tabs .tab-button.selected::before {
    opacity: 0.22;
    transform: scale(1);
  }

  .window-container {
    align-items: center;
    display: flex;
    height: 100% !important;
    justify-items: center;
    position: static !important;
    width: 100% !important;
  }

  .lobby-button, .lobby-button:hover {
    border: none !important;
    border-radius: 0.3em;
    font-family: 'TrajanPro-bold', 'Arial', sans-serif !important;
    transition: background 100ms ease !important;
  }

  .lobby-button {
    background: rgba(140,140,140,0.6) !important;
    box-shadow: inset 0 2px 2px -2px rgba(200,200,200,0.6);
  }

  .lobby-button:hover {
    background: rgba(160,160,160,0.6) !important;
  }


  /* Inbox */

  .window.inbox {
    padding: 0 !important;
  }

  .window.inbox > div {
    height: 100%;
  }

  .inbox-page {
    display: flex;
    height: 100%;
  }

  message-list {
    flex: 2;
  }

  message-view {
    flex: 5;
  }

  .message-list, .message-view {
    left: auto !important;
    position: inherit !important;
    width: auto !important;
  }

  .message-list {
    border-radius: 8px 0 0 8px;
    border-right: 1px solid rgba(160,160,160,0.7);
    height: 100% !important;
    overflow: auto;
  }

  .message-list-header {
    border: none !important;
    font-family: 'TrajanPro-bold', 'Arial', sans-serif !important;
    font-size: 2rem !important;
    margin: 0 0 16px !important;
    padding: 20px 16px 16px;
    top: 0;
    z-index: 9999 !important;
  }

  .message-list-item {
    border-top: 1px solid rgba(160,160,160,0.2);
    font-size: 1.3rem;
    margin: 0 1.2em 0 1.6em !important;
    padding: 0.6em 0;
    position: relative;
    z-index: 1;
  }

  .message-list-header + div > .message-list-item {
    border-top: 1px solid rgba(0,0,0,0);
  }

  .message-list-item:not(.has-read):not(.selected-message)::before {
    background-color: #00a3ff;
    border-radius: 50%;
    content: '';
    height: 0.5em;
    left: -0.9em;
    position: absolute;
    top: 0.8em;
    width: 0.5em;
  }

  .message-list-item:not(.selected-message):hover {
    color: #bbbbbb !important;
  }

  .message-list-item.selected-message {
    background-color: #00a3ff;
    border-radius: 0.7em;
    border-top: 1px solid rgba(0,0,0,0);
    color: #ffffff !important;
    cursor: default !important;
    font-style: inherit !important;
    font-weight: inherit !important;
    margin: 0 0.6em !important;
    padding: 0.6em 0.6em 0.6em 1em;
  }

  .message-list-item.has-read {
    color: inherit !important;
  }

  .message-view {
    background: rgba(20,20,20,0.5);
    border-radius: 0 8px 8px 0;
    display: flex;
    font-size: 1.3rem !important;
    height: 100% !important;
    padding: 2rem 2rem 6rem;
  }

  .message-view > div {
    overflow: auto;
  }

  .message-view br {
    display: none;
  }

  .message-subject {
    border-bottom: 1.5px solid rgba(160,160,160,0.7);
    font-size: 1.8rem !important;
    margin-bottom: 0.8em;
    padding-bottom: 0.7em;
  }

  .message-view p {
    letter-spacing: 0.01em;
    line-height: 1.2 !important;
    margin: 0 0 1em !important;
  }

  .inbox-page a, .inbox-page .mail-action {
    color: #00a3ff !important;
    text-decoration: none !important;
  }

  .inbox-page a:hover, .inbox-page .mail-action:hover {
    color: #00a3ff !important;
    text-decoration: underline !important;
  }

  .inbox-page .lobby-button {
    font-size: 1.2rem !important;
    padding: 0.6em 0.8em 0.4em;
  }


  /* Matching */

  .window.matching {
    flex: 0 1 90%;
    height: 90%;
    max-width: 1400px;
    overflow: auto !important;
    padding: 1rem !important;
  }

  .window.matching > div {
    height: 100% !important;
  }

  .automatch-page-table {
    border-collapse: collapse !important;
    display: block;
    height: 100% !important;
  }

  .automatch-page-table > tbody {
    display: block;
    height: 100%;
  }

  .automatch-page-table > tbody > tr {
    display: flex;
    height: 100% !important;
  }

  .automatch-column {
    flex: 1 0;
    height: 100% !important;
    margin-right: 0.5rem;
    max-height: none !important;
    max-width: none !important;
    min-height: auto !important;
    min-width: auto !important;
    overflow: auto;
  }

  .automatch-column + .automatch-column {
    margin-left: 0.5rem;
    margin-right: 0rem;
  }

  .automatch-page {
    background: rgba(20,20,20,0.5);
    border-radius: 1rem;
    padding: 1.5rem;
  }

  botmatch .automatch-page {
    margin-top: 1rem;
  }

  .automatch-fieldset {
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .automatch-legend {
    color: #ffffff;
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0.7rem 1rem !important;
    padding: 0 !important;
  }

  .automatch-legend-link {
    border-radius: 50%;
    display: inline-block !important;
    font-size: inherit !important;
    height: 1.2em;
    line-height: 1.2em;
    margin-left: 0.5em;
    position: relative;
    text-align: center;
    transition: all 100ms ease-in-out;
    width: 1.2em;
  }

  .automatch-legend-link::before {
    background: #00a3ff;
    border-radius: inherit;
    bottom: 0;
    content: '';
    left: 0;
    opacity: 0;
    position: absolute;
    right: 0;
    top: 0;
    transform: scale(0);
    transition: all 100ms ease-in-out;
    z-index: -1;
  }

  .automatch-legend-link:hover {
    color: #ffffff;
  }

  .automatch-legend-link:hover::before {
    opacity: 1;
    transform: scale(1);
  }

  .automatch-options-table, .automatch-friends-table {
    border-collapse: collapse !important;
    margin: 0 !important;
    width: 100%;
  }

  .automatch-options-table td, .automatch-friends-table td {
    padding: 0.3rem 0.7rem;
    font-size: 1.3rem;
  }

  .automatch-options-textcolumn {
    width: 30% !important;
  }

  .automatch-options-datacolumn.click-to-toggle span, .automatch-options-datacolumn input, .automatch-options-data {
    background: rgba(200,200,200,0);
    border: 1px solid rgba(200,200,200,0.8);
    border-radius: 5px;
    color: #ffffff;
    display: inline-block;
    padding: 0.4rem 0.8rem;
    text-align: center;
    transition: all 50ms ease-in-out;
  }

  .automatch-options-datacolumn.click-to-toggle span {
    min-width: 12rem;
  }

  .automatch-options-datacolumn input {
    min-width: 6rem;
  }

  .automatch-options-datacolumn.click-to-toggle span:hover, .automatch-options-datacolumn input:hover {
    background: rgba(200,200,200,0.1);
  }

  .automatch-options-data:hover {
    cursor: not-allowed;
  }

  .automatch-special-rules-header {
    color: #ffffff !important;
    font-size: 1.3rem !important;
    font-style: normal !important;
    font-weight: 700;
    padding-top: 1.5rem !important;
  }

  .automatch-options-table + div, .automatch-queue, .automatch-start {
    margin-top: 2rem !important;
  }

  .matching .lobby-button {
    margin: 0 !important;
    max-width: none !important;
  }

  .matching .lobby-button:not(:first-child) {
    margin-left: 1rem !important;
  }

  #dt-automatch-wrapper .automatch-button {
    min-width: auto !important;
  }

  .automatch-queue-feedback, .automatch-familiarity {
    font-size: 1.3rem;
    margin: 0 0.7rem !important;
  }

  .automatch-sizes {
    margin: 0 !important;
  }

  .automatch-botmatch-button {
    border-collapse: collapse;
    border-spacing: 0;
  }

  .automatch-friends-div {
    height: auto !important;
    max-height: none !important;
    min-height: 50% !important;
  }

  .automatch-friends-fieldset {
    display: flex;
    flex-flow: column;
  }

  .automatch-friends-fieldset .automatch-legend {
    flex: 0 1 auto;
  }

  .automatch-friends-table-container {
    flex: 1 1 auto;
    max-height: none !important;
    min-height: auto !important;
    overflow: initial !important;
  }

  .automatch-friends-table tr {
    background: rgba(200,200,200,0);
    border-radius: 0.4em;
    display: flex;
    position: relative;
    transition: background 100ms ease-in-out;
    width: 100%;
  }

  .automatch-friends-table tr:hover {
    background: rgba(200,200,200,0.2);
  }

  .automatch-friends-table .friend-activities-name-column {
    display: block;
    flex: 1 1 60%;
    max-width: none !important;
    min-widht: auto !important;
    padding-left: 1.9rem;
    width: auto !important;
  }

  .automatch-friends-table td:nth-child(2) {
    bottom: 0;
    left: 0;
    padding: 0;
    position: absolute;
    right: 0;
    top: 0;
  }

  .automatch-friends-table tr td:last-child {
    display: block;
    flex: 0 0 40%;
    text-align: left;
  }

  .automatch-friends-buttons {
    background-color: transparent !important;
    border: none;
    font-size: 0;
    height: 100%;
    padding: 0 !important;
    position: relative;
    text-align: right;
    text-transform: uppercase;
    transform: none !important;
    width: 100%;
  }

  .automatch-friends-buttons::before {
    background: #71fa78;
    border-radius: 50%;
    content: '';
    height: 0.5rem;
    left: 13px;
    position: absolute;
    top: 11px;
    width: 0.5rem;
  }


  /* Freinds List */

  .relations-page-header-container {
    position: static !important;
  }

  .relations-page-header {
    position: static !important;
    width: initial !important;
  }


  /* Table */

  .player-table {
    border-spacing: 0 0.3em !important;
  }

  .player-table td.ng-binding {
    padding: 0 0.4em !important;
  }

  /* .player-table td:not(.ng-binding):not(.dt-user) {
    display: none;
  } */

  tr:not(:hover) .player-item-kick {
    opacity: 0;
  }

  td.player-item-kick {
    background: rgba(200,200,200,0.4);
    border-radius: 2em;
    font-family: 'Arial', sans-serif;
    font-size: 60%;
    font-weight: 900;
    opacity: 1;
    padding: 0.1rem 0.7em !important;
    text-transform: uppercase;
    transition: background 300ms ease,
                opacity 100ms ease;
    vertical-align: middle;
  }

  td.player-item-kick:hover {
    background: rgba(255,20,20,0.6);
    color: white !important;
  }

  .participant-list {
    box-shadow: none !important;
  }

  .table-chat {
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  .table-chat-input {
    background: rgba(17,17,17,0.5) !important;
    border-radius: 0.3em !important;
    padding: 2% 3% !important;
    transition: background 200ms ease !important;
  }

  .table-chat-input:hover {
    background: rgba(17,17,17,0.6) !important;
  }

  .table-chat-input:focus {
    background: rgba(17,17,17,0.8) !important;
  }


  /* Sidebar */

  .side-bar {
    -webkit-backdrop-filter: blur(32px);
    backdrop-filter: blur(32px);
    background: rgba(17,17,17,0.7) !important;
    box-shadow: 0 0 12px rgba(17,17,17,0.9) !important;
  }

  .control-links-container {
    display: flex;
    justify-content: center;
    left: auto !important;
    padding: 0.5em 0 !important;
    position: static !important;
    top: auto !important;
  }

  .control-links {
    background: rgba(200,200,200,0.4) !important;
    border-left: 1.5px solid #333333;
    border-radius: 0 !important;
    display: block !important;
    left: auto !important;
    padding: 0 !important;
    transform: none !important;
  }

  .control-links:hover {
    color: #333333 !important;
    background: rgba(200,200,200,0.6) !important;
  }

  .control-links:first-child {
    border-left: none;
    border-radius: 0.3em 0 0 0.3em !important;
  }

  .control-links:last-child {
    border-radius: 0 0.3em 0.3em 0 !important;
  }

  .control-link {
    display: block !important;
    font-family: 'TrajanPro-bold' !important;
    font-size: 0.8vw !important;
    padding: 0.7em 0.8em 0.4em !important;
  }

  .control-links div {
    display: none !important;
  }

  .game-log {
    top: auto !important;
  }

  .log-line {
    line-height: 1.3 !important;
  }

  .log-coin {
    color: black !important;
    display: inline-block !important;
    font-family: Monospaced !important;
    font-size: 94%;
    font-weight: 900 !important;
    margin-left: 0.12em;
    min-width: 1.4em;
    position: relative;
    text-align: center;
    text-indent: 0 !important;
  }

  .log-coin img {
    left: 50%;
    position: absolute;
    top: 0.03em;
    transform: translateX(-50%);
    width: 1.4em;
    z-index: -1;
  }

  .log-vp {
    display: inline-block !important;
    height: 1em;
    min-width: 1em;
    position: relative;
  }

  .log-vp img {
    left: 50%;
    position: absolute;
    top: 10%;
    transform: translateX(-50%);
    width: 1em;
  }

  .log-debt {
    color: white !important;
    display: inline-block !important;
    font-family: Monospaced !important;
    font-size: 94%;
    font-weight: 900 !important;
    margin-left: 0.12em;
    min-width: 1.32em;
    position: relative;
    text-align: center;
    text-indent: 0 !important;
  }

  .log-debt img {
    height: 1.32em;
    left: 50%;
    position: absolute;
    top: -5%;
    transform: translateX(-50%);
    z-index: -1;
  }

  .game-chat-display > div {
    margin-top: 0.2em;
  }

  .game-chat-display .log-line + .log-line {
    margin-left: 0.2em;
  }


  /* Hand */

  .hand .full-card {
    z-index: 4001 !important;
  }


  /* Cards and piles */

  .play-border:hover {
    box-shadow: 0 0 20px rgba(255,255,255,0.5);
  }

  .new-card-counter-container {
    background: radial-gradient(circle at 40% 40%, rgb(255,70,60), rgb(120,0,0));
    border-radius: 26% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.8) !important;
  }

  .embargo-counter-container {
    background: radial-gradient(circle at 40% 40%, rgb(200,70,255), rgb(95,0,120));
    border-radius: 26% !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.8) !important;
  }

  .new-card-counter-text, .embargo-counter-text {
    font-size: 93%;
    text-shadow: 0 -1px rgba(0,0,0,0.7);
  }


  /* Status bar */

  .status-bar-border {
    cursor: default !important;
    font-family: 'TrajanPro-bold' !important;
    padding: 0.2em 0.5em !important;
  }

  .storyline {
    font-family: 'Arial';
    margin-bottom: 0.3em !important;
  }

  .storyline > div {
    padding: 0 !important;
    text-indent: 0 !important;
  }


  /* Game buttons */

  .big-button-container {
    bottom: 39vh !important;
  }

  .game-button {
    border: 1px solid rgba(125,125,125,0.5) !important;
    border-radius: 6px !important;
    opacity: 1 !important;
    transition all 150ms ease-in-out;
  }

  .game-button:not(.has-background) {
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
    background: rgba(34,34,34,0.7) !important;
  }

  .game-button:hover {
    box-shadow: 0 0 0.6em rgba(255,255,255,0.3);
    -webkit-filter: brightness(110%) saturate(110%);
    filter: brightness(110%) saturate(110%);
  }

  .game-button:active {
    box-shadow: 0 0 0.6em rgba(255,255,255,0.3);
    -webkit-filter: brightness(80%);
    filter: brightness(80%);
  }

  .button-label {
    background: none !important;
  }

  .game-button.has-background .button-label {
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
    background: linear-gradient(rgba(0,0,0,0.2), rgba(0,0,0,0)) !important;
  }

  .button-icon {
    margin-right: 1vh;
    transform: scale(0.9);
  }


  /* Player info */

  .opponent-name {
    font-family: 'TrajanPro-bold' !important;
  }

  .opponent-vp-counter {
    font-family: 'Arial', sans-serif;
    margin-left: 0.4em;
  }


  /* Modal windows */

  .modal-window {
    -webkit-backdrop-filter: blur(32px);
    backdrop-filter: blur(32px);
    background: rgba(17,17,17,0.8) !important;
    border: none !important;
    border-radius: 10px !important;
    box-shadow: 0 14px 20px rgba(17,17,17,0.9),
                0  1px  8px rgba(17,17,17,0.8) !important;
    font-family: 'Arial', sans-serif !important;
  }

  .timeout:first-child {
    font-family: 'TrajanPro-bold' !important;
  }


  /* Reveal and study windows */

  .card-study-window, .landscape-study-window {
    animation-name: pop-in;
    animation-duration: 120ms
  }

  @keyframes pop-in {
    from {
      opacity: 0;
      transform: scale(0.9);
    }
    to {
      opacity: 1;
      transform: scale(1);
    }
  }

  .card-study-window .full-card, .landscape-study-window .landscape {
    box-shadow: 0 5vw 20vw rgb(0,0,0) !important;
  }

  .autoplay-radio-button {
    transform: none;
  }
`);

setInterval(function() {
  document.querySelectorAll('.game-log .log-line, .storyline').forEach((line) => {
    var oldText = line.innerHTML;

    // Coin symbol
    if (/\$\d+/g.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/\$(\d+)/g, '<span class=\"log-coin\"><img src=\"images/elements/coin.png\" alt=\"$\">$1</span>');
    }
    if (/\d+ Coins?/gi.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/(\d+) Coins?/gi, '<span class=\"log-coin\"><img src=\"images/elements/coin.png\" alt=\"$\">$1</span>');
    }

    // VP symbol
    if (/gets \d+ VP/g.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/gets (\d+) VP/g, 'gets +$1<span class=\"log-vp\"><img src=\"images/elements/victory_130.png\" alt=\"V P\"></span>');
    }
    if (/takes \d+ VP/g.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/takes (\d+) VP/g, 'takes $1<span class=\"log-vp\"><img src=\"images/elements/victory_130.png\" alt=\"V P\"></span>');
    }
    if (/VP/g.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/VP/g, '<span class=\"log-vp\"><img src=\"images/elements/victory_130.png\" alt=\"V P\"></span>');
    }

    // Debt symbol
    if (/\d+ debt/gi.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/(\d+) debt/gi, '<span class=\"log-debt\">$1<img src=\"images/elements/debt_130.png\" alt=\" Debt\"></span>');
    }
    if (/\d+ remaining/gi.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/(\d+) remaining/gi, '<span class=\"log-debt\">$1<img src=\"images/elements/debt_130.png\" alt=\" Debt\"></span> remaining');
    }

    // +1 Card token
    if (/\+Card token/gi.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/\+Card token/gi, '+1 Card token');
    }

    // +1 Action token
    if (/\+Action token/gi.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/\+Action token/gi, '+1 Action token');
    }

    // +1 Buy token
    if (/\+Buy token/gi.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/\+Buy token/gi, '+1 Buy token');
    }

    // +$1 token
    if (/\+Coin token/gi.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/\+Coin token/gi, '+<span class=\"log-coin\"><img src=\"images/elements/coin.png\" alt=\"$\">1</span> token');
    }

    // -$2 token
    if (/\-Cost token/gi.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/\-Cost token/gi, '-<span class=\"log-coin\"><img src=\"images/elements/coin.png\" alt=\"$\">2</span> Cost token');
    }

    // –1 Card token
    if (/-Card token/gi.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/-Card token/gi, '–1 Card token');
    }

    // –$1 token
    if (/-Coin token/gi.test(oldText)) {
      line.innerHTML = line.innerHTML.replace(/-Coin token/gi, '–<span class=\"log-coin\"><img src=\"images/elements/coin.png\" alt=\"$\">1</span> token');
    }
  });
}, 100);