/*
* The MIT License
*
* Copyright 2015 Neil McAlister.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package dotaSoundEditor;
import dotaSoundEditor.Helpers.Utility;
import java.nio.file.Paths;
/**
*
* @author Neil McAlister
*/
public final class NamedHero extends NamedBase
{
public NamedHero(String _internalName, String _filePath)
{
internalName = _internalName;
friendlyName = this.cleanUpName(internalName);
internalFilePath = Paths.get(_filePath);
iconName = generateIconName(internalName);
}
@Override
protected String cleanUpName(String nameToClean)
{
nameToClean = nameToClean.replaceAll("_", " ");
nameToClean = Utility.capitalizeString(nameToClean);
nameToClean = handleSpecialCases(nameToClean);
return nameToClean;
}
//TODO: Centralize these names in a class somewhere. Utility class maybe?
@Override
protected String handleSpecialCases(String nameToClean)
{
switch(nameToClean)
{
case "Antimage": nameToClean = "Anti Mage";
break;
case "Batrider": nameToClean = "Bat Rider";
break;
case "Centaur": nameToClean = "Centaur Warrunner";
break;
case "Crystalmaiden": nameToClean = "Crystal Maiden";
break;
case "Doombringer": nameToClean = "Doom";
break;
case "Drowranger": nameToClean = "Drow Ranger";
break;
case "Furion": nameToClean = "Nature's Prophet";
break;
case "Life Stealer": nameToClean = "Lifestealer";
break;
case "Necrolyte": nameToClean = "Necrophos";
break;
case "Magnataur": nameToClean = "Magnus";
break;
case "Nightstalker": nameToClean = "Night Stalker";
break;
case "Obsidian Destroyer": nameToClean = "Outworld Devourer";
break;
case "Queenofpain": nameToClean = "Queen of Pain";
break;
case "Rattletrap": nameToClean = "Clockwerk";
break;
case "Sandking": nameToClean = "Sand King";
break;
case "Nevermore": nameToClean = "Shadow Fiend";
break;
case "Shadowshaman": nameToClean = "Shadow Shaman";
break;
case "Shredder": nameToClean = "Timbersaw";
break;
case "Skeletonking": nameToClean = "Wraith King";
break;
case "Stormspirit": nameToClean = "Storm Spirit";
break;
case "Treant": nameToClean = "Treant Protector";
break;
case "Vengefulspirit": nameToClean = "Vengeful Spirit";
break;
case "Windrunner": nameToClean = "Windranger";
break;
case "Wisp": nameToClean = "Io";
break;
case "Witchdoctor": nameToClean = "Witch Doctor";
break;
case "Zuus": nameToClean = "Zeus";
break;
}
return nameToClean;
}
@Override
protected String generateIconName(String name)
{
String localIconName = "";
localIconName = name.toLowerCase();
localIconName = localIconName.replaceAll(" ", "_");
switch (localIconName)
{
case "witchdoctor":
localIconName = "witch_doctor";
break;
case "doombringer":
localIconName = "doom_bringer";
break;
case "nightstalker":
localIconName = "night_stalker";
break;
case "skeletonking":
localIconName = "skeleton_king";
break;
case "shadowshaman":
localIconName = "shadow_shaman";
break;
case "crystalmaiden":
localIconName = "crystal_maiden";
break;
case "drowranger":
localIconName = "drow_ranger";
break;
case "sandking":
localIconName = "sand_king";
break;
case "stormspirit":
localIconName = "storm_spirit";
break;
}
return localIconName;
}
}