'use strict'
function Gage (name, limit, color) {
this.name = name
this.color = color
this.limit = limit
this.value = limit
this.value_element = null
this.event_element = null
this.element = document.createElement('div')
this.progress = new Progress(15, color)
this.show_limit = true
this.units = ''
this.start = function () {
this.install()
}
this.install = function () {
this.element.setAttribute('class', 'gage ' + this.name.toLowerCase())
this.value_element = document.createElement('span')
this.value_element.setAttribute('class', 'value')
this.value_element.innerHTML = this.value + '(' + this.limit + ')'
this.element.appendChild(this.value_element)
this.event_element = document.createElement('span')
this.event_element.setAttribute('class', 'event')
this.element.appendChild(this.event_element)
this.element.appendChild(this.progress.install())
return this.element
}
this.update = function (value) {
this.value = typeof value === 'number' ? value : this.value
if (this.value > this.limit) { this.value = this.limit }
if (this.value < 0) { this.value = 0 }
this.progress.update(this.value, this.limit)
if (this.name == 'Shield' && this.value == 0) {
this.value_element.innerHTML = "0DP"
} else if (this.name == 'Shield' && this.limit == 25) {
this.value_element.innerHTML = this.value + "DP"
} else {
this.value_element.innerHTML = this.show_limit ? this.value + ' < ' + this.limit + "" + this.units + '' : this.value + " " + this.units + ''
}
}
this.add_event = function (value) {
this.event_element.innerHTML = "" + value + ''
this.event_element.style.marginTop = '5px'
this.event_element.style.opacity = '0'
setTimeout(() => {
this.event_element.style.marginTop = '0px'
this.event_element.style.opacity = 1
}, 250)
}
this.clear_event = function () {
this.event_element.innerHTML = ''
}
}