Dominion UI

A more stylish Dominion Online

// ==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);