mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-11-29 15:58:16 +08:00
Currency
* expanded tooltips * moved cap from hardcoded to DB * can now set description (manually) Itemset * expanded tooltips Lang * number formating is now locale-aware
This commit is contained in:
@@ -207,7 +207,7 @@ class AchievementList extends BaseType
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($crt['completionFlags'] & ACHIEVEMENT_CRITERIA_FLAG_MONEY_COUNTER)
|
if ($crt['completionFlags'] & ACHIEVEMENT_CRITERIA_FLAG_MONEY_COUNTER)
|
||||||
$criteria .= '- '.Util::jsEscape($crtName).' <span class="moneygold">'.number_format($crt['value2' ] / 10000).'</span><br />';
|
$criteria .= '- '.Util::jsEscape($crtName).' <span class="moneygold">'.Lang::nf($crt['value2' ] / 10000).'</span><br />';
|
||||||
else
|
else
|
||||||
$criteria .= '- '.Util::jsEscape($crtName).'<br />';
|
$criteria .= '- '.Util::jsEscape($crtName).'<br />';
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,25 @@ class CurrencyList extends BaseType
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function renderTooltip() { }
|
public function renderTooltip()
|
||||||
|
{
|
||||||
|
if (!$this->curTpl)
|
||||||
|
return array();
|
||||||
|
|
||||||
|
$x = '<table><tr><td>';
|
||||||
|
$x .= '<b>'.Util::jsEscape($this->getField('name', true)).'</b><br>';
|
||||||
|
|
||||||
|
// cata+ (or go fill it by hand)
|
||||||
|
if ($_ = $this->getField('description', true))
|
||||||
|
$x .= '<div style="max-width: 300px" class="q">'.Util::jsEscape($_).'</div>';
|
||||||
|
|
||||||
|
if ($_ = $this->getField('cap'))
|
||||||
|
$x .= '<br><span class="q">'.Lang::currency('cap').Lang::main('colon').'</span>'.Lang::nf($_).'<br>';
|
||||||
|
|
||||||
|
$x .= '</td></tr></table>';
|
||||||
|
|
||||||
|
return $x;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -594,14 +594,14 @@ class ItemList extends BaseType
|
|||||||
$dps = $speed ? ($dmgmin1 + $dmgmax1) / (2 * $speed) : 0;
|
$dps = $speed ? ($dmgmin1 + $dmgmax1) / (2 * $speed) : 0;
|
||||||
|
|
||||||
if ($_class == ITEM_CLASS_AMMUNITION && $dmgmin1 && $dmgmax1)
|
if ($_class == ITEM_CLASS_AMMUNITION && $dmgmin1 && $dmgmax1)
|
||||||
$x .= Lang::item('addsDps').' '.number_format(($dmgmin1 + $dmgmax1) / 2, 1).' '.Lang::item('dps2').'<br />';
|
$x .= Lang::item('addsDps').' '.Lang::nf(($dmgmin1 + $dmgmax1) / 2, 1).' '.Lang::item('dps2').'<br />';
|
||||||
else if ($dps)
|
else if ($dps)
|
||||||
{
|
{
|
||||||
if ($_class == ITEM_CLASS_WEAPON)
|
if ($_class == ITEM_CLASS_WEAPON)
|
||||||
{
|
{
|
||||||
$x .= '<table width="100%"><tr>';
|
$x .= '<table width="100%"><tr>';
|
||||||
$x .= '<td><!--dmg-->'.sprintf($this->curTpl['dmgType1'] ? Lang::item('damageMagic') : Lang::item('damagePhys'), $this->curTpl['dmgMin1'].' - '.$this->curTpl['dmgMax1'], Lang::game('sc', $this->curTpl['dmgType1'])).'</td>';
|
$x .= '<td><!--dmg-->'.sprintf($this->curTpl['dmgType1'] ? Lang::item('damageMagic') : Lang::item('damagePhys'), $this->curTpl['dmgMin1'].' - '.$this->curTpl['dmgMax1'], Lang::game('sc', $this->curTpl['dmgType1'])).'</td>';
|
||||||
$x .= '<th>'.Lang::item('speed').' <!--spd-->'.number_format($speed, 2).'</th>';
|
$x .= '<th>'.Lang::item('speed').' <!--spd-->'.Lang::nf($speed, 2).'</th>';
|
||||||
$x .= '</tr></table>';
|
$x .= '</tr></table>';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -612,7 +612,7 @@ class ItemList extends BaseType
|
|||||||
$x .= '+'.sprintf($this->curTpl['dmgType2'] ? Lang::item('damageMagic') : Lang::item('damagePhys'), $this->curTpl['dmgMin2'].' - '.$this->curTpl['dmgMax2'], Lang::game('sc', $this->curTpl['dmgType2'])).'<br />';
|
$x .= '+'.sprintf($this->curTpl['dmgType2'] ? Lang::item('damageMagic') : Lang::item('damagePhys'), $this->curTpl['dmgMin2'].' - '.$this->curTpl['dmgMax2'], Lang::game('sc', $this->curTpl['dmgType2'])).'<br />';
|
||||||
|
|
||||||
if ($_class == ITEM_CLASS_WEAPON)
|
if ($_class == ITEM_CLASS_WEAPON)
|
||||||
$x .= '<!--dps-->('.number_format($dps, 1).' '.Lang::item('dps').')<br />';
|
$x .= '<!--dps-->('.Lang::nf($dps, 1).' '.Lang::item('dps').')<br />';
|
||||||
|
|
||||||
// display FeralAttackPower if set
|
// display FeralAttackPower if set
|
||||||
if ($fap = $this->getFeralAP())
|
if ($fap = $this->getFeralAP())
|
||||||
@@ -1363,8 +1363,8 @@ class ItemList extends BaseType
|
|||||||
if ($extraDPS = $this->getSSDMod('dps')) // dmg_x2 not used for heirlooms
|
if ($extraDPS = $this->getSSDMod('dps')) // dmg_x2 not used for heirlooms
|
||||||
{
|
{
|
||||||
$average = $extraDPS * $this->curTpl['delay'] / 1000;
|
$average = $extraDPS * $this->curTpl['delay'] / 1000;
|
||||||
$this->templates[$this->id]['dmgMin1'] = number_format(0.7 * $average);
|
$this->templates[$this->id]['dmgMin1'] = Lang::nf(0.7 * $average);
|
||||||
$this->templates[$this->id]['dmgMax1'] = number_format(1.3 * $average);
|
$this->templates[$this->id]['dmgMax1'] = Lang::nf(1.3 * $average);
|
||||||
}
|
}
|
||||||
|
|
||||||
// apply Spell Power from ScalingStatValue if set
|
// apply Spell Power from ScalingStatValue if set
|
||||||
@@ -1520,8 +1520,8 @@ class ItemList extends BaseType
|
|||||||
$json['dmgtype1'] = $this->curTpl['dmgType1'];
|
$json['dmgtype1'] = $this->curTpl['dmgType1'];
|
||||||
$json['dmgmin1'] = $this->curTpl['dmgMin1'] + $this->curTpl['dmgMin2'];
|
$json['dmgmin1'] = $this->curTpl['dmgMin1'] + $this->curTpl['dmgMin2'];
|
||||||
$json['dmgmax1'] = $this->curTpl['dmgMax1'] + $this->curTpl['dmgMax2'];
|
$json['dmgmax1'] = $this->curTpl['dmgMax1'] + $this->curTpl['dmgMax2'];
|
||||||
$json['speed'] = number_format($this->curTpl['delay'] / 1000, 2);
|
$json['speed'] = Lang::nf($this->curTpl['delay'] / 1000, 2);
|
||||||
$json['dps'] = !floatVal($json['speed']) ? 0 : number_format(($json['dmgmin1'] + $json['dmgmax1']) / (2 * $json['speed']), 1);
|
$json['dps'] = !floatVal($json['speed']) ? 0 : Lang::nf(($json['dmgmin1'] + $json['dmgmax1']) / (2 * $json['speed']), 1);
|
||||||
|
|
||||||
if (in_array($json['subclass'], [2, 3, 18, 19]))
|
if (in_array($json['subclass'], [2, 3, 18, 19]))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -88,7 +88,77 @@ class ItemsetList extends BaseType
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function renderTooltip() { }
|
public function renderTooltip()
|
||||||
|
{
|
||||||
|
if (!$this->curTpl)
|
||||||
|
return array();
|
||||||
|
|
||||||
|
$x = '<table><tr><td>';
|
||||||
|
$x .= '<span class="q'.$this->getField('quality').'">'.Util::jsEscape($this->getField('name', true)).'</span><br />';
|
||||||
|
|
||||||
|
$nClasses = 0;
|
||||||
|
if ($_ = $this->getField('classMask'))
|
||||||
|
{
|
||||||
|
$cl = Lang::getClassString($_, $__, $nClasses);
|
||||||
|
$x .= Util::ucFirst($nClasses > 1 ? Lang::game('classes') : Lang::game('class')).Lang::main('colon').$cl.'<br />';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_ = $this->getField('contentGroup'))
|
||||||
|
$x .= Util::jsEscape(Lang::itemset('notes', $_)).($this->getField('heroic') ? ' <i class="q2">('.Lang::item('heroic').')</i>' : '').'<br />';
|
||||||
|
|
||||||
|
if (!$nClasses || !$this->getField('contentGroup'))
|
||||||
|
$x.= Lang::itemset('types', $this->getField('type')).'<br />';
|
||||||
|
|
||||||
|
if ($bonuses = $this->getBonuses())
|
||||||
|
{
|
||||||
|
$x .= '<span>';
|
||||||
|
|
||||||
|
foreach ($bonuses as $b)
|
||||||
|
$x .= '<br /><span class=\"q13\">'.$b['bonus'].' '.Lang::itemset('_pieces').Lang::main('colon').'</span>'.Util::jsEscape($b['desc']);
|
||||||
|
|
||||||
|
$x .= '</span>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$x .= '</td></tr></table>';
|
||||||
|
|
||||||
|
return $x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getBonuses()
|
||||||
|
{
|
||||||
|
$spells = [];
|
||||||
|
for ($i = 1; $i < 9; $i++)
|
||||||
|
{
|
||||||
|
$spl = $this->getField('spell'.$i);
|
||||||
|
$qty = $this->getField('bonus'.$i);
|
||||||
|
|
||||||
|
// cant use spell as index, would change order
|
||||||
|
if ($spl && $qty)
|
||||||
|
$spells[] = ['id' => $spl, 'bonus' => $qty];
|
||||||
|
}
|
||||||
|
|
||||||
|
// sort by required pieces ASC
|
||||||
|
usort($spells, function($a, $b) {
|
||||||
|
if ($a['bonus'] == $b['bonus'])
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return ($a['bonus'] > $b['bonus']) ? 1 : -1;
|
||||||
|
});
|
||||||
|
|
||||||
|
$setSpells = new SpellList(array(['s.id', array_column($spells, 'id')]));
|
||||||
|
foreach ($setSpells->iterate() as $spellId => $__)
|
||||||
|
{
|
||||||
|
foreach ($spells as &$s)
|
||||||
|
{
|
||||||
|
if ($spellId != $s['id'])
|
||||||
|
continue;
|
||||||
|
|
||||||
|
$s['desc'] = $setSpells->parseText('description', $this->getField('reqLevel') ?: MAX_LEVEL)[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $spells;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1174,7 +1174,7 @@ class SpellList extends BaseType
|
|||||||
// step 3: try to evaluate result
|
// step 3: try to evaluate result
|
||||||
$evaled = $this->resolveEvaluation($str);
|
$evaled = $this->resolveEvaluation($str);
|
||||||
|
|
||||||
$return = is_numeric($evaled) ? number_format($evaled, $precision, '.', '') : $evaled;
|
$return = is_numeric($evaled) ? Lang::nf($evaled, $precision) : $evaled;
|
||||||
return $return.$suffix;
|
return $return.$suffix;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1066,7 +1066,7 @@ class Util
|
|||||||
else
|
else
|
||||||
$c = 2 / 52;
|
$c = 2 / 52;
|
||||||
|
|
||||||
$result = number_format($val / Util::$gtCombatRatings[$type] / $c, 2);
|
$result = Lang::nf($val / Util::$gtCombatRatings[$type] / $c, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!in_array($type, array(ITEM_MOD_DEFENSE_SKILL_RATING, ITEM_MOD_EXPERTISE_RATING)))
|
if (!in_array($type, array(ITEM_MOD_DEFENSE_SKILL_RATING, ITEM_MOD_EXPERTISE_RATING)))
|
||||||
|
|||||||
@@ -322,6 +322,20 @@ class Lang
|
|||||||
|
|
||||||
return implode(', ', $tmp);
|
return implode(', ', $tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function nf($number, $decimals = 0)
|
||||||
|
{
|
||||||
|
// [decimal, thousand]
|
||||||
|
$seps = array(
|
||||||
|
LOCALE_EN => [',', '.'],
|
||||||
|
LOCALE_FR => [' ', ','],
|
||||||
|
LOCALE_DE => ['.', ','],
|
||||||
|
LOCALE_ES => ['.', ','],
|
||||||
|
LOCALE_RU => [' ', ',']
|
||||||
|
);
|
||||||
|
|
||||||
|
return number_format($number, $decimals, $seps[User::$localeId][1], $seps[User::$localeId][0]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -21,6 +21,10 @@ class CurrencyPage extends GenericPage
|
|||||||
{
|
{
|
||||||
parent::__construct($pageCall, $id);
|
parent::__construct($pageCall, $id);
|
||||||
|
|
||||||
|
// temp locale
|
||||||
|
if ($this->mode == CACHE_TYPE_TOOLTIP && isset($_GET['domain']))
|
||||||
|
Util::powerUseLocale($_GET['domain']);
|
||||||
|
|
||||||
$this->typeId = intVal($id);
|
$this->typeId = intVal($id);
|
||||||
|
|
||||||
$this->subject = new CurrencyList(array(['id', $this->typeId]));
|
$this->subject = new CurrencyList(array(['id', $this->typeId]));
|
||||||
@@ -52,10 +56,8 @@ class CurrencyPage extends GenericPage
|
|||||||
|
|
||||||
$infobox = Lang::getInfoBoxForFlags($this->subject->getField('cuFlags'));
|
$infobox = Lang::getInfoBoxForFlags($this->subject->getField('cuFlags'));
|
||||||
|
|
||||||
if ($this->typeId == 103) // Arena Points
|
if ($_ = $this->subject->getField('cap'))
|
||||||
$infobox[] = Lang::currency('cap').Lang::main('colon').'10\'000';
|
$infobox[] = Lang::currency('cap').Lang::main('colon').Lang::nf($_);
|
||||||
else if ($this->typeId == 104) // Honor
|
|
||||||
$infobox[] = Lang::currency('cap').Lang::main('colon').'75\'000';
|
|
||||||
|
|
||||||
/****************/
|
/****************/
|
||||||
/* Main Content */
|
/* Main Content */
|
||||||
@@ -69,6 +71,9 @@ class CurrencyPage extends GenericPage
|
|||||||
BUTTON_LINKS => true
|
BUTTON_LINKS => true
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ($_ = $this->subject->getField('description', true))
|
||||||
|
$this->extraText = $_;
|
||||||
|
|
||||||
/**************/
|
/**************/
|
||||||
/* Extra Tabs */
|
/* Extra Tabs */
|
||||||
/**************/
|
/**************/
|
||||||
@@ -224,6 +229,46 @@ class CurrencyPage extends GenericPage
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function generateTooltip($asError = false)
|
||||||
|
{
|
||||||
|
if ($asError)
|
||||||
|
return '$WowheadPower.registerCurrency('.$this->typeId.', '.User::$localeId.', {});';
|
||||||
|
|
||||||
|
$x = '$WowheadPower.registerCurrency('.$this->typeId.', '.User::$localeId.", {\n";
|
||||||
|
$x .= "\tname_".User::$localeString.": '".Util::jsEscape($this->subject->getField('name', true))."',\n";
|
||||||
|
$x .= "\ticon: '".urlencode($this->subject->getField('iconString'))."',\n";
|
||||||
|
$x .= "\ttooltip_".User::$localeString.": '".$this->subject->renderTooltip()."'\n";
|
||||||
|
$x .= "});";
|
||||||
|
|
||||||
|
return $x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function display($override = '')
|
||||||
|
{
|
||||||
|
if ($this->mode != CACHE_TYPE_TOOLTIP)
|
||||||
|
return parent::display($override);
|
||||||
|
|
||||||
|
if (!$this->loadCache($tt))
|
||||||
|
{
|
||||||
|
$tt = $this->generateTooltip();
|
||||||
|
$this->saveCache($tt);
|
||||||
|
}
|
||||||
|
|
||||||
|
header('Content-type: application/x-javascript; charset=utf-8');
|
||||||
|
die($tt);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function notFound()
|
||||||
|
{
|
||||||
|
if ($this->mode != CACHE_TYPE_TOOLTIP)
|
||||||
|
return parent::notFound(Lang::game('currency'), Lang::currency('notFound'));
|
||||||
|
|
||||||
|
header('Content-type: application/x-javascript; charset=utf-8');
|
||||||
|
echo $this->generateTooltip(true);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|||||||
@@ -144,45 +144,6 @@ class ItemsetPage extends GenericPage
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// spells
|
|
||||||
$foo = [];
|
|
||||||
$spells = [];
|
|
||||||
for ($i = 1; $i < 9; $i++)
|
|
||||||
{
|
|
||||||
$spl = $this->subject->getField('spell'.$i);
|
|
||||||
$qty = $this->subject->getField('bonus'.$i);
|
|
||||||
|
|
||||||
if ($spl && $qty)
|
|
||||||
{
|
|
||||||
$foo[] = $spl;
|
|
||||||
$spells[] = array( // cant use spell as index, would change order
|
|
||||||
'id' => $spl,
|
|
||||||
'bonus' => $qty,
|
|
||||||
'desc' => ''
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// sort by required pieces ASC
|
|
||||||
usort($spells, function($a, $b) {
|
|
||||||
if ($a['bonus'] == $b['bonus'])
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return ($a['bonus'] > $b['bonus']) ? 1 : -1;
|
|
||||||
});
|
|
||||||
|
|
||||||
$setSpells = new SpellList(array(['s.id', $foo]));
|
|
||||||
foreach ($setSpells->iterate() as $spellId => $__)
|
|
||||||
{
|
|
||||||
foreach ($spells as &$s)
|
|
||||||
{
|
|
||||||
if ($spellId != $s['id'])
|
|
||||||
continue;
|
|
||||||
|
|
||||||
$s['desc'] = $setSpells->parseText('description')[0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$skill = '';
|
$skill = '';
|
||||||
if ($_sk = $this->subject->getField('skillId'))
|
if ($_sk = $this->subject->getField('skillId'))
|
||||||
{
|
{
|
||||||
@@ -195,7 +156,7 @@ class ItemsetPage extends GenericPage
|
|||||||
$this->unavailable = $this->subject->getField('cuFlags') & CUSTOM_UNAVAILABLE;
|
$this->unavailable = $this->subject->getField('cuFlags') & CUSTOM_UNAVAILABLE;
|
||||||
$this->infobox = $infobox ? '[ul][li]'.implode('[/li][li]', $infobox).'[/li][/ul]' : null;
|
$this->infobox = $infobox ? '[ul][li]'.implode('[/li][li]', $infobox).'[/li][/ul]' : null;
|
||||||
$this->pieces = $pieces;
|
$this->pieces = $pieces;
|
||||||
$this->spells = $spells;
|
$this->spells = $this->subject->getBonuses();
|
||||||
$this->expansion = 0;
|
$this->expansion = 0;
|
||||||
$this->redButtons = array(
|
$this->redButtons = array(
|
||||||
BUTTON_WOWHEAD => $this->typeId > 0, // bool only
|
BUTTON_WOWHEAD => $this->typeId > 0, // bool only
|
||||||
@@ -266,6 +227,44 @@ class ItemsetPage extends GenericPage
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function generateTooltip($asError = false)
|
||||||
|
{
|
||||||
|
if ($asError)
|
||||||
|
return '$WowheadPower.registerItemSet('.$this->typeId.', '.User::$localeId.', {});';
|
||||||
|
|
||||||
|
$x = '$WowheadPower.registerItemSet('.$this->typeId.', '.User::$localeId.", {\n";
|
||||||
|
$x .= "\tname_".User::$localeString.": '".Util::jsEscape($this->subject->getField('name', true))."',\n";
|
||||||
|
$x .= "\ttooltip_".User::$localeString.": '".$this->subject->renderTooltip()."'\n";
|
||||||
|
$x .= "});";
|
||||||
|
|
||||||
|
return $x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function display($override = '')
|
||||||
|
{
|
||||||
|
if ($this->mode != CACHE_TYPE_TOOLTIP)
|
||||||
|
return parent::display($override);
|
||||||
|
|
||||||
|
if (!$this->loadCache($tt))
|
||||||
|
{
|
||||||
|
$tt = $this->generateTooltip();
|
||||||
|
$this->saveCache($tt);
|
||||||
|
}
|
||||||
|
|
||||||
|
header('Content-type: application/x-javascript; charset=utf-8');
|
||||||
|
die($tt);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function notFound()
|
||||||
|
{
|
||||||
|
if ($this->mode != CACHE_TYPE_TOOLTIP)
|
||||||
|
return parent::notFound(Lang::game('itemset'), Lang::itemset('notFound'));
|
||||||
|
|
||||||
|
header('Content-type: application/x-javascript; charset=utf-8');
|
||||||
|
echo $this->generateTooltip(true);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -227,33 +227,32 @@ class NpcPage extends GenericPage
|
|||||||
}
|
}
|
||||||
|
|
||||||
// > Stats
|
// > Stats
|
||||||
$_nf = function ($num) { return number_format($num, 0, '', '.'); };
|
|
||||||
$stats = [];
|
$stats = [];
|
||||||
$modes = []; // get difficulty versions if set
|
$modes = []; // get difficulty versions if set
|
||||||
$hint = '[tooltip name=%3$s][table cellspacing=10][tr]%1s[/tr][/table][/tooltip][span class=tip tooltip=%3$s]%2s[/span]';
|
$hint = '[tooltip name=%3$s][table cellspacing=10][tr]%1s[/tr][/table][/tooltip][span class=tip tooltip=%3$s]%2s[/span]';
|
||||||
$modeRow = '[tr][td]%s [/td][td]%s[/td][/tr]';
|
$modeRow = '[tr][td]%s [/td][td]%s[/td][/tr]';
|
||||||
// Health
|
// Health
|
||||||
$health = $this->subject->getBaseStats('health');
|
$health = $this->subject->getBaseStats('health');
|
||||||
$stats['health'] = Util::ucFirst(Lang::spell('powerTypes', -2)).Lang::main('colon').($health[0] < $health[1] ? $_nf($health[0]).' - '.$_nf($health[1]) : $_nf($health[0]));
|
$stats['health'] = Util::ucFirst(Lang::spell('powerTypes', -2)).Lang::main('colon').($health[0] < $health[1] ? Lang::nf($health[0]).' - '.Lang::nf($health[1]) : Lang::nf($health[0]));
|
||||||
|
|
||||||
// Mana (may be 0)
|
// Mana (may be 0)
|
||||||
$mana = $this->subject->getBaseStats('power');
|
$mana = $this->subject->getBaseStats('power');
|
||||||
$stats['mana'] = $mana[0] ? Lang::spell('powerTypes', 0).Lang::main('colon').($mana[0] < $mana[1] ? $_nf($mana[0]).' - '.$_nf($mana[1]) : $_nf($mana[0])) : null;
|
$stats['mana'] = $mana[0] ? Lang::spell('powerTypes', 0).Lang::main('colon').($mana[0] < $mana[1] ? Lang::nf($mana[0]).' - '.Lang::nf($mana[1]) : Lang::nf($mana[0])) : null;
|
||||||
|
|
||||||
// Armor
|
// Armor
|
||||||
$armor = $this->subject->getBaseStats('armor');
|
$armor = $this->subject->getBaseStats('armor');
|
||||||
$stats['armor'] = Lang::npc('armor').Lang::main('colon').($armor[0] < $armor[1] ? $_nf($armor[0]).' - '.$_nf($armor[1]) : $_nf($armor[0]));
|
$stats['armor'] = Lang::npc('armor').Lang::main('colon').($armor[0] < $armor[1] ? Lang::nf($armor[0]).' - '.Lang::nf($armor[1]) : Lang::nf($armor[0]));
|
||||||
|
|
||||||
// Melee Damage
|
// Melee Damage
|
||||||
$melee = $this->subject->getBaseStats('melee');
|
$melee = $this->subject->getBaseStats('melee');
|
||||||
if ($_ = $this->subject->getField('dmgSchool')) // magic damage
|
if ($_ = $this->subject->getField('dmgSchool')) // magic damage
|
||||||
$stats['melee'] = Lang::npc('melee').Lang::main('colon').$_nf($melee[0]).' - '.$_nf($melee[1]).' ('.Lang::game('sc', $_).')';
|
$stats['melee'] = Lang::npc('melee').Lang::main('colon').Lang::nf($melee[0]).' - '.Lang::nf($melee[1]).' ('.Lang::game('sc', $_).')';
|
||||||
else // phys. damage
|
else // phys. damage
|
||||||
$stats['melee'] = Lang::npc('melee').Lang::main('colon').$_nf($melee[0]).' - '.$_nf($melee[1]);
|
$stats['melee'] = Lang::npc('melee').Lang::main('colon').Lang::nf($melee[0]).' - '.Lang::nf($melee[1]);
|
||||||
|
|
||||||
// Ranged Damage
|
// Ranged Damage
|
||||||
$ranged = $this->subject->getBaseStats('ranged');
|
$ranged = $this->subject->getBaseStats('ranged');
|
||||||
$stats['ranged'] = Lang::npc('ranged').Lang::main('colon').$_nf($ranged[0]).' - '.$_nf($ranged[1]);
|
$stats['ranged'] = Lang::npc('ranged').Lang::main('colon').Lang::nf($ranged[0]).' - '.Lang::nf($ranged[1]);
|
||||||
|
|
||||||
if (in_array($mapType, [1, 2])) // Dungeon or Raid
|
if (in_array($mapType, [1, 2])) // Dungeon or Raid
|
||||||
{
|
{
|
||||||
@@ -268,26 +267,26 @@ class NpcPage extends GenericPage
|
|||||||
|
|
||||||
// Health
|
// Health
|
||||||
$health = $_altNPCs->getBaseStats('health');
|
$health = $_altNPCs->getBaseStats('health');
|
||||||
$modes['health'][] = sprintf($modeRow, $m, $health[0] < $health[1] ? $_nf($health[0]).' - '.$_nf($health[1]) : $_nf($health[0]));
|
$modes['health'][] = sprintf($modeRow, $m, $health[0] < $health[1] ? Lang::nf($health[0]).' - '.Lang::nf($health[1]) : Lang::nf($health[0]));
|
||||||
|
|
||||||
// Mana (may be 0)
|
// Mana (may be 0)
|
||||||
$mana = $_altNPCs->getBaseStats('power');
|
$mana = $_altNPCs->getBaseStats('power');
|
||||||
$modes['mana'][] = $mana[0] ? sprintf($modeRow, $m, $mana[0] < $mana[1] ? $_nf($mana[0]).' - '.$_nf($mana[1]) : $_nf($mana[0])) : null;
|
$modes['mana'][] = $mana[0] ? sprintf($modeRow, $m, $mana[0] < $mana[1] ? Lang::nf($mana[0]).' - '.Lang::nf($mana[1]) : Lang::nf($mana[0])) : null;
|
||||||
|
|
||||||
// Armor
|
// Armor
|
||||||
$armor = $_altNPCs->getBaseStats('armor');
|
$armor = $_altNPCs->getBaseStats('armor');
|
||||||
$modes['armor'][] = sprintf($modeRow, $m, $armor[0] < $armor[1] ? $_nf($armor[0]).' - '.$_nf($armor[1]) : $_nf($armor[0]));
|
$modes['armor'][] = sprintf($modeRow, $m, $armor[0] < $armor[1] ? Lang::nf($armor[0]).' - '.Lang::nf($armor[1]) : Lang::nf($armor[0]));
|
||||||
|
|
||||||
// Melee Damage
|
// Melee Damage
|
||||||
$melee = $_altNPCs->getBaseStats('melee');
|
$melee = $_altNPCs->getBaseStats('melee');
|
||||||
if ($_ = $_altNPCs->getField('dmgSchool')) // magic damage
|
if ($_ = $_altNPCs->getField('dmgSchool')) // magic damage
|
||||||
$modes['melee'][] = sprintf($modeRow, $m, $_nf($melee[0]).' - '.$_nf($melee[1]).' ('.Lang::game('sc', $_).')');
|
$modes['melee'][] = sprintf($modeRow, $m, Lang::nf($melee[0]).' - '.Lang::nf($melee[1]).' ('.Lang::game('sc', $_).')');
|
||||||
else // phys. damage
|
else // phys. damage
|
||||||
$modes['melee'][] = sprintf($modeRow, $m, $_nf($melee[0]).' - '.$_nf($melee[1]));
|
$modes['melee'][] = sprintf($modeRow, $m, Lang::nf($melee[0]).' - '.Lang::nf($melee[1]));
|
||||||
|
|
||||||
// Ranged Damage
|
// Ranged Damage
|
||||||
$ranged = $_altNPCs->getBaseStats('ranged');
|
$ranged = $_altNPCs->getBaseStats('ranged');
|
||||||
$modes['ranged'][] = sprintf($modeRow, $m, $_nf($ranged[0]).' - '.$_nf($ranged[1]));
|
$modes['ranged'][] = sprintf($modeRow, $m, Lang::nf($ranged[0]).' - '.Lang::nf($ranged[1]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class UserPage extends GenericPage
|
|||||||
$infobox[] = Lang::user('lastLogin').Lang::main('colon').'[tooltip name=lastLogin]'.date('l, G:i:s', $this->user['prevLogin']).'[/tooltip][span class=tip tooltip=lastLogin]'.date(Lang::main('dateFmtShort'), $this->user['prevLogin']).'[/span]';
|
$infobox[] = Lang::user('lastLogin').Lang::main('colon').'[tooltip name=lastLogin]'.date('l, G:i:s', $this->user['prevLogin']).'[/tooltip][span class=tip tooltip=lastLogin]'.date(Lang::main('dateFmtShort'), $this->user['prevLogin']).'[/span]';
|
||||||
$infobox[] = Lang::user('userGroups').Lang::main('colon').($groups ? implode(', ', $groups) : Lang::account('groups', -1));
|
$infobox[] = Lang::user('userGroups').Lang::main('colon').($groups ? implode(', ', $groups) : Lang::account('groups', -1));
|
||||||
$infobox[] = Lang::user('consecVisits').Lang::main('colon').$this->user['consecutiveVisits'];
|
$infobox[] = Lang::user('consecVisits').Lang::main('colon').$this->user['consecutiveVisits'];
|
||||||
$infobox[] = Util::ucFirst(Lang::main('siteRep')).Lang::main('colon').number_format($this->user['sumRep']);
|
$infobox[] = Util::ucFirst(Lang::main('siteRep')).Lang::main('colon').Lang::nf($this->user['sumRep']);
|
||||||
|
|
||||||
// contrib -> [url=http://www.wowhead.com/client]Data uploads: n [small]([tooltip=tooltip_totaldatauploads]xx.y MB[/tooltip])[/small][/url]
|
// contrib -> [url=http://www.wowhead.com/client]Data uploads: n [small]([tooltip=tooltip_totaldatauploads]xx.y MB[/tooltip])[/small][/url]
|
||||||
|
|
||||||
|
|||||||
@@ -513,6 +513,7 @@ CREATE TABLE `aowow_currencies` (
|
|||||||
`cuFlags` int(10) unsigned NOT NULL,
|
`cuFlags` int(10) unsigned NOT NULL,
|
||||||
`iconId` mediumint(9) NOT NULL,
|
`iconId` mediumint(9) NOT NULL,
|
||||||
`itemId` int(16) NOT NULL,
|
`itemId` int(16) NOT NULL,
|
||||||
|
`cap` mediumint(8) unsigned NOT NULL,
|
||||||
`name_loc0` varchar(64) NOT NULL,
|
`name_loc0` varchar(64) NOT NULL,
|
||||||
`name_loc2` varchar(64) NOT NULL,
|
`name_loc2` varchar(64) NOT NULL,
|
||||||
`name_loc3` varchar(64) NOT NULL,
|
`name_loc3` varchar(64) NOT NULL,
|
||||||
|
|||||||
@@ -27,13 +27,15 @@ if (typeof $WowheadPower == "undefined") {
|
|||||||
|
|
||||||
eventAttached = false,
|
eventAttached = false,
|
||||||
|
|
||||||
npcs = {},
|
npcs = {},
|
||||||
objects = {},
|
objects = {},
|
||||||
items = {},
|
items = {},
|
||||||
quests = {},
|
quests = {},
|
||||||
spells = {},
|
spells = {},
|
||||||
achievements = {},
|
achievements = {},
|
||||||
profiles = {},
|
itemsets = {},
|
||||||
|
currencies = {},
|
||||||
|
profiles = {},
|
||||||
|
|
||||||
showLogo = 1,
|
showLogo = 1,
|
||||||
|
|
||||||
@@ -51,9 +53,11 @@ if (typeof $WowheadPower == "undefined") {
|
|||||||
TYPE_NPC = 1,
|
TYPE_NPC = 1,
|
||||||
TYPE_OBJECT = 2,
|
TYPE_OBJECT = 2,
|
||||||
TYPE_ITEM = 3,
|
TYPE_ITEM = 3,
|
||||||
|
TYPE_ITEMSET = 4,
|
||||||
TYPE_QUEST = 5,
|
TYPE_QUEST = 5,
|
||||||
TYPE_SPELL = 6,
|
TYPE_SPELL = 6,
|
||||||
TYPE_ACHIEVEMENT = 10,
|
TYPE_ACHIEVEMENT = 10,
|
||||||
|
TYPE_CURRENCY = 17,
|
||||||
TYPE_PROFILE = 100,
|
TYPE_PROFILE = 100,
|
||||||
|
|
||||||
CURSOR_HSPACE = 15,
|
CURSOR_HSPACE = 15,
|
||||||
@@ -68,9 +72,11 @@ if (typeof $WowheadPower == "undefined") {
|
|||||||
1: [npcs, "npc", "NPC" ],
|
1: [npcs, "npc", "NPC" ],
|
||||||
2: [objects, "object", "Object" ],
|
2: [objects, "object", "Object" ],
|
||||||
3: [items, "item", "Item" ],
|
3: [items, "item", "Item" ],
|
||||||
|
4: [itemsets, "itemset", "Item Set" ],
|
||||||
5: [quests, "quest", "Quest" ],
|
5: [quests, "quest", "Quest" ],
|
||||||
6: [spells, "spell", "Spell" ],
|
6: [spells, "spell", "Spell" ],
|
||||||
10: [achievements, "achievement", "Achievement"],
|
10: [achievements, "achievement", "Achievement"],
|
||||||
|
17: [currencies, "currency", "Currency" ],
|
||||||
100: [profiles, "profile", "Profile" ]
|
100: [profiles, "profile", "Profile" ]
|
||||||
},
|
},
|
||||||
SCALES = {
|
SCALES = {
|
||||||
@@ -90,7 +96,14 @@ if (typeof $WowheadPower == "undefined") {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (isRemote) {
|
if (isRemote) {
|
||||||
var Locale = { id: 0, name: "enus" };
|
var Locale = {
|
||||||
|
getId: function () {
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
|
getName: function () {
|
||||||
|
return "enus";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
@@ -248,8 +261,8 @@ if (typeof $WowheadPower == "undefined") {
|
|||||||
i2 = 3;
|
i2 = 3;
|
||||||
if (t.href.indexOf("http://") == 0 || t.href.indexOf("https://") == 0) {
|
if (t.href.indexOf("http://") == 0 || t.href.indexOf("https://") == 0) {
|
||||||
i0 = 1;
|
i0 = 1;
|
||||||
// url = t.href.match(/^https?:\/\/(.+?)?\.?wowhead\.com(?:\:\d+)?\/\??(item|quest|spell|achievement|npc|object)=([0-9]+)/);
|
// url = t.href.match(/^https?:\/\/(.+?)?\.?wowhead\.com(?:\:\d+)?\/\??(item|quest|spell|achievement|npc|object|itemset|currency)=(-?[0-9]+)/);
|
||||||
url = t.href.match(/^https?:\/\/(.*)\/?\??(item|quest|spell|achievement|npc|object)=([0-9]+)/);
|
url = t.href.match(/^https?:\/\/(.*)\/?\??(item|quest|spell|achievement|npc|object|itemset|currency)=(-?[0-9]+)/);
|
||||||
if (url == null) {
|
if (url == null) {
|
||||||
// url = t.href.match(/^http:\/\/(.+?)?\.?wowhead\.com\/\?(profile)=([^&#]+)/)
|
// url = t.href.match(/^http:\/\/(.+?)?\.?wowhead\.com\/\?(profile)=([^&#]+)/)
|
||||||
url = t.href.match(/^https?:\/\/(.*)\/?\??(profile)=([^&#]+)/);
|
url = t.href.match(/^https?:\/\/(.*)\/?\??(profile)=([^&#]+)/);
|
||||||
@@ -258,7 +271,7 @@ if (typeof $WowheadPower == "undefined") {
|
|||||||
showLogo = 0;
|
showLogo = 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
url = t.href.match(/()\?(item|quest|spell|achievement|npc|object)=([0-9]+)/);
|
url = t.href.match(/()\?(item|quest|spell|achievement|npc|object|itemset|currency)=(-?[0-9]+)/);
|
||||||
if (url == null) {
|
if (url == null) {
|
||||||
url = t.href.match(/()\?(profile)=([^&#]+)/);
|
url = t.href.match(/()\?(profile)=([^&#]+)/);
|
||||||
}
|
}
|
||||||
@@ -271,7 +284,7 @@ if (typeof $WowheadPower == "undefined") {
|
|||||||
i0 = 0;
|
i0 = 0;
|
||||||
i1 = 1;
|
i1 = 1;
|
||||||
i2 = 2;
|
i2 = 2;
|
||||||
url = t.rel.match(/(item|quest|spell|achievement|npc|object).?([0-9]+)/);
|
url = t.rel.match(/(item|quest|spell|achievement|npc|object|itemset|currency).?(-?[0-9]+)/);
|
||||||
// if (url == null) { // sarjuuk: also matches 'profiler' and 'profiles' which screws with the language-menu workaround
|
// if (url == null) { // sarjuuk: also matches 'profiler' and 'profiles' which screws with the language-menu workaround
|
||||||
// url = t.rel.match(/(profile).?([^&#]+)/);
|
// url = t.rel.match(/(profile).?([^&#]+)/);
|
||||||
// }
|
// }
|
||||||
@@ -700,6 +713,10 @@ if (typeof $WowheadPower == "undefined") {
|
|||||||
this.register(TYPE_NPC, id, locale, json);
|
this.register(TYPE_NPC, id, locale, json);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.registerCurrency = function (id, locale, json) {
|
||||||
|
this.register(TYPE_CURRENCY, id, locale, json)
|
||||||
|
};
|
||||||
|
|
||||||
this.registerObject = function (id, locale, json) {
|
this.registerObject = function (id, locale, json) {
|
||||||
this.register(TYPE_OBJECT, id, locale, json);
|
this.register(TYPE_OBJECT, id, locale, json);
|
||||||
};
|
};
|
||||||
@@ -708,6 +725,10 @@ if (typeof $WowheadPower == "undefined") {
|
|||||||
this.register(TYPE_ITEM, id, locale, json);
|
this.register(TYPE_ITEM, id, locale, json);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.registerItemSet = function (id, locale, json) {
|
||||||
|
this.register(TYPE_ITEMSET, id, locale, json);
|
||||||
|
};
|
||||||
|
|
||||||
this.registerQuest = function (id, locale, json) {
|
this.registerQuest = function (id, locale, json) {
|
||||||
this.register(TYPE_QUEST, id, locale, json);
|
this.register(TYPE_QUEST, id, locale, json);
|
||||||
};
|
};
|
||||||
@@ -740,11 +761,11 @@ if (typeof $WowheadPower == "undefined") {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.requestItem = function (id, params) {
|
this.requestItem = function (id, params) {
|
||||||
this.request(TYPE_ITEM, id, Locale.id, params);
|
this.request(TYPE_ITEM, id, Locale.getId(), params);
|
||||||
};
|
};
|
||||||
|
|
||||||
this.requestSpell = function (id) {
|
this.requestSpell = function (id) {
|
||||||
this.request(TYPE_SPELL, id, Locale.id);
|
this.request(TYPE_SPELL, id, Locale.getId());
|
||||||
};
|
};
|
||||||
|
|
||||||
this.getStatus = function (type, id, locale) {
|
this.getStatus = function (type, id, locale) {
|
||||||
|
|||||||
@@ -18,7 +18,9 @@ $customData = array(
|
|||||||
2 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
2 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
||||||
4 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
4 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
||||||
22 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
22 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
||||||
141 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3]
|
141 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
||||||
|
103 => ['cap' => 10000], // Arena Points
|
||||||
|
104 => ['cap' => 75000] // Honor Points
|
||||||
);
|
);
|
||||||
$reqDBC = ['itemdisplayinfo', 'currencytypes'];
|
$reqDBC = ['itemdisplayinfo', 'currencytypes'];
|
||||||
|
|
||||||
|
|||||||
5
setup/updates/1436619600_01.sql
Normal file
5
setup/updates/1436619600_01.sql
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
ALTER TABLE `aowow_currencies`
|
||||||
|
ADD COLUMN `cap` MEDIUMINT UNSIGNED NOT NULL AFTER `itemId`;
|
||||||
|
|
||||||
|
UPDATE `aowow_currencies` SET `cap` = 10000 WHERE `id` = 103;
|
||||||
|
UPDATE `aowow_currencies` SET `cap` = 75000 WHERE `id` = 104;
|
||||||
@@ -83,18 +83,19 @@ a span.moneyitem, a span.moneysocketmeta, a span.moneysocketred, a span.moneysoc
|
|||||||
/* ITEM QUALITY COLORS */
|
/* ITEM QUALITY COLORS */
|
||||||
/***********************/
|
/***********************/
|
||||||
|
|
||||||
.q, .q a, .color-q, .wowhead-tooltip .q a { color: #ffd100 !important; } /* Default (yellow) */
|
.q, .q a, .color-q, .wowhead-tooltip .q a { color: #ffd100 !important } /* Default (yellow) */
|
||||||
.q0, .q0 a, .color-q0, .wowhead-tooltip .q0 a { color: #9d9d9d !important; } /* Poor */
|
.q0, .q0 a, .color-q0, .wowhead-tooltip .q0 a { color: #9d9d9d !important } /* Poor */
|
||||||
.q1, .q1 a, .color-q1, .wowhead-tooltip .q1 a { color: #ffffff !important; } /* Common */
|
.q1, .q1 a, .color-q1, .wowhead-tooltip .q1 a { color: #ffffff !important } /* Common */
|
||||||
.q2, .q2 a, .color-q2, .wowhead-tooltip .q2 a { color: #1eff00 !important; } /* Uncommon */
|
.q2, .q2 a, .color-q2, .wowhead-tooltip .q2 a { color: #1eff00 !important } /* Uncommon */
|
||||||
.q3, .q3 a, .color-q3, .wowhead-tooltip .q3 a { color: #0070dd !important; } /* Rare */
|
.q3, .q3 a, .color-q3, .wowhead-tooltip .q3 a { color: #0070dd !important } /* Rare */
|
||||||
.q4, .q4 a, .color-q4, .wowhead-tooltip .q4 a { color: #a335ee !important; } /* Epic */
|
.q4, .q4 a, .color-q4, .wowhead-tooltip .q4 a { color: #a335ee !important } /* Epic */
|
||||||
.q5, .q5 a, .color-q5, .wowhead-tooltip .q5 a { color: #ff8000 !important; } /* Legendary */
|
.q5, .q5 a, .color-q5, .wowhead-tooltip .q5 a { color: #ff8000 !important } /* Legendary */
|
||||||
.q6, .q6 a, .color-q6, .wowhead-tooltip .q6 a { color: #e5cc80 !important; } /* Artifact */
|
.q6, .q6 a, .color-q6, .wowhead-tooltip .q6 a { color: #e5cc80 !important } /* Artifact */
|
||||||
.q7, .q7 a, .color-q7, .wowhead-tooltip .q7 a { color: #e5cc80 !important; } /* Heirloom */
|
.q7, .q7 a, .color-q7, .wowhead-tooltip .q7 a { color: #e5cc80 !important } /* Heirloom */
|
||||||
.q8, .q8 a, .color-q8, .wowhead-tooltip .q8 a { color: #ffff98 !important; } /* Light yellow (item set bonuses) */
|
.q8, .q8 a, .color-q8, .wowhead-tooltip .q8 a { color: #ffff98 !important } /* Light yellow (item set bonuses) */
|
||||||
.q9, .q9 a, .color-q9, .wowhead-tooltip .q9 a { color: #71d5ff !important; } /* Light blue (glyph type) */
|
.q9, .q9 a, .color-q9, .wowhead-tooltip .q9 a { color: #71d5ff !important } /* Light blue (glyph type) */
|
||||||
.q10, .q10 a, .color-q10, .wowhead-tooltip .q10 a { color: #ff4040 !important; } /* Red (requirement not met, error) */
|
.q10, .q10 a, .color-q10, .wowhead-tooltip .q10 a { color: #ff4040 !important } /* Red (requirement not met, error) */
|
||||||
|
.q13, .q13 a, .color-q13, .wowhead-tooltip .q13 a { color: #ffff98 !important }
|
||||||
|
|
||||||
/*********************/
|
/*********************/
|
||||||
/* DIFFICULTY COLORS */
|
/* DIFFICULTY COLORS */
|
||||||
|
|||||||
Reference in New Issue
Block a user